mirror of
git://git.yoctoproject.org/meta-rockchip.git
synced 2025-07-05 05:04:47 +02:00
![]() 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 ! fakesink
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:
- gstreamer1.0-plugins-bad (for fakesink and v4l2slh264dec)
- gstreamer1.0-plugins-base (for parsebin)
waylandsink isn't used with weston because of rendering glitches, c.f.
https://gitlab.freedesktop.org/wayland/weston/-/issues/839. While the
link specifies it is for RK3399, PX30 is also impacted, albeit
differently since a different kind of glitch can be seen (like seeing
the image through a negative filter).
This is fixed in Styhead.
=== RK3399
Tested on RK3399 Puma with Haikou:
$ gst-launch-1.0 filesrc location=$FILE ! parsebin ! v4l2slh264dec ! fakesink
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:
- gstreamer1.0-plugins-bad (for fakesink and v4l2codecs)
- gstreamer1.0-plugins-base (for parsebin)
waylandsink isn't used with weston because of rendering glitches, c.f.
https://gitlab.freedesktop.org/wayland/weston/-/issues/839.
This is fixed in Styhead.
=== RK3588
Tested on a RK3588 Jaguar with HDMI - on a downstream v6.11-rc6
(upstream-based, not Rockchip BSP-based) with a bunch of patches - :
$ gst-launch-1.0 filesrc location=$FILE ! parsebin ! v4l2slh264dec ! fakesink
with FILE storing the path to any h264 file, e.g.
https://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_1080p_h264.mov
$ gst-launch-1.0 filesrc location=$FILE ! parsebin ! v4l2slmpeg2dec ! fakesink
with FILE storing the path to any MPEG2 file, e.g.
https://drive.google.com/file/d/0BwxFVkl63-lETXlOa3hEMmVyZGM/view?resourcekey=0-FG5JbjCsd8QduRhkZ2aT8A
$ gst-launch-1.0 filesrc location=$FILE ! parsebin ! v4l2slvp8dec ! fakesink
with FILE storing the path to any VP8 file, e.g.
https://test-videos.co.uk/vids/bigbuckbunny/webm/vp8/1080/Big_Buck_Bunny_1080_10s_30MB.webm
Needed packages are:
- gstreamer1.0-plugins-bad (for fakesink and v4l2codecs)
- gstreamer1.0-plugins-base (for parsebin)
waylandsink isn't used with weston because starting gst-launch makes
weston segfault.
(cherry picked from commit
|
||
---|---|---|
.. | ||
machine | ||
layer.conf |