I will find a 4k tv monitor to try out.
Looks like 1080@60 is BGR as you noted.
Converting from BGR to NV12 does not look like a good solution, i think it will be by SW conversion.
rock@rock5b:~$ v4l2-ctl -d /dev/video20 --all
Driver Info:
Driver name : rk_hdmirx
Card type : rk_hdmirx
Bus info : fdee0000.hdmirx-controller
Driver version : 5.10.66
Capabilities : 0x84201000
Video Capture Multiplanar
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04201000
Video Capture Multiplanar
Streaming
Extended Pix Format
Priority: 2
DV timings:
Active width: 1920
Active height: 1080
Total width: 2200
Total height: 1125
Frame format: progressive
Polarities: -vsync -hsync
Pixelclock: 148496000 Hz (60.00 frames per second)
Horizontal frontporch: 88
Horizontal sync: 44
Horizontal backporch: 148
Vertical frontporch: 4
Vertical sync: 5
Vertical backporch: 36
Standards:
Flags:
DV timings capabilities:
Minimum Width: 640
Maximum Width: 4096
Minimum Height: 480
Maximum Height: 2160
Minimum PClock: 20000000
Maximum PClock: 600000000
Standards: CTA-861
Capabilities: Interlaced, Progressive
Format Video Capture Multiplanar:
Width/Height : 1920/1080
Pixel Format : 'BGR3' (24-bit BGR 8-8-8)
Field : None
Number of planes : 1
Flags : premultiplied-alpha, 0x000000fe
Colorspace : Unknown (0x106a5df0)
Transfer Function : Unknown (0x000000b8)
YCbCr/HSV Encoding: Unknown (0x000000ff)
Quantization : Default
Plane 0 :
Bytes per Line : 5760
Size Image : 6220800
Digital Video Controls
power_present 0x00a00964 (bitmask): max=0x00000001 default=0x00000000 value=0x00000001 flags=read-only
rock@rock5b:~$ v4l2-ctl -d /dev/video20 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Type: Video Capture Multiplanar
[0]: 'BGR3' (24-bit BGR 8-8-8)
[1]: 'NV24' (Y/CbCr 4:4:4)
[2]: 'NV16' (Y/CbCr 4:2:2)
[3]: 'NV12' (Y/CbCr 4:2:0)
rock@rock5b:~$ v4l2-ctl -d /dev/video20 --set-fmt-video=pixelformat=NV12 --verbose
VIDIOC_QUERYCAP: ok
VIDIOC_G_FMT: ok
VIDIOC_S_FMT: failed: Invalid argument
-- LOG
[46289.678510] fdee0000.hdmirx-controller: hdmirx_get_pix_fmt: pix_fmt: RGB888
[46289.678514] fdee0000.hdmirx-controller: hdmirx_get_colordepth: color_depth: 24, reg_val:4
[46289.678521] fdee0000.hdmirx-controller: get timings from ctrl
[46289.678525] fdee0000.hdmirx-controller: act:1920x1080, total:2200x1125, fps:60, pixclk:148496000
[46289.678529] fdee0000.hdmirx-controller: hfp:84, hs:48, hbp:148, vfp:4, vs:5, vbp:36
[46289.678531] fdee0000.hdmirx-controller: tmds_clk:148496000
[46289.678534] fdee0000.hdmirx-controller: interlace:0, fmt:0, vic:127, color:24, mode:dvi