[Bug 774370] New: Regression 1.8.3 -> 1.10.0 w/ GL & context sharing? (tex_id always 0)

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sun Nov 13 18:40:11 UTC 2016


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

            Bug ID: 774370
           Summary: Regression 1.8.3 -> 1.10.0 w/ GL & context sharing?
                    (tex_id always 0)
    Classification: Platform
           Product: GStreamer
           Version: 1.10.0
                OS: Mac OS
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-plugins-bad
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: gottfried.haider at gmail.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

When trying to use Processing's GLVideo library with version 1.10.0, the same
code and example file that worked with version 1.8.3 of GStreamer suddenly
fails to display an image.

It is unclear why exactly this is happen. The only visible difference to me is
that the tex_id field in the GstBuffer that the library code is being passed by
GStreamer is suddenly always zero, where previously the texture id was varying,
but never zero.


I have uploaded a binary build of the GLVideo library for Mac, which includes
GStreamer 1.10.0, to this URL:
https://sukzessiv.net/~gohai/gstreamer/processing-glvideo-1_10_0.zip

To test:
* Install Processing from http://processing.org/
* Unzip the library from above in Processing's sketch folder (e.g.
~/Documents/Processing/libraries)
* Launch Processing
* In Processing: File > Examples... > Contributed Libraries > GL Video >
SingleVideo
* Press the play button

The source code for this build of the library:
https://github.com/gohai/processing-glvideo/tree/2820e5f6e83801cb784b0f9385cd37c62743d6f7


When having compiled this library against GStreamer 1.8.3, I am witnessing the
following output. Three GST_QUERY_CONTEXT queries, then you'll see the caps
retrieved from GST_EVENT_CAPS, and the tex_id values we unpack from the
GstBuffer in an callback invoked by the "handoff" signal:

gst_gl_handle_context_query returned true
gst_gl_handle_context_query returned true
gst_gl_handle_context_query returned false
Final caps: video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)560,
height=(int)406, interlace-mode=(string)progressive,
pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30000/1001,
texture-target=(string)2D
handle_buffer: tex_id 7
handle_buffer: tex_id 7
handle_buffer: tex_id 14
handle_buffer: tex_id 34
handle_buffer: tex_id 7
...

Whereas in GStreamer 1.10.0 the output looks like this:

gst_gl_handle_context_query returned true
gst_gl_handle_context_query returned true
gst_gl_handle_context_query returned false
Final caps: video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)560,
height=(int)406, interlace-mode=(string)progressive,
pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30000/1001,
texture-target=(string)2D
handle_buffer: tex_id 0
handle_buffer: tex_id 0
handle_buffer: tex_id 0
handle_buffer: tex_id 0
handle_buffer: tex_id 0


(This could of course be just as well a red haring, but something between 1.8.3
and 1.10.0 broke video playback for us.)

I am attaching debug outputs at level 5 for both versions below.

You'll find the gist of the library code (much modeled after gst-omx's
testegl.c) here:
https://github.com/gohai/processing-glvideo/blob/2820e5f6e83801cb784b0f9385cd37c62743d6f7/src/native/impl.c

-- 
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