Files
haikuports/media-video/qtav/qtav-1.12.0.recipe
Augustin Cavalier d530e87158 Bump all dependents of FFmpeg (again.)
Sorry for the noise...
2018-07-02 20:07:00 -04:00

176 lines
5.5 KiB
Bash

SUMMARY="A cross-platform multimedia framework"
DESCRIPTION="QtAV is a multimedia playback library based on Qt and FFmpeg. \
It can help you to write a player with less effort than ever \
before.
QtAV can meet your most demands:
* Hardware decoding suppprt: DXVA2, VAAPI, VDA/VideoToolbox, CedarX, CUDA
* OpenGL and ES2 support for almost all formats including Hi10P videos
* Real time preview
* Video capture in rgb and yuv format
* OSD and custom filters
* Filters in libavfilter, for example stero3d, blur
* Subtitle track select. Dynamic change FFmpeg and libass engine
* Play frame by frame
* Playback speed control
* Variant streams: locale file, http, rtsp etc. and your custom streams
* Audio channel, tracks and external audio tracks
* Dynamically change render engine when playing.
* Dynamically change video decoder
* Multiple video outputs for 1 player
* Video eq(software and OpenGL): brightness, contrast, saturation, hue
* QML support. Most playback APIs are compatible with QtMultimedia module
* Compatiblity: QtAV can be built with both Qt4 and Qt5, FFmpeg(>=1.0) \
and Libav (>=9.0). Latest FFmpeg release is recommended.
Extensible Framework
Some components in QtAV are designed to be extensible. For example, \
you can write your decoder, audio output for particular platform."
HOMEPAGE="http://www.qtav.org/"
COPYRIGHT="2013-2017 Wang Bin"
LICENSE="GNU LGPL v2.1"
REVISION="3"
SOURCE_URI="https://github.com/wang-bin/QtAV/archive/v$portVersion.tar.gz"
CHECKSUM_SHA256="65ab859985d73521c2d17e72117baae0f3f6242b69f59994acada76fa5364193"
SOURCE_DIR="QtAV-$portVersion"
ARCHITECTURES="!x86_gcc2 x86 ?x86_64"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
qtav$secondaryArchSuffix = $portVersion
lib:libqtav$secondaryArchSuffix = 1.11.0 compat >= 1
lib:libqtavwidgets$secondaryArchSuffix = 1.11.0 compat >= 1
cmd:ao$secondaryArchSuffix = $portVersion
cmd:audiopipeline$secondaryArchSuffix = $portVersion
cmd:decoder$secondaryArchSuffix = $portVersion
cmd:extract$secondaryArchSuffix = $portVersion
cmd:filters$secondaryArchSuffix = $portVersion
cmd:framereader$secondaryArchSuffix = $portVersion
cmd:glslfilter$secondaryArchSuffix = $portVersion
cmd:player$secondaryArchSuffix = $portVersion
cmd:playerthread$secondaryArchSuffix = $portVersion
cmd:qiodevice$secondaryArchSuffix = $portVersion
cmd:qmlplayer$secondaryArchSuffix = $portVersion
cmd:qrc$secondaryArchSuffix = $portVersion
cmd:shader$secondaryArchSuffix = $portVersion
cmd:sharedoutput$secondaryArchSuffix = $portVersion
cmd:simpleplayer$secondaryArchSuffix = $portVersion
cmd:simpletranscode$secondaryArchSuffix = $portVersion
cmd:subtitle$secondaryArchSuffix = $portVersion
cmd:transcode$secondaryArchSuffix = $portVersion
cmd:videocapture$secondaryArchSuffix = $portVersion
cmd:videographicsitem$secondaryArchSuffix = $portVersion
cmd:videogroup$secondaryArchSuffix = $portVersion
cmd:videowall$secondaryArchSuffix = $portVersion
cmd:window$secondaryArchSuffix = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
qt5$secondaryArchSuffix
lib:libass$secondaryArchSuffix
lib:libavcodec$secondaryArchSuffix
lib:libavdevice$secondaryArchSuffix
lib:libavfilter$secondaryArchSuffix
lib:libavformat$secondaryArchSuffix
lib:libpostproc$secondaryArchSuffix
lib:libavresample$secondaryArchSuffix
lib:libswresample$secondaryArchSuffix
lib:libswscale$secondaryArchSuffix
lib:libavutil$secondaryArchSuffix
lib:libgl$secondaryArchSuffix
lib:libopenal$secondaryArchSuffix
lib:libuchardet$secondaryArchSuffix
"
PROVIDES_devel="
qtav$secondaryArchSuffix = $portVersion
devel:libqtav$secondaryArchSuffix = 1.11.0 compat >= 1
devel:libqtavwidgets$secondaryArchSuffix = 1.11.0 compat >= 1
"
REQUIRES_devel="
haiku${secondaryArchSuffix}_devel
qt5${secondaryArchSuffix}_devel
devel:libass$secondaryArchSuffix
devel:libavcodec$secondaryArchSuffix
devel:libavdevice$secondaryArchSuffix
devel:libavfilter$secondaryArchSuffix
devel:libavformat$secondaryArchSuffix
devel:libpostproc$secondaryArchSuffix
devel:libavresample$secondaryArchSuffix
devel:libswresample$secondaryArchSuffix
devel:libswscale$secondaryArchSuffix
devel:libavutil$secondaryArchSuffix
devel:libgl$secondaryArchSuffix
devel:libopenal$secondaryArchSuffix
devel:libuchardet$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
qt5${secondaryArchSuffix}_devel
devel:libass$secondaryArchSuffix
devel:libavcodec$secondaryArchSuffix
devel:libavdevice$secondaryArchSuffix
devel:libavfilter$secondaryArchSuffix
devel:libavformat$secondaryArchSuffix
devel:libpostproc$secondaryArchSuffix
devel:libavresample$secondaryArchSuffix
devel:libswresample$secondaryArchSuffix
devel:libswscale$secondaryArchSuffix
devel:libavutil$secondaryArchSuffix
devel:libgl$secondaryArchSuffix
devel:libopenal$secondaryArchSuffix
devel:libuchardet$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:find
cmd:g++$secondaryArchSuffix
cmd:make
cmd:pkg_config$secondaryArchSuffix
cmd:qmake$secondaryArchSuffix >= 5.5
cmd:xargs
"
BUILD()
{
mkdir -p build
cd build
qmake ..
make $jobArgs
}
INSTALL()
{
cd build
mkdir -p $libDir
mkdir -p $includeDir
mkdir -p $dataDir/qml/QtAV/
mkdir -p $binDir
cp -f lib_unix*/*Qt*AV*.so* $libDir/
cp -R tools/install_sdk/mkspecs $dataDir/Qt5/
cp -f ../qml/plugins.qmltypes $dataDir/qml/QtAV/
cp -R ../src/QtAV/ $includeDir/
cp -R ../widgets/QtAVWidgets/ $includeDir/
cp -f -R bin/QtAV $dataDir/qml
rm -rf bin/QtAV
cp -f bin/* $binDir/
prepareInstalledDevelLibs \
libQtAV \
libQtAVWidgets
# devel package
packageEntries devel \
$developDir
}
TEST()
{
make check
}