Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
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
1 change: 1 addition & 0 deletions srcpkgs/ffmpeg7-devel
202 changes: 202 additions & 0 deletions srcpkgs/ffmpeg7/template
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
# Template file for 'ffmpeg7'
pkgname=ffmpeg7
version=7.1
revision=1
_arch="x86_64"
hostmakedepends="git automake autoconf pkg-config"
makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-devel
libXext-devel libXvMC-devel libxcb-devel lame-devel libtheora-devel
libvorbis-devel x264-devel xvidcore-devel jack-devel SDL2-devel
libcdio-paranoia-devel librtmp-devel libmodplug-devel gnutls-devel
speex-devel celt-devel harfbuzz-devel libass-devel opus-devel ocl-icd-devel
libbs2b-devel libvidstab-devel vmaf-devel libbluray-devel pulseaudio-devel
x265-devel v4l-utils-devel libvpx-devel libaom-devel libdav1d-devel
libwebp-devel libdrm-devel srt-devel librist-devel vulkan-loader-devel
zimg-devel libmysofa-devel libsvt-av1-devel $(vopt_if vaapi libva-devel)
$(vopt_if vdpau libvdpau-devel) $(vopt_if fdk_aac fdk-aac-devel)
$(vopt_if onevpl oneVPL-devel) $(vopt_if nvcodec nv-codec-headers)"

maintainer="Komeil Parseh <ahmdparsh129@gmail.com>"
short_desc="Decoding, encoding and streaming software"
license="GPL-3.0-or-later"
homepage="https://www.ffmpeg.org"
changelog="https://raw.githubusercontent.com/FFmpeg/FFmpeg/master/Changelog"
distfiles="https://ffmpeg.org/releases/ffmpeg-${version}.tar.xz"
checksum="40973d44970dbc83ef302b0609f2e74982be2d85916dd2ee7472d30678a7abe6"

build_options="vaapi vdpau fdk_aac nvcodec onevpl"

case "$XBPS_TARGET_MACHINE" in
i686*)
build_options_default+=" vaapi vdpau nvcodec"
hostmakedepends+=" nasm"
;;
x86_64*)
hostmakedepends+=" nasm"
build_options_default+=" vaapi vdpau nvcodec onevpl"
;;
ppc64*)
build_options_default+=" vaapi vdpau"
;;
mips*)
CFLAGS="-mnan=legacy";;
esac

do_configure() {
# Fix gcc on x86_64-musl only
if [ "$XBPS_TARGET_MACHINE" = "x86_64-musl" ]; then
vsed -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

./configure --prefix=/usr --disable-debug --enable-gpl --enable-gnutls \
--disable-stripping \
--enable-libcdio --enable-version3 --enable-runtime-cpudetect \
--enable-libmp3lame --enable-libvorbis --enable-libxvid \
--enable-libx264 --enable-libvpx --enable-libtheora \
--enable-shared --enable-static --enable-libxcb \
--enable-libpulse --enable-libfreetype --enable-libmodplug \
--enable-libspeex --enable-libcelt --enable-libass \
--enable-libopus --enable-librtmp --enable-libjack \
--disable-libopencore_amrnb --disable-libopencore_amrwb \
--disable-libopenjpeg --enable-libbluray \
--enable-postproc --enable-opencl --enable-libvmaf ${_args} \
--enable-libx265 --enable-libv4l2 --enable-libaom \
--enable-libbs2b --enable-libvidstab --enable-libdav1d \
--enable-libsrt --enable-librist --enable-libwebp \
--enable-vulkan --enable-libdrm --enable-libsvtav1 \
--enable-libfreetype --enable-libharfbuzz --enable-libfontconfig \
$(vopt_if fdk_aac '--enable-nonfree --enable-libfdk-aac') \
$(vopt_enable vaapi) $(vopt_enable vdpau) \
$(vopt_enable zimg libzimg) \
$(vopt_enable sofa libmysofa) \
$(vopt_enable onevpl libvpl) \
$(vopt_enable nvcodec nvenc) \
$(vopt_enable nvcodec nvdec)

}

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

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

libavcodec7_package() {
short_desc="FFmpeg codec library"
pkg_install() {
vmove "usr/lib/libavcodec.so.*"
}
}

libavdevice7_package() {
short_desc="FFmpeg device handling library"
pkg_install() {
vmove "usr/lib/libavdevice.so.*"
}
}

libavresample7_package() {
short_desc="Package deprecated, removal needed"
build_style=meta
}

libavformat7_package() {
short_desc="FFmpeg file format library"
pkg_install() {
vmove "usr/lib/libavformat.so.*"
}
}

libavutil7_package() {
short_desc="FFmpeg utility library"
pkg_install() {
vmove "usr/lib/libavutil.so.*"
}
}

libavfilter7_package() {
short_desc="FFmpeg audio/video filter library"
pkg_install() {
vmove "usr/lib/libavfilter.so.*"
}
}

libpostproc7_package() {
short_desc="FFmpeg video postprocessing library"
pkg_install() {
vmove "usr/lib/libpostproc.so.*"
}
}

libswscale7_package() {
short_desc="FFmpeg video scaling library"
pkg_install() {
vmove "usr/lib/libswscale.so.*"
}
}

libswresample7_package() {
short_desc="FFmpeg video resampling library"
pkg_install() {
vmove "usr/lib/libswresample.so.*"
}
}

ffmpeg7-devel_package() {
depends="
libavcodec7>=${version}_${revision}
libavdevice7>=${version}_${revision}
libavformat7>=${version}_${revision}
libavutil7>=${version}_${revision}
libavfilter7>=${version}_${revision}
libpostproc7>=${version}_${revision}
libswscale7>=${version}_${revision}
libswresample7>=${version}_${revision}"
short_desc+=" - development files"
conflicts="ffmpeg-devel"
replaces="ffmpeg-devel>=0"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

needs to conflict/replace with other ffmpeg*-devel too

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this necessary for the other subpkgs as well? The build of the ffplay7 package failed due to the conflict field.

...
ffplay7_package() {
		short_desc="Simple video player using FFmpeg and SDL2"
+		conflicts="ffplay*"
+		replaces="ffplay*>0"
		pkg_install() {
				vmove usr/bin/ffplay
				vmove "usr/share/man/man1/ffplay*"
		}
}

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

think ffplay is fine but ffmpeg6-devel exist

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

may need to disable ffplay in 6...or replace 6 entirely idk, depends how many deps build with 7 fine?

Copy link
Contributor Author

@mmdbalkhi mmdbalkhi Jan 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

may need to disable ffplay in 6...or replace 6 entirely

Why are you considering disabling ffplay in 6? Is there a specific reason behind it?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

7 is newer so the binary ffmpeg/ffplay may as well be 7 on the system. only a few thing use the binaries directly instead of the libraries. ill post my branch iaf.

basically:

  • add depends to ffplay7 here
  • ffmpeg and ffmpeg6 need the conflict for devel packages and a revbumped
  • ffplay6 becomes meta pkg like ffmpeg's ffplay is

case "$XBPS_TARGET_MACHINE" in
i686*)
# /usr/bin/strip: error: the input file '/destdir//ffmpeg-devel-4.4.4/usr/lib/libavfilter.a(vf_atadenoise.o)' has no sections
nostrip_files="/usr/lib/libavfilter.a";;
esac
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
}
}

ffplay7_package() {
short_desc="Simple video player using FFmpeg and SDL2"
pkg_install() {
vmove usr/bin/ffplay
vmove "usr/share/man/man1/ffplay*"
}
}
1 change: 1 addition & 0 deletions srcpkgs/ffplay7
1 change: 1 addition & 0 deletions srcpkgs/libavcodec7
1 change: 1 addition & 0 deletions srcpkgs/libavdevice7
1 change: 1 addition & 0 deletions srcpkgs/libavfilter7
1 change: 1 addition & 0 deletions srcpkgs/libavformat7
1 change: 1 addition & 0 deletions srcpkgs/libavresample7
1 change: 1 addition & 0 deletions srcpkgs/libavutil7
1 change: 1 addition & 0 deletions srcpkgs/libpostproc7
1 change: 1 addition & 0 deletions srcpkgs/libswresample7
1 change: 1 addition & 0 deletions srcpkgs/libswscale7
Loading