mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
DCA: Occasionally a false XCH sync word can turn up after the core DTS data,
to verify the sync word the extension fsize field should be compared to the core data length field. Patch by nick.nbrereton@net Originally committed as revision 24054 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
03f0d17575
commit
0712c230ae
@ -1298,7 +1298,13 @@ static int dca_decode_frame(AVCodecContext * avctx,
|
||||
switch(bits) {
|
||||
case 0x5a5a5a5a: {
|
||||
int ext_base_ch = s->prim_channels;
|
||||
int ext_amode;
|
||||
int ext_amode, xch_fsize;
|
||||
|
||||
/* validate sync word using XCHFSIZE field */
|
||||
xch_fsize = show_bits(&s->gb, 10);
|
||||
if((s->frame_size != (get_bits_count(&s->gb) >> 3) - 4 + xch_fsize) &&
|
||||
(s->frame_size != (get_bits_count(&s->gb) >> 3) - 4 + xch_fsize + 1))
|
||||
continue;
|
||||
|
||||
/* skip length-to-end-of-frame field for the moment */
|
||||
skip_bits(&s->gb, 10);
|
||||
|
Loading…
Reference in New Issue
Block a user