Skip to content
Closed
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
8 changes: 8 additions & 0 deletions common/shlibs
Original file line number Diff line number Diff line change
Expand Up @@ -398,6 +398,14 @@ libpostproc.so.55 libpostproc-4.0_1
libavcodec.so.58 libavcodec-4.0_1
libavutil.so.56 libavutil-4.0_1
libavfilter.so.7 libavfilter-4.0_1
libavdevice.so.59 libavdevice-5.1.2_1
libavformat.so.59 libavformat-5.1.2_1
libswscale.so.6 libswscale-5.1.2_1
libswresample.so.4 libswresample-5.1.2_1
libpostproc.so.56 libpostproc-5.1.2_1
libavcodec.so.59 libavcodec-5.1.2_1
libavutil.so.57 libavutil-5.1.2_1
libavfilter.so.8 libavfilter-5.1.2_1
libSDL-1.2.so.0 SDL-1.2.14_1
libSDL_image-1.2.so.0 SDL_image-1.2.10_1
libx264.so.157 x264-20190507.2245_1
Expand Down
1 change: 1 addition & 0 deletions srcpkgs/ffmpeg5-devel
330 changes: 330 additions & 0 deletions srcpkgs/ffmpeg5/template
Original file line number Diff line number Diff line change
@@ -0,0 +1,330 @@
# Template file for 'ffmpeg5'
# audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname!
pkgname=ffmpeg5
version=5.1.2
revision=1
short_desc="Decoding, encoding and streaming software"
maintainer="Milan Toth <milgra@milgra.com>"
license="GPL-3.0-or-later"
homepage="https://www.ffmpeg.org"
changelog="https://raw.githubusercontent.com/FFmpeg/FFmpeg/master/Changelog"
distfiles="https://www.ffmpeg.org/releases/ffmpeg-${version}.tar.xz"
checksum=619e706d662c8420859832ddc259cd4d4096a48a2ce1eefd052db9e440eef3dc

hostmakedepends="
pkg-config
perl
yasm
"
# going through all library groups in ffmpeg 5's makefile

# EXTERNAL_AUTODETECT_LIBRARY_LIST

makedepends="
alsa-lib-devel
bzip2-devel
libxcb-devel
liblzma-devel
SDL2-devel
sndio-devel
zlib-devel"

# EXTERNAL_LIBRARY_GPL_LIST

makedepends+="
frei0r-plugins
libcdio-paranoia-devel
rubberband-devel
libvidstab-devel
x264-devel
x265-devel
xvidcore-devel"

# EXTERNAL_LIBRARY_NONFREE_LIST

makedepends+="
fdk-aac-devel
libtls-devel"

# EXTERNAL_LIBRARY_VERSION3_LIST

makedepends+="
gmp-devel"

# EXTERNAL_LIBRARY_LIST

makedepends+="
chromaprint-devel
libgcrypt-devel
ladspa-sdk
lcms2-devel
libaom-devel
libass-devel
libbluray-devel
libcaca-devel
celt-devel
codec2-devel
libdav1d-devel
libdrm-devel
fontconfig-devel
freetype-devel
fribidi-devel
glslang-devel
SPIRV-Tools-devel
libgme-devel
libgsm-devel
jack-devel
libmodplug-devel
lame-devel
libopencv4-devel
libopenjpeg2-devel
libopenmpt-devel
opus-devel
libplacebo-devel
libpulseaudio
rabbitmq-c-devel
librist-devel
librsvg-devel
librtmp-devel
snappy-devel
libsoxr-devel
speex-devel
srt-devel
libssh-devel
libtheora-devel
twolame-devel
libvorbis-devel
libvpx6-devel
libwebp-devel
libxml2-devel
zimg-devel
lilv-devel
lv2
libopenal-devel
mesa
openssl-devel
vapoursynth-devel
ocl-icd-devel
libmysofa-devel
vulkan-loader
$(vopt_if vaapi libva-devel)
$(vopt_if vdpau libvdpau-devel)
$(vopt_if nvenc nv-codec-headers)
$(vopt_if nvdec nv-codec-headers)
$(vopt_if svtav1 libsvt-av1-devel)
"

depends="ffplay>=${version}_${revision}"

build_options="vaapi vdpau nvenc nvdec svtav1"
build_options_default=""

case "$XBPS_TARGET_MACHINE" in
i686*|x86_64*) build_options_default+=" vaapi vdpau nvenc nvdec";;
ppc64*) build_options_default+=" vaapi vdpau";;
mips*) CFLAGS="-mnan=legacy";;
esac

if [ "$XBPS_TARGET_WORDSIZE" != "32" ]; then
build_options_default+=" svtav1"
fi

if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
makedepends+=" libatomic-devel"
fi

do_configure() {
# Fix gcc on x86_64-musl only
if [ "$XBPS_TARGET_MACHINE" = "x86_64-musl" ]; then
sed -i configure -e "s;_cflags_speed='-O3';_cflags_speed='-O2';"
fi

if [ "$CROSS_BUILD" ]; then
case "$XBPS_TARGET_MACHINE" in
arm*) _arch="arm";;
aarch64*) _arch="aarch64";;
mips*) _arch="mips";;
ppc64*) _arch="ppc64";;
ppc*) _arch="ppc";;
*) _arch="${XBPS_TARGET_MACHINE%%-musl}";;
esac

