I’m trying to use USB3 Vision Camera in 5B (6.1.84, Bookworm) with USB3.0 slot. Which is non-V4L2 based so we need to use aravissrc. Technically it is Bayer pixel camera where we need to use ‘bayer2rgb’ pipeline in gstreamer.
The same camera and pipeline are working in X86 Laptop (ThinkPad E14) but 5B it trigger CPU0 crossing 100% and hang.
gst-launch-1.0 -v aravissrc do-timestamp=true ! video/x-bayer,format=gbrg,width=2448,height=2048 ! bayer2rgb ! videoconvert n-threads=4 ! fpsdisplaysink sync=false text-overlay=true video-sink="kmssink"
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstKMSSink:kmssink0: display-width = 2560
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstKMSSink:kmssink0: display-height = 1440
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstKMSSink:kmssink0: sync = false
/GstPipeline:pipeline0/GstAravis:aravis0: camera = (null)
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstAravis:aravis0: stream = (null)
/GstPipeline:pipeline0/GstAravis:aravis0.GstPad:src: caps = video/x-bayer, format=(string)gbrg, width=(int)2448, height=(int)2048, framerate=(fraction)20/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-bayer, format=(string)gbrg, width=(int)2448, height=(int)2048, framerate=(fraction)20/1
/GstPipeline:pipeline0/GstBayer2RGB:bayer2rgb0.GstPad:src: caps = video/x-raw, width=(int)2448, height=(int)2048, framerate=(fraction)20/1, format=(string)BGRA
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:src: caps = video/x-raw, width=(int)2448, height=(int)2048, framerate=(fraction)20/1, format=(string)BGRA
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = video/x-raw, width=(int)2448, height=(int)2048, framerate=(fraction)20/1, format=(string)BGRA
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstTextOverlay:fps-display-text-overlay.GstPad:src: caps = video/x-raw, width=(int)2448, height=(int)2048, framerate=(fraction)20/1, format=(string)BGRA
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstKMSSink:kmssink0.GstPad:sink: caps = video/x-raw, width=(int)2448, height=(int)2048, framerate=(fraction)20/1, format=(string)BGRA
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstTextOverlay:fps-display-text-overlay.GstPad:video_sink: caps = video/x-raw, width=(int)2448, height=(int)2048, framerate=(fraction)20/1, format=(string)BGRA
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink: caps = video/x-raw, width=(int)2448, height=(int)2048, framerate=(fraction)20/1, format=(string)BGRA
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:sink: caps = video/x-raw, width=(int)2448, height=(int)2048, framerate=(fraction)20/1, format=(string)BGRA
/GstPipeline:pipeline0/GstBayer2RGB:bayer2rgb0.GstPad:sink: caps = video/x-bayer, format=(string)gbrg, width=(int)2448, height=(int)2048, framerate=(fraction)20/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-bayer, format=(string)gbrg, width=(int)2448, height=(int)2048, framerate=(fraction)20/1
Redistribute latency...
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstKMSSink:kmssink0: sync = false
Even the hardware pipeline also have similar issues.
$ GST_VIDEO_CONVERT_USE_RGA=1 gst-launch-1.0 -e -v \
aravissrc ! \
video/x-bayer,format=gbrg,width=2448,height=2048 ! \
bayer2rgb ! \
videoconvert ! \
mpph265enc qp-init=30 qp-min=28 qp-max=36 ! \
h265parse ! \
splitmuxsink location="test-%05d.mkv" max-size-time=60000000000 muxer=matroskamux
Any clue, anyone uses?