# Contributor: Sergei Lukin <sergej.lukin@gmail.com>
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Contributor: Jakub Skrzypnik <j.skrzypnik@openmailbox.org>
# Maintainer: FintasticMan <finlay.neon.kid@gmail.com>
pkgname=jellyfin-ffmpeg
pkgver=7.0.2_p7
_pkgver="${pkgver/_p/-}"
pkgrel=1
pkgdesc="Modified version of FFmpeg for Jellyfin"
url="https://github.com/jellyfin/jellyfin-ffmpeg"
arch="all"
license="GPL-3.0-only"
makedepends="
	alsa-lib-dev
	bzip2-dev
	chromaprint-dev
	coreutils
	dav1d-dev
	fontconfig-dev
	freetype-dev
	fribidi-dev
	gmp-dev
	imlib2-dev
	lame-dev
	libass-dev
	libbluray-dev
	libdrm-dev
	libopenmpt-dev
	libplacebo-dev
	libtheora-dev
	libva-dev
	libvorbis-dev
	libvpx-dev
	libwebp-dev
	nasm
	opencl-dev
	openssl-dev
	opus-dev
	perl-dev
	shaderc-dev
	vulkan-loader-dev
	x264-dev
	x265-dev
	xz-dev
	zimg-dev
	zlib-dev
	"
checkdepends="rsync"
source="$pkgname-$_pkgver.tar.gz::https://github.com/jellyfin/jellyfin-ffmpeg/archive/refs/tags/v$_pkgver.tar.gz
	v4l-ioctl.patch
	mlpdsp_armv5te-labels.patch
	"
options="!check" # tests/data/hls-lists.append.m3u8 fails
builddir="$srcdir/$pkgname-$_pkgver"

case "$CARCH" in
x86_64)
	makedepends="$makedepends onevpl-dev"
	_onevpl="--enable-libvpl"
	;;
esac

prepare() {
	default_prepare

	for i in debian/patches/*.patch; do
		patch -p1 -i "$i"
	done
}

build() {
	case "$CARCH" in
	x86) local asm="--disable-asm" ;;
	esac

	./configure \
		--prefix="/usr/lib/$pkgname" \
		--target-os=linux \
		--extra-version=Jellyfin \
		--disable-doc \
		--disable-ffplay \
		--disable-librtmp \
		--disable-libxcb \
		--disable-sdl2 \
		--disable-shared \
		--disable-xlib \
		--enable-chromaprint \
		--enable-gmp \
		--enable-gpl \
		--enable-libass \
		--enable-libbluray \
		--enable-libdav1d \
		--enable-libdrm \
		--enable-libfontconfig \
		--enable-libfreetype \
		--enable-libfribidi \
		--enable-libmp3lame \
		--enable-libopenmpt \
		--enable-libopus \
		--enable-libplacebo \
		--enable-libshaderc \
		--enable-libtheora \
		--enable-libvorbis \
		--enable-libvpx \
		--enable-libwebp \
		--enable-libx264 \
		--enable-libx265 \
		--enable-libzimg \
		--enable-opencl \
		--enable-openssl \
		--enable-pic \
		--enable-pthreads \
		--enable-static \
		--enable-vaapi \
		--enable-version3 \
		--enable-vulkan \
		$asm \
		$_onevpl
	make
}

# https://ffmpeg.org/fate.html
check() {
	./configure \
		--samples=fate-suite/
	make fate-rsync
	make fate-list
	make fate
}

package() {
	install -Dm755 -t "$pkgdir/usr/lib/$pkgname" ffmpeg ffprobe
}

sha512sums="
8ca54470616fedc646983bf7a7e61701c59e7dcda8663bd904885faf95e1f9a569ee0966da2f763b96d500231b0ca4d13dbd865b611c8ecd52b12277f3d3fb53  jellyfin-ffmpeg-7.0.2-7.tar.gz
35d425626f90edfdb6d782d36e642c68ff5ff92ca8d424ef36cd97475960e0b530c97791191d6a704c4382bc39a9db8a5e92063989c516112a23c6b27f64b606  v4l-ioctl.patch
a678b4721e06bde21e34778c859e3826e3d60c8e9ae35b21b33cf480279ea7b57814216a2fe223a50eb9a1f98145cac0c8835e0c54d6f55fc2f6f08c1aa0db83  mlpdsp_armv5te-labels.patch
"
