Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backport fixes to 4.4 #140

Merged
merged 1 commit into from
May 4, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ concurrency:
on:
push:
branches:
- jellyfin
- jellyfin-4.4
paths-ignore:
- '**/*.md'

pull_request:
branches:
- jellyfin
- jellyfin-4.4
paths-ignore:
- '**/*.md'

Expand Down
17 changes: 8 additions & 9 deletions .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -73,20 +73,19 @@ jobs:
script: |-
tag="${{ github.event.release.tag_name }}"
version="${tag#v}"
basename="jellyfin-ffmpeg_${version}-${{ matrix.arrays.codename }}"
basename="jellyfin-ffmpeg*_${version}-${{ matrix.arrays.codename }}"
find /srv/repository/releases/server/${{ matrix.arrays.distro }}/ -type l -name "jellyfin-ffmpeg*_*" -exec rm {} \;
if [ "${{ matrix.arrays.distro }}" != "windows" ]; then
find /srv/repository/releases/server/${{ matrix.arrays.distro }}/ -type l -name "jellyfin-ffmpeg_*" -exec rm {} \;
find /srv/repository/releases/server/${{ matrix.arrays.distro }}/versions/jellyfin-ffmpeg/${version} -type f -name "${basename}_*.deb" | while read file; do
reprepro -b /srv/repository/${{ matrix.arrays.distro }} --export=never --keepunreferencedfiles includedeb ${{ matrix.arrays.codename }} ${file}
done
find /srv/repository/releases/server/${{ matrix.arrays.distro }}/ -type l -name "${basename}_*" -exec rm {} \;
reprepro -b /srv/repository/${{ matrix.arrays.distro }} deleteunreferenced
reprepro -b /srv/repository/${{ matrix.arrays.distro }} export
rm -f /srv/repository/releases/server/${{ matrix.arrays.distro }}/{stable,stable-pre,unstable}/ffmpeg
ln -fs /srv/repository/releases/server/${{ matrix.arrays.distro }}/versions/jellyfin-ffmpeg/${version} /srv/repository/releases/server/${{ matrix.arrays.distro }}/stable/ffmpeg
ln -fs /srv/repository/releases/server/${{ matrix.arrays.distro }}/versions/jellyfin-ffmpeg/${version} /srv/repository/releases/server/${{ matrix.arrays.distro }}/stable-pre/ffmpeg
ln -fs /srv/repository/releases/server/${{ matrix.arrays.distro }}/versions/jellyfin-ffmpeg/${version} /srv/repository/releases/server/${{ matrix.arrays.distro }}/unstable/ffmpeg
else
rm -f /srv/repository/releases/server/${{ matrix.arrays.distro }}/ffmpeg
ln -fs /srv/repository/releases/server/${{ matrix.arrays.distro }}/versions/jellyfin-ffmpeg/${version} /srv/repository/releases/server/${{ matrix.arrays.distro }}/ffmpeg
fi
rm -f /srv/repository/releases/server/${{ matrix.arrays.distro }}/ffmpeg
rm -f /srv/repository/releases/server/${{ matrix.arrays.distro }}/{stable,stable-pre,unstable}/ffmpeg
ln -fs /srv/repository/releases/server/${{ matrix.arrays.distro }}/versions/jellyfin-ffmpeg/${version} /srv/repository/releases/server/${{ matrix.arrays.distro }}/ffmpeg
ln -fs /srv/repository/releases/server/${{ matrix.arrays.distro }}/versions/jellyfin-ffmpeg/${version} /srv/repository/releases/server/${{ matrix.arrays.distro }}/stable/ffmpeg
ln -fs /srv/repository/releases/server/${{ matrix.arrays.distro }}/versions/jellyfin-ffmpeg/${version} /srv/repository/releases/server/${{ matrix.arrays.distro }}/stable-pre/ffmpeg
ln -fs /srv/repository/releases/server/${{ matrix.arrays.distro }}/versions/jellyfin-ffmpeg/${version} /srv/repository/releases/server/${{ matrix.arrays.distro }}/unstable/ffmpeg
6 changes: 3 additions & 3 deletions debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,8 @@ Description: Tools for transcoding, streaming and playing of multimedia files
cutting edge.
.
This package contains a static build compatible with all Debian/Ubuntu
releases, designed to facilitate Jellyfin on systems with a repository ffmpeg
version of 4.1 or newer, which we do not yet support. Included files are:
releases, designed to facilitate Jellyfin on systems with an unpatched version
of ffmpeg in their repository. Included files are:
* ffmpeg: a command line tool to convert multimedia files between formats
* ffplay: a simple media player based on SDL and the FFmpeg libraries
* ffprobe: a simple multimedia stream analyzer
* vainfo: a command line tool to get information about local VA-API devices
21 changes: 1 addition & 20 deletions docker-build-win64.sh
Original file line number Diff line number Diff line change
Expand Up @@ -140,25 +140,6 @@ make install
popd
popd

# SDL2
mkdir sdl2
pushd sdl2
sdl2_ver="2.0.20"
sdl2_link="https://libsdl.org/release/SDL2-${sdl2_ver}.tar.gz"
wget ${sdl2_link} -O sdl2.tar.gz
tar xaf sdl2.tar.gz
pushd SDL2-${sdl2_ver}
./autogen.sh
./configure \
--prefix=${FF_DEPS_PREFIX} \
--host=${FF_TOOLCHAIN} \
--disable-shared \
--enable-static
make -j$(nproc)
make install
popd
popd

# FONTCONFIG
mkdir fontconfig
pushd fontconfig
Expand Down Expand Up @@ -531,6 +512,7 @@ fi
--disable-ffplay \
--disable-debug \
--disable-doc \
--disable-sdl2 \
--disable-w32threads \
--enable-pthreads \
--enable-shared \
Expand All @@ -542,7 +524,6 @@ fi
--enable-libxml2 \
--enable-zlib \
--enable-lzma \
--enable-sdl2 \
--enable-gmp \
--enable-libfreetype \
--enable-libfribidi \
Expand Down
15 changes: 9 additions & 6 deletions docker-build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,9 @@ prepare_extra_common() {
git clone -b stripped4 --depth=1 https://gitlab.freedesktop.org/wtaymans/fdk-aac-stripped.git
pushd fdk-aac-stripped
./autogen.sh
./configure --disable-silent-rules --disable-static --prefix=${TARGET_DIR} CFLAGS="-O3 -DNDEBUG" CXXFLAGS="-O3 -DNDEBUG" ${CROSS_OPT}
./configure \
--disable-{static,silent-rules} \
--prefix=${TARGET_DIR} CFLAGS="-O3 -DNDEBUG" CXXFLAGS="-O3 -DNDEBUG" ${CROSS_OPT}
make -j$(nproc) && make install && make install DESTDIR=${SOURCE_DIR}/fdk-aac-stripped
echo "fdk-aac-stripped${TARGET_DIR}/lib/libfdk-aac.so* usr/lib/jellyfin-ffmpeg/lib" >> ${SOURCE_DIR}/debian/jellyfin-ffmpeg.install
popd
Expand All @@ -88,7 +90,7 @@ prepare_extra_common() {
prepare_extra_amd64() {
# Download and install the nvidia headers
pushd ${SOURCE_DIR}
git clone -b n11.0.10.1 --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
git clone -b n11.0.10.1 --depth=1 https://github.com/FFmpeg/nv-codec-headers
pushd nv-codec-headers
make
make install
Expand Down Expand Up @@ -158,7 +160,7 @@ prepare_extra_amd64() {
# Provides MSDK runtime (libmfxhw64.so.1) for 11th Gen Rocket Lake and older
# Provides MFX dispatcher (libmfx.so.1) for FFmpeg
pushd ${SOURCE_DIR}
git clone -b intel-mediasdk-22.3.0 --depth=1 https://github.com/Intel-Media-SDK/MediaSDK
git clone -b intel-mediasdk-22.4.0 --depth=1 https://github.com/Intel-Media-SDK/MediaSDK
pushd MediaSDK
sed -i 's|MFX_PLUGINS_CONF_DIR "/plugins.cfg"|"/usr/lib/jellyfin-ffmpeg/lib/mfx/plugins.cfg"|g' api/mfx_dispatch/linux/mfxloader.cpp
mkdir build && pushd build
Expand All @@ -178,12 +180,12 @@ prepare_extra_amd64() {
# Provides VPL runtime (libmfx-gen.so.1.2) for 11th Gen Tiger Lake and newer
# Both MSDK and VPL runtime can be loaded by MFX dispatcher (libmfx.so.1)
pushd ${SOURCE_DIR}
git clone -b intel-onevpl-22.3.2 --depth=1 https://github.com/oneapi-src/oneVPL-intel-gpu
git clone -b intel-onevpl-22.4.0 --depth=1 https://github.com/oneapi-src/oneVPL-intel-gpu
pushd oneVPL-intel-gpu
mkdir build && pushd build
cmake -DCMAKE_INSTALL_PREFIX=${TARGET_DIR} ..
make -j$(nproc) && make install && make install DESTDIR=${SOURCE_DIR}/intel
echo "intel${TARGET_DIR}/lib/libmfx-gen.so* usr/lib/jellyfin-ffmpeg/lib" >> ${SOURCE_DIR}/debian/jellyfin-ffmpeg.install
echo "intel${TARGET_DIR}/lib/libmfx-gen* usr/lib/jellyfin-ffmpeg/lib" >> ${SOURCE_DIR}/debian/jellyfin-ffmpeg.install
popd
popd
popd
Expand All @@ -192,8 +194,9 @@ prepare_extra_amd64() {
# Full Feature Build: ENABLE_KERNELS=ON(Default) ENABLE_NONFREE_KERNELS=ON(Default)
# Free Kernel Build: ENABLE_KERNELS=ON ENABLE_NONFREE_KERNELS=OFF
pushd ${SOURCE_DIR}
git clone -b intel-media-22.3.1 --depth=1 https://github.com/intel/media-driver
git clone -b intel-media-22.4.0 --depth=1 https://github.com/intel/media-driver
pushd media-driver
sed -i 's|find_package(X11)||g' media_softlet/media_top_cmake.cmake media_driver/media_top_cmake.cmake
mkdir build && pushd build
cmake -DCMAKE_INSTALL_PREFIX=${TARGET_DIR} \
-DENABLE_KERNELS=ON \
Expand Down