UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Mentor watari
Mentor
588 Views
Registered: ‎06-16-2013

How to capture HDMI signal

Jump to solution

Hi all

 

I'd like to capture HDMI signal with vcu_trd or vcu_hdmirx (VCU TRD 2019.1) by gstreamer .

 

[Environment]

Board : ZCU106

Video Source : Laptop PC
Video Sink : network or storage

 

 

First, I make sure the status of HDMI by following commands.

 

-----
# cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/hdmi_info

Stream Info
-------------
        Color Format: RGB
        Color Depth: 8
        Pixels Per Clock: 2
        Mode: Progressive
        Frame Rate: 60Hz
        Resolution: 1920x1080@60Hz
        Pixel Clock: 148500000

Stream Timing
----------------

        HSYNC Timing: hav=1920, hfp=88, hsw=44(hsp=1), hbp=148, htot=2200
        VSYNC Timing: vav=1080, vfp=04, vsw=05(vsp=1), vbp=036, vtot=1125


Rx Info
--------
Mode: HDMI
VIC : 16
Scrambled: 0

Audio
------
Format : L-PCM
Channels : 2
ACR CTS : 148326
ACR N : 6144


Link quality
------------
Link quality channel 0 : excellent (0)
Link quality channel 1 : excellent (0)
Link quality channel 2 : excellent (0)

 

# cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/hdmi_log

 

HDMI RX log
------
Initializing HDMI RX core....
Reset HDMI RX Subsystem....
RX cable is connected....
RX TMDS reference clock change
RX Stream Init
RX mode changed to HDMI
RX Stream Start
RX Stream is Up

 

 

# cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/vphy_info
TX: QPLL0
RX: CPLL
TX state: idle
RX state: idle

QPLL0 settings
-------------
M : 0 - N : 0 - D : 0

CPLL settings
-------------
M : 1 - N1 : 5 - N2 : 4 - D : 4

RX MMCM settings
-------------
Mult : 10 - Div : 1 - Clk0Div : 20 - Clk1Div : 10 - Clk2Div : 20

TX MMCM settings
-------------
Mult : 0 - Div : 0 - Clk0Div : 0 - Clk1Div : 0 - Clk2Div : 0

DRU Settings
-------------
Version : 7
DRU is disabled

Rx Ref Clk: 148318208 Hz
DRU Ref Clk: 156250000 Hz

 

 

# cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/vphy_log

 

VPHY log
------
GT init start
GT init done
RX frequency event
RX timer event
RX DRU disable
CPLL reconfig done
GT RX reconfig start
GT RX reconfig done
CPLL lock
RX reset done
RX MMCM reconfig done
RX MMCM lock

 

 

# gst-device-monitor-1.0
Probing devices...


Device found:

        name : Monitor of Built-in Audio Stereo
        class : Audio/Source
        caps : audio/x-raw, format=(string){ S16LE, S16BE, F32LE, F32BE, S32LE, S32BE, S24LE, S24BE, S24_32LE, S24_32BE, U8 }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
                   audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
                   audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
        properties:
                   device.description = "Monitor\ of\ Built-in\ Audio\ Stereo"
                   device.class = monitor
                   alsa.card = 0
                   alsa.card_name = "DisplayPort\ monitor"
                   alsa.long_card_name = "DisplayPort\ monitor"
                   device.bus_path = /devices/platform/amba/fd4a0000.zynqmp-display/fd4a0000.zynqmp-display:zynqmp_dp_snd_card/sound/card0
                   sysfs.path = /devices/platform/amba/fd4a0000.zynqmp-display/fd4a0000.zynqmp-display:zynqmp_dp_snd_card/sound/card0
                   device.form_factor = internal
                   device.string = 0
                   module-udev-detect.discovered = 1
                   device.icon_name = audio-card
        gst-launch-1.0 pulsesrc device=alsa_output.0.stereo-fallback.monitor ! ...


Device found:

 

        name : Built-in Audio Stereo
        class : Audio/Sink
        caps : audio/x-raw, format=(string){ S16LE, S16BE, F32LE, F32BE, S32LE, S32BE, S24LE, S24BE, S24_32LE, S24_32BE, U8 }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
                   audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
                   audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
        properties:
                   alsa.resolution_bits = 16
                   device.api = alsa
                   device.class = sound
                   alsa.class = generic
                   alsa.subclass = generic-mix
                   alsa.name = ""
                   alsa.id = "\(null\)\ xilinx-dp-snd-codec-dai-0"
                   alsa.subdevice = 0
                   alsa.subdevice_name = "subdevice\ \#0"
                   alsa.device = 0
                   alsa.card = 0
                   alsa.card_name = "DisplayPort\ monitor"
                   alsa.long_card_name = "DisplayPort\ monitor"
                   device.bus_path = /devices/platform/amba/fd4a0000.zynqmp-display/fd4a0000.zynqmp-display:zynqmp_dp_snd_card/sound/card0
                   sysfs.path = /devices/platform/amba/fd4a0000.zynqmp-display/fd4a0000.zynqmp-display:zynqmp_dp_snd_card/sound/card0
                   device.form_factor = internal
                   device.string = hw:0
                   device.buffering.buffer_size = 65536
                   device.buffering.fragment_size = 32768
                   device.access_mode = mmap+timer
                   device.profile.name = stereo-fallback
                   device.profile.description = Stereo
                   device.description = "Built-in\ Audio\ Stereo"
                   module-udev-detect.discovered = 1
                   device.icon_name = audio-card
        gst-launch-1.0 ... ! pulsesink device=alsa_output.0.stereo-fallback


