summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVíctor Manuel Jáquez Leal <vjaquez@igalia.com>2017-06-05 20:33:27 +0200
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>2017-06-07 11:24:38 +0200
commitd733714ef85db8c66cb8e36d2438cff9b899358a (patch)
treea4e361caf10cbce4966b09ef5ed51162dc9ab08c
parent846c276e26a071c4f1fccb7b0949d4de30a27fb6 (diff)
libs: encoder: h264,h265,mpeg2: add framerate parameter
https://bugzilla.gnome.org/show_bug.cgi?id=783449
-rw-r--r--gst-libs/gst/vaapi/gstvaapiencoder_h264.c6
-rw-r--r--gst-libs/gst/vaapi/gstvaapiencoder_h265.c8
-rw-r--r--gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c6
3 files changed, 20 insertions, 0 deletions
diff --git a/gst-libs/gst/vaapi/gstvaapiencoder_h264.c b/gst-libs/gst/vaapi/gstvaapiencoder_h264.c
index 6ffbd966..e75a2ca9 100644
--- a/gst-libs/gst/vaapi/gstvaapiencoder_h264.c
+++ b/gst-libs/gst/vaapi/gstvaapiencoder_h264.c
@@ -2171,6 +2171,12 @@ 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;
diff --git a/gst-libs/gst/vaapi/gstvaapiencoder_h265.c b/gst-libs/gst/vaapi/gstvaapiencoder_h265.c
index e8bc289d..33975ab2 100644
--- a/gst-libs/gst/vaapi/gstvaapiencoder_h265.c
+++ b/gst-libs/gst/vaapi/gstvaapiencoder_h265.c
@@ -1771,9 +1771,17 @@ ensure_control_rate_params (GstVaapiEncoderH265 * encoder)
if (GST_VAAPI_ENCODER_RATE_CONTROL (encoder) == GST_VAAPI_RATECONTROL_CQP)
return TRUE;
+ /* *INDENT-OFF* */
/* 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;
}
diff --git a/gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c b/gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c
index 2c284ee4..798c00f0 100644
--- a/gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c
+++ b/gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c
@@ -473,6 +473,12 @@ 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;