From a04ed0e8f3c2005aacfad83939ac8af70a9221ef Mon Sep 17 00:00:00 2001 From: Johann Date: Wed, 20 Jul 2011 15:53:42 -0400 Subject: fix sharpness bug and clean up sharpness was not recalculated in vp8cx_pick_filter_level_fast remove last_filter_type. all values are calculated, don't need to update the lfi data when it changes. always use cm->sharpness_level. the extra indirection was annoying. don't track last frame_type or sharpness_level manually. frame type only matters for motion search and sharpness_level is taken care of in frame_init move function declarations to their proper header Change-Id: I7ef037bd4bf8cf5e37d2d36bd03b5e22a2ad91db --- vp8/decoder/decodframe.c | 8 -------- vp8/decoder/onyxd_if.c | 17 +++-------------- vp8/decoder/threading.c | 2 +- 3 files changed, 4 insertions(+), 23 deletions(-) (limited to 'vp8/decoder') diff --git a/vp8/decoder/decodframe.c b/vp8/decoder/decodframe.c index a300bb5fd..9b35ffd66 100644 --- a/vp8/decoder/decodframe.c +++ b/vp8/decoder/decodframe.c @@ -1030,14 +1030,6 @@ int vp8_decode_frame(VP8D_COMP *pbi) if (pbi->b_multithreaded_rd && pc->multi_token_partition != ONE_PARTITION) { vp8mt_decode_mb_rows(pbi, xd); - if(pbi->common.filter_level) - { - /*vp8_mt_loop_filter_frame(pbi);*/ /*cm, &pbi->mb, cm->filter_level);*/ - - pc->last_frame_type = pc->frame_type; - pc->last_filter_type = pc->filter_type; - pc->last_sharpness_level = pc->sharpness_level; - } vp8_yv12_extend_frame_borders_ptr(&pc->yv12_fb[pc->new_fb_idx]); /*cm->frame_to_show);*/ } else diff --git a/vp8/decoder/onyxd_if.c b/vp8/decoder/onyxd_if.c index aeb1607b5..829a675a7 100644 --- a/vp8/decoder/onyxd_if.c +++ b/vp8/decoder/onyxd_if.c @@ -92,14 +92,7 @@ VP8D_PTR vp8dx_create_decompressor(VP8D_CONFIG *oxcf) */ vp8cx_init_de_quantizer(pbi); - { - VP8_COMMON *cm = &pbi->common; - - vp8_loop_filter_init(cm); - cm->last_frame_type = KEY_FRAME; - cm->last_filter_type = cm->filter_type; - cm->last_sharpness_level = cm->sharpness_level; - } + vp8_loop_filter_init(&pbi->common); pbi->common.error.setjmp = 0; @@ -454,14 +447,10 @@ int vp8dx_receive_compressed_data(VP8D_PTR ptr, unsigned long size, const unsign return -1; } - if(pbi->common.filter_level) + if(cm->filter_level) { /* Apply the loop filter if appropriate. */ - vp8_loop_filter_frame(cm, &pbi->mb, cm->filter_level); - - cm->last_frame_type = cm->frame_type; - cm->last_filter_type = cm->filter_type; - cm->last_sharpness_level = cm->sharpness_level; + vp8_loop_filter_frame(cm, &pbi->mb); } vp8_yv12_extend_frame_borders_ptr(cm->frame_to_show); } diff --git a/vp8/decoder/threading.c b/vp8/decoder/threading.c index 0c21689c0..1e0330277 100644 --- a/vp8/decoder/threading.c +++ b/vp8/decoder/threading.c @@ -746,7 +746,7 @@ void vp8mt_decode_mb_rows( VP8D_COMP *pbi, MACROBLOCKD *xd) } /* Initialize the loop filter for this frame. */ - vp8_loop_filter_frame_init(pc, &pbi->mb, filter_level, pc->sharpness_level); + vp8_loop_filter_frame_init(pc, &pbi->mb, filter_level); } setup_decoding_thread_data(pbi, xd, pbi->mb_row_di, pbi->decoding_thread_count); -- cgit v1.2.3