ref: d708e7fbbefb1db496a1073e1f8e3b113f073aab
parent: d790bc17797253d2fdb17490c31ff7bafdbe2a41
parent: ea392d47142bfa6d2decf622487ca39b9d92e6f2
author: John Koleszar <jkoleszar@google.com>
date: Thu May 24 05:40:48 EDT 2012
Merge "Fix another multithreaded encoder loopfilter race condition"
--- a/vp8/common/loopfilter.c
+++ b/vp8/common/loopfilter.c
@@ -196,17 +196,13 @@
}
}
-void vp8_loop_filter_frame
-(
- VP8_COMMON *cm,
- MACROBLOCKD *mbd
-)
+void vp8_loop_filter_frame(VP8_COMMON *cm,
+ MACROBLOCKD *mbd,
+ int frame_type)
{
YV12_BUFFER_CONFIG *post = cm->frame_to_show;
loop_filter_info_n *lfi_n = &cm->lf_info;
loop_filter_info lfi;
-
- FRAME_TYPE frame_type = cm->frame_type;
int mb_row;
int mb_col;
--- a/vp8/common/loopfilter.h
+++ b/vp8/common/loopfilter.h
@@ -76,7 +76,8 @@
struct macroblockd *mbd,
int default_filt_lvl);
-void vp8_loop_filter_frame(struct VP8Common *cm, struct macroblockd *mbd);
+void vp8_loop_filter_frame(struct VP8Common *cm, struct macroblockd *mbd,
+ int frame_type);
void vp8_loop_filter_partial_frame(struct VP8Common *cm,
struct macroblockd *mbd,
--- a/vp8/decoder/onyxd_if.c
+++ b/vp8/decoder/onyxd_if.c
@@ -471,7 +471,7 @@
if(cm->filter_level)
{
/* Apply the loop filter if appropriate. */
- vp8_loop_filter_frame(cm, &pbi->mb);
+ vp8_loop_filter_frame(cm, &pbi->mb, cm->frame_type);
}
vp8_yv12_extend_frame_borders(cm->frame_to_show);
}
--- a/vp8/encoder/onyx_if.c
+++ b/vp8/encoder/onyx_if.c
@@ -3117,6 +3117,8 @@
void vp8_loopfilter_frame(VP8_COMP *cpi, VP8_COMMON *cm)
{
+ const FRAME_TYPE frame_type = cm->frame_type;
+
if (cm->no_lpf)
{
cm->filter_level = 0;
@@ -3134,6 +3136,11 @@
else
vp8cx_pick_filter_level(cpi->Source, cpi);
+ if (cm->filter_level > 0)
+ {
+ vp8cx_set_alt_lf_level(cpi, cm->filter_level);
+ }
+
vpx_usec_timer_mark(&timer);
cpi->time_pick_lpf += vpx_usec_timer_elapsed(&timer);
}
@@ -3145,8 +3152,7 @@
if (cm->filter_level > 0)
{
- vp8cx_set_alt_lf_level(cpi, cm->filter_level);
- vp8_loop_filter_frame(cm, &cpi->mb.e_mbd);
+ vp8_loop_filter_frame(cm, &cpi->mb.e_mbd, frame_type);
}
vp8_yv12_extend_frame_borders(cm->frame_to_show);
--
⑨