[FFmpeg-cvslog] aac_ac3_parser: Drop in-parser downmix functionality

Vittorio Giovara git at videolan.org
Mon Oct 30 22:30:40 EET 2017


ffmpeg | branch: master | Vittorio Giovara <vittorio.giovara at gmail.com> | Wed Apr 26 11:08:17 2017 -0400| [dd3aa85b68c017c419acb0c39ff6aa890ce89e87] | committer: Vittorio Giovara

aac_ac3_parser: Drop in-parser downmix functionality

request_channel_layout is a decoder option and it makes no sense
to have it in a parser.

This feature was needed in the past when the decoder was allowed
to reuse the avctx from the demuxer. Nowadays the decoder receives
only the parameters from it, already containing the real channel
layout (and the correct request_channel_layout option).

After initialization the decoder overwrites the channel layout
with the downmixed one that is actually output, so there is no need
to preserve this functionality in the parser.

Signed-off-by: Vittorio Giovara <vittorio.giovara at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=dd3aa85b68c017c419acb0c39ff6aa890ce89e87
---

 libavcodec/aac_ac3_parser.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/libavcodec/aac_ac3_parser.c b/libavcodec/aac_ac3_parser.c
index 806a826ea0..a754f4a957 100644
--- a/libavcodec/aac_ac3_parser.c
+++ b/libavcodec/aac_ac3_parser.c
@@ -82,20 +82,8 @@ get_next:
        seconds is still correct (as is the number of bits in the frame). */
     if (avctx->codec_id != AV_CODEC_ID_AAC) {
         avctx->sample_rate = s->sample_rate;
-
-        /* (E-)AC-3: allow downmixing to stereo or mono */
-        if (s->channels > 1 &&
-            avctx->request_channel_layout == AV_CH_LAYOUT_MONO) {
-            avctx->channels       = 1;
-            avctx->channel_layout = AV_CH_LAYOUT_MONO;
-        } else if (s->channels > 2 &&
-                   avctx->request_channel_layout == AV_CH_LAYOUT_STEREO) {
-            avctx->channels       = 2;
-            avctx->channel_layout = AV_CH_LAYOUT_STEREO;
-        } else {
-            avctx->channels = s->channels;
-            avctx->channel_layout = s->channel_layout;
-        }
+        avctx->channels = s->channels;
+        avctx->channel_layout = s->channel_layout;
         s1->duration = s->samples;
         avctx->audio_service_type = s->service_type;
     }



More information about the ffmpeg-cvslog mailing list