Hi
I have done the followings commands
# media-ctl -p
Media controller API version 6.6.23
Media device information
------------------------
driver mxc-md
model FSL Capture Media Device
serial
bus info platform:42800000.bus:camera
hw revision 0x0
driver version 6.6.23
Device topology
- entity 1: mxc_isi.0 (16 pads, 2 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
pad0: Sink
<- "mxc-mipi-csi2.0":4 [ENABLED]
pad1: Sink
pad2: Sink
pad3: Sink
pad4: Sink
pad5: Sink
pad6: Sink
pad7: Sink
pad8: Sink
pad9: Sink
pad10: Sink
pad11: Sink
pad12: Source
-> "mxc_isi.0.capture":0 [ENABLED]
pad13: Source
pad14: Source
pad15: Sink
- entity 18: mxc_isi.0.capture (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video0
pad0: Sink
<- "mxc_isi.0":12 [ENABLED]
- entity 22: mxc-mipi-csi2.0 (8 pads, 2 links)
type Node subtype V4L flags 0
device node name /dev/v4l-subdev0
pad0: Sink
<- "ap1302_mipi 2-003c":0 [ENABLED,IMMUTABLE]
pad1: Sink
pad2: Sink
pad3: Sink
pad4: Source
-> "mxc_isi.0":0 [ENABLED]
pad5: Source
pad6: Source
pad7: Source
- entity 31: ap1302_mipi 2-003c (1 pad, 1 link, 0 routes)
type V4L2 subdev subtype Unknown flags 0
pad0: Source
-> "mxc-mipi-csi2.0":0 [ENABLED,IMMUTABLE]
# v4l2-ctl --list-devices
FSL Capture Media Device (platform:42800000.bus:camera):
/dev/media0
mxc-isi-cap_v1 (platform:4ae40000.isi:cap_devic):
/dev/video0
# v4l2-ctl -d0 --list-formats
ioctl: VIDIOC_ENUM_FMT
Type: Video Capture Multiplanar
[0]: 'RGBP' (16-bit RGB 5-6-5)
[1]: 'RGB3' (24-bit RGB 8-8-8)
[2]: 'BGR3' (24-bit BGR 8-8-8)
[3]: 'YUYV' (YUYV 4:2:2)
[4]: 'YUV4' (32-bit A/XYUV 8-8-8-8)
[5]: 'NV12' (Y/UV 4:2:0)
[6]: 'NM12' (Y/UV 4:2:0 (N-C))
[7]: 'YM24' (Planar YUV 4:4:4 (N-C))
[8]: 'XR24' (32-bit BGRX 8-8-8-8)
[9]: 'AR24' (32-bit BGRA 8-8-8-8)
# v4l2-ctl -d0 --list-framesizes YUYV
ioctl: VIDIOC_ENUM_FRAMESIZES
Size: Discrete 1920x1080
Size: Discrete 1280x800
Size: Discrete 1280x720
Size: Discrete 640x480
# v4l2-ctl -d0 --set-fmt-video=width=1280,height=800,pixelformat=YUYV --stream-mmap=4 --stream-count=10 --stream-to=test.yuv
# ls -l test.yuv
-rw-r--r-- 1 root root 20480000 Feb 25 02:55 test.yuv
#gst-launch-1.0 -v v4l2src device=/dev/video0 ! "video/x-raw,format=YUY2,width=1280,height=800" ! queue ! waylandsink
i have a display on xwindows
When i launch code with the OpenCV video capture function with log debug level
cv::VideoCapture camera(0, cv::CAP_V4L2);
I get
[DEBUG:0@0.030] global cap_v4l.cpp:1005 open VIDEOIO(V4L2:/dev/video0): opening...
[DEBUG:0@0.030] global cap_v4l.cpp:1021 open VIDEOIO(V4L2:/dev/video0): deviceHandle=14
[DEBUG:0@0.031] global cap_v4l.cpp:1089 tryIoctl VIDEOIO(V4L2:/dev/video0): tryIoctl(14, VIDIOC_QUERYCAP(2154321408), failIfBusy=1)
[DEBUG:0@0.031] global cap_v4l.cpp:1097 tryIoctl VIDEOIO(V4L2:/dev/video0): call ioctl(14, VIDIOC_QUERYCAP(2154321408), ...) => 0 errno=0 (Success)
[DEBUG:0@0.031] global cap_v4l.cpp:1089 tryIoctl VIDEOIO(V4L2:/dev/video0): tryIoctl(14, VIDIOC_G_FMT(3234878980), failIfBusy=1)
[DEBUG:0@0.031] global cap_v4l.cpp:1097 tryIoctl VIDEOIO(V4L2:/dev/video0): call ioctl(14, VIDIOC_G_FMT(3234878980), ...) => 0 errno=0 (Success)
[DEBUG:0@0.031] global cap_v4l.cpp:1089 tryIoctl VIDEOIO(V4L2:/dev/video0): tryIoctl(14, VIDIOC_S_FMT(3234878981), failIfBusy=1)
[DEBUG:0@0.031] global cap_v4l.cpp:1097 tryIoctl VIDEOIO(V4L2:/dev/video0): call ioctl(14, VIDIOC_S_FMT(3234878981), ...) => 0 errno=0 (Success)
[DEBUG:0@0.031] global cap_v4l.cpp:1089 tryIoctl VIDEOIO(V4L2:/dev/video0): tryIoctl(14, VIDIOC_S_PARM(3234616854), failIfBusy=1)
[DEBUG:0@0.031] global cap_v4l.cpp:1097 tryIoctl VIDEOIO(V4L2:/dev/video0): call ioctl(14, VIDIOC_S_PARM(3234616854), ...) => 0 errno=0 (Success)
[DEBUG:0@0.031] global cap_v4l.cpp:1089 tryIoctl VIDEOIO(V4L2:/dev/video0): tryIoctl(14, VIDIOC_G_PARM(3234616853), failIfBusy=1)
[DEBUG:0@0.031] global cap_v4l.cpp:1097 tryIoctl VIDEOIO(V4L2:/dev/video0): call ioctl(14, VIDIOC_G_PARM(3234616853), ...) => 0 errno=0 (Success)
ioctl with VIDIOC_G_FMT, VIDIOC_S_FMT, VIDIOC_S_PARM, VIDIOC_G_PARM work