if (is_intra) {
dri_bo_map(vme_context->vme_output.bo , 1);
msg = (unsigned int *)vme_context->vme_output.bo->virtual;
+ msg += pSliceParameter->starting_macroblock_address * 4;
+ } else {
+ offset = pSliceParameter->starting_macroblock_address * 64;
}
- for (i = pSliceParameter->starting_macroblock_address;
- i < pSliceParameter->starting_macroblock_address + pSliceParameter->number_of_mbs; i++) {
- int last_mb = (i == (pSliceParameter->starting_macroblock_address + pSliceParameter->number_of_mbs - 1) );
+ for (i = pSliceParameter->macroblock_address;
+ i < pSliceParameter->macroblock_address + pSliceParameter->num_macroblocks; i++) {
+ int last_mb = (i == (pSliceParameter->macroblock_address + pSliceParameter->num_macroblocks - 1) );
x = i % width_in_mbs;
y = i / width_in_mbs;
struct intel_batchbuffer *batch = encoder_context->base.batch;
struct gen6_mfc_context *mfc_context = encoder_context->mfc_context;
int width_in_mbs = (mfc_context->surface_state.width + 15) / 16;
- int total_mbs = slice_param->number_of_mbs;
+ int total_mbs = slice_param->num_macroblocks;
- int number_mb_cmds = 512;
+ int number_mb_cmds = 128;
int starting_mb = 0;
int last_object = 0;
int first_object = 1;
qp,
last_slice);
- return head_size + tail_size + pSliceParameter->num_macroblocks * 3;
- return head_size + tail_size + pSliceParameter->number_of_mbs * CMD_LEN_IN_OWORD;
++ return head_size + tail_size + pSliceParameter->num_macroblocks * CMD_LEN_IN_OWORD;
}
static void