gstreamer pipeline nvcamersrc --> glimagesink problem

Somehow the combination of nvcamersrc and glupload+glimagesink appear to not get along to well, perhaps I’m making some mistakes.

I’ve provided some sample pipelines below to reproduce the issue:

nvcamerasrc --> xvimagesink works

gst-launch-1.0 nvcamerasrc ! 'video/x-raw(memory:NVMM), width=1280, height=720, framerate=(fraction)120/1' ! nvvidconv ! videoconvert ! xvimagesink

videotestsrc --> glimagesink works

gst-launch-1.0 videotestsrc ! videoconvert ! glupload ! glimagesink

nvcamerasrc --> glimagesink does not work!

gst-launch-1.0 nvcamerasrc ! 'video/x-raw(memory:NVMM), width=1280, height=720, framerate=(fraction)120/1' ! nvvidconv ! videoconvert ! glupload ! glimagesink

I’m getting the following output:

gst-launch-1.0 nvcamerasrc ! 'video/x-raw(memory:NVMM), width=1280, height=720, framerate=(fraction)120/1' ! nvvidconv ! videoconvert ! glupload ! glimagesink
Setting pipeline to PAUSED ...

Available Sensor modes : 
2592 x 1944 FR=30.000000 CF=0x1109208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
2592 x 1458 FR=30.000000 CF=0x1109208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
1280 x 720 FR=120.000000 CF=0x1109208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
Pipeline is live and does not need PREROLL ...
Got context from element 'sink': gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayX11\)\ gldisplayx11-0";
Setting pipeline to PLAYING ...
New clock: GstSystemClock

NvCameraSrc: Trying To Set Default Camera Resolution. Selected sensorModeIndex = 2 WxH = 1280x720 FrameRate = 120.000000 ...

ERROR: from element /GstPipeline:pipeline0/GstNvCameraSrc:nvcamerasrc0: Internal data stream error.
Additional debug info:
gstbasesrc.c(3055): gst_base_src_loop (): /GstPipeline:pipeline0/GstNvCameraSrc:nvcamerasrc0:
streaming stopped, reason error (-5)
Execution ended after 0:00:00.164924277
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

So this seems like a classic non descript error message:
ERROR: from element /GstPipeline:pipeline0/GstNvCameraSrc:nvcamerasrc0: Internal data stream error.

Here is the entire gstreamer output log (export GST_DEBUG=4):

https://pastebin.com/4YmM4YVA

Please try ‘tee’

$ gst-launch-1.0 nvcamerasrc ! 'video/x-raw(memory:NVMM), width=1280, height=720, framerate=(fraction)60/1' ! nvvidconv ! video/x-raw,format=NV12 ! <b>tee</b> ! glupload ! glimagesink

A relative post:
https://devtalk.nvidia.com/default/topic/963123/jetson-tx1/video-mapping-on-jetson-tx1/post/5092873/#5092873

Thanks DaneLLL, that worked, although i’m not sure why a branching of the data-flow is necessary specifically for these GL elements?

Hi Jimmy,
glimagesink and glupload are 3rdparty elements. You should get better suggestion @ http://gstreamer-devel.966125.n4.nabble.com/