changeset 1137:7fb0b38ab5a3 libavcodec

cleaner & more flexible edge bug workaround
author michaelni
date Sat, 15 Mar 2003 20:47:09 +0000
parents 9eb49e9e8dd9
children e10e841c9bf0
files avcodec.h h263.c h263dec.c
diffstat 3 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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%
         
     /**
--- 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;
      }
--- 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;