Zynq UltraScale+ MPSoC VCU TRD - Debugging - MIPI CSI-2 Rx Capture Pipeline

The VCU TRD has a MIPI CSI-2 Rx capture pipeline. The following are some tips on how to debug the MIPI CSI-2 Rx pipeline configuration.  They walks through how to find the settings, adjust them and then send the output to the HDMI Tx Display Pipeline, or capture and dump out some frames to disk, using YAVTA.

This was tested on the Zynq UltraScale+ MPSoC VCU TRD 2018.3, but the same steps should apply other versions of the Zynq UltraScale+ MPSoC VCU TRD, as well as to other platforms which have a similar pipeline, like the Zynq UltraScale+ MPSoC Base TRD 2018.3.


Table of Contents


How to find the MIPI CSI-2 Rx Capture Pipeline

Find if the driver was loaded:

Look at the DMESG output for the Xilinx CSI2 Rx Subsystem to find out if the driver was loaded and the assoicated address.

$ dmesg | grep -i "Xilinx CSI2 Rx Subsystem"
[    7.273263] xilinx-csi2rxss a00f0000.mipi_csi2_rx_subsystem: Xilinx CSI2 Rx Subsystem device found!

Find Device ID:

List the devices and find that the MIPI CSI input is /dev/video1.

$ v4l2-ctl --list-devices
vcap_csi output 0 (platform:vcap_csi:0):
        /dev/video1

vcap_hdmi output 0 (platform:vcap_hdmi:0):
        /dev/video0

vcap_hdmi_2 output 0 (platform:vcap_hdmi_2:0):
        /dev/video3

vcap_hdmi_3 output 0 (platform:vcap_hdmi_3:0):
        /dev/video4

vcap_hdmi_4 output 0 (platform:vcap_hdmi_4:0):
        /dev/video5

vcap_hdmi_5 output 0 (platform:vcap_hdmi_5:0):
        /dev/video6

vcap_hdmi_6 output 0 (platform:vcap_hdmi_6:0):
        /dev/video7

vcap_hdmi_7 output 0 (platform:vcap_hdmi_7:0):
        /dev/video8

vcap_tpg output 0 (platform:vcap_tpg:0):
        /dev/video2

Find Media Pipeline

To find the assoicated Media device you can use either of the following methods

  • Look at the devfs
  • Look through the media devices and to find which media device contains the MIPI CSI RX (/dev/video1)
$ ls /sys/class/video4linux/video1/device/ | grep -i media
media7

$ for m in /dev/media* ; do echo $m ; media-ctl -p -d $m | grep -B 3 /dev/video1 ; echo   '-----------' ; done
/dev/media0
-----------
/dev/media1
-----------
/dev/media2
-----------
/dev/media3
-----------
/dev/media4
-----------
/dev/media5
-----------
/dev/media6
-----------
/dev/media7
Device topology
- entity 1: vcap_csi output 0 (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video1
-----------
/dev/media8
-----------

Display Media Pipeline

You can use media-ctl to list out the structure of the pipeline and you will find that it looks like this:

  • MIPI CSI2 Rx -> Demosaic -> Gamma LUT -> VPSS CSC -> VPSS Scaler -> Video Frame Buffer Write IP
$ media-ctl -p -d /dev/media7
Media controller API version 4.14.0

Media device information
------------------------
driver          xilinx-video
model           Xilinx Video Composite Device
serial          
bus info        
hw revision     0x0
driver version  4.14.0

Device topology
- entity 1: vcap_csi output 0 (1 pad, 1 link)
            type Node subtype V4L flag
            device node name /dev/video1
        pad0: Sink
                <- "a0200000.v_proc_ss":1 [ENABLED]

- entity 5: IMX274 (1 pad, 1 link)
            type V4L2 subdev subtype Sensor flags 0
            device node name /dev/v4l-subdev7
        pad0: Source
                [fmt:SRGGB10_1X10/3840x2160@1/60 field:none colorspace:srgb]
                -> "a00f0000.mipi_csi2_rx_subsystem":1 [ENABLED]

- entity 7: a00f0000.mipi_csi2_rx_subsystem (2 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev8
        pad0: Source
                [fmt:SRGGB8_1X8/1920x1080 field:none colorspace:srgb]
                -> "a0250000.v_demosaic":0 [ENABLED]
        pad1: Sink
                [fmt:SRGGB8_1X8/1920x1080 field:none colorspace:srgb]
                <- "IMX274":0 [ENABLED]

- entity 10: a0250000.v_demosaic (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev9
        pad0: Sink
                [fmt:SRGGB8_1X8/1280x720 field:none colorspace:srgb]
                <- "a00f0000.mipi_csi2_rx_subsystem":0 [ENABLED]
        pad1: Source
                [fmt:RBG888_1X24/1280x720 field:none colorspace:srgb]
                -> "a0270000.v_gamma_lut":0 [ENABLED]

- entity 13: a0270000.v_gamma_lut (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev10
        pad0: Sink
                [fmt:RBG888_1X24/1280x720 field:none colorspace:srgb]
                <- "a0250000.v_demosaic":1 [ENABLED]
        pad1: Source
                [fmt:RBG888_1X24/1280x720 field:none colorspace:srgb]
                -> "a0240000.v_proc_ss":0 [ENABLED]

- entity 16: a0240000.v_proc_ss (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev11
        pad0: Sink
                [fmt:Y8_1X8/1280x720 field:none colorspace:rec709]
                <- "a0270000.v_gamma_lut":1 [ENABLED]
        pad1: Source
                [fmt:Y8_1X8/1280x720 field:none colorspace:rec709]
                -> "a0200000.v_proc_ss":0 [ENABLED]

- entity 19: a0200000.v_proc_ss (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev12
        pad0: Sink
                [fmt:Y8_1X8/1280x720 field:none colorspace:srgb]
                <- "a0240000.v_proc_ss":1 [ENABLED]
        pad1: Source
                [fmt:Y8_1X8/1920x1080 field:none colorspace:srgb]
                -> "vcap_csi output 0":0 [ENABLED]


How to Configure the MIPI CSI-2 RX Pipeline

Find Controls for MIPI CSI-2 RX (/dev/v4l-subdev8)

$ yavta -l /dev/v4l-subdev8
Device /dev/v4l-subdev8 opened.
--- User Controls (class 0x00980001) ---
control 0x0098c981 `MIPI CSI2 Rx Subsystem: Active ' min 1 max 4 step 1 default 1 current 1.
control 0x0098c982 `MIPI CSI2 Rx Subsystem: Frames ' min 0 max -1 step 1 default 0 current 0.
unable to get control 0x0098c983: Permission denied (13).
control 0x0098c983 `MIPI CSI2 Rx Subsystem: Reset C' min 0 max 0 step 0 default 0 current n/a.
3 controls found.
Unable to get format: Inappropriate ioctl for device (25).

Update the MIPI CSI-2 Rx IP

For the Sony IMX274 we need to configure the number of Active lanes to 4

We can change the lane settings with Yavta using the address information gathered above.

#To set the number of active lanes as 4
$ yavta -w '0x0098c981 4' /dev/v4l-subdev8

Then use Yavta to verify that the lane setting was updated to 4,

$ yavta -l /dev/v4l-subdev8
Device /dev/v4l-subdev8 opened.
--- User Controls (class 0x00980001) ---
control 0x0098c981 `MIPI CSI2 Rx Subsystem: Active ' min 1 max 4 step 1 default 1 current 4.
control 0x0098c982 `MIPI CSI2 Rx Subsystem: Frames ' min 0 max -1 step 1 default 0 current 156349.
unable to get control 0x0098c983: Permission denied (13).
control 0x0098c983 `MIPI CSI2 Rx Subsystem: Reset C' min 0 max 0 step 0 default 0 current n/a.
3 controls found.
Unable to get format: Inappropriate ioctl for device (25).

Update the MIPI CSI-2 Rx Pipeline Formats

Use media-ctl to configure the MIPI Pipeline color formats:
NOTE:  In 2019.1 you may need to use xmedia-ctl.

#SONY IMX274 Sensor
media-ctl -d /dev/media7 -V "\"IMX274\":0  [fmt:SRGGB8_1X8/1920x1080 field:none]"
#MIPI CSI2-Rx Subsystem
media-ctl -d /dev/media7 -V "\"a00f0000.mipi_csi2_rx_subsystem\":0  [fmt:SRGGB8_1X8/1920x1080 field:none]"
media-ctl -d /dev/media7 -V "\"a00f0000.mipi_csi2_rx_subsystem\":1  [fmt:SRGGB8_1X8/1920x1080 field:none]"
#Demosaic IP
media-ctl -d /dev/media7 -V "\"a0250000.v_demosaic\":0  [fmt:SRGGB8_1X8/1920x1080 field:none]"
media-ctl -d /dev/media7 -V "\"a0250000.v_demosaic\":1  [fmt:RBG888_1X24/1920x1080 field:none]"
#Gamma LUT IP
media-ctl -d /dev/media7 -V "\"a0270000.v_gamma_lut\":0  [fmt:RBG888_1X24/1920x1080 field:none]"
media-ctl -d /dev/media7 -V "\"a0270000.v_gamma_lut\":1  [fmt:RBG888_1X24/1920x1080 field:none]"
#VPSS: Color Space Conversion (CSC) Only
media-ctl -d /dev/media7 -V "\"a0240000.v_proc_ss\":0  [fmt:RBG888_1X24/1920x1080 field:none]"
media-ctl -d /dev/media7 -V "\"a0240000.v_proc_ss\":1  [fmt:RBG888_1X24/1920x1080 field:none]"
#VPSS: Scaler Only with CSC
media-ctl -d /dev/media7 -V "\"a0200000.v_proc_ss\":0  [fmt:RBG888_1X24/1920x1080 field:none]"
media-ctl -d /dev/media7 -V "\"a0200000.v_proc_ss\":1  [fmt:VYYUYY8_1X24/1920x1080 field:none]"

Use media-ctl to check if the settings were updated.

$ media-ctl -p -d /dev/media7
Media controller API version 4.14.0

Media device information
------------------------
driver          xilinx-video
model           Xilinx Video Composite Device
serial          
bus info        
hw revision     0x0
driver version  4.14.0

Device topology
- entity 1: vcap_csi output 0 (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video1
        pad0: Sink
                <- "a0200000.v_proc_ss":1 [ENABLED]

- entity 5: IMX274 (1 pad, 1 link)
            type V4L2 subdev subtype Sensor flags 0
            device node name /dev/v4l-subdev7
        pad0: Source
                [fmt:SRGGB8_1X8/1920x1080 field:none]
                -> "a00f0000.mipi_csi2_rx_subsystem":1 [ENABLED]

- entity 7: a00f0000.mipi_csi2_rx_subsystem (2 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev8
        pad0: Source
                [fmt:SRGGB8_1X8/1920x1080 field:none]
                -> "a0250000.v_demosaic":0 [ENABLED]
        pad1: Sink
                [fmt:SRGGB8_1X8/1920x1080 field:none]
                <- "IMX274":0 [ENABLED]

- entity 10: a0250000.v_demosaic (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev9
        pad0: Sink
                [fmt:SRGGB8_1X8/1920x1080 field:none]
                <- "a00f0000.mipi_csi2_rx_subsystem":0 [ENABLED]
        pad1: Source
                [fmt:RBG888_1X24/1920x1080 field:none]
                -> "a0270000.v_gamma_lut":0 [ENABLED]

- entity 13: a0270000.v_gamma_lut (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev10
        pad0: Sink
                [fmt:RBG888_1X24/1920x1080 field:none]
                <- "a0250000.v_demosaic":1 [ENABLED]
        pad1: Source
                [fmt:RBG888_1X24/1920x1080 field:none]
                -> "a0240000.v_proc_ss":0 [ENABLED]

- entity 16: a0240000.v_proc_ss (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev11
        pad0: Sink
                [fmt:RBG888_1X24/1920x1080 field:none]
                <- "a0270000.v_gamma_lut":1 [ENABLED]
        pad1: Source
                [fmt:RBG888_1X24/1920x1080 field:none]
                -> "a0200000.v_proc_ss":0 [ENABLED]

- entity 19: a0200000.v_proc_ss (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev12
        pad0: Sink
                [fmt:RBG888_1X24/1920x1080 field:none]
                <- "a0240000.v_proc_ss":1 [ENABLED]
        pad1: Source
                [fmt:VYYUYY8_1X24/1920x1080 field:none]
                -> "vcap_csi output 0":0 [ENABLED]

Update Color Space Conversion

Use yavta to update the Color Space Conversion for better colors from the SONY IMX274 Sensor.  This must be done after the color formats are setup or the CSC values will be reset when setting up the format.

#Update CSC Settings to improve colors
$ yavta -w '0x0098c9a1 80' /dev/v4l-subdev11
$ yavta -w '0x0098c9a2 55' /dev/v4l-subdev11
$ yavta -w '0x0098c9a3 35' /dev/v4l-subdev11
$ yavta -w '0x0098c9a4 24' /dev/v4l-subdev11
$ yavta -w '0x0098c9a5 40' /dev/v4l-subdev11

Verify that MIPI CSI2-Rx Pipeline is working:

MIPI to HDMI Tx using GStreamer

Use GStreamer to send the output to HDIM Tx Subsystem for display on HDMI Monitor.

#Make sure modetest is no longer running
$ killall modetest
#Use GStreamer to pipe the output from the MIPI Rx to the HDMI Tx
$ gst-launch-1.0 v4l2src device=/dev/video1 '!' video/x-raw, width=1920, height=1080, framerate=60/1 '!' queue '!' kmssink bus-id=a0070000.v_mix fullscreen-overlay=1

Dump Frames using Yavta

Use Yavta list the supported formats before capturing:

$ yavta --enum-formats /dev/video1 
Device /dev/video1 opened.
Device `vcap_csi output 0' on `platform:vcap_csi:0' is a video output (without mplanes) device.
- Available formats:
        Format 0: NV12M (32314d4e)
        Type: Video capture (1)
        Name: Y/CbCr 4:2:0 (N-C)

        Format 1: NV12 (3231564e)
        Type: Video capture (1)
        Name: Y/CbCr 4:2:0

        Format 0: NV12M (32314d4e)
        Type: Video capture mplanes (9)
        Name: Y/CbCr 4:2:0 (N-C)

        Format 1: NV12 (3231564e)
        Type: Video capture mplanes (9)
        Name: Y/CbCr 4:2:0

Video format: UYVY (59565955) 1920x1080 field none, 1 planes: 
 * Stride 3840, buffer size 4147200

Use Yavta to dump frames.

You will receive 3 output frames that can be viewed using your favorite YUV Viewer.

$ yavta -n 3 -c10 -f NV12 -s 1920x1080 --skip 7 -F /dev/video1
Device /dev/video1 opened.
Device `vcap_csi output 0' on `platform:vcap_csi:0' is a video output (without mplanes) device.
Video format set: NV12 (3231564e) 1920x1080 field none, 1 planes: 
 * Stride 1920, buffer size 3110400
Video format: NV12 (3231564e) 1920x1080 field none, 1 planes: 
 * Stride 1920, buffer size 3110400
3 buffers requested.
length: 1 offset: 3648333776 timestamp type/source: mono/EoF
Buffer 0/0 mapped at address 0x7f924b3000.
length: 1 offset: 3648333776 timestamp type/source: mono/EoF
Buffer 1/0 mapped at address 0x7f921bb000.
length: 1 offset: 3648333776 timestamp type/source: mono/EoF
Buffer 2/0 mapped at address 0x7f91ec3000.
0 (0) [-] none 0 0 B 4200.930018 4200.930031 38.075 fps ts mono/EoF
1 (1) [-] none 1 0 B 4200.946682 4200.946693 60.010 fps ts mono/EoF
2 (2) [-] none 2 0 B 4200.963348 4200.963359 60.002 fps ts mono/EoF
3 (0) [-] none 3 0 B 4200.980014 4200.980024 60.002 fps ts mono/EoF
4 (1) [-] none 4 0 B 4200.996679 4200.996730 60.006 fps ts mono/EoF
5 (2) [-] none 5 0 B 4201.013344 4201.013393 60.006 fps ts mono/EoF
6 (0) [-] none 6 0 B 4201.030008 4201.030057 60.010 fps ts mono/EoF
7 (1) [-] none 7 0 B 4201.046673 4201.046722 60.006 fps ts mono/EoF
8 (2) [-] none 8 0 B 4201.063339 4201.085930 60.002 fps ts mono/EoF
9 (0) [-] none 9 0 B 4201.080002 4201.124803 60.013 fps ts mono/EoF
Captured 10 frames in 0.221049 seconds (45.238747 fps, 0.000000 B/s).
3 buffers released

Modify the Pipeline to support RGB

After you are sure that the pipeline is working you can then change the output to RGB.

Use media-ctl to change the output type of the Video Scaler with Color Space Conversion.

#VPSS: Scaler Only with CSC
media-ctl -d /dev/media7 -V "\"a0200000.v_proc_ss\":1  [fmt:RBG888_1X24/1920x1080 field:none]"

Use media-ctl to check if the settings were updated.

$ xmedia-ctl -d /dev/media7 -p
Media controller API version 4.14.0

Media device information
------------------------
driver          xilinx-video
model           Xilinx Video Composite Device
serial          
bus info        
hw revision     0x0
driver version  4.14.0

Device topology
- entity 1: vcap_csi output 0 (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video1
        pad0: Sink
                <- "a0200000.v_proc_ss":1 [ENABLED]

- entity 5: IMX274 (1 pad, 1 link)
            type V4L2 subdev subtype Sensor flags 0
            device node name /dev/v4l-subdev7
        pad0: Source
                [fmt:SRGGB8_1X8/1920x1080@1/60 field:none]
                -> "a00f0000.mipi_csi2_rx_subsystem":1 [ENABLED]

- entity 7: a00f0000.mipi_csi2_rx_subsystem (2 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev8
        pad0: Source
                [fmt:SRGGB8_1X8/1920x1080 field:none]
                -> "a0250000.v_demosaic":0 [ENABLED]
        pad1: Sink
                [fmt:SRGGB8_1X8/1920x1080 field:none]
                <- "IMX274":0 [ENABLED]

- entity 10: a0250000.v_demosaic (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev9
        pad0: Sink
                [fmt:SRGGB8_1X8/1920x1080 field:none]
                <- "a00f0000.mipi_csi2_rx_subsystem":0 [ENABLED]
        pad1: Source
                [fmt:RBG888_1X24/1920x1080 field:none]
                -> "a0270000.v_gamma_lut":0 [ENABLED]

- entity 13: a0270000.v_gamma_lut (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev10
        pad0: Sink
                [fmt:RBG888_1X24/1920x1080 field:none]
                <- "a0250000.v_demosaic":1 [ENABLED]
        pad1: Source
                [fmt:RBG888_1X24/1920x1080 field:none]
                -> "a0240000.v_proc_ss":0 [ENABLED]

- entity 16: a0240000.v_proc_ss (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev11
        pad0: Sink
                [fmt:RBG888_1X24/1920x1080 field:none]
                <- "a0270000.v_gamma_lut":1 [ENABLED]
        pad1: Source
                [fmt:RBG888_1X24/1920x1080 field:none]
                -> "a0200000.v_proc_ss":0 [ENABLED]

- entity 19: a0200000.v_proc_ss (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev12
        pad0: Sink
                [fmt:RBG888_1X24/1920x1080 field:none]
                <- "a0240000.v_proc_ss":1 [ENABLED]
        pad1: Source
                [fmt:RBG888_1X24/1920x1080 field:none]
                -> "vcap_csi output 0":0 [ENABLED

MIPI to HDMI Tx using GStreamer

Because the output pipeline does not support RGB input, you can not use GStreamer to output to HDIM Tx Subsystem for display on HDMI Monitor.  You would need to modify the PL design to accept RGB input.
NOTE: It really depends on what format planes were supported by the Video Mixer IP in the design.  You can always use modetest to find the full list of supported formats for the output.

Dump Frames using Yavta

Use Yavta list the supported formats before capturing:

$ yavta --enum-formats /dev/video1
Device /dev/video1 opened.
Device `vcap_csi output 0' on `platform:vcap_csi:0' is a video output (without mplanes) device.
- Available formats:
        Format 0: XBGR (52474258)
        Type: Video capture (1)
        Name: 32-bit XBGR 8-8-8-8

        Format 1: XR24 (34325258)
        Type: Video capture (1)
        Name: 32-bit BGRX 8-8-8-8

        Format 2: RGB24 (33424752)
        Type: Video capture (1)
        Name: 24-bit RGB 8-8-8

        Format 0: XBGR (52474258)
        Type: Video capture mplanes (9)
        Name: 32-bit XBGR 8-8-8-8

        Format 1: XR24 (34325258)
        Type: Video capture mplanes (9)
        Name: 32-bit BGRX 8-8-8-8

        Format 2: RGB24 (33424752)
        Type: Video capture mplanes (9)
        Name: 24-bit RGB 8-8-8

Video format: NV12 (3231564e) 1920x1080 field none, 1 planes: 
 * Stride 1920, buffer size 3110400

Use Yavta to dump frames.

You will receive 3 output frames that can be viewed using your favorite RGB Viewer.

$ yavta -n 3 -c10 -f RGB24 -s 1920x1080 --skip 7 -F /dev/video1
Device /dev/video1 opened.
Device `vcap_csi output 0' on `platform:vcap_csi:0' is a video output (without mplanes) device.
Video format set: RGB24 (33424752) 1920x1080 field none, 1 planes: 
 * Stride 5760, buffer size 6220800
Video format: RGB24 (33424752) 1920x1080 field none, 1 planes: 
 * Stride 5760, buffer size 6220800
3 buffers requested.
length: 1 offset: 4227414128 timestamp type/source: mono/EoF
Buffer 0/0 mapped at address 0x7f999be000.
length: 1 offset: 4227414128 timestamp type/source: mono/EoF
Buffer 1/0 mapped at address 0x7f993cf000.
length: 1 offset: 4227414128 timestamp type/source: mono/EoF
Buffer 2/0 mapped at address 0x7f98de0000.
0 (0) [-] none 0 0 B 294.837807 294.837820 24.302 fps ts mono/EoF
1 (1) [-] none 1 0 B 294.854472 294.854481 60.006 fps ts mono/EoF
2 (2) [-] none 2 0 B 294.871135 294.871146 60.013 fps ts mono/EoF
3 (0) [-] none 3 0 B 294.887801 294.887811 60.002 fps ts mono/EoF
4 (1) [-] none 4 0 B 294.904467 294.904477 60.002 fps ts mono/EoF
5 (2) [-] none 5 0 B 294.921132 294.921142 60.006 fps ts mono/EoF
6 (0) [-] none 6 0 B 294.937797 294.937807 60.006 fps ts mono/EoF
7 (1) [-] none 7 0 B 294.954463 294.954473 60.002 fps ts mono/EoF
8 (2) [-] none 8 0 B 294.971126 295.033206 60.013 fps ts mono/EoF
9 (0) [-] none 9 0 B 294.987789 295.110266 60.013 fps ts mono/EoF
Captured 10 frames in 0.313607 seconds (31.886961 fps, 0.000000 B/s).
3 buffers released.


Appendix:

List Supported Formats:

You can also use v4l2-ctl to list the supported formats.  These will change when the IP is reconfigured.

When configured for VYYUYY8 Pixel Format:

$ v4l2-ctl -d /dev/video1 -D --list-formats-ext
Driver Info (not using libv4l2):
        Driver name   : xilinx-vipp
        Card type     : vcap_csi output 0
        Bus info      : platform:vcap_csi:0
        Driver version: 4.14.0
        Capabilities  : 0x84201000
                Video Capture Multiplanar
                Streaming
                Extended Pix Format
                Device Capabilities
        Device Caps   : 0x04201000
                Video Capture Multiplanar
                Streaming
                Extended Pix Format
ioctl: VIDIOC_ENUM_FMT
        Index       : 0
        Type        : Video Capture Multiplanar
        Pixel Format: 'NM12'
        Name        : Y/CbCr 4:2:0 (N-C)

        Index       : 1
        Type        : Video Capture Multiplanar
        Pixel Format: 'NV12'
        Name        : Y/CbCr 4:2:0

When configured for RBG888 format:

$ v4l2-ctl -d /dev/video1 -D --list-formats-ext
Driver Info (not using libv4l2):
        Driver name   : xilinx-vipp
        Card type     : vcap_csi output 0
        Bus info      : platform:vcap_csi:0
        Driver version: 4.14.0
        Capabilities  : 0x84201000
                Video Capture Multiplanar
                Streaming
                Extended Pix Format
                Device Capabilities
        Device Caps   : 0x04201000
                Video Capture Multiplanar
                Streaming
                Extended Pix Format
ioctl: VIDIOC_ENUM_FMT
        Index       : 0
        Type        : Video Capture Multiplanar
        Pixel Format: 'XBGR'
        Name        : 32-bit XBGR 8-8-8-8

        Index       : 1
        Type        : Video Capture Multiplanar
        Pixel Format: 'XR24'
        Name        : 32-bit BGRX 8-8-8-8

        Index       : 2
        Type        : Video Capture Multiplanar
        Pixel Format: 'RGB3'
        Name        : 24-bit RGB 8-8-8

Related Links