Add HW video engine support (#179)

* Add Cedar HW video decoder support

* Add sunxifbsink gstreamer plugin

* sunxifbsink: remove warning log
gst-omx: remove resolution check after crop

* Add gstreamer scripts

* review comments fixes

* ffmpeg: enable h264_omx encoder

* add missing hashes and use defined git commit for libcedar

* mv miyoo specific patches to board

* make `gst-omx.mk` less platform specfic

* Add header python interpreter to gst-raw.py

* Add videoscale with nearest-neighbour to play video with higher resolutions fluently

* Use HW scaler

* libcedarc: fix crash when playing 640x480 video

* kernel: Add patch to increase VRAM

* Add fast gstreamer player

* fix gst-play hangs

* Add matroska plugin

* remove target

---------

Co-authored-by: Apaczer <94932128+Apaczer@users.noreply.github.com>
This commit is contained in:
tiopex
2025-07-21 13:11:52 +02:00
committed by GitHub
parent e306510c79
commit c336dad699
31 changed files with 5363 additions and 27 deletions

View File

@@ -30,7 +30,7 @@ BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/MiyooCFW/kernel.git"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="origin/master"
BR2_LINUX_KERNEL_PATCH="board/miyoo/kernel"
BR2_LINUX_KERNEL_PATCH="board/miyoo/kernel/patch/musl"
BR2_LINUX_KERNEL_DEFCONFIG="miyoo"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="suniv-f1c100s-miyoo suniv-f1c100s-miyoo-4bit"
@@ -47,14 +47,32 @@ BR2_PACKAGE_FFMPEG_FFPLAY=y
BR2_PACKAGE_FFMPEG_FFPROBE=y
BR2_PACKAGE_FFMPEG_AVRESAMPLE=y
BR2_PACKAGE_FFMPEG_POSTPROC=y
BR2_PACKAGE_FFMPEG_ENCODERS="aac ac3 flac jpegls libx264 libx264rgb libopus mpeg1video mpeg2video mpeg4 pcm_s16be pcm_s16le pcm_s16le_planar png rawvideo vorbis wavpack zlib"
BR2_PACKAGE_FFMPEG_ENCODERS="aac ac3 flac jpegls libx264 libx264rgb libopus mpeg1video mpeg2video mpeg4 pcm_s16be pcm_s16le pcm_s16le_planar png rawvideo vorbis wavpack zlib h264_omx"
BR2_PACKAGE_FFMPEG_DECODERS="aac ac3 flac jpegls libopus mp2 mp3 mpeg1video mpeg2video mpeg4 mpegvideo png h264 hevc vc1 opus pcm_s16be pcm_s16le pcm_s16le_planar rawvideo vorbis wavpack yuv4 zlib"
BR2_PACKAGE_FFMPEG_MUXERS="ac3 avi flac ffm h264 hevc matroska ogg opus mov mp3 mp4 mpeg1video mpeg2video mpegts m4v pcm_s16be pcm_s16le rawvideo rtp wav yuv4mpegpipe"
BR2_PACKAGE_FFMPEG_DEMUXERS="aac avi h264 flac matroska mov mp3 mpegps mpegts mpegvideo ogg pcm_s16be pcm_s16le rawvideo wav yuv4mpegpipe"
BR2_PACKAGE_FFMPEG_PARSERS="aac flac ac3 h264 hevc mpegaudio mpeg4video mpegvideo opus vc1 vorbis"
BR2_PACKAGE_FFMPEG_BSFS=""
BR2_PACKAGE_FFMPEG_PROTOCOLS="file"
BR2_PACKAGE_FFMPEG_EXTRACONF="--enable-small"
BR2_PACKAGE_FFMPEG_EXTRACONF="--enable-small --enable-omx"
BR2_PACKAGE_GSTREAMER1=y
BR2_PACKAGE_GST1_PLUGINS_BASE_INSTALL_TOOLS=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOCONVERT=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEORATE=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ALSA=y
BR2_PACKAGE_GST1_PLUGINS_GOOD=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AUTODETECT=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MATROSKA=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_VIDEOFILTER=y
BR2_PACKAGE_GST1_PLUGINS_BAD=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUTOCONVERT=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RAWPARSE=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOPARSERS=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOSIGNAL=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FBDEV=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FDK_AAC=y
BR2_PACKAGE_GST_FBDEV2_PLUGINS=y
BR2_PACKAGE_GST_OMX=y
BR2_PACKAGE_VORBIS_TOOLS=y
BR2_PACKAGE_P7ZIP=y
BR2_PACKAGE_XZ=y
@@ -115,6 +133,10 @@ BR2_PACKAGE_DBUS=y
BR2_PACKAGE_GPTFDISK=y
BR2_PACKAGE_GPTFDISK_GDISK=y
BR2_PACKAGE_GPTFDISK_SGDISK=y
BR2_PACKAGE_LIBCEDARC=y
BR2_PACKAGE_LIBCEDARC_ARCHLIB="toolchain-sunxi-arm9-musl"
BR2_PACKAGE_LIBCEDARC_DECODER=y
BR2_PACKAGE_LIBCEDARC_OPENMAX=y
BR2_PACKAGE_LINUXCONSOLETOOLS=y
BR2_PACKAGE_LINUXCONSOLETOOLS_JOYSTICK=y
BR2_PACKAGE_PARTED=y