Device found:

 

        name : vcap_hdmi output 0
        class : Video/Source
        caps : video/x-raw, format=(string)NV12, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 16, 32768 ], height=(int)[ 1, 8191 ], interlace-mode=(string)alternate;
                   video/x-raw, format=(string)NV12, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 16, 32768 ], height=(int)[ 1, 8191 ], interlace-mode=(string){ progressive, interleaved };
                   video/x-raw, format=(string)NV12, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 16, 32768 ], height=(int)[ 1, 8191 ], interlace-mode=(string)alternate;
                   video/x-raw, format=(string)NV12, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 16, 32768 ], height=(int)[ 1, 8191 ], interlace-mode=(string){ progressive, interleaved };
        properties:
                   udev-probed = true
                   device.bus_path = "platform-amba_pl\@0:vcap_hdmi"
                   sysfs.path = "/sys/devices/platform/amba_pl\@0/amba_pl\@0:vcap_hdmi/video4linux/video0"
                   device.subsystem = video4linux
                   device.product.name = "vcap_hdmi\ output\ 0"
                   device.capabilities = :
                   device.api = v4l2
                   device.path = /dev/video0
                   v4l2.device.driver = xilinx-vipp
                   v4l2.device.card = "vcap_hdmi\ output\ 0"
                   v4l2.device.bus_info = platform:vcap_hdmi:0
                   v4l2.device.version = 267008 (0x00041300)
                   v4l2.device.capabilities = 2216693760 (0x84201000)
                   v4l2.device.device_caps = 69210112 (0x04201000)
        gst-launch-1.0 v4l2src ! ...
-----

 

The results seems fine. So, I run the following command to make sure pipeline on gstreamer.
However, I'm facing "Internal data stream error" on v4l2src0.

 

# gst-launch-1.0 --gst-debug-level=4 -v v4l2src device=/dev/video0 io-mode=4 num-buffers=1800 ! capsfilter caps="video/x-raw, format=(string)RGB, framerate=(fraction)60/1, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1" ! queue max-size-bytes=0 ! fakesink

 

I guess I need something to control HDMI Rx (or /dev/video0).
But I don't know how to control it.

 

Would anyone help me ?

 

Best regards,

0 Kudos
1 Solution

Accepted Solutions
Xilinx Employee
Xilinx Employee
513 Views
Registered: ‎08-02-2007

Re: How to capture HDMI signal

Jump to solution
5 Replies
Mentor watari
Mentor
550 Views
Registered: ‎06-16-2013

Re: How to capture HDMI signal

Jump to solution

I already knew how to capture HDMI signal with "vcu_gst_app input.cfg".

 

However, I'd like to know how to set the setting of like "vcu_gst_app input.cfg" by linux standard command. (ex. v4l2-ctl and media-ctl)

How do I do it ?

 

Best regards,

0 Kudos
Xilinx Employee
Xilinx Employee
514 Views
Registered: ‎08-02-2007

Re: How to capture HDMI signal

Jump to solution
Mentor watari
Mentor
489 Views
Registered: ‎06-16-2013

Re: How to capture HDMI signal

Jump to solution

Hi @xud 

 

Thank you for your reply.

I will check it later.

But I might ask some question.

 

Best regards,

0 Kudos
Moderator
Moderator
450 Views
Registered: ‎11-09-2015

Re: How to capture HDMI signal

Jump to solution

Hi @watari 

Do you have any update on this topic?

If your question is answered or your issue is solved, please kindly mark the response which helped as solution (click on "Accept as solution" button below the reply)

If this is not solved/answered, please reply in the topic giving more information on your current status.

Thanks and Regards,


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**
0 Kudos
Mentor watari
Mentor
420 Views
Registered: ‎06-16-2013

Re: How to capture HDMI signal

Jump to solution

Hi @florentw 

 

Sorry for my late reply.

 

Unfortunately, I don't have enough time to try it. So, I haven't solved it yet.

However, it was good information for me.

 

So, I close this issue.

 

Best regards