omxvideoenc: Failed to force a keyframe: Unsupported index (0x8000101a)

Graham Leggett minfrin at sharp.fm
Sat Aug 15 04:56:38 PDT 2015


On 15 Aug 2015, at 1:04 PM, Sebastian Dröge <sebastian at centricular.com> wrote:

> It means that the RPi OpenMAX implementation does not support forcing a
> keyframe to be generated with that API, or we use that API wrong.

Using the patch below to improve the error message, I am now getting the following:

0:03:01.909221579 10369  0x1a526f0 ERROR            omxvideoenc gstomxvideoenc.c:1553:gst_omx_video_enc_handle_frame:<omxh264enc-omxh264enc0> Failed to force a keyframe at index 200: Unsupported index (0x8000101a)

Does anyone know what units an “index” is measured in? Is it a frame number, seconds, something else?

Is “200” a reasonable index?

Patching further to print an error if the attempt to force a keyframe ever succeeds shows that this call never succeeds. Is this API documented anywhere?

diff --git a/omx/gstomxvideoenc.c b/omx/gstomxvideoenc.c
index 41ca346..02fc7d3 100644
--- a/omx/gstomxvideoenc.c
+++ b/omx/gstomxvideoenc.c
@@ -1549,8 +1549,8 @@ gst_omx_video_enc_handle_frame (GstVideoEncoder * encoder,
           gst_omx_component_set_config (self->enc,
           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);
+        GST_ERROR_OBJECT (self, "Failed to force a keyframe at index %d: %s (0x%08x)",
+            (int)port->index, gst_omx_error_to_string (err), err);
     }
 
     /* Copy the buffer content in chunks of size as requested

Regards,
Graham
—



More information about the gstreamer-devel mailing list