summaryrefslogtreecommitdiff
path: root/libre/gstreamer/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'libre/gstreamer/PKGBUILD')
-rw-r--r--libre/gstreamer/PKGBUILD916
1 files changed, 916 insertions, 0 deletions
diff --git a/libre/gstreamer/PKGBUILD b/libre/gstreamer/PKGBUILD
new file mode 100644
index 000000000..9c373bd53
--- /dev/null
+++ b/libre/gstreamer/PKGBUILD
@@ -0,0 +1,916 @@
+# Maintainer (arch:gstreamer): Jan Alexander Steffens (heftig) <heftig@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Omar Vega Ramos <ovruni@gnu.org.pe>
+# Contributor: Isaac David <isacdaavid@at@isacdaavid@dot@info>
+# Contributor: Márcio Silva <coadde@hyperbola.info>
+# Contributor: bill-auger <bill-auger@programmer.net>
+# Contributor: David P. <megver83@parabola.nu>
+# Maintainer: Parabola Hackers <dev@lists.parabola.nu>
+
+
+# parabola changes and rationale:
+# libre:
+# - removed support for non-free 'faac' codec
+# - disabled tests by default (some require networking)
+# technical:
+# - build from versioned source-ball, rather than VCS sources
+# - disabled 'svt-hevc' for 32-bit arches
+# - disabled 'msdk' for 32-bit arches
+# - disabled 'qsv' for armv7h
+# - disabled 'svt-av1' for armv7h
+# - FIXME: disabled 'gst-plugin-opencv' - 'opencv' package FTBS
+# https://labs.parabola.nu/issues/3107
+
+
+# NOTE: Only gst-plugins-bad{,-libs},gst-plugin-{opencvwpe} need to be rebuilt per the FSDG.
+# However, due to a circular dependency of 'wpewebkit' on 'gst-plugins-bad-libs',
+# which we pin to the corresponding version of gstreamer.
+# 'wpewebkit' -> 'gst-plugins-bad-libs' -> 'gst-plugins-base-libs=V-1' -> 'gstreamer=V-1'
+# If those were taken from arch, gst-plugins-bad-libs would not be satisfied;
+# and those would need to be installed manually into the build chroot.
+
+
+# NOTE: This PKGBUILD is kept in-sync, as closely as possible,
+# with arch{,arm,32} (gstreamer), for the sake of documentation and cleaner diffs.
+# That also helps to identify which changes were made by Parabola vs upstream.
+# Therefore, this PKGBUILD may declare blacklisted dependencies, non-free sources,
+# or include code for anti-features; but those will be filtered-out subsequently.
+# Any code which implements an anti-feature should be commented-out;
+# and include an 'anti-feature' comment, for clarity.
+# Any blacklisted dependencies and non-free sources should be filtered,
+# and include a 'non-free' comment, for clarity.
+# Without those over-rides, the resulting program may not be FSDG-fit.
+# Do not circumvent those over-rides, if compiling for the Parabola repos.
+
+
+pkgbase=gstreamer
+pkgname=(
+ gstreamer
+ gst-plugins-bad-libs # Split badaudio first
+ gst-plugins-base-libs
+ gst-plugins-base
+ gst-plugins-good
+ gst-plugins-bad
+ gst-plugin-gtk
+ gst-plugin-msdk
+ gst-plugin-opencv
+ gst-plugin-qml6
+ gst-plugin-qmlgl
+ gst-plugin-qsv
+ gst-plugin-va
+ gst-plugin-wpe
+ gst-plugins-ugly
+ gst-libav
+ gst-rtsp-server
+ gst-editing-services
+ gstreamer-vaapi
+ gst-python
+ gstreamer-docs
+)
+pkgname=( ${pkgname[*]/$([[ "${CARCH}" == x86_64 ]] || echo gst-plugin-msdk)/} ) # x86_64 only
+pkgname=( ${pkgname[*]/$([[ "${CARCH}" != armv7h ]] || echo gst-plugin-qsv)/} ) # x86 only
+pkgname=( ${pkgname[*]/gst-plugin-opencv/} ) # FIXME: 'opencv' package FTBS
+pkgver=1.24.0
+pkgrel=1
+_pkgver_i686=1.20.5 # NOTE: v1.20.5 fails to compile for i686 - after this moves ahead,
+_pkgrel_i686=3.0 # try to remove the LOCs with comment: "# n/a in v1.20.5"
+eval "[[ -v _pkgver_${CARCH} ]] && pkgver=\$_pkgver_${CARCH}" # our different arches do not
+eval "[[ -v _pkgrel_${CARCH} ]] && pkgrel=\$_pkgrel_${CARCH}" # always roll at the same speed
+pkgrel+=.parabola1
+pkgdesc="Multimedia graph framework"
+url="https://gstreamer.freedesktop.org/"
+arch=(x86_64)
+arch+=(armv7h i686)
+license=(LGPL)
+# license=(LGPL-2.1-or-later) # TODO:
+makedepends=(
+ # superproject
+ git meson
+
+ # gstreamer
+ bash-completion gobject-introspection gtk3 libcap libelf libunwind python rust
+ valgrind
+
+ # gst-plugins-base
+ alsa-lib cdparanoia graphene libdrm libglvnd libgudev libjpeg libpng libtheora
+ libx11 libxi libxv mesa opus orc pango qt5-base qt5-tools sdl2 wayland
+ wayland-protocols zlib
+
+ # gst-plugins-good
+ aalib cairo flac gdk-pixbuf2 jack2 lame libavc1394 libcaca libdv libiec61883
+ libpulse libraw1394 libshout libsoup3 libvpx libxdamage libxtst mpg123 nasm
+ nettle opencore-amr qt5-declarative qt5-wayland qt5-x11extras qt6-declarative
+ qt6-shadertools qt6-tools qt6-wayland speex taglib twolame v4l-utils wavpack
+
+ # gst-plugins-bad
+ bluez-libs bzip2 chromaprint faac faad2 fluidsynth gsm json-glib ladspa
+ libavtp libbs2b libdca libde265 libdvdnav libfdk-aac libfreeaptx libgme
+ liblc3 libldac liblrdf libltc libmicrodns libmodplug libmpcdec libnice
+ libopenmpt libsrtp libva libvpl libxkbcommon-x11 libxml2 lilv lv2 mjpegtools
+ neon openal opencv qrencode rtmpdump sbc shaderc soundtouch spandsp svt-av1
+ svt-hevc vulkan-headers vulkan-icd-loader vulkan-validation-layers
+ webrtc-audio-processing-1 wildmidi wpewebkit zbar zvbi zxing-cpp
+
+ # gst-plugins-ugly
+ a52dec libcdio libdvdread libmpeg2 x264
+
+ # gst-libav
+ ffmpeg
+
+ # gstreamer-vaapi
+ libxrandr
+
+ # gst-python
+ python-gobject
+)
+makedepends=( ${makedepends[*]/faac/} ) # non-free
+makedepends=( ${makedepends[*]/git/} ) # use source-ball, not VCS
+makedepends=( ${makedepends[*]/$([[ "${CARCH}" == x86_64 ]] || echo svt-hevc)/} ) # x86_64 only
+makedepends=( ${makedepends[*]/$([[ "${CARCH}" != armv7h ]] || echo svt-av1)/} ) # x86 only
+makedepends=( ${makedepends[*]/$([[ "${CARCH}" == x86_64 ]] || echo libvpl)/} ) # x86_64 only
+checkdepends=(xorg-server-xvfb)
+source=(
+ "git+https://gitlab.freedesktop.org/gstreamer/gstreamer.git?signed#tag=$pkgver"
+ "https://gstreamer.freedesktop.org/src/gstreamer-docs/gstreamer-docs-$pkgver.tar.xz"{,.asc}
+ 0001-HACK-meson-Disable-broken-tests.patch
+)
+_srcball_url=https://gitlab.freedesktop.org/gstreamer/gstreamer/-/archive/${pkgver}/gstreamer-${pkgver}.tar.gz
+source=( ${source[*]/git+*/$_srcball_url} ) # use source-ball, not VCS
+b2sums=('SKIP'
+ '506088437f614f17a24402f70605d0a3831a597bec27c486763418d1ddce7dfa2370eac95e83dd82e1e2e856aaf0050ccf4b4e06a78a2664627236df762bde74'
+ 'SKIP'
+ 'afe47af956fe50ab2d77dba5d1e84649f63443a816ad7a0d0c0a37f2f46e1da3473472bd1183843b37dd3c0c61ee496b3d246df5de35e5df960a09bcac7eb48f')
+_b2sum_x86_64=a79e105927fd45f6fd9881b1b7ff70e358c6a74119fb69f7907880979eb60466a19362f970fe476326ce90dce8bc5ed7e7e95013af0d3e83ab9b7366a06e922f # upstream source-ball
+_b2sum_i686=518a025591e2d03296197dd4b6d30dbdd1a4c2b1d435df62cf451f13c1233c7fc1ad877344765c7b5c863e4886b7df750096fdb8835151cccf9618590801f1ea # upstream source-ball
+eval "[[ -v _b2sum_${CARCH} ]] && b2sums[0]=\$_b2sum_${CARCH}" # upstream source-ball
+validpgpkeys=(
+ D637032E45B8C6585B9456565D2EEE6F6F349D7C # Tim Müller <tim@gstreamer-foundation.org>
+)
+
+_DISABLE_TESTS=1
+
+
+## dependency over-rides ##
+
+makedepends=( ${makedepends[*]/opencv/} libdc1394 ) # FIXME: 'opencv' package FTBS
+
+
+prepare() {
+ # link source-ball root dir as VCS root dirname (minimize diff)
+ ln -s gstreamer-${pkgver} gstreamer
+
+
+ cd gstreamer
+
+ # Disable broken tests
+ patch -Np1 < ../0001-HACK-meson-Disable-broken-tests.patch # DIFF: use source-ball, not VCS
+}
+
+build() {
+ ## build configuration ##
+
+ # DIFF: let these 'meson_options' match the arch PKGBUILD exactly
+ # several of these defines will be clobbered in the "parabola over-rides" section
+ local meson_options=(
+ # Superproject options
+ -D devtools=disabled
+ -D examples=disabled
+ -D gobject-cast-checks=disabled
+ -D gpl=enabled
+ -D gst-examples=disabled
+ -D libnice=disabled
+ -D orc-source=system
+ -D package-name="Arch Linux GStreamer ${epoch:+$epoch:}$pkgver-$pkgrel"
+ -D package-origin="https://www.archlinux.org/"
+ -D vaapi=enabled
+
+ # Subproject options
+ -D gstreamer:dbghelp=disabled
+ -D gstreamer:ptp-helper-permissions=capabilities
+ -D gst-plugins-base:libvisual=disabled
+ -D gst-plugins-base:tremor=disabled
+ -D gst-plugins-good:rpicamsrc=disabled
+ -D gst-plugins-bad:aja=disabled
+ -D gst-plugins-bad:amfcodec=disabled
+ -D gst-plugins-bad:directfb=disabled
+ -D gst-plugins-bad:directshow=disabled
+ -D gst-plugins-bad:directsound=disabled
+ -D gst-plugins-bad:flite=disabled
+ -D gst-plugins-bad:gs=disabled
+ -D gst-plugins-bad:iqa=disabled
+ -D gst-plugins-bad:isac=disabled
+ -D gst-plugins-bad:magicleap=disabled
+ -D gst-plugins-bad:mfx_api=oneVPL
+ -D gst-plugins-bad:onnx=disabled
+ -D gst-plugins-bad:openh264=disabled
+ -D gst-plugins-bad:openni2=disabled
+ -D gst-plugins-bad:opensles=disabled
+ -D gst-plugins-bad:qt6d3d11=disabled
+ -D gst-plugins-bad:tinyalsa=disabled
+ -D gst-plugins-bad:voaacenc=disabled
+ -D gst-plugins-bad:voamrwbenc=disabled
+ -D gst-plugins-bad:wasapi2=disabled
+ -D gst-plugins-bad:wasapi=disabled
+ -D gst-plugins-bad:wic=disabled
+ -D gst-plugins-bad:win32ipc=disabled
+ -D gst-plugins-ugly:sidplay=disabled
+ -D gst-editing-services:validate=disabled
+ )
+
+
+ ## parabola over-rides ##
+
+ # branding
+ meson_options=( "${meson_options[@]/Arch Linux/Parabola GNU\/Linux-libre}" )
+ meson_options=( "${meson_options[@]/archlinux.org/parabola.nu}" )
+
+ # libre options
+ meson_options+=( -D gst-plugins-bad:faac=disabled ) # non-free
+
+ # arch-specific options
+ if [[ "${CARCH}" == i686 ]]
+ then meson_options=( "${meson_options[@]/amfcodec=disabled/faac=disabled}" ) # n/a in v1.20.5
+ meson_options=( "${meson_options[@]/directshow=disabled/faac=disabled}" ) # n/a in v1.20.5
+ meson_options=( "${meson_options[@]/wic=disabled/faac=disabled}" ) # n/a in v1.20.5
+ meson_options=( "${meson_options[@]/win32ipc=disabled/faac=disabled}" ) # n/a in v1.20.5
+ fi
+ meson_options+=(
+ $( case "${CARCH}" in armv7h) echo '-D gst-plugins-bad:msdk=disabled' # x86_64 only
+ echo '-D gst-plugins-bad:qsv=disabled' # x86 only
+ echo '-D gst-plugins-bad:svthevcenc=disabled' # x86_64 only
+ echo '-D gst-plugins-bad:svtav1=disabled' ;; # x86 only
+ i686 ) echo '-D gst-plugins-bad:msdk=disabled' # x86_64 only
+ echo '-D gst-plugins-bad:svthevcenc=disabled' ;; # x86_64 only
+ esac )
+ )
+
+ # emergency options :(
+ meson_options+=(-D gst-plugins-bad:opencv=disabled) # FIXME: 'opencv' package FTBS
+
+
+ ## build ##
+
+ arch-meson gstreamer build "${meson_options[@]}"
+ meson configure build # Print config
+ meson compile -C build
+}
+
+check() (
+ # networing tests fail in librechroots
+ # elements_rtpsrc, elements_rtpsink, elements_srtp, elements_netsim, elements_webrtcbin
+ (( ! _DISABLE_TESTS )) || ! echo "skipping check()" || return 0
+
+
+ export XDG_RUNTIME_DIR="$PWD/runtime-dir"
+ mkdir -p -m 700 "$XDG_RUNTIME_DIR"
+
+ # Flaky due to timeouts
+ xvfb-run -s '-nolisten local' \
+ meson test -C build --print-errorlogs -t 3
+)
+
+_install() {
+ local src dir
+ for src in "${files[@]}"; do
+ dir="$pkgdir/$(dirname "$src")"
+ mkdir -p "$dir"
+ mv -v "$src" "$dir"
+ done
+}
+
+package_gstreamer() {
+ pkgdesc+=" - core"
+ depends=(
+ glib2 libcap libelf libunwind libxml2
+ )
+ optdepends=('python: gst-plugins-doc-cache-generator')
+ install=gstreamer.install
+
+ meson install -C build --destdir "$srcdir/root"
+
+ cd root; local files=(
+ usr/include/gstreamer-1.0/gst/{base,check,controller,net,*.h}
+ usr/lib/libgst{reamer,base,check,controller,net}-1.0.so*
+ usr/lib/pkgconfig/gstreamer{,-base,-check,-controller,-net}-1.0.pc
+ usr/lib/girepository-1.0/Gst{,Base,Check,Controller,Net}-1.0.typelib
+ usr/share/gir-1.0/Gst{,Base,Check,Controller,Net}-1.0.gir
+
+ usr/lib/gstreamer-1.0/gst-{completion,ptp}-helper
+ usr/lib/gstreamer-1.0/gst-{hotdoc-plugins,plugin}-scanner
+ usr/lib/gstreamer-1.0/gst-plugins-doc-cache-generator
+ usr/lib/gstreamer-1.0/gst-ptp-helper-test
+ usr/lib/gstreamer-1.0/libgstcoreelements.so
+ usr/lib/gstreamer-1.0/libgstcoretracers.so
+
+ usr/share/locale/*/LC_MESSAGES/gstreamer-1.0.mo
+
+ usr/bin/gst-{inspect,launch,stats,tester,typefind}-1.0
+ usr/share/man/man1/gst-{inspect,launch,stats,typefind}-1.0.1
+
+ usr/share/bash-completion/completions/gst-{inspect,launch}-1.0
+ usr/share/bash-completion/helpers/gst
+
+ usr/share/gdb/auto-load/usr/lib/libgstreamer-1.0.so*.py
+ usr/share/gstreamer-1.0/gdb/glib_gobject_helper.py
+ usr/share/gstreamer-1.0/gdb/gst_gdb.py
+
+ usr/share/aclocal/gst-element-check-1.0.m4
+ ); _install
+}
+
+package_gst-plugins-bad-libs() {
+ pkgdesc+=" - bad"
+ depends=(
+ "gst-plugins-base-libs=$pkgver"
+ libdrm libgudev libnice libusb libva libx11 libxkbcommon-x11 orc
+ vulkan-icd-loader wayland
+ )
+
+ cd root; local files=(
+ usr/include/gstreamer-1.0/gst/audio/{audio-bad-prelude,gstnonstreamaudiodecoder,gstplanaraudioadapter}.h
+ usr/include/gstreamer-1.0/gst/{analytics,basecamerabinsrc,codecparsers,cuda,insertbin,interfaces,isoff,mpegts,mse,play,player,sctp,transcoder,uridownloader,va,vulkan,wayland,webrtc}
+ usr/lib/libgst{adaptivedemux,analytics,badaudio,basecamerabinsrc,codecparsers,codecs,cuda,dxva,insertbin,isoff,mpegts,mse}-1.0.so*
+ usr/lib/libgst{photography,play,player,sctp,transcoder,uridownloader,va,vulkan,wayland,webrtc,webrtcnice}-1.0.so*
+ usr/lib/pkgconfig/gstreamer-{analytics,bad-audio,codecparsers,cuda,insertbin,mpegts,mse,photography,play,player,sctp,transcoder,vulkan{,-wayland,-xcb},va,wayland,webrtc{,-nice}}-1.0.pc
+ usr/lib/girepository-1.0/{CudaGst,Gst{Analytics,BadAudio,Codecs,Cuda,Dxva,InsertBin,Mpegts,Mse,Play,Player,Transcoder,Va,Vulkan{,Wayland,XCB},WebRTC}}-1.0.typelib
+ usr/share/gir-1.0/{CudaGst,Gst{Analytics,BadAudio,Codecs,Cuda,Dxva,InsertBin,Mpegts,Mse,Play,Player,Transcoder,Va,Vulkan{,Wayland,XCB},WebRTC}}-1.0.gir
+
+ usr/lib/pkgconfig/gstreamer-plugins-bad-1.0.pc
+ usr/lib/gstreamer-1.0/libgstaccurip.so
+ usr/lib/gstreamer-1.0/libgstadpcmdec.so
+ usr/lib/gstreamer-1.0/libgstadpcmenc.so
+ usr/lib/gstreamer-1.0/libgstaiff.so
+ usr/lib/gstreamer-1.0/libgstasfmux.so
+ usr/lib/gstreamer-1.0/libgstaudiobuffersplit.so
+ usr/lib/gstreamer-1.0/libgstaudiofxbad.so
+ usr/lib/gstreamer-1.0/libgstaudiolatency.so
+ usr/lib/gstreamer-1.0/libgstaudiomixmatrix.so
+ usr/lib/gstreamer-1.0/libgstaudiovisualizers.so
+ usr/lib/gstreamer-1.0/libgstautoconvert.so
+ usr/lib/gstreamer-1.0/libgstbayer.so
+ usr/lib/gstreamer-1.0/libgstbluez.so
+ usr/lib/gstreamer-1.0/libgstcamerabin.so
+ usr/lib/gstreamer-1.0/libgstcodecalpha.so
+ usr/lib/gstreamer-1.0/libgstcodectimestamper.so
+ usr/lib/gstreamer-1.0/libgstcoloreffects.so
+ usr/lib/gstreamer-1.0/libgstdebugutilsbad.so
+ usr/lib/gstreamer-1.0/libgstdecklink.so
+ usr/lib/gstreamer-1.0/libgstdvb.so
+ usr/lib/gstreamer-1.0/libgstdvbsubenc.so
+ usr/lib/gstreamer-1.0/libgstdvbsuboverlay.so
+ usr/lib/gstreamer-1.0/libgstdvdspu.so
+ usr/lib/gstreamer-1.0/libgstfaceoverlay.so
+ usr/lib/gstreamer-1.0/libgstfbdevsink.so
+ usr/lib/gstreamer-1.0/libgstfestival.so
+ usr/lib/gstreamer-1.0/libgstfieldanalysis.so
+ usr/lib/gstreamer-1.0/libgstfreeverb.so
+ usr/lib/gstreamer-1.0/libgstfrei0r.so
+ usr/lib/gstreamer-1.0/libgstgaudieffects.so
+ usr/lib/gstreamer-1.0/libgstgdp.so
+ usr/lib/gstreamer-1.0/libgstgeometrictransform.so
+ usr/lib/gstreamer-1.0/libgstid3tag.so
+ usr/lib/gstreamer-1.0/libgstinsertbin.so
+ usr/lib/gstreamer-1.0/libgstinter.so
+ usr/lib/gstreamer-1.0/libgstinterlace.so
+ usr/lib/gstreamer-1.0/libgstipcpipeline.so
+ usr/lib/gstreamer-1.0/libgstivfparse.so
+ usr/lib/gstreamer-1.0/libgstivtc.so
+ usr/lib/gstreamer-1.0/libgstjp2kdecimator.so
+ usr/lib/gstreamer-1.0/libgstjpegformat.so
+ usr/lib/gstreamer-1.0/libgstkms.so
+ usr/lib/gstreamer-1.0/libgstlegacyrawparse.so
+ usr/lib/gstreamer-1.0/libgstmidi.so
+ usr/lib/gstreamer-1.0/libgstmpegpsdemux.so
+ usr/lib/gstreamer-1.0/libgstmpegpsmux.so
+ usr/lib/gstreamer-1.0/libgstmpegtsdemux.so
+ usr/lib/gstreamer-1.0/libgstmpegtsmux.so
+ usr/lib/gstreamer-1.0/libgstmse.so
+ usr/lib/gstreamer-1.0/libgstmxf.so
+ usr/lib/gstreamer-1.0/libgstnetsim.so
+ usr/lib/gstreamer-1.0/libgstnvcodec.so
+ usr/lib/gstreamer-1.0/libgstpcapparse.so
+ usr/lib/gstreamer-1.0/libgstpnm.so
+ usr/lib/gstreamer-1.0/libgstproxy.so
+ usr/lib/gstreamer-1.0/libgstremovesilence.so
+ usr/lib/gstreamer-1.0/libgstrfbsrc.so
+ usr/lib/gstreamer-1.0/libgstrist.so
+ usr/lib/gstreamer-1.0/libgstrtmp2.so
+ usr/lib/gstreamer-1.0/libgstrtpmanagerbad.so
+ usr/lib/gstreamer-1.0/libgstrtponvif.so
+ usr/lib/gstreamer-1.0/libgstsdpelem.so
+ usr/lib/gstreamer-1.0/libgstsegmentclip.so
+ usr/lib/gstreamer-1.0/libgstshm.so
+ usr/lib/gstreamer-1.0/libgstsiren.so
+ usr/lib/gstreamer-1.0/libgstsmooth.so
+ usr/lib/gstreamer-1.0/libgstspeed.so
+ usr/lib/gstreamer-1.0/libgstsubenc.so
+ usr/lib/gstreamer-1.0/libgstswitchbin.so
+ usr/lib/gstreamer-1.0/libgsttranscode.so
+ usr/lib/gstreamer-1.0/libgstunixfd.so
+ usr/lib/gstreamer-1.0/libgstuvcgadget.so
+ usr/lib/gstreamer-1.0/libgstuvch264.so
+ usr/lib/gstreamer-1.0/libgstv4l2codecs.so
+ usr/lib/gstreamer-1.0/libgstvideofiltersbad.so
+ usr/lib/gstreamer-1.0/libgstvideoframe_audiolevel.so
+ usr/lib/gstreamer-1.0/libgstvideoparsersbad.so
+ usr/lib/gstreamer-1.0/libgstvideosignal.so
+ usr/lib/gstreamer-1.0/libgstvmnc.so
+ usr/lib/gstreamer-1.0/libgstvulkan.so
+ usr/lib/gstreamer-1.0/libgstwaylandsink.so
+ usr/lib/gstreamer-1.0/libgsty4mdec.so
+
+ usr/share/gstreamer-1.0/encoding-profiles
+ usr/share/gstreamer-1.0/presets/GstFreeverb.prs
+
+ usr/share/locale/*/LC_MESSAGES/gst-plugins-bad-1.0.mo
+
+ usr/bin/gst-transcoder-1.0
+ ); _install
+}
+
+package_gst-plugins-base-libs() {
+ pkgdesc+=" - base"
+ depends=(
+ "gstreamer=$pkgver"
+ iso-codes libdrm libgl libgudev libxi libxv mesa orc wayland
+ )
+
+ cd root; local files=(
+ usr/include/gstreamer-1.0/gst/{allocators,app,audio,fft,gl,pbutils,riff,rtp,rtsp,sdp,tag,video}
+ usr/lib/libgst{allocators,app,audio,fft,gl,pbutils,riff,rtp,rtsp,sdp,tag,video}-1.0.so*
+ usr/lib/pkgconfig/gstreamer-{allocators,app,audio,fft,gl{,-egl,-prototypes,-wayland,-x11},pbutils,riff,rtp,rtsp,sdp,tag,video}-1.0.pc
+ usr/lib/girepository-1.0/Gst{Allocators,App,Audio,GL{,EGL,Wayland,X11},Pbutils,Rtp,Rtsp,Sdp,Tag,Video}-1.0.typelib
+ usr/share/gir-1.0/Gst{Allocators,App,Audio,GL{,EGL,Wayland,X11},Pbutils,Rtp,Rtsp,Sdp,Tag,Video}-1.0.gir
+
+ usr/lib/pkgconfig/gstreamer-plugins-base-1.0.pc
+ usr/lib/gstreamer-1.0/include/gst/gl/gstglconfig.h
+ usr/lib/gstreamer-1.0/libgstadder.so
+ usr/lib/gstreamer-1.0/libgstapp.so
+ usr/lib/gstreamer-1.0/libgstaudioconvert.so
+ usr/lib/gstreamer-1.0/libgstaudiomixer.so
+ usr/lib/gstreamer-1.0/libgstaudiorate.so
+ usr/lib/gstreamer-1.0/libgstaudioresample.so
+ usr/lib/gstreamer-1.0/libgstaudiotestsrc.so
+ usr/lib/gstreamer-1.0/libgstbasedebug.so
+ usr/lib/gstreamer-1.0/libgstcompositor.so
+ usr/lib/gstreamer-1.0/libgstdsd.so
+ usr/lib/gstreamer-1.0/libgstencoding.so
+ usr/lib/gstreamer-1.0/libgstgio.so
+ usr/lib/gstreamer-1.0/libgstoverlaycomposition.so
+ usr/lib/gstreamer-1.0/libgstpbtypes.so
+ usr/lib/gstreamer-1.0/libgstplayback.so
+ usr/lib/gstreamer-1.0/libgstrawparse.so
+ usr/lib/gstreamer-1.0/libgstsubparse.so
+ usr/lib/gstreamer-1.0/libgsttcp.so
+ usr/lib/gstreamer-1.0/libgsttypefindfunctions.so
+ usr/lib/gstreamer-1.0/libgstvideoconvertscale.so
+ usr/lib/gstreamer-1.0/libgstvideorate.so
+ usr/lib/gstreamer-1.0/libgstvideotestsrc.so
+ usr/lib/gstreamer-1.0/libgstvolume.so
+ usr/lib/gstreamer-1.0/libgstximagesink.so
+ usr/lib/gstreamer-1.0/libgstxvimagesink.so
+
+ usr/share/locale/*/LC_MESSAGES/gst-plugins-base-1.0.mo
+
+ usr/bin/gst-{device-monitor,discoverer,play}-1.0
+ usr/share/man/man1/gst-{device-monitor,discoverer,play}-1.0.1
+
+ usr/share/gst-plugins-base
+ ); _install
+}
+
+package_gst-plugins-base() {
+ pkgdesc+=" - base plugins"
+ depends=(
+ "gst-plugins-base-libs=$pkgver"
+ alsa-lib cdparanoia graphene libjpeg libpng libtheora libvorbis opus pango
+ )
+
+ cd root; local files=(
+ usr/lib/gstreamer-1.0/libgstalsa.so
+ usr/lib/gstreamer-1.0/libgstcdparanoia.so
+ usr/lib/gstreamer-1.0/libgstogg.so
+ usr/lib/gstreamer-1.0/libgstopengl.so
+ usr/lib/gstreamer-1.0/libgstopus.so
+ usr/lib/gstreamer-1.0/libgstpango.so
+ usr/lib/gstreamer-1.0/libgsttheora.so
+ usr/lib/gstreamer-1.0/libgstvorbis.so
+ ); _install
+}
+
+package_gst-plugins-good() {
+ pkgdesc+=" - good plugins"
+ depends=(
+ "gst-plugins-base-libs=$pkgver"
+ aalib cairo flac gdk-pixbuf2 lame libavc1394 libcaca libdv libgudev
+ libiec61883 libpulse libraw1394 libshout libsoup3 libvpx libxdamage libxtst
+ mpg123 nettle opencore-amr speex taglib twolame v4l-utils wavpack
+ )
+ optdepends=('jack: JACK backend')
+
+ cd root; local files=(
+ usr/lib/gstreamer-1.0/libgst1394.so
+ usr/lib/gstreamer-1.0/libgstaasink.so
+ usr/lib/gstreamer-1.0/libgstadaptivedemux2.so
+ usr/lib/gstreamer-1.0/libgstalaw.so
+ usr/lib/gstreamer-1.0/libgstalpha.so
+ usr/lib/gstreamer-1.0/libgstalphacolor.so
+ usr/lib/gstreamer-1.0/libgstamrnb.so
+ usr/lib/gstreamer-1.0/libgstamrwbdec.so
+ usr/lib/gstreamer-1.0/libgstapetag.so
+ usr/lib/gstreamer-1.0/libgstaudiofx.so
+ usr/lib/gstreamer-1.0/libgstaudioparsers.so
+ usr/lib/gstreamer-1.0/libgstauparse.so
+ usr/lib/gstreamer-1.0/libgstautodetect.so
+ usr/lib/gstreamer-1.0/libgstavi.so
+ usr/lib/gstreamer-1.0/libgstcacasink.so
+ usr/lib/gstreamer-1.0/libgstcairo.so
+ usr/lib/gstreamer-1.0/libgstcutter.so
+ usr/lib/gstreamer-1.0/libgstdebug.so
+ usr/lib/gstreamer-1.0/libgstdeinterlace.so
+ usr/lib/gstreamer-1.0/libgstdtmf.so
+ usr/lib/gstreamer-1.0/libgstdv.so
+ usr/lib/gstreamer-1.0/libgsteffectv.so
+ usr/lib/gstreamer-1.0/libgstequalizer.so
+ usr/lib/gstreamer-1.0/libgstflac.so
+ usr/lib/gstreamer-1.0/libgstflv.so
+ usr/lib/gstreamer-1.0/libgstflxdec.so
+ usr/lib/gstreamer-1.0/libgstgdkpixbuf.so
+ usr/lib/gstreamer-1.0/libgstgoom.so
+ usr/lib/gstreamer-1.0/libgstgoom2k1.so
+ usr/lib/gstreamer-1.0/libgsticydemux.so
+ usr/lib/gstreamer-1.0/libgstid3demux.so
+ usr/lib/gstreamer-1.0/libgstimagefreeze.so
+ usr/lib/gstreamer-1.0/libgstinterleave.so
+ usr/lib/gstreamer-1.0/libgstisomp4.so
+ usr/lib/gstreamer-1.0/libgstjack.so
+ usr/lib/gstreamer-1.0/libgstjpeg.so
+ usr/lib/gstreamer-1.0/libgstlame.so
+ usr/lib/gstreamer-1.0/libgstlevel.so
+ usr/lib/gstreamer-1.0/libgstmatroska.so
+ usr/lib/gstreamer-1.0/libgstmonoscope.so
+ usr/lib/gstreamer-1.0/libgstmpg123.so
+ usr/lib/gstreamer-1.0/libgstmulaw.so
+ usr/lib/gstreamer-1.0/libgstmultifile.so
+ usr/lib/gstreamer-1.0/libgstmultipart.so
+ usr/lib/gstreamer-1.0/libgstnavigationtest.so
+ usr/lib/gstreamer-1.0/libgstoss4.so
+ usr/lib/gstreamer-1.0/libgstossaudio.so
+ usr/lib/gstreamer-1.0/libgstpng.so
+ usr/lib/gstreamer-1.0/libgstpulseaudio.so
+ usr/lib/gstreamer-1.0/libgstreplaygain.so
+ usr/lib/gstreamer-1.0/libgstrtp.so
+ usr/lib/gstreamer-1.0/libgstrtpmanager.so
+ usr/lib/gstreamer-1.0/libgstrtsp.so
+ usr/lib/gstreamer-1.0/libgstshapewipe.so
+ usr/lib/gstreamer-1.0/libgstshout2.so
+ usr/lib/gstreamer-1.0/libgstsmpte.so
+ usr/lib/gstreamer-1.0/libgstsoup.so
+ usr/lib/gstreamer-1.0/libgstspectrum.so
+ usr/lib/gstreamer-1.0/libgstspeex.so
+ usr/lib/gstreamer-1.0/libgsttaglib.so
+ usr/lib/gstreamer-1.0/libgsttwolame.so
+ usr/lib/gstreamer-1.0/libgstudp.so
+ usr/lib/gstreamer-1.0/libgstvideo4linux2.so
+ usr/lib/gstreamer-1.0/libgstvideobox.so
+ usr/lib/gstreamer-1.0/libgstvideocrop.so
+ usr/lib/gstreamer-1.0/libgstvideofilter.so
+ usr/lib/gstreamer-1.0/libgstvideomixer.so
+ usr/lib/gstreamer-1.0/libgstvpx.so
+ usr/lib/gstreamer-1.0/libgstwavenc.so
+ usr/lib/gstreamer-1.0/libgstwavpack.so
+ usr/lib/gstreamer-1.0/libgstwavparse.so
+ usr/lib/gstreamer-1.0/libgstximagesrc.so
+ usr/lib/gstreamer-1.0/libgstxingmux.so
+ usr/lib/gstreamer-1.0/libgsty4menc.so
+
+ usr/share/gstreamer-1.0/presets/GstIirEqualizer{3,10}Bands.prs
+ usr/share/gstreamer-1.0/presets/GstQTMux.prs
+ usr/share/gstreamer-1.0/presets/Gst{Amrnb,VP8}Enc.prs
+
+ usr/share/locale/*/LC_MESSAGES/gst-plugins-good-1.0.mo
+ ); _install
+}
+
+package_gst-plugins-bad() {
+ pkgdesc+=" - bad plugins"
+ depends=(
+ "gst-plugins-bad-libs=$pkgver"
+ aom bzip2 chromaprint curl faac faad2 fluidsynth gsm json-glib lcms2 libass
+ libavtp libbs2b libdc1394 libdca libde265 libdvdnav libdvdread libfdk-aac
+ libfreeaptx libgme liblc3 libldac liblrdf libltc libmicrodns libmodplug
+ libmpcdec libopenmpt librsvg libsndfile libsrtp libwebp libxml2 lilv
+ mjpegtools neon nettle openal openexr openjpeg2 openssl opus pango qrencode
+ rtmpdump sbc soundtouch spandsp srt svt-av1 svt-hevc
+ webrtc-audio-processing-1 wildmidi x265 zbar zvbi zxing-cpp
+ )
+
+ # parabola over-rides
+ depends=( ${depends[*]/faac/} ) # non-free
+ depends=( ${depends[*]/$([[ "${CARCH}" == x86_64 ]] || echo svt-hevc)/} ) # x86_64 only
+ depends=( ${depends[*]/$([[ "${CARCH}" != armv7h ]] || echo svt-av1)/} ) # x86 only
+
+ cd root; local files=(
+ usr/lib/gstreamer-1.0/libgstaes.so
+ usr/lib/gstreamer-1.0/libgstanalyticsoverlay.so
+ usr/lib/gstreamer-1.0/libgstaom.so
+ usr/lib/gstreamer-1.0/libgstassrender.so
+ usr/lib/gstreamer-1.0/libgstavtp.so
+ usr/lib/gstreamer-1.0/libgstbs2b.so
+ usr/lib/gstreamer-1.0/libgstbz2.so
+ usr/lib/gstreamer-1.0/libgstchromaprint.so
+ usr/lib/gstreamer-1.0/libgstclosedcaption.so
+ usr/lib/gstreamer-1.0/libgstcodec2json.so
+ usr/lib/gstreamer-1.0/libgstcolormanagement.so
+ usr/lib/gstreamer-1.0/libgstcurl.so
+ usr/lib/gstreamer-1.0/libgstdash.so
+ usr/lib/gstreamer-1.0/libgstdc1394.so
+ usr/lib/gstreamer-1.0/libgstde265.so
+ usr/lib/gstreamer-1.0/libgstdtls.so
+ usr/lib/gstreamer-1.0/libgstdtsdec.so
+ usr/lib/gstreamer-1.0/libgstfaac.so
+ usr/lib/gstreamer-1.0/libgstfaad.so
+ usr/lib/gstreamer-1.0/libgstfdkaac.so
+ usr/lib/gstreamer-1.0/libgstfluidsynthmidi.so
+ usr/lib/gstreamer-1.0/libgstgme.so
+ usr/lib/gstreamer-1.0/libgstgsm.so
+ usr/lib/gstreamer-1.0/libgsthls.so
+ usr/lib/gstreamer-1.0/libgstladspa.so
+ usr/lib/gstreamer-1.0/libgstlc3.so
+ usr/lib/gstreamer-1.0/libgstldac.so
+ usr/lib/gstreamer-1.0/libgstlv2.so
+ usr/lib/gstreamer-1.0/libgstmicrodns.so
+ usr/lib/gstreamer-1.0/libgstmodplug.so
+ usr/lib/gstreamer-1.0/libgstmpeg2enc.so
+ usr/lib/gstreamer-1.0/libgstmplex.so
+ usr/lib/gstreamer-1.0/libgstmusepack.so
+ usr/lib/gstreamer-1.0/libgstneonhttpsrc.so
+ usr/lib/gstreamer-1.0/libgstopenal.so
+ usr/lib/gstreamer-1.0/libgstopenaptx.so
+ usr/lib/gstreamer-1.0/libgstopenexr.so
+ usr/lib/gstreamer-1.0/libgstopenjpeg.so
+ usr/lib/gstreamer-1.0/libgstopenmpt.so
+ usr/lib/gstreamer-1.0/libgstopusparse.so
+ usr/lib/gstreamer-1.0/libgstqroverlay.so
+ usr/lib/gstreamer-1.0/libgstresindvd.so
+ usr/lib/gstreamer-1.0/libgstrsvg.so
+ usr/lib/gstreamer-1.0/libgstrtmp.so
+ usr/lib/gstreamer-1.0/libgstsbc.so
+ usr/lib/gstreamer-1.0/libgstsctp.so
+ usr/lib/gstreamer-1.0/libgstsmoothstreaming.so
+ usr/lib/gstreamer-1.0/libgstsndfile.so
+ usr/lib/gstreamer-1.0/libgstsoundtouch.so
+ usr/lib/gstreamer-1.0/libgstspandsp.so
+ usr/lib/gstreamer-1.0/libgstsrt.so
+ usr/lib/gstreamer-1.0/libgstsrtp.so
+ usr/lib/gstreamer-1.0/libgstsvtav1.so
+ usr/lib/gstreamer-1.0/libgstsvthevcenc.so
+ usr/lib/gstreamer-1.0/libgstteletext.so
+ usr/lib/gstreamer-1.0/libgsttimecode.so
+ usr/lib/gstreamer-1.0/libgstttmlsubs.so
+ usr/lib/gstreamer-1.0/libgstwebp.so
+ usr/lib/gstreamer-1.0/libgstwebrtc.so
+ usr/lib/gstreamer-1.0/libgstwebrtcdsp.so
+ usr/lib/gstreamer-1.0/libgstwildmidi.so
+ usr/lib/gstreamer-1.0/libgstx265.so
+ usr/lib/gstreamer-1.0/libgstzbar.so
+ usr/lib/gstreamer-1.0/libgstzxing.so
+ )
+
+ # parabola over-rides
+ files=(
+ ${files[*]/usr\/lib\/gstreamer-1.0\/libgstfaac.so/} # non-free
+ ); [[ "${CARCH}" == x86_64 ]] || files=(
+ ${files[*]/usr\/lib\/gstreamer-1.0\/libgstsvthevcenc.so/} # x86_64 only
+ ); [[ "${CARCH}" != armv7h ]] || files=(
+ ${files[*]/usr\/lib\/gstreamer-1.0\/libgstsvtav1.so/} # x86 only
+ ); _install
+}
+
+package_gst-plugin-gtk() {
+ pkgdesc+=" - gtk plugin"
+ depends=(
+ "gst-plugins-bad-libs=$pkgver"
+ gtk3
+ )
+
+ cd root; local files=(
+ usr/lib/gstreamer-1.0/libgstgtk.so
+ usr/lib/gstreamer-1.0/libgstgtkwayland.so
+ ); _install
+}
+
+package_gst-plugin-msdk() {
+ pkgdesc+=" - msdk plugin"
+ depends=(
+ "gst-plugins-bad-libs=$pkgver"
+ libvpl
+ )
+ depends=( ${depends[*]/$([[ "${CARCH}" == x86_64 ]] || echo libvpl)/} ) # x86_64 only
+
+ cd root; local files=(
+ usr/lib/gstreamer-1.0/libgstmsdk.so
+ ); _install
+}
+
+package_gst-plugin-opencv() {
+ pkgdesc+=" - opencv plugin"
+ depends=(
+ "gst-plugins-base-libs=$pkgver"
+ opencv
+ )
+
+ cd root; local files=(
+ usr/include/gstreamer-1.0/gst/opencv
+ usr/lib/libgstopencv-1.0.so*
+
+ usr/lib/gstreamer-1.0/libgstopencv.so
+ ); _install
+}
+
+package_gst-plugin-qml6() {
+ pkgdesc+=" - qml6 plugin"
+ depends=(
+ "gst-plugins-base-libs=$pkgver"
+ qt6-declarative qt6-wayland
+ )
+
+ cd root; local files=(
+ usr/lib/gstreamer-1.0/libgstqml6.so
+ ); _install
+}
+
+package_gst-plugin-qmlgl() {
+ pkgdesc+=" - qmlgl plugin"
+ depends=(
+ "gst-plugins-base-libs=$pkgver"
+ qt5-declarative qt5-wayland qt5-x11extras
+ )
+
+ cd root; local files=(
+ usr/lib/gstreamer-1.0/libgstqmlgl.so
+ ); _install
+}
+
+package_gst-plugin-qsv() {
+ pkgdesc+=" - qsv plugin"
+ depends=("gst-plugins-bad-libs=$pkgver")
+ optdepends=(
+ 'intel-media-sdk: runtime for legacy Intel GPUs'
+ 'onevpl-intel-gpu: runtime for Tiger Lake and newer GPUs'
+ )
+
+ cd root; local files=(
+ usr/lib/gstreamer-1.0/libgstqsv.so
+ ); _install
+}
+
+
+package_gst-plugin-va() {
+ pkgdesc+=" - va plugin"
+ depends=("gst-plugins-bad-libs=$pkgver")
+
+ cd root; local files=(
+ usr/lib/gstreamer-1.0/libgstva.so
+ ); _install
+}
+
+package_gst-plugin-wpe() {
+ pkgdesc+=" - wpe plugin"
+ depends=(
+ "gst-plugins-base-libs=$pkgver"
+ wpewebkit
+ )
+
+ cd root; local files=(
+ usr/lib/gstreamer-1.0/libgstwpe.so
+ usr/lib/gst-plugins-bad/wpe-extension/libgstwpeextension.so
+ ); _install
+}
+
+package_gst-plugins-ugly() {
+ pkgdesc+=" - ugly plugins"
+ depends=(
+ "gst-plugins-base-libs=$pkgver"
+ a52dec libcdio libdvdread libmpeg2 x264
+ )
+
+ cd root; local files=(
+ usr/lib/gstreamer-1.0/libgsta52dec.so
+ usr/lib/gstreamer-1.0/libgstasf.so
+ usr/lib/gstreamer-1.0/libgstcdio.so
+ usr/lib/gstreamer-1.0/libgstdvdlpcmdec.so
+ usr/lib/gstreamer-1.0/libgstdvdread.so
+ usr/lib/gstreamer-1.0/libgstdvdsub.so
+ usr/lib/gstreamer-1.0/libgstmpeg2dec.so
+ usr/lib/gstreamer-1.0/libgstrealmedia.so
+ usr/lib/gstreamer-1.0/libgstx264.so
+
+ usr/share/gstreamer-1.0/presets/GstX264Enc.prs
+
+ usr/share/locale/*/LC_MESSAGES/gst-plugins-ugly-1.0.mo
+ ); _install
+}
+
+package_gst-libav() {
+ pkgdesc+=" - libav plugin"
+ depends=(
+ "gst-plugins-base-libs=$pkgver"
+ bzip2 ffmpeg
+ )
+ provides=("gst-ffmpeg=$pkgver")
+
+ cd root; local files=(
+ usr/lib/gstreamer-1.0/libgstlibav.so
+ ); _install
+}
+
+package_gst-rtsp-server() {
+ pkgdesc+=" - rtsp server"
+ depends=("gst-plugins-base-libs=$pkgver")
+
+ cd root; local files=(
+ usr/include/gstreamer-1.0/gst/rtsp-server
+ usr/lib/libgstrtspserver-1.0.so*
+ usr/lib/pkgconfig/gstreamer-rtsp-server-1.0.pc
+ usr/lib/girepository-1.0/GstRtspServer-1.0.typelib
+ usr/share/gir-1.0/GstRtspServer-1.0.gir
+
+ usr/lib/gstreamer-1.0/libgstrtspclientsink.so
+ ); _install
+}
+
+package_gst-editing-services() {
+ pkgdesc+=" - editing services"
+ depends=(
+ "gst-plugins-base-libs=$pkgver"
+ python
+ )
+
+ cd root; local files=(
+ usr/include/gstreamer-1.0/ges
+ usr/lib/libges-1.0.so*
+ usr/lib/pkgconfig/gst-editing-services-1.0.pc
+ usr/lib/girepository-1.0/GES-1.0.typelib
+ usr/share/gir-1.0/GES-1.0.gir
+
+ usr/lib/gstreamer-1.0/libgstges.so
+ usr/lib/gstreamer-1.0/libgstnle.so
+
+ usr/lib/python*/site-packages/gi/overrides/GES.py
+ usr/lib/python*/site-packages/gi/overrides/__pycache__/GES.*.pyc
+
+ usr/bin/ges-launch-1.0
+ usr/share/man/man1/ges-launch-1.0.1
+
+ usr/share/bash-completion/completions/ges-launch-1.0
+ ); _install
+}
+
+package_gstreamer-vaapi() {
+ pkgdesc+=" - vaapi plugin"
+ depends=(
+ "gst-plugins-bad-libs=$pkgver"
+ libxrandr
+ )
+
+ cd root; local files=(
+ usr/lib/gstreamer-1.0/libgstvaapi.so
+ ); _install
+}
+
+package_gst-python() {
+ pkgdesc+=" - python plugin"
+ depends=(
+ "gst-plugins-base-libs=$pkgver"
+ python-gobject
+ )
+
+ cd root; local files=(
+ usr/lib/gstreamer-1.0/libgstpython.so
+ usr/lib/python*/site-packages/gi/overrides
+ ); _install
+}
+
+package_gstreamer-docs() {
+ pkgdesc+=" - documentation"
+ license=(
+ 'BSD-2-Clause OR MIT OR LGPL-2.1-or-later'
+ CC-BY-SA-4.0
+ LGPL-2.1-or-later
+ MIT
+ OPUBL-1.0
+ )
+
+ # make sure there are no files left to install
+ find root -depth ! -type d
+ find root -depth -print0 | xargs -0 rmdir
+
+ cd gstreamer-docs-${pkgver%%+*}
+
+ mkdir -p "$pkgdir/usr/share/doc/$pkgbase"
+ cp -t "$pkgdir/usr/share" -a devhelp
+ cp -t "$pkgdir/usr/share/doc/$pkgbase" -a html README*
+
+ install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 COPYING LICENSE*
+}