summaryrefslogtreecommitdiff
path: root/libavcodec/h263dec.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-03-03 03:37:44 +0100
committerMichael Niedermayer <michaelni@gmx.at>2011-03-03 03:37:44 +0100
commit1b4580d1a2a09856a47a2d4f77ac7facff79baf8 (patch)
treec4ce710726a852adaf547b15454c7a2f9a2e8a9b /libavcodec/h263dec.c
parentd667be2ceaa3a415ac83c819f47e3255d00bfa94 (diff)
Fix duplicate & droped frame in Californication.S02E01.HDTV.XviD-NoTV.avi
Diffstat (limited to 'libavcodec/h263dec.c')
-rw-r--r--libavcodec/h263dec.c10
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);