diff --git a/icedreammusic/ndi-feeder/Dockerfile b/icedreammusic/ndi-feeder/Dockerfile index e96f217..5a7e4ae 100644 --- a/icedreammusic/ndi-feeder/Dockerfile +++ b/icedreammusic/ndi-feeder/Dockerfile @@ -220,7 +220,8 @@ RUN \ yay --noconfirm -U /tmp/*.pkg.* && rm /tmp/*.pkg.* USER build -RUN git clone --recursive https://aur.archlinux.org/ffmpeg-ndi.git . +# ffmpeg-ndi AUR package is no longer maintained, use our own modified copy +COPY ./packages/ffmpeg-ndi/ . RUN \ --mount=type=cache,target=/var/cache/pacman/pkg,sharing=locked \ --mount=type=cache,target=/tmp/build/.cache \ diff --git a/icedreammusic/ndi-feeder/packages/ffmpeg-ndi/.SRCINFO b/icedreammusic/ndi-feeder/packages/ffmpeg-ndi/.SRCINFO new file mode 100644 index 0000000..c8f816f --- /dev/null +++ b/icedreammusic/ndi-feeder/packages/ffmpeg-ndi/.SRCINFO @@ -0,0 +1,100 @@ +pkgbase = ffmpeg-ndi + pkgdesc = Complete solution to record, convert and stream audio and video with NDI restored and enabled + pkgver = 5.0.1 + pkgrel = 1 + url = https://ffmpeg.org/ + arch = x86_64 + license = custom: nonfree and unredistributable + makedepends = amf-headers + makedepends = avisynthplus + makedepends = clang + makedepends = ffnvcodec-headers + makedepends = git + makedepends = ladspa + makedepends = nasm + depends = alsa-lib + depends = aom + depends = bzip2 + depends = fontconfig + depends = fribidi + depends = gmp + depends = gnutls + depends = gsm + depends = jack + depends = lame + depends = libass.so + depends = libavc1394 + depends = libbluray.so + depends = libdav1d.so + depends = libdrm + depends = libfreetype.so + depends = libiec61883 + depends = libmfx + depends = libmodplug + depends = libpulse + depends = librav1e.so + depends = libraw1394 + depends = librsvg-2.so + depends = libsoxr + depends = libssh + depends = libtheora + depends = libva.so + depends = libva-drm.so + depends = libva-x11.so + depends = libvdpau + depends = libvidstab.so + depends = libvorbisenc.so + depends = libvorbis.so + depends = libvpx.so + depends = libwebp + depends = libx11 + depends = libx264.so + depends = libx265.so + depends = libxcb + depends = libxext + depends = libxml2 + depends = libxv + depends = libxvidcore.so + depends = libzimg.so + depends = opencore-amr + depends = openjpeg2 + depends = opus + depends = sdl2 + depends = speex + depends = srt + depends = svt-av1 + depends = v4l-utils + depends = vmaf + depends = xz + depends = zlib + depends = ndi-sdk + optdepends = avisynthplus: AviSynthPlus support + optdepends = intel-media-sdk: Intel QuickSync support + optdepends = ladspa: LADSPA filters + optdepends = nvidia-utils: Nvidia NVDEC/NVENC support + provides = ffmpeg + provides = libavcodec.so + provides = libavdevice.so + provides = libavfilter.so + provides = libavformat.so + provides = libavutil.so + provides = libpostproc.so + provides = libswresample.so + provides = libswscale.so + conflicts = ffmpeg + source = ffmpeg::git+https://git.ffmpeg.org/ffmpeg.git#tag=9687cae2b468e09e35df4cea92cc2e6a0e6c93b3 + source = ffmpeg-vmaf2.x.patch + source = master_Revert-lavd-Remove-libndi_newtek.patch::https://framagit.org/tytan652/ffmpeg-ndi-patch/-/raw/master/master_Revert-lavd-Remove-libndi_newtek.patch?inline=false + source = libndi_newtek_common.h::https://framagit.org/tytan652/ffmpeg-ndi-patch/-/raw/master/libavdevice/libndi_newtek_common.h?inline=false + source = libndi_newtek_dec.c::https://framagit.org/tytan652/ffmpeg-ndi-patch/-/raw/master/libavdevice/libndi_newtek_dec.c?inline=false + source = libndi_newtek_enc.c::https://framagit.org/tytan652/ffmpeg-ndi-patch/-/raw/master/libavdevice/libndi_newtek_enc.c?inline=false + source = LICENSE + sha256sums = SKIP + sha256sums = 42bd572442a4eba4e9559953c72f9e980b78286ab288ac01e659be39d8bc7298 + sha256sums = a5701faa71ac69c94dc0230b401203d135e48c45980926432f1190ef3218009b + sha256sums = 462e984a7cb3d0af17b0ea0eb2a010aee2f79a3e77c2055fdfd760163dd75fa4 + sha256sums = 3c6dea7583d79911e9ea198c35b1b56830b85eea84e49d63c2d5c03af5210eca + sha256sums = 83cc714edc8d1c37ffabd2ee17960d6ed91a1d019bd43d01383f84eea28e4fbb + sha256sums = 04a7176400907fd7db0d69116b99de49e582a6e176b3bfb36a03e50a4cb26a36 + +pkgname = ffmpeg-ndi diff --git a/icedreammusic/ndi-feeder/packages/ffmpeg-ndi/.gitignore b/icedreammusic/ndi-feeder/packages/ffmpeg-ndi/.gitignore new file mode 100644 index 0000000..215e305 --- /dev/null +++ b/icedreammusic/ndi-feeder/packages/ffmpeg-ndi/.gitignore @@ -0,0 +1,8 @@ +ffmpeg/ +master_Revert-lavd-Remove-libndi_newtek.patch +libndi_newtek_common.h +libndi_newtek_dec.c +libndi_newtek_enc.c +*.exe +*.dll +*.tar* diff --git a/icedreammusic/ndi-feeder/packages/ffmpeg-ndi/LICENSE b/icedreammusic/ndi-feeder/packages/ffmpeg-ndi/LICENSE new file mode 100644 index 0000000..b0bb658 --- /dev/null +++ b/icedreammusic/ndi-feeder/packages/ffmpeg-ndi/LICENSE @@ -0,0 +1,9 @@ +This software is nonfree and unredistributable. + +The end-user must compile this software for himself in order to be allowed to use it. + +This software cannot be redistributed. + +This software cannot be used commercially. + +Due to the libraries used to compile this software, the resulting binaries and libraries are under a complex and restrictive license mix. diff --git a/icedreammusic/ndi-feeder/packages/ffmpeg-ndi/PKGBUILD b/icedreammusic/ndi-feeder/packages/ffmpeg-ndi/PKGBUILD new file mode 100644 index 0000000..221a7b0 --- /dev/null +++ b/icedreammusic/ndi-feeder/packages/ffmpeg-ndi/PKGBUILD @@ -0,0 +1,203 @@ +# Maintainer: tytan652 + +pkgname=ffmpeg-ndi +pkgver=5.1.3 +pkgrel=1 +pkgdesc='Complete solution to record, convert and stream audio and video with NDI restored and enabled' +arch=(x86_64) +url=https://ffmpeg.org/ +license=('custom: nonfree and unredistributable') +depends=( + alsa-lib + aom + bzip2 + fontconfig + fribidi + gmp + gnutls + gsm + jack + lame + libass.so + libavc1394 + libbluray.so + libdav1d.so + libdrm + libfreetype.so + libiec61883 + libmfx + libmodplug + libpulse + librav1e.so + libraw1394 + librsvg-2.so + libsoxr + libssh + libtheora + libva.so + libva-drm.so + libva-x11.so + libvdpau + libvidstab.so + libvorbisenc.so + libvorbis.so + libvpx.so + libwebp + libx11 + libx264.so + libx265.so + libxcb + libxext + libxml2 + libxv + libxvidcore.so + libzimg.so + opencore-amr + openjpeg2 + opus + sdl2 + speex + srt + svt-av1 + v4l-utils + vmaf + xz + zlib + + # AUR: + ndi-sdk +) +makedepends=( + amf-headers + avisynthplus + clang + ffnvcodec-headers + git + ladspa + nasm +) +optdepends=( + 'avisynthplus: AviSynthPlus support' + 'intel-media-sdk: Intel QuickSync support' + 'ladspa: LADSPA filters' + 'nvidia-utils: Nvidia NVDEC/NVENC support' +) +provides=( + ffmpeg + libavcodec.so + libavdevice.so + libavfilter.so + libavformat.so + libavutil.so + libpostproc.so + libswresample.so + libswscale.so +) +conflicts=('ffmpeg') +_tag="n${pkgver}" +source=( + "ffmpeg::git+https://git.ffmpeg.org/ffmpeg.git#tag=${_tag}" + "master_Revert-lavd-Remove-libndi_newtek.patch::https://framagit.org/tytan652/ffmpeg-ndi-patch/-/raw/master/master_Revert-lavd-Remove-libndi_newtek.patch?inline=false" + "libndi_newtek_common.h::https://framagit.org/tytan652/ffmpeg-ndi-patch/-/raw/master/libavdevice/libndi_newtek_common.h?inline=false" + "libndi_newtek_dec.c::https://framagit.org/tytan652/ffmpeg-ndi-patch/-/raw/master/libavdevice/libndi_newtek_dec.c?inline=false" + "libndi_newtek_enc.c::https://framagit.org/tytan652/ffmpeg-ndi-patch/-/raw/master/libavdevice/libndi_newtek_enc.c?inline=false" + "LICENSE" +) +sha256sums=( + 'SKIP' + 'a5701faa71ac69c94dc0230b401203d135e48c45980926432f1190ef3218009b' + '462e984a7cb3d0af17b0ea0eb2a010aee2f79a3e77c2055fdfd760163dd75fa4' + '3c6dea7583d79911e9ea198c35b1b56830b85eea84e49d63c2d5c03af5210eca' + '83cc714edc8d1c37ffabd2ee17960d6ed91a1d019bd43d01383f84eea28e4fbb' + '04a7176400907fd7db0d69116b99de49e582a6e176b3bfb36a03e50a4cb26a36' +) + +pkgver() { + cd ffmpeg + + git describe --tags | sed 's/^n//' +} + +prepare() { + cd ffmpeg + + patch -Np1 -i "${srcdir}"/master_Revert-lavd-Remove-libndi_newtek.patch + + printf 'Copying libndi missing file\n' + cp "${srcdir}"/libndi_newtek_* libavdevice/ +} + +build() { + cd ffmpeg + + ./configure \ + --prefix=/usr \ + --disable-debug \ + --disable-static \ + --disable-stripping \ + --enable-amf \ + --enable-avisynth \ + --enable-cuda-llvm \ + --enable-lto \ + --enable-fontconfig \ + --enable-gmp \ + --enable-gnutls \ + --enable-gpl \ + --enable-ladspa \ + --enable-libaom \ + --enable-libass \ + --enable-libbluray \ + --enable-libdav1d \ + --enable-libdrm \ + --enable-libfreetype \ + --enable-libfribidi \ + --enable-libgsm \ + --enable-libiec61883 \ + --enable-libjack \ + --enable-libmfx \ + --enable-libmodplug \ + --enable-libmp3lame \ + --enable-libopencore_amrnb \ + --enable-libopencore_amrwb \ + --enable-libopenjpeg \ + --enable-libopus \ + --enable-libpulse \ + --enable-librav1e \ + --enable-librsvg \ + --enable-libsoxr \ + --enable-libspeex \ + --enable-libsrt \ + --enable-libssh \ + --disable-libsvtav1 \ + --enable-libtheora \ + --enable-libv4l2 \ + --enable-libvidstab \ + --enable-libvmaf \ + --enable-libvorbis \ + --enable-libvpx \ + --enable-libwebp \ + --enable-libx264 \ + --enable-libx265 \ + --enable-libxcb \ + --enable-libxml2 \ + --enable-libxvid \ + --enable-libzimg \ + --enable-nvdec \ + --enable-nvenc \ + --enable-shared \ + --enable-version3 \ + --enable-nonfree \ + --enable-libndi_newtek + + make + make tools/qt-faststart + make doc/ff{mpeg,play}.1 +} + +package() { + make DESTDIR="${pkgdir}" -C ffmpeg install install-man + install -Dm 755 ffmpeg/tools/qt-faststart "${pkgdir}"/usr/bin/ + install -D -m644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}" +} + +# vim: ts=2 sw=2 et: