Commit 1c6dcb0f authored by Michael Niedermayer's avatar Michael Niedermayer

cleaner & more flexible edge bug workaround

Originally committed as revision 1685 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent d518aebd
...@@ -583,6 +583,7 @@ typedef struct AVCodecContext { ...@@ -583,6 +583,7 @@ typedef struct AVCodecContext {
#define FF_BUG_STD_QPEL 128 #define FF_BUG_STD_QPEL 128
#define FF_BUG_QPEL_CHROMA2 256 #define FF_BUG_QPEL_CHROMA2 256
#define FF_BUG_DIRECT_BLOCKSIZE 512 #define FF_BUG_DIRECT_BLOCKSIZE 512
#define FF_BUG_EDGE 1024
//#define FF_BUG_FAKE_SCALABILITY 16 //autodetection should work 100% //#define FF_BUG_FAKE_SCALABILITY 16 //autodetection should work 100%
/** /**
......
...@@ -4814,7 +4814,7 @@ static int decode_vop_header(MpegEncContext *s, GetBitContext *gb){ ...@@ -4814,7 +4814,7 @@ static int decode_vop_header(MpegEncContext *s, GetBitContext *gb){
s->y_dc_scale_table= ff_mpeg4_y_dc_scale_table; //FIXME add short header support 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; 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->h_edge_pos= s->width;
s->v_edge_pos= s->height; s->v_edge_pos= s->height;
} }
......
...@@ -538,6 +538,11 @@ retry: ...@@ -538,6 +538,11 @@ retry:
//printf("padding_bug_score: %d\n", s->padding_bug_score); //printf("padding_bug_score: %d\n", s->padding_bug_score);
if(s->divx_version==501 && s->divx_build==20020416) if(s->divx_version==501 && s->divx_build==20020416)
s->padding_bug_score= 256*256*256*64; s->padding_bug_score= 256*256*256*64;
if(s->divx_version>=500){
s->workaround_bugs|= FF_BUG_EDGE;
}
#if 0 #if 0
if(s->divx_version==500) if(s->divx_version==500)
s->padding_bug_score= 256*256*256*64; s->padding_bug_score= 256*256*256*64;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment