Jump to content

Hardware video acceleration

From postmarketOS Wiki
Revision as of 07:32, 6 March 2024 by Jenneron (talk | contribs) (Firefox)
Icon This page could use some expansion. If you'd like to help out, feel free to edit this article!

Hardware video acceleration makes it possible for the video decoder/encoder to decode/encode video, thus offloading the CPU and saving power.

Supported codecs

Decode

Hardware Description API H.263 H.264 H.264 MVC H.265 VP8 VP9 MPEG-2 MPEG-4 VC1 VC1RCV Xvid
Venus Qualcomm Snapdragon SoCs v4l2m2m Y Y - Y Y Y Y Y Y - Y
Hantro Rockchip SoCs / NXP i.MX8 SoCs - Y - - Y - Y - - - -
rkvdec1 Rockchip SoCs (rk32xx - rk33xx) v4l2-request - Y - N - Y - - - - -
rkvdec2 Rockchip SoCs (rk356x) - N - N - N - - - - -
MFC v5 Exynos 4, S5PV210 v4l2m2m N N - - - - N N N N -
MFC v6+ Exynos 5250 (v6), 5420 (v7), 3250 (v7), 5800 (v8) v4l2m2m Y Y Y N Y Y Y Y Y Y -
mtk-vpu MediaTek SoCs v4l2-request - Y - - - - - -
VDE Nvidia Tegra T20/T30/T114. T124 is not supported. - P N - N - N N N - -

Encode

Hardware Description API H.263 H.264 H.264 MVC H.265 VP8 VP9 MPEG-2 MPEG-4 VC1 VC1RCV Xvid
Venus Qualcomm Snapdragon SoCs v4l2m2m Y Y Y Y Y - - Y - - -
Hantro Rockchip SoCs - N - - N - - - - - -
rkvenc2 Rockchip SoCs (rk356x) - - - N - N - - - - -
MFC v5 Exynos 4, S5PV210 v4l2m2m N N - - - - - N - - -
MFC v6+ Exynos 5250 (v6), 5420 (v7), 3250 (v7), 5800 (v8) v4l2m2m Y Y Y N Y - - Y - - -
mtk-vpu MediaTek SoCs v4l2-request - Y - - - - - -
VDE Nvidia Tegra T20/T30/T114/T124. - N N - N - - - - - -

Status legend

Code Meaning
Y Fully implemented
P Partially implemented
N Broken / unsupported in mainline
Untested / unknown
- Unsupported by hardware

APIs

v4l2-request

TODO

v4l2m2m

TODO

libvdpau

TODO

VA-API

TODO

Usage

Applications

Chromium

Chromium has related code, but it is enabled only for Chrome OS builds.

Firefox

v4l2m2m works for h264

Clapper

https://flathub.org/apps/com.github.rafostar.Clapper can use v4l2-request api

mpv

mpv can do video decoding with v4l2m2m with --hwdec=v4l2m2m-copy

Moonlight

Works with va-api and v4l2m2m

Testing

TODO: Add potential good examples and validate. Potential candidates: