[Bug 747297] gl: live rpicamsrc/omxh264dec/glimagesink pipeline fails

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Jan 4 12:37:12 PST 2016


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

--- Comment #13 from Florent Thiery <florent.thiery at ubicast.eu> ---
Okay, it is related to gpu memory indeed; setting gpu_mem to 256 solves it,
nothing related to display resolution after all (sorry). Lowering the
resolution avoided the gpu memory exhaustion. Is there any way to read the gpu
memory/usage ?

3 buffers of 1920x1080 RGBA are 190 MB, which is larger than the free memory
available with gpu_mem set to 128.

With gst 1.4.4 (raspbian):

pi at rpicam:~ $ /opt/vc/bin/vcgencmd get_mem gpu
gpu=128M

pi at rpicam:~ $ sudo LD_LIBRARY_PATH=/opt/vc/lib /opt/vc/bin/vcdbg reloc | grep
'free'
free list at 0x1ea05d20
106M free memory in 1 free block(s)
largest free block is 106M bytes
0x18000000: free 106M

pi at rpicam:~ $ gst-launch-1.0 rpicamsrc preview=0 fullscreen=0 ! queue !
h264parse ! omxh264dec ! glimagesink sync=false
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Got context from element 'glimagesink0': gst.gl.GLDisplay=context,
gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayEGL\)\ gldisplayegl0";
Setting pipeline to PLAYING ...
New clock: GstSystemClock
eglCreateImageKHR:  failed to create image for buffer 0x4 target 12465 error
0x300c

pi at rpicam:~ $ /opt/vc/bin/vcgencmd get_mem gpu
gpu=256M

pi at rpicam:~ $ sudo LD_LIBRARY_PATH=/opt/vc/lib /opt/vc/bin/vcdbg reloc | grep
'free'
free list at 0x1d088c20
208M free memory in 3 free block(s)
largest free block is 171M bytes
0x10000000: free 234M
0x1ea05d40: free 576

pi at rpicam:~ $ gst-launch-1.0 rpicamsrc preview=0 fullscreen=0 ! queue !
h264parse ! omxh264dec ! glimagesink sync=false
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Got context from element 'glimagesink0': gst.gl.GLDisplay=context,
gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayEGL\)\ gldisplayegl0";
Setting pipeline to PLAYING ...
New clock: GstSystemClock
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:04.404496325

Interestingly, the error is not the same with 1.6.2 (arch):

[alarm at alarmpi ~]$ /opt/vc/bin/vcgencmd get_mem gpu
gpu=256M
[alarm at alarmpi ~]$ gst-launch-1.0 rpicamsrc preview=0 fullscreen=0 ! queue !
h264parse ! omxh264dec ! glimagesink sync=false

[alarm at alarmpi ~]$ /opt/vc/bin/vcgencmd get_mem gpu
gpu=128M
[alarm at alarmpi ~]$ gst-launch-1.0 rpicamsrc preview=0 fullscreen=0 ! queue !
h264parse ! omxh264dec ! glimagesink sync=false
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Got context from element 'sink': gst.gl.GLDisplay=context,
gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayEGL\)\ gldisplayegl0";
Setting pipeline to PLAYING ...
New clock: GstSystemClock
ERROR: from element
/GstPipeline:pipeline0/GstGLImageSinkBin:glimagesinkbin0/GstGLColorConvertElement:glcolorconvertelement0:
Failed to convert video buffer
Additional debug info:
gstglcolorconvertelement.c(219):
gst_gl_color_convert_element_prepare_output_buffer ():
/GstPipeline:pipeline0/GstGLImageSinkBin:glimagesinkbin0/GstGLColorConvertElement:glcolorconvertelement0
Execution ended after 0:00:00.825575899
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

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