encoder: h264: fix timing_info_present_flag value in subset SPS.
authorSreerenj Balachandran <sreerenj.balachandran@intel.com>
Fri, 27 Jun 2014 07:37:38 +0000 (10:37 +0300)
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>
Fri, 27 Jun 2014 09:48:40 +0000 (11:48 +0200)
When the seq_parameter_set_data() syntax structure is present in a subset
sequence parameter set and vui_parameters_present_flag is equal to 1, then
timing_info_present_flag shall be equal to 0 (H.7.4.2.1.1).

gst-libs/gst/vaapi/gstvaapiencoder_h264.c

index 8eee95d..f986d5e 100644 (file)
@@ -1698,7 +1698,9 @@ fill_sequence (GstVaapiEncoderH264 * encoder, GstVaapiEncSequence * sequence)
   if (seq_param->vui_parameters_present_flag) {
     seq_param->vui_fields.bits.aspect_ratio_info_present_flag = FALSE;
     seq_param->vui_fields.bits.bitstream_restriction_flag = FALSE;
-    seq_param->vui_fields.bits.timing_info_present_flag = TRUE;
+    /* if vui_parameters_present_flag is TRUE and sps data belongs to
+     * subset sps, timing_info_preset_flag should be zero (H.7.4.2.1.1) */
+    seq_param->vui_fields.bits.timing_info_present_flag = !encoder->view_idx;
     if (seq_param->vui_fields.bits.timing_info_present_flag) {
       seq_param->num_units_in_tick = GST_VAAPI_ENCODER_FPS_D (encoder);
       seq_param->time_scale = GST_VAAPI_ENCODER_FPS_N (encoder) * 2;