qtavplayer

A cross-platform multimedia playback framework based on Qt and FFmpeg

runtime dependencies qt5quickcontrols (Graphic libraries and applications/Other GUIs)
qt5svg (Graphic libraries and applications/Other GUIs)
qt5declarative (Graphic libraries and applications/Other GUIs)
qt5multimedia (Graphic libraries and applications/Other GUIs)
ffmpeg (Audio and video applications)
openal (Libraries/Audio/Sound)
xlib_libXv (Graphic libraries/X11R7 Applications)
uchardet
build dependencies sip-tools
apt install sip-tools
mkdir /data/buildroot/package/qtavplayer
cat > /data/buildroot/package/qtavplayer/Config.in<< 'EOF'
config BR2_PACKAGE_QTAVPLAYER
        bool "qtavplayer"
        depends on BR2_PACKAGE_QT5QUICKCONTROLS
        depends on BR2_PACKAGE_QT5SVG
        depends on BR2_PACKAGE_QT5DECLARATIVE
        depends on BR2_PACKAGE_QT5MULTIMEDIA
        depends on BR2_PACKAGE_FFMPEG
        depends on BR2_PACKAGE_OPENAL
        depends on BR2_PACKAGE_XLIB_LIBXV
        depends on BR2_PACKAGE_UCHARDET
        help
          A cross-platform multimedia playback framework based on Qt and FFmpeg
EOF

cat > /data/buildroot/package/qtavplayer/qtavplayer.mk<< 'EOF'
#############################################################
#
# qtavplayer
#https://github.com/wang-bin/QtAV/archive/refs/tags/v1.12.0.tar.gz
#############################################################
QTAVPLAYER_SITE    = https://github.com/valbok/QtAVPlayer.git
QTAVPLAYER_SITE_METHOD = git

QTAVPLAYER_DEPENDENCIES = qt5quickcontrols qt5svg qt5declarative ffmpeg openal xlib_libXv uchardet
QTAVPLAYER_INSTALL_TARGET = YES
QTAVPLAYER_SUPPORTS_IN_SOURCE_BUILD = NO 
    
QTAVPLAYER_CONF_OPTS = -DCMAKE_TOOLCHAIN_FILE=$(HOST_DIR)/share/buildroot/toolchainfile.cmake \
    -DQt5Multimedia_DIR=$(TARGET_DIR)/usr/share/cmake/Qt5Multimedia \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DBUILD_TESTING=OFF \
    -DBUILD_QCH=OFF
    
define QTAVPLAYER_CONFIGURE_CMDS
  if [[ ! -d $(@D)/qtavplayer ]];then git clone $(QTAVPLAYER_SITE) $(@D)/qtavplayer; fi
  if [[ ! -L "$(HOST_DIR)/usr/lib/libpcre.so.3" ]]; then ln -s $(HOST_DIR)/usr/lib/libpcre.so $(HOST_DIR)/usr/lib/libpcre.so.3; fi
  if [[ ! -d $(@D)/buildroot-build ]]; then mkdir $(@D)/buildroot-build; fi
  cd $(@D)/buildroot-build && \
  LDFLAGS="$(LDFLAGS) -pthread -Wl,--as-needed -Wl,--allow-shlib-undefined" cmake "$(@D)/qtavplayer/" $(QTAVPLAYER_CONF_OPTS)
endef

$(eval $(cmake-package))
EOF

sed -i '/menu "Custom packages"/a source "package/qtavplayer/Config.in"' /data/buildroot/package/Config.in