mixvbp: refine VP8 VA parameter usage

BZ: 158760

To follow proposed change/clarification for dec_va_vp8.h,
refine VP8 VA parameter usage.

Changes to dec_va.vp8.h are below,
1. Remove mb_skip_coeff from VAPictureParameterBUfferVP8
2. num_of_partitions count the control partition

Change-Id: I38876a3ab6a37d09f96183a13a7630ffe9708a2f
Signed-off-by: Tianmi Chen <tianmi.chen@intel.com>
diff --git a/mixvbp/vbp_manager/vbp_vp8_parser.c b/mixvbp/vbp_manager/vbp_vp8_parser.c
index 29ee8ad..73d9281 100755
--- a/mixvbp/vbp_manager/vbp_vp8_parser.c
+++ b/mixvbp/vbp_manager/vbp_vp8_parser.c
@@ -414,7 +414,6 @@
     pic_parms->pic_fields.bits.sign_bias_alternate = pi->sign_bias_alternate;
 
     pic_parms->pic_fields.bits.mb_no_coeff_skip = pi->mb_no_coeff_skip;
-    pic_parms->pic_fields.bits.mb_skip_coeff = pi->mb_skip_coeff;
 
     pic_parms->prob_skip_false = pi->prob_skip_false;
     pic_parms->prob_intra = pi->prob_intra;
@@ -442,7 +441,7 @@
     /* Bool coder */
     pic_parms->bool_coder_ctx.range = pi->bool_coder.range;
     pic_parms->bool_coder_ctx.value = (pi->bool_coder.value >> 24) & 0xFF;
-    pic_parms->bool_coder_ctx.count = 8 - (pi->bool_coder.count & 0x07);
+    pic_parms->bool_coder_ctx.count = pi->bool_coder.count;
 
     //pic_parms->current_picture = VA_INVALID_SURFACE;
     pic_parms->last_ref_frame = VA_INVALID_SURFACE;
@@ -470,7 +469,8 @@
     vbp_picture_data_vp8 *pic_data = &(query_data->pic_data[pic_index]);
     vbp_slice_data_vp8 *slc_data = &(pic_data->slc_data[pic_data->num_slices]);
 
-    int slice_offset = (pi->frame_tag.frame_type == KEY_FRAME) ? 10 : 3;
+    int tag_size = (pi->frame_tag.frame_type == KEY_FRAME) ? 10 : 3;
+    int slice_offset = pi->header_bits >> 3;
     slc_data->buffer_addr = pi->source + slice_offset;
     slc_data->slice_offset = 0;
     slc_data->slice_size = pi->source_sz - slice_offset;
@@ -486,16 +486,21 @@
     slc_parms->slice_data_flag = VA_SLICE_DATA_FLAG_ALL;
 
     /* the offset to the first bit of MB from the first byte of slice data */
-    slc_parms->macroblock_offset = pi->header_bits - (slice_offset << 3);
+    slc_parms->macroblock_offset = 8 - pi->bool_coder.count;
 
     /* Token Partitions */
-    slc_parms->num_of_partitions = pi->partition_count;
-    slc_parms->partition_size[0] = pi->frame_tag.first_part_size;
+    slc_parms->num_of_partitions = pi->partition_count + 1;
+    slc_parms->partition_size[0] = pi->frame_tag.first_part_size - (pi->frame_data_offset - tag_size);
     for (part_index = 1; part_index < 9; part_index++)
     {
         slc_parms->partition_size[part_index] = pi->partition_size[part_index - 1];
     }
 
+    // Do not remove below code, for the purpose of debug
+#if 0
+    ITRACE("header_bits = %d, slice_offset = %d, mb_offset = %d, first_part_size = %d, frame_data_offset = %d, partition_size[0] = %d, pos = %d, count = %d ", pi->header_bits, slice_offset, slc_parms->macroblock_offset, pi->frame_tag.first_part_size, pi->frame_data_offset, slc_parms->partition_size[0], pi->bool_coder.pos, pi->bool_coder.count);
+#endif
+
     pic_data->num_slices++;
     if (pic_data->num_slices > VP8_MAX_NUM_SLICES)
     {
diff --git a/mixvbp/vbp_plugin/vp8/include/vp8.h b/mixvbp/vbp_plugin/vp8/include/vp8.h
index 06a7e61..e6fe5b7 100755
--- a/mixvbp/vbp_plugin/vp8/include/vp8.h
+++ b/mixvbp/vbp_plugin/vp8/include/vp8.h
@@ -334,7 +334,6 @@
         // Macroblock No Coeff Skip
         uint8_t                mb_no_coeff_skip;
         vp8_prob               prob_skip_false;
-        vp8_prob               mb_skip_coeff;
 
         // Frame context
         FrameContextData       FrameContext;
diff --git a/mixvbp/vbp_plugin/vp8/vp8parse.c b/mixvbp/vbp_plugin/vp8/vp8parse.c
index f3c789d..c2c0565 100755
--- a/mixvbp/vbp_plugin/vp8/vp8parse.c
+++ b/mixvbp/vbp_plugin/vp8/vp8parse.c
@@ -451,10 +451,6 @@
     {
         pi->prob_skip_false = (vp8_prob)vp8_read_bits(bc, 8);
     }
-    else
-    {
-        pi->mb_skip_coeff = 0;
-    }
 
     if (pi->frame_tag.frame_type == INTER_FRAME)
     {