x->mb_activity_ptr++;
x->mb_norm_activity_ptr++;
- for (i = 0; i < 16; i++)
- vpx_memcpy(&xd->mode_info_context->bmi[i], &xd->block[i].bmi, sizeof(xd->block[i].bmi));
+ if ((xd->mode_info_context->mbmi.mode == ZEROMV) && (xd->mode_info_context->mbmi.ref_frame == LAST_FRAME))
+ xd->mode_info_context->mbmi.segment_id = 0;
+ else
+ xd->mode_info_context->mbmi.segment_id = 1;
+
+ if(cm->frame_type != INTRA_FRAME)
+ {
+ if (xd->mode_info_context->mbmi.mode != B_PRED)
+ {
+ for (i = 0; i < 16; i++)
+ xd->mode_info_context->bmi[i].mv.as_int = xd->block[i].bmi.mv.as_int;
+ }else
+ {
+ for (i = 0; i < 16; i++)
+ xd->mode_info_context->bmi[i].as_mode = xd->block[i].bmi.mode;
+ }
+ }
+ else
+ {
+ if(xd->mode_info_context->mbmi.mode != B_PRED)
+ for (i = 0; i < 16; i++)
+ xd->mode_info_context->bmi[i].as_mode = xd->block[i].bmi.mode;
+ }
// adjust to the next column of macroblocks
x->src.y_buffer += 16;