Commit 9631312c authored by banan's avatar banan

Only set channels in the stream if previously unset, fixes resampling crash on broken dca frames

git-svn-id: file:///var/local/repositories/ffmpeg/trunk@12780 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent ae6583cc
......@@ -1173,7 +1173,14 @@ static int dca_decode_frame(AVCodecContext * avctx,
s->output = DCA_STEREO;
}
avctx->channels = channels;
/* There is nothing that prevents a dts frame to change channel configuration
but FFmpeg doesn't support that so only set the channels if it is previously
unset. Ideally during the first probe for channels the crc should be checked
and only set avctx->channels when the crc is ok. Right now the decoder could
set the channels based on a broken first frame.*/
if (!avctx->channels)
avctx->channels = channels;
if(*data_size < (s->sample_blocks / 8) * 256 * sizeof(int16_t) * channels)
return -1;
*data_size = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment