[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