Hi @btj2 , I assume you will need video hardware decoding on Verin iMX8M Plus. We are still working on VPU support for Torizon on Verdin iMX8M Plus. With this PoC container, /dev/video2 camera device can be found inside the container. apt install v4l-utils -y
needs to be installed.
docker run -it --rm --name=ap --net=host --privileged \
-v /tmp:/tmp -v /var/run/dbus:/var/run/dbus -v /dev/galcore:/dev/galcore -v /var/run/dbus:/var/run/dbus -v /dev:/dev -v /sys:/sys \
--device /dev/video0 --device /dev/video1 --device /dev/video2 \
--device-cgroup-rule='c 226:* rmw' --device-cgroup-rule='c 199:* rmw' \
brunomellotoradex/imx8-vpu-poc:imx8mp bash
root@verdin-imx8mp-07320826:/# apt update
root@verdin-imx8mp-07320826:/# apt install v4l-utils -y
root@verdin-imx8mp-07320826:/# v4l2-ctl --device=/dev/video2 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Type: Video Capture Multiplanar
[0]: 'UYVY' (UYVY 4:2:2)
Size: Discrete 640x480
Interval: Discrete 0.019s (53.000 fps)
Size: Discrete 1280x720
Interval: Discrete 0.014s (70.000 fps)
Size: Discrete 1280x960
Interval: Discrete 0.019s (53.000 fps)
Size: Discrete 1920x1080
Interval: Discrete 0.015s (65.000 fps)
Size: Discrete 2560x1440
Interval: Discrete 0.026s (38.000 fps)
Size: Discrete 2592x1944
Interval: Discrete 0.036s (28.000 fps)
[1]: 'RGBP' (16-bit RGB 5-6-5)
[2]: 'RGB3' (24-bit RGB 8-8-8)
[3]: 'BGR3' (24-bit BGR 8-8-8)
[4]: 'YUYV' (YUYV 4:2:2)
[5]: 'YUV4' (32-bit A/XYUV 8-8-8-8)
[6]: 'NV12' (Y/CbCr 4:2:0)
[7]: 'NM12' (Y/CbCr 4:2:0 (N-C))
[8]: 'YM24' (Planar YUV 4:4:4 (N-C))
[9]: 'XR24' (32-bit BGRX 8-8-8-8)
[10]: 'AR24' (32-bit BGRA 8-8-8-8)
However, the camera stream can not be brought up by gstreamer pipeline. I will look into it and keep you updated.
root@verdin-imx8mp-07320826:/# gst-launch-1.0 v4l2src device='/dev/video2' ! "video/x-raw, format=RGB16, framerate=30/1, width=1920, height=1080" ! fpsdisplaysink video-sink=waylandsink text-overlay=false sync=false -vvv
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstWaylandSink:waylandsink0: sync = false
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-raw, format=(string)RGB16, framerate=(fraction)30/1, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, colorimetry=(string)sRGB
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, format=(string)RGB16, framerate=(fraction)30/1, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, colorimetry=(string)sRGB
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = video/x-raw, format=(string)RGB16, framerate=(fraction)30/1, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, colorimetry=(string)sRGB
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstWaylandSink:waylandsink0.GstPad:sink: caps = video/x-raw, format=(string)RGB16, framerate=(fraction)30/1, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, colorimetry=(string)sRGB
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink: caps = video/x-raw, format=(string)RGB16, framerate=(fraction)30/1, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, colorimetry=(string)sRGB
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, format=(string)RGB16, framerate=(fraction)30/1, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, colorimetry=(string)sRGB
^Chandling interrupt.
Interrupt: Stopping pipeline ...