meta-rockchip/conf/machine
Quentin Schulz 91a694e250 enable HW VPU decoding for SoCs that have stateless VPUs
v4l2codecs is the gstreamer plugin for V4L2 stateless video hardware
decoding. The Rockchip SoCs that have a VPU all seems to be based on
Hantro, RKVDEC or RKVDECv2, all stateless encoding/decoding VPUs.

Therefore, let's enable VPU decoding in Gstreamer whenever possible,
when the SoC supports it.

PX30, RK3066, RK3188, RK3288, RK3328, RK3399, RK356x and RK3588(s) all
have at least one Hantro VPU.

RK3328, RK3399, RK356x and RK3588(s) all have at least one
RKVDEC/RKVDECv2 VPU (though not necessarily supported in the upstream
kernel just yet).

=== PX30
Tested on PX30 Ringneck with with Haikou+Haikou Video Demo adapter:

$ gst-launch-1.0 filesrc location=$FILE ! parsebin ! v4l2slh264dec ! waylandsink

with FILE storing the path to any h264 file, e.g.
https://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_720p_h264.mov
https://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_1080p_h264.mov

Needed packages are:
- weston
- gstreamer1.0-plugins-bad (for waylandsink and v4l2slh264dec)
- gstreamer1.0-plugins-base (for parsebin)

A few frames are dropped every other second for 1080p but otherwise
smooth.

=== RK3399
Tested on RK3399 Puma with Haikou:

$ gst-launch-1.0 filesrc location=$FILE ! parsebin ! v4l2slh264dec ! waylandsink

with FILE storing the path to any h264 file, e.g.
https://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_1080p_h264.mov
https://download.blender.org/demo/movies/BBB/bbb_sunflower_2160p_30fps_normal.mp4.zip

Needed packages are:
- weston
- gstreamer1.0-plugins-bad (for waylandsink and v4l2codecs)
- gstreamer1.0-plugins-base (for parsebin)

=== RK3588

Tested on a RK3588 Tiger with Haikou+Haikou Video Demo adapter - on a
downstream v6.6 (upstream-based, not Rockchip BSP-based) with DSI
patches - :

$ gst-launch-1.0 filesrc location=$FILE ! parsebin ! v4l2slav1dec ! fakesink

with FILE storing the path to any AV1 file, e.g.
http://download.opencontent.netflix.com.s3.amazonaws.com/AV1/cmaf/spark-8b-59.94fps/spark_606kbps_432p.mp4
https://woolyss.com/f/av1-nosound-chimera.mp4
https://woolyss.com/f/av1-opus-sita.webm

Needed packages are:
- gstreamer1.0-plugins-bad (for fakesink and v4l2slav1dec)
- gstreamer1.0-plugins-base (for parsebin)

For some reason though, waylandsink is very choppy. Combining
fpsdisplaysink with fakesink shows a ~60fps when decoding the 432p file,
~24fps for the two others.
Note that 10b-depth isn't supported (at least in my setup).

Reviewed-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-08-29 19:27:56 -04:00
..
include enable HW VPU decoding for SoCs that have stateless VPUs 2024-08-29 19:27:56 -04:00
firefly-rk3288.conf KERNEL_DEVICETREE: 32-bit re-org 2024-01-24 20:57:59 -05:00
marsboard-rk3066.conf KERNEL_DEVICETREE: 32-bit re-org 2024-01-24 20:57:59 -05:00
nanopi-m4-2gb.conf NanoPi-M4: add machines 2021-03-23 10:15:03 -04:00
nanopi-m4.conf NanoPi-M4: add machines 2021-03-23 10:15:03 -04:00
nanopi-m4b.conf nanopi-m4b: add 2023-10-30 09:39:09 -04:00
nanopi-r2s.conf nanopi-r2s: add 2023-10-02 18:58:58 -04:00
nanopi-r4s.conf nanopi-r4s: add 2023-09-21 22:48:41 -04:00
orangepi-5-plus.conf orangepi-5-plus: add 2024-01-20 16:20:37 -05:00
radxa-zero-3e.conf radxa-zero-3w: add 2024-06-14 10:13:29 -04:00
radxa-zero-3w.conf radxa-zero-3w: add 2024-06-14 10:13:29 -04:00
radxarock.conf KERNEL_DEVICETREE: 32-bit re-org 2024-01-24 20:57:59 -05:00
roc-rk3308-cc.conf roc-rk3308-cc: add 2024-01-17 15:04:03 -05:00
roc-rk3328-cc.conf roc-rk3328-cc: add 2024-01-17 15:04:03 -05:00
rock-3a.conf rock-3a: add 2024-01-20 16:20:37 -05:00
rock-4c-plus.conf rock-4c-plus: add 2024-01-20 16:20:37 -05:00
rock-5a.conf rock-5[ab]: use regular yocto kernel 2024-03-07 17:05:07 -05:00
rock-5b.conf rock-5[ab]: use regular yocto kernel 2024-03-07 17:05:07 -05:00
rock-pi-4a.conf rock-pi-4: Split our variant machines 2021-01-29 22:10:49 -05:00
rock-pi-4b.conf rock-pi-4: Split our variant machines 2021-01-29 22:10:49 -05:00
rock-pi-4c.conf rock-pi-4: Split our variant machines 2021-01-29 22:10:49 -05:00
rock-pi-e.conf rock-pi-e.conf: remove redundant MACHINEOVERRIDES 2023-10-02 17:55:02 -04:00
rock-pi-s.conf rock-pi-s: add 2023-11-02 15:51:36 -04:00
rock2-square.conf enable stored U-Boot environment 2024-05-23 15:47:18 -04:00
rock64.conf use uuid instead of hard-coding root device 2021-09-20 12:52:03 -04:00
tinker-board-s.conf KERNEL_DEVICETREE: 32-bit re-org 2024-01-24 20:57:59 -05:00
tinker-board.conf KERNEL_DEVICETREE: 32-bit re-org 2024-01-24 20:57:59 -05:00
vyasa-rk3288.conf KERNEL_DEVICETREE: 32-bit re-org 2024-01-24 20:57:59 -05:00