Skip to content

Commit b90bceb

Browse files
author
Marek Vasut
committed
chromium: Add v4l2 m2m stateless decode configuration options
Add configuration options to enable hardware video decoding using stateless V4L2 M2M device. This allows offloading e.g. h264 video playback to Hantro VPU on i.MX8MP where this was tested. To make that work, enable 'use-v4l2' and 'proprietary-codecs' PACKAGECONFIG. For i.MX8MP the following additional udev rules are mandatory: ``` SUBSYSTEM=="video4linux", ATTR{name}=="nxp,imx8mm-vpu-g1-dec", SYMLINK+="video-dec%n" SUBSYSTEM=="video4linux", ATTR{name}=="nxp,imx8mm-vpu-g2-dec", SYMLINK+="video-dec%n" SUBSYSTEM=="media", ATTR{model}=="hantro-vpu", SYMLINK+="media-dec%n" ``` This commit was implemented with much great help from Jianfeng Liu . Signed-off-by: Marek Vasut <[email protected]>
1 parent 502433e commit b90bceb

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

meta-chromium/recipes-browser/chromium/chromium-gn.inc

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ BUILD_CC:toolchain-clang = "clang"
109109
BUILD_CXX:toolchain-clang = "clang++"
110110
BUILD_LD:toolchain-clang = "clang"
111111

112-
PACKAGECONFIG ??= "upower use-egl"
112+
PACKAGECONFIG ??= "upower use-egl use-v4l2"
113113

114114
# this makes sure the dependencies for the EGL mode are present; otherwise, the configure scripts
115115
# automatically and silently fall back to GLX
@@ -143,6 +143,10 @@ PACKAGECONFIG[upower] = ",,,upower"
143143
# but remember to also use proprietary codecs so that H.264 is supported. Also note
144144
# that not all the hardware configs might be supported.
145145
PACKAGECONFIG[use-vaapi] = "use_vaapi=true use_libgav1_parser=true,use_vaapi=false,libva"
146+
# Enable stateless V4L2 M2M video decoding support.
147+
# This requires 'proprietary-codecs' PACKAGECONFIG
148+
# to decode h264 streams on the V4L2 M2M device.
149+
PACKAGECONFIG[use-v4l2] = "use_v4l2_codec=true,use_v4l2_codec=false"
146150

147151
# Base GN arguments, mostly related to features we want to enable or disable.
148152
GN_ARGS = " \
@@ -360,6 +364,7 @@ CHROMIUM_EXTRA_ARGS ?= " \
360364
${@bb.utils.contains('PACKAGECONFIG', 'use-egl', '--use-angle=gles-egl', '', d)} \
361365
${@bb.utils.contains('PACKAGECONFIG', 'kiosk-mode', '--kiosk --no-first-run --incognito', '', d)} \
362366
${@bb.utils.contains('PACKAGECONFIG', 'gtk4', '--gtk-version=4', '', d)} \
367+
${@bb.utils.contains('PACKAGECONFIG', 'use-v4l2', '--ozone-platform-hint=wayland --enable-features=AcceleratedVideoDecoder,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL', '', d)} \
363368
"
364369

365370
# V8's JIT infrastructure requires binaries such as mksnapshot and

0 commit comments

Comments
 (0)