From: Sebastian Dröge Date: Thu, 28 Jul 2011 10:58:25 +0000 (+0200) Subject: omxvideoenc: Add support for forcing the next frame to be a keyframe X-Git-Tag: 1.19.3~501^2~964 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4329821a0b7b162aeb7a14bdf8540edbc3613f89;p=platform%2Fupstream%2Fgstreamer.git omxvideoenc: Add support for forcing the next frame to be a keyframe --- diff --git a/omx/gstomxvideoenc.c b/omx/gstomxvideoenc.c index 8fbd65a..9466fa5 100644 --- a/omx/gstomxvideoenc.c +++ b/omx/gstomxvideoenc.c @@ -1160,6 +1160,21 @@ gst_omx_video_enc_handle_frame (GstBaseVideoEncoder * encoder, g_assert (acq_ret == GST_OMX_ACQUIRE_BUFFER_OK && buf != NULL); /* 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 * by the port */