On Wed, Feb 8, 2012 at 10:15 AM, Alex Converse <[email protected]> wrote: > > --- > libavcodec/aacdec.c | 57 ++++++++++++++------------------------------------ > 1 files changed, 16 insertions(+), 41 deletions(-) > > diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c > index 2e14e3c..1100a61 100644 > --- a/libavcodec/aacdec.c > +++ b/libavcodec/aacdec.c > @@ -409,56 +409,31 @@ static av_cold int output_configure(AACContext *ac, > { > AVCodecContext *avctx = ac->avctx; > int i, channels = 0, ret; > + uint64_t layout = 0; > > if (ac->layout_map != layout_map) { > memcpy(ac->layout_map, layout_map, tags * sizeof(layout_map[0])); > ac->layout_map_tags = tags; > } > > - if (channel_config) { > - if (avctx->request_channel_layout != AV_CH_LAYOUT_NATIVE) > - sniff_channel_order(layout_map, tags); > - for (i = 0; i < tags_per_config[channel_config]; i++) { > - int type = layout_map[i][0]; > - int id = layout_map[i][1]; > - int positon = layout_map[i][2]; > - if ((ret = che_configure(ac, positon, > - type, id, > - &channels))) > - return ret; > - } > - > - memset(ac->tag_che_map, 0, 4 * MAX_ELEM_ID * sizeof(ac->che[0][0])); > - > - avctx->channel_layout = aac_channel_layout[channel_config - 1]; > - } else { > - /* Allocate or free elements depending on if they are in the > - * current program configuration. > - * > - * Try to sniff a reasonable channel order, otherwise output the > - * channels in the order the PCE declared them. > - */ > - > - uint64_t layout = 0; > - if (avctx->request_channel_layout != AV_CH_LAYOUT_NATIVE) > - layout = sniff_channel_order(layout_map, tags); > - for (i = 0; i < tags; i++) { > - int type = layout_map[i][0]; > - int id = layout_map[i][1]; > - int position = layout_map[i][2]; > - if ((ret = che_configure(ac, position, > - type, id, > - &channels))) > - return ret; > - } > - > - memcpy(ac->tag_che_map, ac->che, 4 * MAX_ELEM_ID * > sizeof(ac->che[0][0])); > - > - avctx->channel_layout = layout; > + // Try to sniff a reasonable channel order, otherwise output the > + // channels in the order the PCE declared them. > + if (avctx->request_channel_layout != AV_CH_LAYOUT_NATIVE) > + layout = sniff_channel_order(layout_map, tags); > + for (i = 0; i < tags; i++) { > + int type = layout_map[i][0]; > + int id = layout_map[i][1]; > + int position = layout_map[i][2]; > + // Allocate or free elements depending on if they are in the > + // current program configuration. > + ret = che_configure(ac, position, type, id, &channels); > + if (ret < 0) > + return ret; > } > > + memcpy(ac->tag_che_map, ac->che, 4 * MAX_ELEM_ID * > sizeof(ac->che[0][0])); > + avctx->channel_layout = layout; > avctx->channels = channels; > - > ac->output_configured = oc_type; > > return 0; > -- > 1.7.7.3 >
To clarify, this one is completely new _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
