HDMI-IN
The Neardi-3588 has an HDMI-IN port, which can be developed to implement the HDMI IN function through the HDMI RX module.
Supported platforms: Android, Linux platforms
Supports up to 4K@60fps resolution
Supports hot-plugging for HDMI IN, as well as recording functionality
Supports configurable EDID, HDCP1.4/HDCP2.3, and CEC
Using HDMI-IN on Android
The default version includes HDMI-IN functionality. Burn the Neardi-3588 firmware from Baidu Netdisk For the burning method, please refer to the chapter 《 Upgrading Firmware with a Type-C Cable》.
After burning, open the system HDMI IN application to verify functionality.
The source code path for HDMIIN APK:
rkCamera2: SDK/packages/apps/rkCamera2
Using HDMI-IN on Linux
The default node for Neardi-3588 HDMI-IN is /dev/video40
。
Execute the following command:
export GST_VIDEO_CONVERT_USE_RGA=1
gst-launch-1.0 v4l2src device=/dev/video40 ! kmssink plane-id=54 -v
The plane-id is obtained through the following command:
cat /sys/kernel/debug/dri/0/state | grep plane
Obtain the plane-id with the following command:
neardi@LPA3588:~$ gst-launch-1.0 v4l2src device=/dev/video40 ! kmssink plane-id=54 -v
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
/GstPipeline:pipeline0/GstKMSSink:kmssink0: display-width = 1920
/GstPipeline:pipeline0/GstKMSSink:kmssink0: display-height = 1080
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-raw, format=(string)NV24, width=(int)1920, height=(int)1080, framerate=(fraction)120/1, interlace-mode=(string)progressive, colorimetry=(string)bt709
/GstPipeline:pipeline0/GstKMSSink:kmssink0.GstPad:sink: caps = video/x-raw, format=(string)NV24, width=(int)1920, height=(int)1080, framerate=(fraction)120/1, interlace-mode=(string)progressive, colorimetry=(string)bt709
Redistribute latency...
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:18.453012117
Setting pipeline to NULL ...
Freeing pipeline ...
FAQ
How to obtain device information
neardi@LPA3588:~$ v4l2-ctl -d /dev/video40 -V -D
Driver Info:
Driver name : rk_hdmirx
Card type : rk_hdmirx
Bus info : fdee0000.hdmirx-controller
Driver version : 5.10.110
Capabilities : 0x84201000
Video Capture Multiplanar
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04201000
Video Capture Multiplanar
Streaming
Extended Pix Format
Format Video Capture Multiplanar:
Width/Height : 1920/1080
Pixel Format : 'NV24' (Y/CbCr 4:4:4)
Field : None
Number of planes : 1
Flags : premultiplied-alpha, 0x000000fe
Colorspace : SMPTE 170M
Transfer Function : Unknown (0x000000b8)
YCbCr/HSV Encoding: Unknown (0x000000ff)
Quantization : Default
Plane 0 :
Bytes per Line : 1920
Size Image : 6220800
HDMI-IN not displaying
Verify with v4l2-ctl
image capture
Scenario one:
v4l2-ctl -d /dev/video40 --set-fmt-video=width=1920,height=1080,pixelformat=BGR3 --stream-mmap=3 --stream-skip=3 --stream-to=/tmp/1920x1080-hdmiin.out --stream-count=1 --stream-poll >/dev/null
<<<<
If it returns <<<<
,it indicates that the hardware and HDMI cable are normal. Then check the topology structure and Format.
Check the Format:
v4l2-ctl -d 0 -V
Scenario two:
neardi@LPA3588:~$ v4l2-ctl -d /dev/video40 --set-fmt-video=width=1920,height=1080,pixelformat=BGR3 --stream-mmap=3 --stream-skip=3 --stream-to=/tmp/1920x1080-hdmiin.out --stream-count=1 --stream-poll >/dev/null
select timeout
If it returns select timeout
,check whether the HDMIIN cable is firmly plugged in or try a different cable.
How to debug audio
You can record the input audio using the tinycap
command.
Check the sound card devices
neardi@LPA3588:~$ cat /proc/asound/card*
cat: /proc/asound/card0: Is a directory
cat: /proc/asound/card1: Is a directory
cat: /proc/asound/card2: Is a directory
0 [rockchipes8388 ]: rockchip_es8388 - rockchip,es8388
rockchip,es8388
1 [rockchiphdmiin ]: rockchip_hdmiin - rockchip,hdmiin
rockchip,hdmiin
2 [rockchiphdmi0 ]: rockchip-hdmi0 - rockchip-hdmi0
rockchip-hdmi0
The sound card number for hdminrx is 1
,You can run the following command to record and play audio when there is audio input on HDMI-IN.
Record audio
neardi@LPA3588:~$ tinycap /sdcard/test.wav -D 1 -d 0