mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-04-14 00:58:38 +02:00
use request_channels in liba52 decoder
Originally committed as revision 11417 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
2816d32310
commit
dc7009ea1b
@ -117,6 +117,13 @@ static int a52_decode_init(AVCodecContext *avctx)
|
|||||||
s->inbuf_ptr = s->inbuf;
|
s->inbuf_ptr = s->inbuf;
|
||||||
s->frame_size = 0;
|
s->frame_size = 0;
|
||||||
|
|
||||||
|
/* allow downmixing to stereo or mono */
|
||||||
|
if (avctx->channels > 0 && avctx->request_channels > 0 &&
|
||||||
|
avctx->request_channels < avctx->channels &&
|
||||||
|
avctx->request_channels <= 2) {
|
||||||
|
avctx->channels = avctx->request_channels;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -179,12 +186,11 @@ static int a52_decode_frame(AVCodecContext *avctx,
|
|||||||
s->channels = ac3_channels[s->flags & 7];
|
s->channels = ac3_channels[s->flags & 7];
|
||||||
if (s->flags & A52_LFE)
|
if (s->flags & A52_LFE)
|
||||||
s->channels++;
|
s->channels++;
|
||||||
if (avctx->channels == 0)
|
|
||||||
/* No specific number of channel requested */
|
|
||||||
avctx->channels = s->channels;
|
|
||||||
else if (s->channels < avctx->channels) {
|
|
||||||
av_log(avctx, AV_LOG_ERROR, "ac3dec: AC3 Source channels are less than specified: output to %d channels.. (frmsize: %d)\n", s->channels, len);
|
|
||||||
avctx->channels = s->channels;
|
avctx->channels = s->channels;
|
||||||
|
if (avctx->request_channels > 0 &&
|
||||||
|
avctx->request_channels <= 2 &&
|
||||||
|
avctx->request_channels < s->channels) {
|
||||||
|
avctx->channels = avctx->request_channels;
|
||||||
}
|
}
|
||||||
avctx->bit_rate = bit_rate;
|
avctx->bit_rate = bit_rate;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user