libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor framerate param
authorVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Wed, 7 Jun 2017 09:10:49 +0000 (11:10 +0200)
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Wed, 7 Jun 2017 10:43:55 +0000 (12:43 +0200)
Since the framerate VA parameter is calculated equally among all the
encoders, it is better to handle it in the base encoder class.

gst-libs/gst/vaapi/gstvaapiencoder.c
gst-libs/gst/vaapi/gstvaapiencoder_h264.c
gst-libs/gst/vaapi/gstvaapiencoder_h265.c
gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c
gst-libs/gst/vaapi/gstvaapiencoder_vp8.c
gst-libs/gst/vaapi/gstvaapiencoder_vp9.c

index 792f356d55a7b9797b545dfc1e167f717efbd107..ea20df089e9c422894c1ad0690390258a9c1bcb2 100644 (file)
@@ -808,6 +808,10 @@ gst_vaapi_encoder_reconfigure_internal (GstVaapiEncoder * encoder)
   if (!encoder->keyframe_period)
     encoder->keyframe_period = (vip->fps_n + vip->fps_d - 1) / vip->fps_d;
 
+  /* Default frame rate parameter */
+  GST_VAAPI_ENCODER_VA_FRAME_RATE (encoder).framerate =
+      (guint) GST_VIDEO_INFO_FPS_D (vip) << 16 | GST_VIDEO_INFO_FPS_N (vip);
+
   status = klass->reconfigure (encoder);
   if (status != GST_VAAPI_ENCODER_STATUS_SUCCESS)
     return status;
index e75a2ca958e11eb84abe31be48008874c6d55a7a..6ffbd966238a32119516b32b720eedb38e7ed3a8 100644 (file)
@@ -2171,12 +2171,6 @@ ensure_control_rate_params (GstVaapiEncoderH264 * encoder)
 
   /* HRD params */
   fill_hrd_params (encoder, &GST_VAAPI_ENCODER_VA_HRD (encoder));
-
-  /* FrameRate params */
-  GST_VAAPI_ENCODER_VA_FRAME_RATE (encoder) = (VAEncMiscParameterFrameRate) {
-    .framerate = (guint) GST_VAAPI_ENCODER_FPS_D (encoder) << 16 |
-        GST_VAAPI_ENCODER_FPS_N (encoder),
-  };
   /* *INDENT-ON* */
 
   return TRUE;
index 0c0569674c5b71dea6f20eb6e9c93dfb082f16c8..69393c04e4585ac8862deedc698b752f18cc625d 100644 (file)
@@ -1787,12 +1787,6 @@ ensure_control_rate_params (GstVaapiEncoderH265 * encoder)
 
   /* HRD params */
   fill_hrd_params (encoder, &GST_VAAPI_ENCODER_VA_HRD (encoder));
-
-  /* FrameRate params */
-  GST_VAAPI_ENCODER_VA_FRAME_RATE (encoder) = (VAEncMiscParameterFrameRate) {
-    .framerate = (guint) GST_VAAPI_ENCODER_FPS_D (encoder) << 16 |
-        GST_VAAPI_ENCODER_FPS_N (encoder),
-  };
   /* *INDENT-ON* */
 
   return TRUE;
index 798c00f07926b2298b13c5684126cedc3911301d..2c284ee4b52e1fa5e014595aa39243767a8c6611 100644 (file)
@@ -473,12 +473,6 @@ ensure_control_rate_params (GstVaapiEncoderMpeg2 * encoder)
     .buffer_size = base_encoder->bitrate * 1000 * 8,
     .initial_buffer_fullness = base_encoder->bitrate * 1000 * 4,
   };
-
-  /* FrameRate params */
-  GST_VAAPI_ENCODER_VA_FRAME_RATE (encoder) = (VAEncMiscParameterFrameRate) {
-    .framerate = (guint) GST_VAAPI_ENCODER_FPS_D (encoder) << 16 |
-        GST_VAAPI_ENCODER_FPS_N (encoder),
-  };
   /* *INDENT-ON* */
 
   return TRUE;
index 3b52dc2dc44346cd2c8a55f3bf7349a88931eda8..f823974db9dbd38f97db7ca2d36b1296d4af3de8 100644 (file)
@@ -285,12 +285,6 @@ ensure_control_rate_params (GstVaapiEncoderVP8 * encoder)
     .buffer_size = base_encoder->bitrate * 1000 * 2,
     .initial_buffer_fullness = base_encoder->bitrate * 1000,
   };
-
-  /* FrameRate params */
-  GST_VAAPI_ENCODER_VA_FRAME_RATE (encoder) = (VAEncMiscParameterFrameRate) {
-    .framerate = (guint) GST_VAAPI_ENCODER_FPS_D (encoder) << 16 |
-        GST_VAAPI_ENCODER_FPS_N (encoder),
-  };
   /* *INDENT-ON* */
 
   return TRUE;
index f4d93113bdb41222315f900b6ddb80ac8506cb37..fbc8d665db236939b9703e177af2505dad69d059 100644 (file)
@@ -282,12 +282,6 @@ ensure_control_rate_params (GstVaapiEncoderVP9 * encoder)
     .buffer_size = encoder->bitrate_bits * 2,
     .initial_buffer_fullness = encoder->bitrate_bits,
   };
-
-  /* FrameRate params */
-  GST_VAAPI_ENCODER_VA_FRAME_RATE (encoder) = (VAEncMiscParameterFrameRate) {
-    .framerate = (guint) GST_VAAPI_ENCODER_FPS_D (encoder) << 16 |
-        GST_VAAPI_ENCODER_FPS_N (encoder),
-  };
   /* *INDENT-ON* */
 
   return TRUE;