Index: source/libvpx/vp8/encoder/ethreading.c |
=================================================================== |
--- source/libvpx/vp8/encoder/ethreading.c (revision 177019) |
+++ source/libvpx/vp8/encoder/ethreading.c (working copy) |
@@ -17,12 +17,6 @@ |
#if CONFIG_MULTITHREAD |
-extern int vp8cx_encode_inter_macroblock(VP8_COMP *cpi, MACROBLOCK *x, |
- TOKENEXTRA **t, |
- int recon_yoffset, int recon_uvoffset, |
- int mb_row, int mb_col); |
-extern int vp8cx_encode_intra_macroblock(VP8_COMP *cpi, MACROBLOCK *x, |
- TOKENEXTRA **t); |
extern void vp8cx_mb_init_quantizer(VP8_COMP *cpi, MACROBLOCK *x, int ok_to_skip); |
extern void vp8_loopfilter_frame(VP8_COMP *cpi, VP8_COMMON *cm); |
@@ -220,7 +214,9 @@ |
* vp8cx_encode_inter_macroblock()) back into the |
* global segmentation map |
*/ |
- if (cpi->cyclic_refresh_mode_enabled && xd->segmentation_enabled) |
+ if ((cpi->current_layer == 0) && |
+ (cpi->cyclic_refresh_mode_enabled && |
+ xd->segmentation_enabled)) |
{ |
const MB_MODE_INFO * mbmi = &xd->mode_info_context->mbmi; |
cpi->segmentation_map[map_index + mb_col] = mbmi->segment_id; |
@@ -422,13 +418,23 @@ |
zd->block[i].dequant = zd->dequant_uv; |
zd->block[24].dequant = zd->dequant_y2; |
#endif |
+ |
+ |
+ vpx_memcpy(z->rd_threshes, x->rd_threshes, sizeof(x->rd_threshes)); |
+ vpx_memcpy(z->rd_thresh_mult, x->rd_thresh_mult, |
+ sizeof(x->rd_thresh_mult)); |
+ |
+ z->zbin_over_quant = x->zbin_over_quant; |
+ z->zbin_mode_boost_enabled = x->zbin_mode_boost_enabled; |
+ z->zbin_mode_boost = x->zbin_mode_boost; |
+ |
+ vpx_memset(z->error_bins, 0, sizeof(z->error_bins)); |
} |
} |
void vp8cx_init_mbrthread_data(VP8_COMP *cpi, |
MACROBLOCK *x, |
MB_ROW_COMP *mbr_ei, |
- int mb_row, |
int count |
) |
{ |
@@ -436,7 +442,6 @@ |
VP8_COMMON *const cm = & cpi->common; |
MACROBLOCKD *const xd = & x->e_mbd; |
int i; |
- (void) mb_row; |
for (i = 0; i < count; i++) |
{ |
@@ -477,6 +482,15 @@ |
mbd->fullpixel_mask = 0xffffffff; |
if(cm->full_pixel) |
mbd->fullpixel_mask = 0xfffffff8; |
+ |
+ vp8_zero(mb->coef_counts); |
+ vp8_zero(x->ymode_count); |
+ mb->skip_true_count = 0; |
+ vp8_zero(mb->MVcount); |
+ mb->prediction_error = 0; |
+ mb->intra_error = 0; |
+ vp8_zero(mb->count_mb_ref_frame_usage); |
+ mb->mbs_tested_so_far = 0; |
} |
} |