mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-20 00:31:13 +00:00
omxvideoenc: Add support for forcing the next frame to be a keyframe
This commit is contained in:
parent
e7b421c131
commit
4329821a0b
1 changed files with 15 additions and 0 deletions
|
@ -1160,6 +1160,21 @@ gst_omx_video_enc_handle_frame (GstBaseVideoEncoder * encoder,
|
||||||
g_assert (acq_ret == GST_OMX_ACQUIRE_BUFFER_OK && buf != NULL);
|
g_assert (acq_ret == GST_OMX_ACQUIRE_BUFFER_OK && buf != NULL);
|
||||||
|
|
||||||
/* Now handle the frame */
|
/* Now handle the frame */
|
||||||
|
if (frame->force_keyframe) {
|
||||||
|
OMX_ERRORTYPE err;
|
||||||
|
OMX_CONFIG_INTRAREFRESHVOPTYPE config;
|
||||||
|
|
||||||
|
GST_OMX_INIT_STRUCT (&config);
|
||||||
|
config.nPortIndex = self->out_port->index;
|
||||||
|
config.IntraRefreshVOP = OMX_TRUE;
|
||||||
|
|
||||||
|
err =
|
||||||
|
gst_omx_component_set_config (self->component,
|
||||||
|
OMX_IndexConfigVideoIntraVOPRefresh, &config);
|
||||||
|
if (err != OMX_ErrorNone)
|
||||||
|
GST_ERROR_OBJECT (self, "Failed to force a keyframe: %s (0x%08x)",
|
||||||
|
gst_omx_error_to_string (err), err);
|
||||||
|
}
|
||||||
|
|
||||||
/* Copy the buffer content in chunks of size as requested
|
/* Copy the buffer content in chunks of size as requested
|
||||||
* by the port */
|
* by the port */
|
||||||
|
|
Loading…
Reference in a new issue