encode: Correct slice QP and macroblock QP
authorXiang, Haihao <haihao.xiang@intel.com>
Wed, 14 Sep 2011 01:06:44 +0000 (09:06 +0800)
committerXiang, Haihao <haihao.xiang@intel.com>
Wed, 14 Sep 2011 01:11:31 +0000 (09:11 +0800)
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
src/gen6_mfc.c

index de0ae30..38e69b7 100644 (file)
@@ -860,7 +860,7 @@ void gen6_mfc_avc_pipeline_programing(VADriverContextP ctx,
     int rate_control_mode = pSequenceParameter->rate_control_method; 
     unsigned char target_mb_size = mfc_context->bit_rate_control_context[1-is_intra].TargetSizeInWord;
     unsigned char max_mb_size = mfc_context->bit_rate_control_context[1-is_intra].MaxSizeInWord;
-    int qp = pPicParameter->pic_init_qp;
+    int qp = pPicParameter->pic_init_qp + pSliceParameter->slice_qp_delta;
     unsigned char *slice_header = NULL;
     int slice_header_length_in_bits = 0;
     unsigned int tail_data[] = { 0x0 };
@@ -915,7 +915,7 @@ void gen6_mfc_avc_pipeline_programing(VADriverContextP ctx,
                 gen6_mfc_avc_ref_idx_state(ctx, gen6_encoder_context);
                 gen6_mfc_avc_slice_state(ctx, pSliceParameter->slice_type, 
                                          encode_state, gen6_encoder_context, 
-                                         rate_control_mode == 0, pPicParameter->pic_init_qp);
+                                         rate_control_mode == 0, pPicParameter->pic_init_qp + pSliceParameter->slice_qp_delta);
 
                 if (encode_state->packed_header_data[VAEncPackedHeaderSPS]) {
                     VAEncPackedHeaderParameterBuffer *param = NULL;