diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2010-01-18 16:16:22 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2010-01-18 16:16:22 +0000 |
commit | a8f49215955f100b9436c74c7b4faab368dfc795 (patch) | |
tree | a9cfa28b58f8114fcde786c60a90d6cd91f54adc | |
parent | a7d7cdaac7b37cdab50159547fd479585efb4315 (diff) |
Reenable filter_mb_fast for I slices and progressive CABAC P slices.
Originally committed as revision 21288 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | libavcodec/h264_loopfilter.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libavcodec/h264_loopfilter.c b/libavcodec/h264_loopfilter.c index 260372cd61..56b1c17c95 100644 --- a/libavcodec/h264_loopfilter.c +++ b/libavcodec/h264_loopfilter.c @@ -334,8 +334,10 @@ void ff_h264_filter_mb_fast( H264Context *h, int mb_x, int mb_y, uint8_t *img_y, mb_xy = h->mb_xy; if(mb_x==0 || mb_y==mb_y_firstrow || !s->dsp.h264_loop_filter_strength || h->pps.chroma_qp_diff || - !(s->flags2 & CODEC_FLAG2_FAST) || //FIXME filter_mb_fast is broken, thus hasto be, but should not under CODEC_FLAG2_FAST - (h->deblocking_filter == 2 && (h->slice_table[mb_xy] != h->slice_table[h->top_mb_xy] || + !(h->slice_type_nos == FF_I_TYPE || + (CABAC && h->slice_type_nos == FF_P_TYPE && !FIELD_PICTURE) || + (s->flags2 & CODEC_FLAG2_FAST)) || + (h->deblocking_filter == 2 && (h->slice_table[mb_xy] != h->slice_table[h->top_mb_xy] || //use slice_num h->slice_table[mb_xy] != h->slice_table[mb_xy - 1]))) { ff_h264_filter_mb(h, mb_x, mb_y, img_y, img_cb, img_cr, linesize, uvlinesize); return; |