diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2002-08-18 00:42:58 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2002-08-18 00:42:58 +0000 |
commit | c9178d868adbcfad06b2df8e397b28f93c432543 (patch) | |
tree | 0d1b4b9f7dfcbdcb818bd402aa80e5f8d2bc28ff /libavcodec/mpegvideo.c | |
parent | f5866a0340401ca4ef6228b3c39ed1ed8660c1b1 (diff) | |
download | ffmpeg-c9178d868adbcfad06b2df8e397b28f93c432543.tar.gz |
same dc skip behavior for chroma & luma elimination, its confusing otherwise imho
Originally committed as revision 854 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/mpegvideo.c')
-rw-r--r-- | libavcodec/mpegvideo.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index 9e8b50b1f8..e352b1516a 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -1571,7 +1571,7 @@ void MPV_decode_mb(MpegEncContext *s, DCTELEM block[6][64]) emms_c(); //FIXME remove } -static inline void dct_single_coeff_elimination(MpegEncContext *s, int n, int threshold, int skip_dc) +static inline void dct_single_coeff_elimination(MpegEncContext *s, int n, int threshold) { static const char tab[64]= {3,2,2,1,1,1,1,1, @@ -1587,12 +1587,13 @@ static inline void dct_single_coeff_elimination(MpegEncContext *s, int n, int th int i; DCTELEM *block= s->block[n]; const int last_index= s->block_last_index[n]; + int skip_dc; - if(skip_dc) skip_dc=1; if(threshold<0){ skip_dc=0; threshold= -threshold; - } + }else + skip_dc=1; /* are all which we could set to zero are allready zero? */ if(last_index<=skip_dc - 1) return; @@ -1811,10 +1812,10 @@ static void encode_mb(MpegEncContext *s, int motion_x, int motion_y) } if(s->luma_elim_threshold && !s->mb_intra) for(i=0; i<4; i++) - dct_single_coeff_elimination(s, i, s->luma_elim_threshold, 0); + dct_single_coeff_elimination(s, i, s->luma_elim_threshold); if(s->chroma_elim_threshold && !s->mb_intra) for(i=4; i<6; i++) - dct_single_coeff_elimination(s, i, s->chroma_elim_threshold, 1); + dct_single_coeff_elimination(s, i, s->chroma_elim_threshold); } if((s->flags&CODEC_FLAG_GRAY) && s->mb_intra){ |