summaryrefslogtreecommitdiff
path: root/libavcodec/aac_ac3_parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/aac_ac3_parser.c')
-rw-r--r--libavcodec/aac_ac3_parser.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/libavcodec/aac_ac3_parser.c b/libavcodec/aac_ac3_parser.c
index 8a83aae115..999a189158 100644
--- a/libavcodec/aac_ac3_parser.c
+++ b/libavcodec/aac_ac3_parser.c
@@ -60,11 +60,12 @@ int ff_aac_ac3_parse(AVCodecParserContext *s1,
s->frame_size = len;
/* update codec info */
avctx->sample_rate = sample_rate;
- /* allow downmixing to mono or stereo for AC3 */
+ /* allow downmixing to stereo (or mono for AC3) */
if(avctx->request_channels > 0 &&
avctx->request_channels < channels &&
- avctx->request_channels <= 2 &&
- avctx->codec_id == CODEC_ID_AC3) {
+ (avctx->request_channels <= 2 ||
+ (avctx->request_channels == 1 &&
+ avctx->codec_id == CODEC_ID_AC3))) {
avctx->channels = avctx->request_channels;
} else {
avctx->channels = channels;