I am trying to get nveglglessink as a prelude to doing some cuda video processing working.
With the usb camera, it all works xvimagesink:
gst-launch-1.0 v4l2src device=/dev/video0 io-mode=2 num-buffers=4 ! image/jpeg, width=640, height=480, format=MJPG ! nvjpegdec ! xvimagesink
I have jetpack 5.01 and deepstream 6.1 installed. When I try nvgl, it fails:
gst-launch-1.0 v4l2src device=/dev/video0 io-mode=2 num-buffers=4 ! image/jpeg, width=640, height=480, format=MJPG ! nvjpegdec ! nvegltransform ! nveglglessink
Setting pipeline to PAUSED …
Using winsys: x11
Pipeline is live and does not need PREROLL …
Got context from element ‘eglglessink0’: gst.egl.EGLDisplay=context, display=(GstEGLDisplay)NULL;
Setting pipeline to PLAYING …
New clock: GstSystemClock
ERROR: Batch size not 1
(gst-launch-1.0:4214): GStreamer-CRITICAL **: 18:06:58.482: gst_mini_object_unref: assertion ‘(g_atomic_int_get (&mini_object->lockstate) & LOCK_MASK) < 4’ failed
ERROR: Batch size not 1
(gst-launch-1.0:4214): GStreamer-CRITICAL **: 18:06:58.483: gst_mini_object_unref: assertion ‘(g_atomic_int_get (&mini_object->lockstate) & LOCK_MASK) < 4’ failed
Got EOS from element “pipeline0”.
Execution ended after 0:00:00.453844877
Setting pipeline to NULL …
Freeing pipeline …
The num-buffers does not affect the results.
So my questions are: What requires a batch size, and where is it supposed to be set? Is this even a valid usage, or should I just be happy with xvimagesink?
For reference, looking at the -vv, the connections seem to be what I would expect:
gst-launch-1.0 -vv v4l2src device=/dev/video0 io-mode=2 num-buffers=4 ! image/jpeg, width=640, height=480 ! nvjpegdec ! nvegltransform ! nveglglessink
Setting pipeline to PAUSED …
Using winsys: x11
Pipeline is live and does not need PREROLL …
Got context from element ‘eglglessink0’: gst.egl.EGLDisplay=context, display=(GstEGLDisplay)NULL;
Setting pipeline to PLAYING …
New clock: GstSystemClock
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = image/jpeg, width=(int)640, height=(int)480, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)2:4:5:1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = image/jpeg, width=(int)640, height=(int)480, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)2:4:5:1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstNvJpegDec:nvjpegdec0.GstPad:sink: caps = image/jpeg, width=(int)640, height=(int)480, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)2:4:5:1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = image/jpeg, width=(int)640, height=(int)480, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)2:4:5:1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstNvJpegDec:nvjpegdec0.GstPad:src: caps = video/x-raw(memory:NVMM), format=(string)I420, width=(int)640, height=(int)480, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)jpeg, colorimetry=(string)1:4:0:0, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstNvEglTransform:nvegltransform0.GstPad:src: caps = video/x-raw(memory:EGLImage), format=(string)RGBA, width=(int)640, height=(int)480, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)jpeg, colorimetry=(string)1:4:0:0, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstEglGlesSink:eglglessink0.GstPad:sink: caps = video/x-raw(memory:EGLImage), format=(string)RGBA, width=(int)640, height=(int)480, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)jpeg, colorimetry=(string)1:4:0:0, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstNvEglTransform:nvegltransform0.GstPad:sink: caps = video/x-raw(memory:NVMM), format=(string)I420, width=(int)640, height=(int)480, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)jpeg, colorimetry=(string)1:4:0:0, framerate=(fraction)30/1
ERROR: Batch size not 1
(gst-launch-1.0:4201): GStreamer-CRITICAL **: 18:05:48.085: gst_mini_object_unref: assertion ‘(g_atomic_int_get (&mini_object->lockstate) & LOCK_MASK) < 4’ failed
ERROR: Batch size not 1
(gst-launch-1.0:4201): GStreamer-CRITICAL **: 18:05:48.085: gst_mini_object_unref: assertion ‘(g_atomic_int_get (&mini_object->lockstate) & LOCK_MASK) < 4’ failed
Got EOS from element “pipeline0”.
Execution ended after 0:00:00.468814718
Setting pipeline to NULL …
Freeing pipeline …