From 703bab688566c6fe4de934dbb2b93300bc2aa4ff Mon Sep 17 00:00:00 2001 From: Graham Leggett Date: Sat, 22 Aug 2015 15:54:55 +0000 Subject: [PATCH] omxvideoenc: Add keyframe support for the Rpi, using OMX_IndexConfigBrcmVideoRequestIFrame https://bugzilla.gnome.org/show_bug.cgi?id=753085 --- omx/gstomxvideoenc.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/omx/gstomxvideoenc.c b/omx/gstomxvideoenc.c index 41ca346..0901b33 100644 --- a/omx/gstomxvideoenc.c +++ b/omx/gstomxvideoenc.c @@ -1538,6 +1538,18 @@ gst_omx_video_enc_handle_frame (GstVideoEncoder * encoder, GST_DEBUG_OBJECT (self, "Handling frame"); if (GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME (frame)) { +#ifdef USE_OMX_TARGET_RPI + OMX_CONFIG_BOOLEANTYPE config; + + GST_OMX_INIT_STRUCT (&config); + config.bEnabled = OMX_TRUE; + + GST_DEBUG_OBJECT (self, "Forcing a keyframe (iframe on the RPi)"); + + err = + gst_omx_component_set_config (self->enc, + OMX_IndexConfigBrcmVideoRequestIFrame, &config); +#else OMX_CONFIG_INTRAREFRESHVOPTYPE config; GST_OMX_INIT_STRUCT (&config); @@ -1548,6 +1560,7 @@ gst_omx_video_enc_handle_frame (GstVideoEncoder * encoder, err = gst_omx_component_set_config (self->enc, OMX_IndexConfigVideoIntraVOPRefresh, &config); +#endif if (err != OMX_ErrorNone) GST_ERROR_OBJECT (self, "Failed to force a keyframe: %s (0x%08x)", gst_omx_error_to_string (err), err); -- 2.7.4