_args+=" --enable-cross-compile
--sysroot=$XBPS_CROSS_BASE
--cross-prefix=${XBPS_CROSS_TRIPLET}-
--target-os=linux --arch=${_arch}"
fi

case "$XBPS_TARGET_MACHINE" in
ppc|ppc-musl) _args+=" --disable-altivec";;
esac

if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
_args+=" --extra-libs=-latomic"
fi

./configure \
--prefix='/usr' \
--extra-cflags='-I/opt/cuda/include' \
--extra-ldflags='-L/opt/cuda/lib64' \
--disable-stripping \
--enable-shared \
--enable-static \
--enable-nonfree \
--enable-gpl \
--enable-version3 \
--enable-libxcb \
\
--enable-frei0r \
--enable-libcdio \
--enable-librubberband \
--enable-libvidstab \
--enable-libx264 \
--enable-libx265 \
--enable-libxvid \
\
--enable-libfdk-aac \
--enable-libtls \
\
--enable-gmp \
\
--enable-chromaprint \
--enable-gcrypt \
--enable-ladspa \
--enable-lcms2 \
--enable-libaom \
--enable-libass \
--enable-libbluray \
--enable-libcaca \
--enable-libcelt \
--enable-libcodec2 \
--enable-libdav1d \
--enable-libdrm \
--enable-libfontconfig \
--enable-libfreetype \
--enable-libfribidi \
--enable-libglslang \
--enable-libgme \
--enable-libgsm \
--enable-vapoursynth \
--enable-openssl \
--enable-opengl \
--enable-openal \
--enable-lv2 \
--enable-libzimg \
--enable-libxml2 \
--enable-libwebp \
--enable-libvorbis \
--enable-libtwolame \
--enable-libtheora \
--enable-libssh \
--enable-libsrt \
--enable-libspeex \
--enable-libsoxr \
--enable-librtmp \
--enable-librsvg \
--enable-librist \
--enable-librabbitmq \
--enable-libpulse \
--enable-libplacebo \
--enable-libopus \
--enable-libopenmpt \
--enable-libopenjpeg \
--enable-libmp3lame \
--enable-libmodplug \
--enable-libjack \
--enable-opencl \
--enable-libvpx \
--enable-libmysofa \
$(vopt_enable vaapi) \
$(vopt_enable vdpau) \
$(vopt_if nvenc '--enable-nvenc') \
$(vopt_if nvdec '--enable-nvdec') \
$(vopt_enable svtav1 libsvtav1)
}

do_build() {
make ${makejobs}
make doc/ff{mpeg,play}.1
}

do_install() {
make DESTDIR=${DESTDIR} install install-man
}

libavcodec5_package() {
short_desc="FFmpeg codec library"
pkg_install() {
vmove "usr/lib/libavcodec.so.*"
}
}
libavdevice5_package() {
short_desc="FFmpeg device handling library"
pkg_install() {
vmove "usr/lib/libavdevice.so.*"
}
}
libavformat5_package() {
short_desc="FFmpeg file format library"
pkg_install() {
vmove "usr/lib/libavformat.so.*"
}
}
libavutil5_package() {
short_desc="FFmpeg utility library"
pkg_install() {
vmove "usr/lib/libavutil.so.*"
}
}
libavfilter5_package() {
short_desc="FFmpeg audio/video filter library"
pkg_install() {
vmove "usr/lib/libavfilter.so.*"
}
}
libpostproc5_package() {
short_desc="FFmpeg video postprocessing library"
pkg_install() {
vmove "usr/lib/libpostproc.so.*"
}
}
libswscale5_package() {
short_desc="FFmpeg video scaling library"
pkg_install() {
vmove "usr/lib/libswscale.so.*"
}
}
libswresample5_package() {
short_desc="FFmpeg video resampling library"
pkg_install() {
vmove "usr/lib/libswresample.so.*"
}
}
ffmpeg5-devel_package() {
depends="
libavcodec5>=${version}_${revision}
libavdevice5>=${version}_${revision}
libavformat5>=${version}_${revision}
libavutil5>=${version}_${revision}
libavfilter5>=${version}_${revision}
libpostproc5>=${version}_${revision}
libswscale5>=${version}_${revision}
libswresample5>=${version}_${revision}"
short_desc+=" - development files"
pkg_install() {
vmove usr/include
vmove usr/lib/pkgconfig
vmove usr/lib/*.a
vmove usr/lib/*.so
vmove usr/share/ffmpeg/examples
vmove usr/share/man/man3
}
}

ffplay5_package() {
short_desc="Simple media player using FFmpeg and SDL2"
pkg_install() {
vmove usr/bin/ffplay
vmove "usr/share/man/man1/ffplay*"
}
}
1 change: 1 addition & 0 deletions srcpkgs/ffplay5
1 change: 1 addition & 0 deletions srcpkgs/libavcodec5
1 change: 1 addition & 0 deletions srcpkgs/libavdevice5
1 change: 1 addition & 0 deletions srcpkgs/libavfilter5
1 change: 1 addition & 0 deletions srcpkgs/libavformat5
1 change: 1 addition & 0 deletions srcpkgs/libavutil5
1 change: 1 addition & 0 deletions srcpkgs/libpostproc5
1 change: 1 addition & 0 deletions srcpkgs/libswresample5
1 change: 1 addition & 0 deletions srcpkgs/libswscale5