mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-10 03:19:40 +00:00
libs: encoder: set framerate if bigger than 0/1
Just set the framerate parameter if the framerate numerator and denominator are bigger than zero. Otherwise, in Intel Gen6 driver, a warning is raised disabling the bitrate control. Original-patch-by: Hyunjun Ko <zzoon@igalia.com> https://bugzilla.gnome.org/show_bug.cgi?id=783532
This commit is contained in:
parent
f8afb1eea4
commit
94b41c8d38
1 changed files with 7 additions and 3 deletions
|
@ -803,14 +803,18 @@ gst_vaapi_encoder_reconfigure_internal (GstVaapiEncoder * encoder)
|
||||||
GstVaapiEncoderStatus status;
|
GstVaapiEncoderStatus status;
|
||||||
GstVaapiVideoPool *pool;
|
GstVaapiVideoPool *pool;
|
||||||
guint codedbuf_size, target_percentage, quality_level_max = 0;
|
guint codedbuf_size, target_percentage, quality_level_max = 0;
|
||||||
|
guint fps_d, fps_n;
|
||||||
|
|
||||||
|
fps_d = GST_VIDEO_INFO_FPS_D (vip);
|
||||||
|
fps_n = GST_VIDEO_INFO_FPS_N (vip);
|
||||||
|
|
||||||
/* Generate a keyframe every second */
|
/* Generate a keyframe every second */
|
||||||
if (!encoder->keyframe_period)
|
if (!encoder->keyframe_period)
|
||||||
encoder->keyframe_period = (vip->fps_n + vip->fps_d - 1) / vip->fps_d;
|
encoder->keyframe_period = (fps_n + fps_d - 1) / fps_d;
|
||||||
|
|
||||||
/* Default frame rate parameter */
|
/* Default frame rate parameter */
|
||||||
GST_VAAPI_ENCODER_VA_FRAME_RATE (encoder).framerate =
|
if (fps_d > 0 && fps_n > 0)
|
||||||
(guint) GST_VIDEO_INFO_FPS_D (vip) << 16 | GST_VIDEO_INFO_FPS_N (vip);
|
GST_VAAPI_ENCODER_VA_FRAME_RATE (encoder).framerate = fps_d << 16 | fps_n;
|
||||||
|
|
||||||
target_percentage =
|
target_percentage =
|
||||||
(GST_VAAPI_ENCODER_RATE_CONTROL (encoder) == GST_VAAPI_RATECONTROL_CBR) ?
|
(GST_VAAPI_ENCODER_RATE_CONTROL (encoder) == GST_VAAPI_RATECONTROL_CBR) ?
|
||||||
|
|
Loading…
Reference in a new issue