maintainer="Krassy Boykinov <kboykinov@teamcentrixx.com>"
pkgname=gst-plugins-bad
pkgver=1.26.1
pkgrel=1
pkgdesc="GStreamer streaming media framework bad plug-ins"
url="https://gstreamer.freedesktop.org/"
arch="all"
license="GPL-2.0-or-later LGPL-2.0-or-later"
options="!check" # 4 out of 51 tests fail as of 1.20.1
replaces="gst-plugins-bad1"
# chromaprint causes a circular dependency:
# pipewire -> libcamera -> here -> chromaprint -> ffmpeg -> sdl2 -> pipewire
makedepends="
	alsa-lib-dev
	aom-dev
	bluez-dev
	bzip2-dev
	curl-dev
	directfb-dev
	faac-dev
	faad2-dev
	fdk-aac-dev
	flite-dev
	glib-dev
	glu-dev
	gobject-introspection-dev
	gsm-dev
	gst-plugins-base-dev
	gstreamer-dev
	gtk+3.0-dev
	lcms2-dev
	libass-dev
	libdc1394-dev
	libde265-dev
	libdvdnav-dev
	libdvdread-dev
	libexif-dev
	libfreeaptx-dev
	libgudev-dev
	libmms-dev
	libmodplug-dev
	libnice-dev
	librsvg-dev
	libsndfile-dev
	libsrt-dev
	libsrtp-dev
	libusrsctp-dev
	libva-glx-dev
	libvdpau-dev
	libwebp-dev
	libx11-dev
	libxkbcommon-dev
	mesa-dev
	meson
	neon-dev
	openal-soft-dev
	openexr-dev
	openh264-dev
	openjpeg-dev
	openssl-dev>3
	opus-dev
	orc-dev
	pango-dev
	rtmpdump-dev
	sbc-dev
	soundtouch-dev
	spandsp-dev
	tiff-dev
	vo-aacenc-dev
	vo-amrwbenc-dev
	vulkan-headers
	vulkan-loader-dev
	wayland-dev
	wayland-protocols
	x265-dev
	zbar-dev
	"
subpackages="$pkgname-dbg $pkgname-lang $pkgname-dev"
source="
	https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-$pkgver.tar.xz
	0001-jifmux-Make-copies-of-parsed-image-buffer-parts.patch
	"
ldpath="/usr/lib/gstreamer-1.0"

case "$CARCH" in
s390x)
	;;
*)
	makedepends="$makedepends libldac-dev"
	;;
esac

# secfixes:
#   1.22.9-r0:
#     - CVE-2024-0444
#   1.22.8-r0:
#     - ZDI-CAN-22300
#   1.22.7-r0:
#     - CVE-2023-44446
#     - CVE-2023-44429
#   1.22.6-r0:
#     - CVE-2023-40476
#     - CVE-2023-40475
#     - CVE-2023-40474
#   1.22.4-r0:
#     - CVE-2023-37329
#     - CVE-2023-37328

build() {
	CFLAGS="$CFLAGS -O2" \
	CXXFLAGS="$CXXFLAGS -O2" \
	CPPFLAGS="$CPPFLAGS -O2" \
	abuild-meson \
		-Db_lto=true \
		-Dpackage-origin="https://alpinelinux.org" \
		-Dpackage-name="GStreamer bad plug-ins (Alpine Linux)" \
		-Dintrospection=enabled \
		-Dsctp=enabled \
		-Dsrt=enabled \
		-Dtests="$(want_check && echo enabled || echo disabled)" \
		. output
	meson compile -C output
}

check() {
	XDG_RUNTIME_DIR="$(mktemp -d)" \
		meson test -C output --print-errorlogs
}

package() {
	DESTDIR="$pkgdir" meson install --no-rebuild -C output
}

sha512sums="
69c78970f0396c08fbddbd44e080142688fcd1ecdc0fa88709b934f6c546754904338469ceecd0f16c6a6b8585bf5faec3230426272b7eb2b63a21b9034d94db  gst-plugins-bad-1.26.1.tar.xz
0c79d4cf065656dc8d783c5aa11c44e4ee35ab9930cc9f2bfb0ac990a73818aaa0aa6788b3ae9a7182a79427027facb490ee26fefad4db3ec39437d67a54b2fb  0001-jifmux-Make-copies-of-parsed-image-buffer-parts.patch
"
