diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2011-03-03 03:37:44 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-03-03 03:37:44 +0100 |
commit | 1b4580d1a2a09856a47a2d4f77ac7facff79baf8 (patch) | |
tree | c4ce710726a852adaf547b15454c7a2f9a2e8a9b /libavcodec/h263dec.c | |
parent | d667be2ceaa3a415ac83c819f47e3255d00bfa94 (diff) | |
download | ffmpeg-1b4580d1a2a09856a47a2d4f77ac7facff79baf8.tar.gz |
Fix duplicate & droped frame in Californication.S02E01.HDTV.XviD-NoTV.avi
Diffstat (limited to 'libavcodec/h263dec.c')
-rw-r--r-- | libavcodec/h263dec.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c index 1c73d93405..d341090fa6 100644 --- a/libavcodec/h263dec.c +++ b/libavcodec/h263dec.c @@ -383,6 +383,16 @@ uint64_t time= rdtsc(); retry: + if(s->divx_packed && s->xvid_build>=0 && s->bitstream_buffer_size){ + int i; + for(i=0; i<buf_size-3; i++){ + if(buf[i]==0 && buf[i+1]==0 && buf[i+2]==1){ + if(buf[i+3]==0xB0) + s->bitstream_buffer_size=0; + break; + } + } + } if(s->bitstream_buffer_size && (s->divx_packed || buf_size<20)){ //divx 5.01+/xvid frame reorder init_get_bits(&s->gb, s->bitstream_buffer, s->bitstream_buffer_size*8); |