# SPDX-License-Identifier: CC0-1.0
#
# SPDX-FileContributor: Adrian "asie" Siekierka, 2023

# TODO: trim down decoder/parser/demuxer/bsf list
pkgname=(runtime-ffmpeg runtime-ffmpeg-dev)
pkgver=8.0.1
pkgrel=1
epoch=
pkgdesc="ffmpeg video library"
arch=("i686" "x86_64" "armv6h" "aarch64")
url="http://www.ffmpeg.org"
license=("MIT")
source=(
	"https://www.ffmpeg.org/releases/ffmpeg-$pkgver.tar.xz"
)
depends=(runtime-musl)
makedepends=(runtime-musl-dev)
sha256sums=(
	"05ee0b03119b45c0bdb4df654b96802e909e0a752f72e4fe3794f487229e5a41"
)

. "/wf/config/runtime-env-vars.sh"

prepare() {
	cd "ffmpeg-$pkgver"
}

build() {
	EXTRA_ARGS=
	if [ "$WF_HOST_OS" == "windows" ]; then
		EXTRA_ARGS=--target-os=mingw32
	fi

	cd "ffmpeg-$pkgver"
	./configure \
		--prefix="$WF_PATH" --arch="$CARCH" \
		--extra-cflags="$WF_RUNTIME_INCLUDES" \
		--extra-ldflags="$WF_RUNTIME_LDFLAGS" \
		--disable-static --enable-shared \
		--disable-gpl --disable-version3 \
		--disable-programs --disable-network \
		--disable-autodetect --disable-iconv \
		--disable-doc \
		--disable-avfilter \
		--disable-everything \
		--enable-decoder=ffv1,ffvhuff,huffyuv,vp8,vp9 \
		--enable-decoder=mjpeg,bmp,gif,png,flac,vorbis,theora \
		--enable-decoder=rawvideo,pcm_f16le,pcm_f32le,pcm_s16le \
		--enable-decoder=pcm_u16le,pcm_mulaw,pcm_alaw,pcm_u8,pcm_s8 \
		--enable-decoder=opus,mp3 \
		--enable-parser=bmp,flac,mjpeg,opus,png,vorbis,vp8,vp9 \
		--enable-demuxer=apng,avi,flac,matroska,ogg,wav \
		--enable-demuxer=pcm_alaw,pcm_s16le,pcm_u16le,pcm_s8,pcm_u8 \
		--enable-demuxer=image2,mov,rawvideo,mp3 \
		--enable-protocol=file $EXTRA_ARGS
	make
}

package_runtime-ffmpeg() {
	cd "ffmpeg-$pkgver"
	make DESTDIR="$pkgdir" install
	cd "$pkgdir"
	wf_relocate_path_to_destdir
	if [ "$WF_HOST_OS" == "windows" ]; then
		rm -r include share lib
	else
		rm -r include share lib/pkgconfig
	fi
}

package_runtime-ffmpeg-dev() {
	pkgdesc="ffmpeg runtime development files"
	depends=(runtime-ffmpeg)

	cd "ffmpeg-$pkgver"
	make DESTDIR="$pkgdir" install
	cd "$pkgdir"
	wf_relocate_path_to_destdir
	if [ "$WF_HOST_OS" == "windows" ]; then
		rm -r bin
	else
		rm -r lib/*"$WF_LIBRARY_SUFFIX" lib/*"$WF_LIBRARY_SUFFIX".*
	fi
}
