Skip to content

Commit

Permalink
[WIP] ffmpeg5 + ffmpeg6 packages (#5620)
Browse files Browse the repository at this point in the history
* openh264: Import from gstreamer PR #5298

* twolame: Import from gstreamer PR #5298

* ffmpeg: Enable openh264 & twolame - import from gstreamer PR #5298

* ffmpeg4: Rename ffmpeg package to ffmpeg4 (preparation to ffmpeg5)

* ffmpeg: Remove twolame from TODO list

* ffmpeg4: Enable service-setup.sh script only on x64

* ffmpeg4: Miscelanious fixes to get things to build

* github-action: Prepare for ffmpeg5 builds

* ffmpeg5: First tentative build

* Bump package version and changelog

* ffmpeg5: Re-enable svthevc patch

* ffmpeg5: Disable asm optimizations for x86_64 & i686

* ffmpeg6: First tentative basic package

* ffmpeg6: Update PLIST

* nasm: Update from version 2.15.5 to 2.16.1

* libaom: Re-order and allow ASM builds (from cmake-env.mk fix)

* x265: Fix aarch64 ASM build

* ffmpeg4: Re-order ASM code & enable neon optimization for aarch64

* ffmpeg5-6: Re-order ASM code & enable neon optimization for aarch64

* libvpx: Update from version 1.12 to 1.13 and switch to nasm

* libvpx: Disable neon on armv7/7l/8 when using gcc <= 4.9

* x264: Update to latest commit and enable ASM for aarch64

* libvpx: Set nasm to be specific to x86 arch only (x86asm)

* x264: Fix typo

* x264: Add more details about ARM ASM compiling

* libaom: Remove unused comments and trailing blank line

* opus: Fix for comcerto2k-7.1

* ffmpeg: Reorder ASM code and enable on aarch64

* x265: Fix build for comcerto2k-7.1

* ffmpeg6: Fix minor typos

* ffmpeg5-6: Build fix using good old replace ARCH by FFMPEG_ARCH

* ffmpeg4: Re-use ffmpeg5-6 asm makefile code

* tvheadend: Fix FFMPEG_DIR variable

* libva: Update from version 2.16 to version 2.17

* libdrm: Update from version 2.4.114 to 2.4.115

* intel-gmmlib: Update from version 22.3.1 to 22.3.4

* ffmpeg6: Enable SVT-HEVC plugin

* ffmpeg6: Forgot to also include svt-hevc patch for enablement

* dav1d: Update from version 1.0.0 to 1.1.0

* frei0r: Update from version 1.8.0 to 2.2.0

* ffmpeg4: Rename back to ffmpeg & enforce ffmpeg4 directory install

* ffmpeg5-6: Aling DISPLAY_NAME for all ffmpeg versions

* ffmpeg4: Ensure to use ffmpeg4 as cross dependency

* libass: Update from version 0.16.0 to 0.17.1

* SVT-AV1: Update from version 1.3.0 to 1.4.1

* ffmpeg4: Update changelog

* ffmpeg*: Add -lm for svt-av1 and remove redundant frei0r entry

* level-zero: Add version 1.9.4 as ICG dependency

* frei0r: Add cairo as dependency & disable CMAKE_USE_TOOLCHAIN_FILE

* ffmpeg6: Import jellyfin ffmpeg6 patches

* ffmpeg4-5-6: Enable symbolic links in /usr/local/bin

* ffmpeg4-5-6: Fix /usr/local/bin symlink

* service.mk: Add ability to generate json for VIDEODRIVER access

Having a preset conf/resource file makes it that no other
parameters can be set in the resulting file.  This removes the
need of the static file for accessing video-driver by generating
it directly within the normal jq call.

* ffmpeg4-5-6: Misc fixes including symlinks and proper rpath for v4

* github-action: Fix mgmnt of ffmpeg,ffmpeg5,ffmpeg6 dependent spk

* github-action: ffmpeg package is actually spk/ffmpeg4

* ffmpeg5: Update jellyfin patches

* ffmpeg6: Update jellyfin patches

* ffmpeg6: Remove invalid older jellyfin patch

* ffmpeg4: Update howto pertaining to jellyfin patches

* chromaprint+comskip+tvh: Fix ffmpeg dependency version

* tvheadend: Update changelog for updated openssl version

Co-authored-by: hgy59 <[email protected]>

* comskip+chromaprint+tvh: Update SPK_DEPENDS automatically

* svt-av1: Update digests & directory now based on git hash

---------

Co-authored-by: hgy59 <[email protected]>
  • Loading branch information
th0ma7 and hgy59 authored Mar 28, 2023
1 parent 3ce5205 commit b95f895
Show file tree
Hide file tree
Showing 237 changed files with 40,725 additions and 190 deletions.
7 changes: 4 additions & 3 deletions .github/actions/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@
# - The build output is structured into log groups by package.
# - As the disk space in the workflow environment is limitted, we clean the
# work folder of each package after build. At 2020.06 this limit is 14GB.
# - ffmpeg is not cleaned to be available for dependents.
# - Therefore ffmpeg is built first if triggered by its own or a dependent (see prepare.sh).
# - ffmpeg (spk/ffmpeg4), ffmpeg5 and ffmpeg6 are not cleaned to be available for dependents.
# - Therefore ffmpeg4, ffmpeg5 and ffmpeg6 are built first if triggered by its
# own or a dependent (see prepare.sh).

set -o pipefail

Expand Down Expand Up @@ -58,7 +59,7 @@ if [ -n "$API_KEY" ] && [ "$PUBLISH" == "true" ]; then
fi

# Build
PACKAGES_TO_KEEP="ffmpeg"
PACKAGES_TO_KEEP="ffmpeg4 ffmpeg5 ffmpeg6"
for package in ${build_packages}
do
echo "::group:: ---- build ${package}"
Expand Down
22 changes: 9 additions & 13 deletions .github/actions/prepare.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#
# Functions:
# - Evaluate all packages to build depending on files defined in ${GH_FILES}.
# - ffmpeg is moved to head of packages to built first if triggered by its own or a dependent.
# - ffmpeg (spk/ffmpeg4), ffmpeg5 and ffmpeg6 are moved to head of packages to built first if triggered by its own or a dependent.
# - Referenced native and cross packages of the packages to build are added to the download list.

set -o pipefail
Expand Down Expand Up @@ -53,22 +53,18 @@ fi
# remove duplicate packages
packages=$(printf %s "${SPK_TO_BUILD}" | tr ' ' '\n' | sort -u | tr '\n' ' ')

# for ffmpeg v4-6 find all packages that depends on them
for i in {4..6}; do
ffmpeg_dependent_packages=$(find spk/ -maxdepth 2 -mindepth 2 -name "Makefile" -exec grep -Ho "FFMPEG_VERSION = ${i}" {} \; | grep -Po ".*spk/\K[^/]*" | sort | tr '\n' ' ')

# find all packages that depend on spk/ffmpeg is built before.
all_ffmpeg_packages=$(find spk/ -maxdepth 2 -mindepth 2 -name "Makefile" -exec grep -Ho "export FFMPEG_DIR" {} \; | grep -Po ".*spk/\K[^/]*" | sort | tr '\n' ' ')

# if ffmpeg or one of its dependents is to build, ensure
# ffmpeg is first package in the list of packages to build.
for package in ${packages}
do
if [ "$(echo ffmpeg ${all_ffmpeg_packages} | grep -ow ${package})" != "" ]; then
packages_without_ffmpeg=$(echo "${packages}" | tr ' ' '\n' | grep -v "ffmpeg" | tr '\n' ' ')
packages="ffmpeg ${packages_without_ffmpeg}"
break;
# If packages are found in the list then ensure
# relevant ffmpeg|ffmpeg5|ffmpeg6 is first in list
# then remove any duplicates from the list
if [ "${ffmpeg_dependent_packages}" != "" ]; then
packages=$(echo "ffmpeg${i} ${packages}" | sed ':s;s/\(\<\S*\>\)\(.*\)\<\1\>/\1\2/g;ts;s/ */ /g')
fi
done


# find all noarch packages
all_noarch=$(find spk/ -maxdepth 2 -mindepth 2 -name "Makefile" -exec grep -Ho "override ARCH" {} \; | grep -Po ".*spk/\K[^/]*" | sort | tr '\n' ' ')

Expand Down
6 changes: 3 additions & 3 deletions cross/chromaprint/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ HOMEPAGE = https://acoustid.org/chromaprint
COMMENT = Chromaprint is the core component of the AcoustID project. It\'s a client-side library that implements a custom algorithm for extracting fingerprints from any audio source.
LICENSE = LGPL2.1+

OPTIONAL_DEPENDS = cross/ffmpeg
OPTIONAL_DEPENDS = cross/ffmpeg4

# compiler too old
UNSUPPORTED_ARCHS = $(ARMv5_ARCHS) $(OLD_PPC_ARCHS)

ifneq ($(wildcard $(FFMPEG_DIR)),)
CMAKE_RPATH = /var/packages/ffmpeg/target/lib
CMAKE_RPATH = /var/packages/ffmpeg$(FFMPEG_VERSION)/target/lib
else
DEPENDS = cross/ffmpeg
DEPENDS = cross/ffmpeg$(FFMPEG_VERSION)
CMAKE_RPATH =
endif

Expand Down
4 changes: 2 additions & 2 deletions cross/comskip/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ PKG_DIST_FILE = $(PKG_NAME)-git$(PKG_GIT_HASH).$(PKG_EXT)
PKG_DIR = $(PKG_NAME)-$(PKG_GIT_HASH)

DEPENDS = cross/argtable
OPTIONAL_DEPENDS = cross/ffmpeg
OPTIONAL_DEPENDS = cross/ffmpeg4

HOMEPAGE = https://www.kaashoek.com/comskip
COMMENT = Commercial detector
LICENSE = GNU/LGPL

ifeq ($(wildcard $(FFMPEG_DIR)),)
DEPENDS += cross/ffmpeg
DEPENDS += cross/ffmpeg$(FFMPEG_VERSION)
endif

PRE_CONFIGURE_TARGET = comskip_pre_configure
Expand Down
24 changes: 19 additions & 5 deletions cross/dav1d/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
PKG_NAME = dav1d
PKG_VERS = 1.0.0
PKG_VERS = 1.1.0
PKG_EXT = tar.xz
PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
PKG_DIST_SITE = https://download.videolan.org/pub/videolan/dav1d/$(PKG_VERS)
Expand All @@ -13,12 +13,26 @@ LICENSE = BSD 2-Clause "Simplified" License

UNSUPPORTED_ARCHS = $(ARMv5_ARCHS) $(OLD_PPC_ARCHS)

CONFIGURE_ARGS += -Denable_tests=false
CONFIGURE_ARGS += -Denable_examples=false
CONFIGURE_ARGS += -Denable_docs=false
ADDITIONAL_CFLAGS = -O

include ../../mk/spksrc.archs.mk

# Define x86asm
ifeq ($(findstring $(ARCH),$(i686_ARCHS) $(x64_ARCHS)),$(ARCH))
BUILD_DEPENDS = native/nasm
NASM_PATH = $(realpath $(WORK_DIR)/../../../native/nasm/work-native/install/usr/local/bin)
ENV += PATH=$(NASM_PATH):$$PATH
NASM_PATH = $(abspath $(PWD)/../../native/nasm/work-native/install/usr/local/bin)
ENV += AS=$(NASM_PATH)/nasm
ENV += PATH=$(NASM_PATH):$$PATH
CONFIGURE_ARGS += -Denable_asm=true

CONFIGURE_ARGS += -Denable_tests=false
ADDITIONAL_CFLAGS = -O
# Allow ASM on aarch64, disable on all others
else ifeq ($(findstring $(ARCH),$(ARMv8_ARCHS)),$(ARCH))
CONFIGURE_ARGS += -Denable_asm=true
else
CONFIGURE_ARGS += -Denable_asm=false
endif

include ../../mk/spksrc.cross-meson.mk
2 changes: 1 addition & 1 deletion cross/dav1d/PLIST
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
bin:bin/dav1d
lnk:lib/libdav1d.so
lnk:lib/libdav1d.so.6
lib:lib/libdav1d.so.6.6.0
lib:lib/libdav1d.so.6.8.0
6 changes: 3 additions & 3 deletions cross/dav1d/digests
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
dav1d-1.0.0.tar.xz SHA1 b1217017a84dea9164a756eb252cd04c9593c6f1
dav1d-1.0.0.tar.xz SHA256 51737db7e4897e599684f873a4725176dd3c779e639411d7c4fce134bb5ebb82
dav1d-1.0.0.tar.xz MD5 424548396e45406fe2f395e248b38121
dav1d-1.1.0.tar.xz SHA1 f042e5e84a55a60ea439e6afd3e18e1dfcdb6d7b
dav1d-1.1.0.tar.xz SHA256 fb57aae7875f28c30fb3dbae4a3683d27e2f91dde09ce5c60c22cef9bc58dfd1
dav1d-1.1.0.tar.xz MD5 e98a56198b2f47dbd27c747e69a9e140
79 changes: 52 additions & 27 deletions cross/ffmpeg/Makefile → cross/ffmpeg4/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ LICENSE = GPLv2
CONFIGURE_ARGS = --target-os=linux --cross-prefix=$(TC_PATH)$(TC_PREFIX) --prefix=$(INSTALL_PREFIX)
CONFIGURE_ARGS += --extra-cflags="-I$(WORK_DIR)/install$(INSTALL_PREFIX)/include"
CONFIGURE_ARGS += --extra-ldflags="-L$(WORK_DIR)/install$(INSTALL_PREFIX)/lib"
CONFIGURE_ARGS += --extra-libs="-lxml2 -ldl" --pkg-config=/usr/bin/pkg-config --ranlib=$(RANLIB)
CONFIGURE_ARGS += --extra-libs="-lxml2 -ldl -lm" --pkg-config=/usr/bin/pkg-config --ranlib=$(RANLIB)
CONFIGURE_ARGS += --enable-cross-compile --enable-rpath --enable-pic
CONFIGURE_ARGS += --enable-shared
CONFIGURE_ARGS += --enable-gpl --enable-version3
Expand All @@ -21,8 +21,8 @@ CONFIGURE_ARGS += --disable-debug
CONFIGURE_ARGS += --disable-static
CONFIGURE_ARGS += --disable-doc

# Must match $(SPK_REV) from spk/ffmpeg/Makefil
CONFIGURE_ARGS += --extra-version=$(shell sed -n 's/^SPK_REV = \(.*\)/\1/p' $(WORK_DIR)/../../../spk/ffmpeg/Makefile)
# Must match $(SPK_REV) from spk/ffmpeg4/Makefile
CONFIGURE_ARGS += --extra-version=$(shell sed -n 's/^SPK_REV = \(.*\)/\1/p' $(WORK_DIR)/../../../spk/ffmpeg4/Makefile)

# Enable Synology specific -hls_seek_time option and other optimizations
CONFIGURE_ARGS += --extra-cflags=-DSYNO_VIDEOSTATION
Expand All @@ -44,17 +44,32 @@ OPTIONAL_DEPENDS += cross/libass
OPTIONAL_DEPENDS += cross/libaom
OPTIONAL_DEPENDS += cross/libvpx
OPTIONAL_DEPENDS += cross/libzimg
OPTIONAL_DEPENDS += cross/openh264
OPTIONAL_DEPENDS += cross/svt-av1
OPTIONAL_DEPENDS += cross/svt-hevc
OPTIONAL_DEPENDS += cross/libva
OPTIONAL_DEPENDS += cross/libva-utils
OPTIONAL_DEPENDS += cross/intel-vaapi-driver
OPTIONAL_DEPENDS += cross/intel-media-driver
OPTIONAL_DEPENDS += cross/intel-media-sdk
OPTIONAL_DEPENDS += cross/twolame
OPTIONAL_DEPENDS += cross/x264
OPTIONAL_DEPENDS += cross/x265
OPTIONAL_DEPENDS += cross/shine

# Define x86asm
ifeq ($(findstring $(ARCH),$(i686_ARCHS) $(x64_ARCHS)),$(ARCH))
BUILD_DEPENDS = native/nasm
NASM_PATH = $(abspath $(PWD)/../../native/nasm/work-native/install/usr/local/bin)
ENV += AS=$(NASM_PATH)/nasm
ENV += PATH=$(NASM_PATH):$$PATH
CONFIGURE_ARGS += --x86asmexe=nasm

# Allow ASM on aarch64, disable on all others
else ifneq ($(findstring $(ARCH),$(ARMv8_ARCHS)),$(ARCH))
CONFIGURE_ARGS += --disable-asm
endif

DEPENDS += cross/codec2
CONFIGURE_ARGS += --enable-libcodec2

Expand Down Expand Up @@ -105,6 +120,11 @@ CONFIGURE_ARGS += --enable-libzmq
DEPENDS += cross/gnutls
CONFIGURE_ARGS += --enable-gnutls

ifneq ($(findstring $(ARCH),$(PPC_ARCHS)),$(ARCH))
DEPENDS += cross/openh264
CONFIGURE_ARGS += --enable-libopenh264
endif

DEPENDS += cross/opus
CONFIGURE_ARGS += --enable-libopus

Expand All @@ -117,6 +137,9 @@ CONFIGURE_ARGS += --enable-libopencore-amrnb --enable-libopencore-amrwb
DEPENDS += cross/librabbitmq
CONFIGURE_ARGS += --enable-librabbitmq

DEPENDS += cross/twolame
CONFIGURE_ARGS += --enable-libtwolame

DEPENDS += cross/zvbi
CONFIGURE_ARGS += --enable-libzvbi

Expand All @@ -143,9 +166,6 @@ CONFIGURE_ARGS += --enable-chromaprint
DEPENDS += cross/dav1d
CONFIGURE_ARGS += --enable-libdav1d

DEPENDS += cross/frei0r
CONFIGURE_ARGS += --enable-frei0r

DEPENDS += cross/librist
CONFIGURE_ARGS += --enable-librist

Expand All @@ -166,14 +186,6 @@ endif
DEPENDS += cross/fdk-aac
CONFIGURE_ARGS += --enable-libfdk-aac --enable-nonfree

ifeq ($(call version_lt, ${TCVERSION}, 7.0),1)
ifneq ($(findstring $(ARCH),$(ARMv5_ARCHS) $(OLD_PPC_ARCHS)),$(ARCH))
# libass requires harfbuzz which in turns requires c++ from gcc >= 4.8 (88f6281-6.1 = gcc-4.6.4)
DEPENDS += cross/libass
CONFIGURE_ARGS += --enable-libass
endif
endif

ifeq ($(findstring $(ARCH),alpine comcerto2k monaco $(ARMv8_ARCHS) $(i686_ARCHS) $(x64_ARCHS)),$(ARCH))
DEPENDS += cross/libaom
CONFIGURE_ARGS += --enable-libaom
Expand All @@ -186,32 +198,34 @@ CONFIGURE_ARGS += --enable-libsvtav1
endif

# Add SVT-HEVC codec to x64
# Patch for support from: https://raw.githubusercontent.com/OpenVisualCloud/SVT-HEVC/master/ffmpeg_plugin/n4.4-0001-lavc-svt_hevc-add-libsvt-hevc-encoder-wrapper.patch
# Patch for support from:
# https://github.com/OpenVisualCloud/SVT-HEVC/tree/master/ffmpeg_plugin
ifeq ($(findstring $(ARCH),$(x64_ARCHS)),$(ARCH))
DEPENDS += cross/svt-hevc
CONFIGURE_ARGS += --enable-libsvthevc
endif

include ../../mk/spksrc.cross-cc.mk
##
## ARCH SPECIFIC
##

ifeq ($(findstring $(ARCH),$(ARMv5_ARCHS)),$(ARCH))
CONFIGURE_ARGS += --arch=arm --disable-neon --disable-asm
CONFIGURE_ARGS += --arch=arm --disable-neon
endif

ifeq ($(findstring $(ARCH),$(ARMv7_ARCHS) $(ARMv7L_ARCHS)),$(ARCH))
CONFIGURE_ARGS += --arch=arm --enable-neon --enable-thumb --disable-armv6 --disable-armv6t2 --disable-vfp --disable-armv5te --disable-asm
CONFIGURE_ARGS += --arch=arm --enable-neon --enable-thumb --disable-armv6 --disable-armv6t2 --disable-vfp --disable-armv5te
ifneq ($(findstring $(ARCH),alpine),$(ARCH))
CONFIGURE_ARGS += --extra-cflags=-DSYNO_ALPINE_NEON
endif
endif

ifeq ($(findstring $(ARCH),$(ARMv8_ARCHS)),$(ARCH))
CONFIGURE_ARGS += --arch=arm64 --enable-neon --enable-thumb --disable-asm
CONFIGURE_ARGS += --arch=arm64 --enable-neon --enable-thumb
endif

ifeq ($(findstring $(ARCH),$(PPC_ARCHS)),$(ARCH))
CONFIGURE_ARGS += --extra-libs=-latomic
CONFIGURE_ARGS += --disable-asm
CONFIGURE_ARGS += --arch=ppc
ifeq ($(findstring $(ARCH),qoriq),$(ARCH))
CONFIGURE_ARGS += --cpu=e500v2
Expand All @@ -220,13 +234,6 @@ CONFIGURE_ARGS += --cpu=e500 --disable-altivec
endif
endif


ifeq ($(findstring $(ARCH),$(i686_ARCHS) $(x64_ARCHS)),$(ARCH))
BUILD_DEPENDS = native/nasm
NASM_PATH = $(realpath $(WORK_DIR)/../../../native/nasm/work-native/install/usr/local/bin)
ENV += PATH=$(NASM_PATH):$$PATH
endif

ifeq ($(findstring $(ARCH),$(x64_ARCHS)),$(ARCH))
DEPENDS += cross/libva cross/libva-utils cross/intel-vaapi-driver cross/intel-media-driver cross/intel-media-sdk
CONFIGURE_ARGS += --arch=x86_64 --enable-vaapi --enable-libmfx --enable-libdrm
Expand All @@ -235,3 +242,21 @@ endif
ifeq ($(findstring $(ARCH),evansport),$(ARCH))
CONFIGURE_ARGS += --arch=x86 --cpu=atom
endif

include ../../mk/spksrc.cross-cc.mk

##
## GCC SPECIFIC
##

# libass requires harfbuzz which in turns requires c++ from gcc >= 4.8 (88f6281-6.1 = gcc-4.6.4)
ifeq ($(call version_ge, $(TC_GCC), 4.8),1)
DEPENDS += cross/libass
CONFIGURE_ARGS += --enable-libass
endif

# Newer frei0r requires newer gcc
ifeq ($(call version_ge, $(TC_GCC), 7.5),1)
DEPENDS += cross/frei0r
CONFIGURE_ARGS += --enable-frei0r
endif
File renamed without changes.
File renamed without changes.
34 changes: 34 additions & 0 deletions cross/ffmpeg4/patches/1000-jellyfin-0000-HOWTO.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
Projet page: https://github.com/jellyfin/jellyfin-ffmpeg
Patches: https://github.com/jellyfin/jellyfin-ffmpeg/tree/jellyfin/debian/patches

Extract jellyfin-ffmpeg git repository
$ git clone https://github.com/jellyfin/jellyfin-ffmpeg.git

$ git branch -a
* jellyfin
remotes/origin/HEAD -> origin/jellyfin
remotes/origin/jellyfin
remotes/origin/jellyfin-4.4
remotes/origin/jellyfin-5.1
$ git checkout jellyfin-4.4
Updating files: 100% (4584/4584), done.
Branch 'jellyfin-4.4' set up to track remote branch 'jellyfin-4.4' from 'origin'.
Switched to a new branch 'jellyfin-4.4'

Check that current ffmpeg matches jellyfin version
$ cat jellyfin-ffmpeg/VERSION
4.4.2

Modify patches to be in -p0 mode:
cd debian/patches
$ sed -i -e 's?+++ jellyfin-ffmpeg/?+++ ?1' \
-e 's?--- jellyfin-ffmpeg.orig/?--- ?1' \
*.patch

Rename the patches:
$ i=1001 && ls -1 *.patch | while read LINE; do echo $(printf "%04d" $i)-jellyfin-$LINE; mv $LINE $(printf "%04d" $i)-jellyfin-$LINE; let i++; done

Test the patches on a clean ffmpeg 4.4 tree:
$ tar -jxvf ffmpeg-4.4.3.tar.bz2
$ cd ffmpeg-4.4.3/
$ ls -1d ~/jellyfin-ffmpeg/debian/patches/*.patch | while read LINE; do patch -p0 < $LINE; done
File renamed without changes.
Loading

0 comments on commit b95f895

Please sign in to comment.