Originally committed as revision 1685 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.5
@@ -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){ | |||||
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: | |||||
//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; | ||||