[Bug 767801] Failed to negotiate RGBA for EGLImage on Raspberry Pi 3

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sun Dec 11 01:54:21 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=767801

minfrin at sharp.fm changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |minfrin at sharp.fm

--- Comment #12 from minfrin at sharp.fm ---
The origin of this error message is in the following code:

      /* try to negotiate with caps feature */
      GST_DEBUG_OBJECT (self,
          "Try to negotiate with feature %s",
          GST_CAPS_FEATURE_MEMORY_GL_MEMORY);
      if (!gst_video_decoder_negotiate (GST_VIDEO_DECODER (self))) {

        GST_DEBUG_OBJECT (self,
            "Failed to negotiate with feature %s",
            GST_CAPS_FEATURE_MEMORY_GL_MEMORY);

        if (state->caps)
          gst_caps_replace (&state->caps, NULL);

        /* fallback: try to use EGLImage even if it is not in the caps feature
*/
        if (!gst_video_decoder_negotiate (GST_VIDEO_DECODER (self))) {
          gst_video_codec_state_unref (state);
          GST_ERROR_OBJECT (self, "Failed to negotiate RGBA for EGLImage");
          GST_VIDEO_DECODER_STREAM_UNLOCK (self);
          goto no_egl;
        }
      }

What is happening here is that first an attempt is made to negotiate downstream
with GLMemory turned on and the format hard coded to RGBA. If this negotiation
attempt fails, we then attempt to negotite downstream a second time without
GLMemory, and the format hard coded to RGBA. If this second attempt to
negotiate fails, we get "Failed to negotiate RGBA for EGLImage".

The question here is why did both negotiations fail. In my case, I get a
failure on a pipeline that is effectively "omxh264dec ! omxh264enc" because
omxh264enc doesn't support RGBA. In your case, examine the debug logs of the
videoconvert and glimagesink elements to monitor how their caps are negotiated.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list