# HG changeset patch # User michaelni # Date 1047761229 0 # Node ID 7fb0b38ab5a35f2cb0686eb6851f645b4b2a28a4 # Parent 9eb49e9e8dd9516278fd0d50485ae63d81b8e299 cleaner & more flexible edge bug workaround diff -r 9eb49e9e8dd9 -r 7fb0b38ab5a3 avcodec.h --- a/avcodec.h Sat Mar 15 02:06:09 2003 +0000 +++ b/avcodec.h Sat Mar 15 20:47:09 2003 +0000 @@ -583,6 +583,7 @@ #define FF_BUG_STD_QPEL 128 #define FF_BUG_QPEL_CHROMA2 256 #define FF_BUG_DIRECT_BLOCKSIZE 512 +#define FF_BUG_EDGE 1024 //#define FF_BUG_FAKE_SCALABILITY 16 //autodetection should work 100% /** diff -r 9eb49e9e8dd9 -r 7fb0b38ab5a3 h263.c --- a/h263.c Sat Mar 15 02:06:09 2003 +0000 +++ b/h263.c Sat Mar 15 20:47:09 2003 +0000 @@ -4814,7 +4814,7 @@ s->y_dc_scale_table= ff_mpeg4_y_dc_scale_table; //FIXME add short header support s->c_dc_scale_table= ff_mpeg4_c_dc_scale_table; - if(s->divx_version==0 || s->divx_version < 500){ + if(!(s->workaround_bugs&FF_BUG_EDGE)){ s->h_edge_pos= s->width; s->v_edge_pos= s->height; } diff -r 9eb49e9e8dd9 -r 7fb0b38ab5a3 h263dec.c --- a/h263dec.c Sat Mar 15 02:06:09 2003 +0000 +++ b/h263dec.c Sat Mar 15 20:47:09 2003 +0000 @@ -538,6 +538,11 @@ //printf("padding_bug_score: %d\n", s->padding_bug_score); if(s->divx_version==501 && s->divx_build==20020416) s->padding_bug_score= 256*256*256*64; + + if(s->divx_version>=500){ + s->workaround_bugs|= FF_BUG_EDGE; + } + #if 0 if(s->divx_version==500) s->padding_bug_score= 256*256*256*64;