Zynq UltraScale+ MPSoC VCU TRD - Debugging - HDMI Rx Capture Pipeline

The VCU TRD has a HDMI Rx capture pipeline. The following are some tips on how to debug the HDMI Rx capture pipeline configuration.  They walk 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 HDMI Rx Capture Pipeline

Find if the driver was loaded:

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

Find Device ID:

List the devices and find that the HDMI Rx capture is /dev/video0.
NOTE:  The other HDMI captures are all created from the broadcaster as duplicates of the original HDMI Rx to do multi-stream testing.

Find Media Pipeline

To find the associated Media device you can use either of the following methods.
NOTE: This is important as the media device # will change depending on if the LI-IMX274MIPI-FMC card is connected or not.  (In this test case the LI-IMX274MIPI-FMC card is not connected.)

  • Look at the devfs
  • Look through the media devices and to find which media device contains the HDMI Rx (/dev/video0)

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:

  • HDMI Rx -> VPSS Scaler -> Video Frame Buffer Write IP

How to Configure the HDMI Rx Pipeline

Update the HDMI Rx Pipeline Formats

Use media-ctl to configure the HDMI Rx Pipeline color formats

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

Verify that HDMI Rx Pipeline is working:

HDMI Rx to HDMI Tx using GStreamer

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

Dump Frames using Yavta

Use Yavta list the supported formats before capturing:

Use Yavta to dump frames.

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

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.

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

HDMI Rx 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 Video Mixer in the PL design to accept RGB input.

Dump Frames using Yavta

Use Yavta list the supported formats before capturing:

Use Yavta to dump frames.

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


Debug:

Check if HDMI Input has properly locked:


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:

When configured for RBG888 format:

Related Links: