cleaner & more flexible edge bug workaround

Originally committed as revision 1685 to svn://svn.ffmpeg.org/ffmpeg/trunk
pull/126/head
Michael Niedermayer 22 years ago
parent d518aebdee
commit 1c6dcb0f42
  1. 1
      libavcodec/avcodec.h
  2. 2
      libavcodec/h263.c
  3. 5
      libavcodec/h263dec.c

@ -583,6 +583,7 @@ typedef struct AVCodecContext {
#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%
/**

@ -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->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;
}

@ -538,6 +538,11 @@ retry:
//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;

Loading…
Cancel
Save