From: Gaute Strokkenes Date: Thu, 3 Feb 2011 19:03:49 +0000 (+0000) Subject: Make vp8_adjust_mb_lf_value return the updated value rather than X-Git-Tag: v0.9.6~61 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bf5f585b0d81d574ac6df53b387611760078aaa2;p=libvpx Make vp8_adjust_mb_lf_value return the updated value rather than manipulating it in situ via a pointer. Change-Id: If4a87a4eccd84f39577c0e91e171245f4954c5cf --- diff --git a/vp8/common/loopfilter.c b/vp8/common/loopfilter.c index f9d082304..90e1d9c31 100644 --- a/vp8/common/loopfilter.c +++ b/vp8/common/loopfilter.c @@ -263,43 +263,44 @@ void vp8_frame_init_loop_filter(loop_filter_info *lfi, int frame_type) } -void vp8_adjust_mb_lf_value(MACROBLOCKD *mbd, int *filter_level) +int vp8_adjust_mb_lf_value(MACROBLOCKD *mbd, int filter_level) { MB_MODE_INFO *mbmi = &mbd->mode_info_context->mbmi; if (mbd->mode_ref_lf_delta_enabled) { /* Apply delta for reference frame */ - *filter_level += mbd->ref_lf_deltas[mbmi->ref_frame]; + filter_level += mbd->ref_lf_deltas[mbmi->ref_frame]; /* Apply delta for mode */ if (mbmi->ref_frame == INTRA_FRAME) { /* Only the split mode BPRED has a further special case */ if (mbmi->mode == B_PRED) - *filter_level += mbd->mode_lf_deltas[0]; + filter_level += mbd->mode_lf_deltas[0]; } else { /* Zero motion mode */ if (mbmi->mode == ZEROMV) - *filter_level += mbd->mode_lf_deltas[1]; + filter_level += mbd->mode_lf_deltas[1]; /* Split MB motion mode */ else if (mbmi->mode == SPLITMV) - *filter_level += mbd->mode_lf_deltas[3]; + filter_level += mbd->mode_lf_deltas[3]; /* All other inter motion modes (Nearest, Near, New) */ else - *filter_level += mbd->mode_lf_deltas[2]; + filter_level += mbd->mode_lf_deltas[2]; } /* Range check */ - if (*filter_level > MAX_LOOP_FILTER) - *filter_level = MAX_LOOP_FILTER; - else if (*filter_level < 0) - *filter_level = 0; + if (filter_level > MAX_LOOP_FILTER) + filter_level = MAX_LOOP_FILTER; + else if (filter_level < 0) + filter_level = 0; } + return filter_level; } @@ -373,7 +374,7 @@ void vp8_loop_filter_frame * These specified to 8th pel as they are always compared to values that are in 1/8th pel units * Apply any context driven MB level adjustment */ - vp8_adjust_mb_lf_value(mbd, &filter_level); + filter_level = vp8_adjust_mb_lf_value(mbd, filter_level); if (filter_level) { @@ -473,7 +474,7 @@ void vp8_loop_filter_frame_yonly filter_level = baseline_filter_level[Segment]; /* Apply any context driven MB level adjustment */ - vp8_adjust_mb_lf_value(mbd, &filter_level); + filter_level = vp8_adjust_mb_lf_value(mbd, filter_level); if (filter_level) { diff --git a/vp8/common/onyxc_int.h b/vp8/common/onyxc_int.h index e011ec99a..c8c227787 100644 --- a/vp8/common/onyxc_int.h +++ b/vp8/common/onyxc_int.h @@ -200,7 +200,7 @@ typedef struct VP8Common } VP8_COMMON; -void vp8_adjust_mb_lf_value(MACROBLOCKD *mbd, int *filter_level); +int vp8_adjust_mb_lf_value(MACROBLOCKD *mbd, int filter_level); void vp8_init_loop_filter(VP8_COMMON *cm); void vp8_frame_init_loop_filter(loop_filter_info *lfi, int frame_type); extern void vp8_loop_filter_frame(VP8_COMMON *cm, MACROBLOCKD *mbd, int filt_val); diff --git a/vp8/decoder/threading.c b/vp8/decoder/threading.c index 930d9b913..ec2cb2b07 100644 --- a/vp8/decoder/threading.c +++ b/vp8/decoder/threading.c @@ -320,7 +320,7 @@ THREAD_FUNCTION vp8_thread_decoding_proc(void *p_data) * These are specified to 8th pel as they are always compared to values that are in 1/8th pel units * Apply any context driven MB level adjustment */ - vp8_adjust_mb_lf_value(xd, &filter_level); + filter_level = vp8_adjust_mb_lf_value(xd, filter_level); } /* Distance of Mb to the various image edges. @@ -863,7 +863,7 @@ void vp8mt_decode_mb_rows( VP8D_COMP *pbi, MACROBLOCKD *xd) * These are specified to 8th pel as they are always compared to values that are in 1/8th pel units * Apply any context driven MB level adjustment */ - vp8_adjust_mb_lf_value(xd, &filter_level); + filter_level = vp8_adjust_mb_lf_value(xd, filter_level); } /* Distance of Mb to the various image edges.