1SUMMARY="A cross-platform multimedia framework"
2DESCRIPTION="QtAV is a multimedia playback library based on Qt and FFmpeg. \
3It can help you to write a player with less effort than ever before.
4
5QtAV can meet your most demands:
6
7* Hardware decoding suppprt: DXVA2, VAAPI, VDA/VideoToolbox, CedarX, CUDA
8* OpenGL and ES2 support for almost all formats including Hi10P videos
9* Real time preview
10* Video capture in rgb and yuv format
11* OSD and custom filters
12* Filters in libavfilter, for example stero3d, blur
13* Subtitle track select. Dynamic change FFmpeg and libass engine
14* Play frame by frame
15* Playback speed control
16* Variant streams: locale file, http, rtsp etc. and your custom streams
17* Audio channel, tracks and external audio tracks
18* Dynamically change render engine when playing.
19* Dynamically change video decoder
20* Multiple video outputs for 1 player
21* Video eq(software and OpenGL): brightness, contrast, saturation, hue
22* QML support. Most playback APIs are compatible with QtMultimedia module
23* Compatiblity: QtAV can be built with both Qt4 and Qt5, FFmpeg(>=1.0) \
24and Libav (>=9.0). Latest FFmpeg release is recommended.
25
26Extensible Framework
27
28Some components in QtAV are designed to be extensible. For example, \
29you can write your decoder, audio output for particular platform."
30HOMEPAGE="http://www.qtav.org/"
31COPYRIGHT="2013-2019 Wang Bin"
32LICENSE="GNU LGPL v2.1"
33REVISION="1"
34SOURCE_URI="https://github.com/wang-bin/QtAV/archive/v$portVersion.tar.gz"
35CHECKSUM_SHA256="a493d54d105b32c526f05188e4d7a8cf3508ecac697aae088721ffad20982288"
36SOURCE_DIR="QtAV-$portVersion"
37srcGitRev_2="6a5f3006533b79aa57a3a54cf9df4442a356dd48"
38SOURCE_URI_2="https://raw.githubusercontent.com/wang-bin/capi/$srcGitRev_2/capi.h#noarchive"
39CHECKSUM_SHA256_2="3b684223aafb5d4f3faf862b578547f7acd9b6e8d83b452271672f714b67b13d"
40PATCHES="qtav-$portVersion.patchset
41	5abba7f0.patch
42	5263d9d9.patch"
43
44ARCHITECTURES="all !x86_gcc2"
45SECONDARY_ARCHITECTURES="x86"
46
47libVersion="$portVersion"
48libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
49
50PROVIDES="
51	qtav$secondaryArchSuffix = $portVersion
52#	cmd:player$secondaryArchSuffix = $portVersion #crashes
53#	cmd:qmlplayer$secondaryArchSuffix = $portVersion #crashes
54	lib:libqtav$secondaryArchSuffix = $libVersionCompat
55	lib:libqtavwidgets$secondaryArchSuffix = $libVersionCompat
56	"
57REQUIRES="
58	haiku$secondaryArchSuffix
59	lib:libass$secondaryArchSuffix
60	lib:libavcodec$secondaryArchSuffix
61	lib:libavdevice$secondaryArchSuffix
62	lib:libavfilter$secondaryArchSuffix
63	lib:libavformat$secondaryArchSuffix
64	lib:libavutil$secondaryArchSuffix
65	lib:libgl$secondaryArchSuffix
66	lib:libopenal$secondaryArchSuffix
67#	lib:libportaudio$secondaryArchSuffix
68	lib:libQt5Core$secondaryArchSuffix
69	lib:libQt5Gui$secondaryArchSuffix
70	lib:libQt5Widgets$secondaryArchSuffix
71	lib:libswresample$secondaryArchSuffix
72	lib:libswscale$secondaryArchSuffix
73	lib:libuchardet$secondaryArchSuffix
74	"
75
76PROVIDES_devel="
77	qtav${secondaryArchSuffix}_devel = $portVersion
78	devel:libqtav$secondaryArchSuffix = $libVersionCompat
79	devel:libqtavwidgets$secondaryArchSuffix = $libVersionCompat
80	"
81REQUIRES_devel="
82	haiku${secondaryArchSuffix}_devel
83	qtav$secondaryArchSuffix == $portVersion base
84	"
85
86BUILD_REQUIRES="
87	haiku${secondaryArchSuffix}_devel
88	devel:libass$secondaryArchSuffix
89	devel:libavcodec$secondaryArchSuffix >= 58
90	devel:libavdevice$secondaryArchSuffix >= 58
91	devel:libavfilter$secondaryArchSuffix >= 7
92	devel:libavformat$secondaryArchSuffix >= 58
93	devel:libavutil$secondaryArchSuffix >= 56
94	devel:libgl$secondaryArchSuffix
95	devel:libopenal$secondaryArchSuffix
96#	devel:libportaudio$secondaryArchSuffix
97	devel:libQt5Core$secondaryArchSuffix
98	devel:libswresample$secondaryArchSuffix >= 3
99	devel:libswscale$secondaryArchSuffix
100	devel:libuchardet$secondaryArchSuffix
101	"
102BUILD_PREREQUIRES="
103	cmd:cmake
104	cmd:find
105	cmd:g++$secondaryArchSuffix
106	cmd:lrelease$secondaryArchSuffix >= 5
107	cmd:make
108	cmd:pkg_config$secondaryArchSuffix
109	cmd:qmake$secondaryArchSuffix >= 5
110	cmd:xargs
111	"
112
113BUILD()
114{
115	cp $sourceDir2/capi.h $sourceDir/contrib/capi
116
117	cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release \
118		-DCMAKE_INSTALL_PREFIX=$prefix \
119		-DCMAKE_INSTALL_HEADERS=$includeDir \
120		-DCMAKE_INSTALL_LIBS=$libDir \
121		-DCMAKE_INSTALL_BINS=$binDir \
122		-DCMAKE_INSTALL_QML=$dataDir/Qt5/qml \
123		-DBUILD_TESTS=OFF \
124		-DBUILD_EXAMPLES=OFF \
125		-DBUILD_PLAYERS=OFF \
126		-DBUILD_QT5OPENGL=ON \
127		-DHAVE_PORTAUDIO=OFF \
128		-DHAVE_PULSE=OFF \
129		-DHAVE_VAAPI=OFF
130	make -C build $jobArgs
131}
132
133INSTALL()
134{
135	make -C build install
136
137	prepareInstalledDevelLibs \
138		libQtAV \
139		libQtAVWidgets
140
141	# devel package
142	packageEntries devel \
143		$developDir \
144		$libDir/cmake
145}
146