From 1070f83dd87bd4b06ad993db5493dbfef7688661 Mon Sep 17 00:00:00 2001 From: zlice Date: Sat, 29 Jun 2024 06:55:14 -0400 Subject: [PATCH 01/86] New package: ffmpeg6-6.0.1 --- common/shlibs | 9 + srcpkgs/ffmpeg6/patches/qsv.patch | 15 ++ srcpkgs/ffmpeg6/patches/qt6-webengine.patch | 36 +++ srcpkgs/ffmpeg6/template | 239 ++++++++++++++++++++ srcpkgs/ffplay | 2 +- srcpkgs/libavcodec6 | 1 + srcpkgs/libavdevice6 | 1 + srcpkgs/libavfilter6 | 1 + srcpkgs/libavformat6 | 1 + srcpkgs/libavresample6 | 1 + srcpkgs/libavutil6 | 1 + srcpkgs/libpostproc6 | 1 + srcpkgs/libswresample6 | 1 + srcpkgs/libswscale6 | 1 + 14 files changed, 309 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/ffmpeg6/patches/qsv.patch create mode 100644 srcpkgs/ffmpeg6/patches/qt6-webengine.patch create mode 100644 srcpkgs/ffmpeg6/template create mode 120000 srcpkgs/libavcodec6 create mode 120000 srcpkgs/libavdevice6 create mode 120000 srcpkgs/libavfilter6 create mode 120000 srcpkgs/libavformat6 create mode 120000 srcpkgs/libavresample6 create mode 120000 srcpkgs/libavutil6 create mode 120000 srcpkgs/libpostproc6 create mode 120000 srcpkgs/libswresample6 create mode 120000 srcpkgs/libswscale6 diff --git a/common/shlibs b/common/shlibs index dd0e334414354c..acc207266caff4 100644 --- a/common/shlibs +++ b/common/shlibs @@ -392,6 +392,15 @@ libid3tag.so.0 libid3tag-0.15.1b_1 libgif.so.7 giflib-5.1.0_1 libImlib2.so.1 imlib2-1.4.2_1 libmp3lame.so.0 lame-3.98.2_1 +libmp3lame.so.0 lame-3.98.2_1 +libavdevice.so.60 libavdevice6-6.0_1 +libavformat.so.60 libavformat6-6.0_1 +libswscale.so.7 libswscale6-6.0_1 +libswresample.so.4 libswresample6-6.0_1 +libpostproc.so.57 libpostproc6-6.0_1 +libavcodec.so.60 libavcodec6-6.0_1 +libavutil.so.58 libavutil6-6.0_1 +libavfilter.so.9 libavfilter6-6.0_1 libavdevice.so.58 libavdevice-4.0_1 libavformat.so.58 libavformat-4.0_1 libswscale.so.5 libswscale-4.0_1 diff --git a/srcpkgs/ffmpeg6/patches/qsv.patch b/srcpkgs/ffmpeg6/patches/qsv.patch new file mode 100644 index 00000000000000..94ef68f5683f3a --- /dev/null +++ b/srcpkgs/ffmpeg6/patches/qsv.patch @@ -0,0 +1,15 @@ +diff --git a/libavcodec/qsvdec.c b/libavcodec/qsvdec.c +index da700f25e9..b501964089 100644 +--- a/libavcodec/qsvdec.c ++++ b/libavcodec/qsvdec.c +@@ -1076,6 +1076,9 @@ static int qsv_decode_frame(AVCodecContext *avctx, AVFrame *frame, + + ret = qsv_process_data(avctx, &s->qsv, frame, got_frame, &s->buffer_pkt); + if (ret < 0){ ++ if (ret == AVERROR(EAGAIN)) ++ ret = 0; ++ + /* Drop buffer_pkt when failed to decode the packet. Otherwise, + the decoder will keep decoding the failure packet. */ + av_packet_unref(&s->buffer_pkt); + diff --git a/srcpkgs/ffmpeg6/patches/qt6-webengine.patch b/srcpkgs/ffmpeg6/patches/qt6-webengine.patch new file mode 100644 index 00000000000000..c0b397ba849438 --- /dev/null +++ b/srcpkgs/ffmpeg6/patches/qt6-webengine.patch @@ -0,0 +1,36 @@ +https://aur.archlinux.org/cgit/aur.git/tree/040-ffmpeg-add-av_stream_get_first_dts-for-chromium.patch?h=ffmpeg-intel-full-git +diff --git a/libavformat/avformat.h b/libavformat/avformat.h +index cd7b0d941c..b4a6dce885 100644 +--- a/libavformat/avformat.h ++++ b/libavformat/avformat.h +@@ -1025,6 +1025,10 @@ + + #define AV_PROGRAM_RUNNING 1 + ++// Chromium: We use the internal field first_dts vvv ++int64_t av_stream_get_first_dts(const AVStream *st); ++// Chromium: We use the internal field first_dts ^^^ ++ + /** + * New fields can be added to the end with minor version bumps. + * Removal, reordering and changes to existing fields require a major + +diff --git a/libavformat/utils.c b/libavformat/utils.c +index de7580c32d..0ef0fe530e 100644 +--- a/libavformat/utils.c ++++ b/libavformat/utils.c +@@ -152,6 +152,13 @@ + return AV_CODEC_ID_NONE; + } + ++// Chromium: We use the internal field first_dts vvv ++int64_t av_stream_get_first_dts(const AVStream *st) ++{ ++ return cffstream(st)->first_dts; ++} ++// Chromium: We use the internal field first_dts ^^^ ++ + enum AVCodecID ff_get_pcm_codec_id(int bps, int flt, int be, int sflags) + { + if (bps <= 0 || bps > 64) + diff --git a/srcpkgs/ffmpeg6/template b/srcpkgs/ffmpeg6/template new file mode 100644 index 00000000000000..050b103349f655 --- /dev/null +++ b/srcpkgs/ffmpeg6/template @@ -0,0 +1,239 @@ +# Template file for 'ffmpeg6' +# audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname! +pkgname=ffmpeg6 +version=6.0.1 +revision=1 +short_desc="Decoding, encoding and streaming software" +maintainer="Orphaned " +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=9b16b8731d78e596b4be0d720428ca42df642bb2d78342881ff7f5bc29fc9623 + +hostmakedepends="pkg-config perl" +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 + $(vopt_if pulseaudio pulseaudio-devel) + $(vopt_if vaapi libva-devel) $(vopt_if vdpau libvdpau-devel) + $(vopt_if x265 x265-devel) $(vopt_if v4l2 v4l-utils-devel) + $(vopt_if fdk_aac fdk-aac-devel) $(vopt_if vpx libvpx-devel) + $(vopt_if aom libaom-devel) $(vopt_if sndio sndio-devel) + $(vopt_if dav1d libdav1d-devel) $(vopt_if zimg zimg-devel) + $(vopt_if webp libwebp-devel) $(vopt_if sofa libmysofa-devel) + $(vopt_if drm libdrm-devel) $(vopt_if svtav1 libsvt-av1-devel) + $(vopt_if srt srt-devel) $(vopt_if rist librist-devel) + $(vopt_if vulkan 'vulkan-loader-devel') + $(vopt_if onevpl 'oneVPL oneVPL-devel') + $(vopt_if nvenc nv-codec-headers) $(vopt_if nvdec nv-codec-headers)" +depends="ffplay>=${version}_${revision}" + +build_options="x265 v4l2 vaapi vdpau vpx fdk_aac aom nvenc sndio pulseaudio + dav1d zimg webp sofa vulkan drm svtav1 srt rist nvdec onevpl" +build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d webp vulkan drm srt rist" +desc_option_srt="Enable support for SRT (Secure, Reliable, Transport)" +desc_option_rist="Enable support for RIST (Reliable Internet Stream Transport)" +desc_option_sofa="Enable support for AES SOFA" +desc_option_webp="Enable support for WebP" + +case "$XBPS_TARGET_MACHINE" in + i686*) + build_options_default+=" vaapi vdpau nvenc nvdec" + hostmakedepends+=" nasm" + ;; + x86_64*) + hostmakedepends+=" nasm" + build_options_default+=" vaapi vdpau nvenc nvdec onevpl" + ;; + ppc64*) build_options_default+=" vaapi vdpau";; + mips*) CFLAGS="-mnan=legacy";; +esac + +if [ "$XBPS_TARGET_WORDSIZE" != "32" ]; then + build_options_default+=" svtav1" +fi + +_apply_patch() { + local args="$1" pname="$(basename $2)" + + if [ ! -f ".${pname}_done" ]; then + patch -N $args -i $2 + touch .${pname}_done + fi +} + +post_patch() { + case "$XBPS_TARGET_MACHINE" in + ppc64le*) ;; + ppc*) _apply_patch -p1 ${FILESDIR}/altivec.patch ;; + 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 + + if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then + _args+=" --extra-libs=-latomic" + fi + + ./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 $(vopt_enable vpx libvpx) --enable-libtheora \ + --enable-shared --enable-static --enable-libxcb \ + $(vopt_enable pulseaudio libpulse) --enable-libfreetype --enable-libmodplug \ + --enable-libspeex --enable-libcelt --enable-libass \ + --enable-libopus --enable-librtmp --enable-libjack \ + $(vopt_if fdk_aac '--enable-nonfree --enable-libfdk-aac') \ + --disable-libopencore_amrnb --disable-libopencore_amrwb \ + --disable-libopenjpeg --enable-libbluray \ + --enable-postproc --enable-opencl --enable-libvmaf ${_args} \ + $(vopt_enable x265 libx265) \ + $(vopt_enable v4l2 libv4l2) \ + $(vopt_enable aom libaom) $(vopt_enable vaapi) $(vopt_enable vdpau) \ + --enable-libbs2b --enable-libvidstab \ + $(vopt_enable dav1d libdav1d) \ + $(vopt_enable zimg libzimg) \ + $(vopt_enable webp libwebp) \ + $(vopt_enable sofa libmysofa) \ + $(vopt_enable vulkan) \ + $(vopt_enable onevpl libvpl) \ + $(vopt_enable drm libdrm) \ + $(vopt_enable svtav1 libsvtav1) \ + $(vopt_enable srt libsrt) \ + $(vopt_enable rist librist) \ + $(vopt_enable nvenc nvenc) \ + $(vopt_enable nvdec nvdec) +} + +do_build() { + make ${makejobs} + make doc/ff{mpeg,play}.1 +} + +do_install() { + make DESTDIR=${DESTDIR} install install-man +} + +libavcodec6_package() { + short_desc="FFmpeg codec library" + pkg_install() { + vmove "usr/lib/libavcodec.so.*" + } +} + +libavdevice6_package() { + short_desc="FFmpeg device handling library" + pkg_install() { + vmove "usr/lib/libavdevice.so.*" + } +} + +libavresample6_package() { + short_desc="Package deprecated, removal needed" + build_style=meta +} + +libavformat6_package() { + short_desc="FFmpeg file format library" + pkg_install() { + vmove "usr/lib/libavformat.so.*" + } +} + +libavutil6_package() { + short_desc="FFmpeg utility library" + pkg_install() { + vmove "usr/lib/libavutil.so.*" + } +} + +libavfilter6_package() { + short_desc="FFmpeg audio/video filter library" + pkg_install() { + vmove "usr/lib/libavfilter.so.*" + } +} + +libpostproc6_package() { + short_desc="FFmpeg video postprocessing library" + pkg_install() { + vmove "usr/lib/libpostproc.so.*" + } +} + +libswscale6_package() { + short_desc="FFmpeg video scaling library" + pkg_install() { + vmove "usr/lib/libswscale.so.*" + } +} + +libswresample6_package() { + short_desc="FFmpeg video resampling library" + pkg_install() { + vmove "usr/lib/libswresample.so.*" + } +} + +ffmpeg6-devel_package() { + depends=" + libavcodec6>=${version}_${revision} + libavdevice6>=${version}_${revision} + libavformat6>=${version}_${revision} + libavutil6>=${version}_${revision} + libavfilter6>=${version}_${revision} + libpostproc6>=${version}_${revision} + libswscale6>=${version}_${revision} + libswresample6>=${version}_${revision}" + short_desc+=" - development files" + conflicts="ffmpeg-devel" + if [ "$XBPS_TARGET_MACHINE" = "i686" ]; then + # /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" + fi + 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 + } +} + +ffplay_package() { + short_desc="Simple video player using FFmpeg and SDL2" + pkg_install() { + vmove usr/bin/ffplay + vmove "usr/share/man/man1/ffplay*" + } +} diff --git a/srcpkgs/ffplay b/srcpkgs/ffplay index a9f1eea092d5e9..ccdfc6aa0e84ea 120000 --- a/srcpkgs/ffplay +++ b/srcpkgs/ffplay @@ -1 +1 @@ -ffmpeg \ No newline at end of file +ffmpeg6 \ No newline at end of file diff --git a/srcpkgs/libavcodec6 b/srcpkgs/libavcodec6 new file mode 120000 index 00000000000000..ccdfc6aa0e84ea --- /dev/null +++ b/srcpkgs/libavcodec6 @@ -0,0 +1 @@ +ffmpeg6 \ No newline at end of file diff --git a/srcpkgs/libavdevice6 b/srcpkgs/libavdevice6 new file mode 120000 index 00000000000000..ccdfc6aa0e84ea --- /dev/null +++ b/srcpkgs/libavdevice6 @@ -0,0 +1 @@ +ffmpeg6 \ No newline at end of file diff --git a/srcpkgs/libavfilter6 b/srcpkgs/libavfilter6 new file mode 120000 index 00000000000000..ccdfc6aa0e84ea --- /dev/null +++ b/srcpkgs/libavfilter6 @@ -0,0 +1 @@ +ffmpeg6 \ No newline at end of file diff --git a/srcpkgs/libavformat6 b/srcpkgs/libavformat6 new file mode 120000 index 00000000000000..ccdfc6aa0e84ea --- /dev/null +++ b/srcpkgs/libavformat6 @@ -0,0 +1 @@ +ffmpeg6 \ No newline at end of file diff --git a/srcpkgs/libavresample6 b/srcpkgs/libavresample6 new file mode 120000 index 00000000000000..ccdfc6aa0e84ea --- /dev/null +++ b/srcpkgs/libavresample6 @@ -0,0 +1 @@ +ffmpeg6 \ No newline at end of file diff --git a/srcpkgs/libavutil6 b/srcpkgs/libavutil6 new file mode 120000 index 00000000000000..ccdfc6aa0e84ea --- /dev/null +++ b/srcpkgs/libavutil6 @@ -0,0 +1 @@ +ffmpeg6 \ No newline at end of file diff --git a/srcpkgs/libpostproc6 b/srcpkgs/libpostproc6 new file mode 120000 index 00000000000000..ccdfc6aa0e84ea --- /dev/null +++ b/srcpkgs/libpostproc6 @@ -0,0 +1 @@ +ffmpeg6 \ No newline at end of file diff --git a/srcpkgs/libswresample6 b/srcpkgs/libswresample6 new file mode 120000 index 00000000000000..ccdfc6aa0e84ea --- /dev/null +++ b/srcpkgs/libswresample6 @@ -0,0 +1 @@ +ffmpeg6 \ No newline at end of file diff --git a/srcpkgs/libswscale6 b/srcpkgs/libswscale6 new file mode 120000 index 00000000000000..ccdfc6aa0e84ea --- /dev/null +++ b/srcpkgs/libswscale6 @@ -0,0 +1 @@ +ffmpeg6 \ No newline at end of file From c39a8e17f59d9f9c23e0deb96134e4cf885811b8 Mon Sep 17 00:00:00 2001 From: zlice Date: Sat, 29 Jun 2024 06:53:22 -0400 Subject: [PATCH 02/86] ffmpeg: revbump for ffmpeg6 --- srcpkgs/ffmpeg/template | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/srcpkgs/ffmpeg/template b/srcpkgs/ffmpeg/template index 93618cd977537e..0dbcb99de37681 100644 --- a/srcpkgs/ffmpeg/template +++ b/srcpkgs/ffmpeg/template @@ -2,8 +2,8 @@ # audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname! pkgname=ffmpeg version=4.4.4 -revision=7 -short_desc="Decoding, encoding and streaming software" +revision=8 +short_desc="Decoding, encoding and streaming software - ffmpeg4 libraries only" maintainer="Orphaned " license="GPL-3.0-or-later" homepage="https://www.ffmpeg.org" @@ -27,13 +27,15 @@ makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-deve $(vopt_if webp libwebp-devel) $(vopt_if sofa libmysofa-devel) $(vopt_if drm libdrm-devel) $(vopt_if svtav1 libsvt-av1-devel) $(vopt_if srt srt-devel) $(vopt_if rist librist-devel) - $(vopt_if vulkan 'vulkan-loader-devel') + $(vopt_if vulkan 'vulkan-loader Vulkan-Headers') $(vopt_if nvenc nv-codec-headers) $(vopt_if nvdec nv-codec-headers)" -depends="ffplay>=${version}_${revision}" +# ffmpeg6 provides ffmpeg, ffprobe, ffplay, etc +depends="ffmpeg6" build_options="x265 v4l2 vaapi vdpau vpx fdk_aac aom nvenc sndio pulseaudio dav1d zimg webp sofa vulkan drm svtav1 srt rist nvdec" build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d webp vulkan drm srt rist" + desc_option_srt="Enable support for SRT (Secure, Reliable, Transport)" desc_option_rist="Enable support for RIST (Reliable Internet Stream Transport)" desc_option_sofa="Enable support for AES SOFA" @@ -41,9 +43,9 @@ desc_option_webp="Enable support for WebP" case "$XBPS_TARGET_MACHINE" in i686*|x86_64*) - hostmakedepends+=" nasm" - build_options_default+=" vaapi vdpau nvenc nvdec" - ;; + hostmakedepends+=" nasm" + build_options_default+=" vaapi vdpau nvenc nvdec" + ;; ppc64*) build_options_default+=" vaapi vdpau";; mips*) CFLAGS="-mnan=legacy";; esac @@ -52,6 +54,10 @@ if [ "$XBPS_TARGET_WORDSIZE" != "32" ]; then build_options_default+=" svtav1" fi +if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then + makedepends+=" libatomic-devel" +fi + _apply_patch() { local args="$1" pname="$(basename $2)" @@ -112,7 +118,7 @@ do_configure() { $(vopt_if fdk_aac '--enable-nonfree --enable-libfdk-aac') \ --disable-libopencore_amrnb --disable-libopencore_amrwb \ --disable-libopenjpeg --enable-libbluray \ - --enable-postproc --enable-opencl --enable-libvmaf ${_args} \ + --enable-postproc --enable-opencl ${_args} --enable-libvmaf ${_args} \ $(vopt_enable x265 libx265) \ $(vopt_enable v4l2 libv4l2) \ $(vopt_enable aom libaom) $(vopt_enable vaapi) $(vopt_enable vdpau) \ @@ -137,6 +143,7 @@ do_build() { do_install() { make DESTDIR=${DESTDIR} install install-man + rm -rf ${DESTDIR}/usr/bin } libavcodec_package() { @@ -214,12 +221,11 @@ ffmpeg-devel_package() { libswresample>=${version}_${revision} libavresample>=${version}_${revision}" short_desc+=" - development files" - + conflicts="ffmpeg6-devel" if [ "$XBPS_TARGET_MACHINE" = "i686" ]; then # /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" fi - pkg_install() { vmove usr/include vmove usr/lib/pkgconfig @@ -229,11 +235,3 @@ ffmpeg-devel_package() { vmove usr/share/man/man3 } } - -ffplay_package() { - short_desc="Simple video player using FFmpeg and SDL2" - pkg_install() { - vmove usr/bin/ffplay - vmove "usr/share/man/man1/ffplay*" - } -} From 66dc11e3b19a6a086c35052cf1fb28519d51f0e2 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:47 -0400 Subject: [PATCH 03/86] ffmpegthumbnailer: revbump for ffmpeg6 --- .../ffmpegthumbnailer/patches/ffmpeg6.patch | 202 ++++++++++++++++++ srcpkgs/ffmpegthumbnailer/template | 8 +- 2 files changed, 206 insertions(+), 4 deletions(-) create mode 100644 srcpkgs/ffmpegthumbnailer/patches/ffmpeg6.patch diff --git a/srcpkgs/ffmpegthumbnailer/patches/ffmpeg6.patch b/srcpkgs/ffmpegthumbnailer/patches/ffmpeg6.patch new file mode 100644 index 00000000000000..363ff35a28419d --- /dev/null +++ b/srcpkgs/ffmpegthumbnailer/patches/ffmpeg6.patch @@ -0,0 +1,202 @@ +--- a/libffmpegthumbnailer/moviedecoder.cpp 2017-11-21 14:06:57.000000000 -0500 ++++ b/libffmpegthumbnailer/moviedecoder.cpp 2023-05-05 13:14:47.946560668 -0400 +@@ -41,11 +41,6 @@ + namespace ffmpegthumbnailer + { + +-struct SilenceLogLevel +-{ +- SilenceLogLevel() { av_log_set_level(AV_LOG_QUIET); } +-}; +- + MovieDecoder::MovieDecoder(AVFormatContext* pavContext) + : m_VideoStream(-1) + , m_pFormatContext(pavContext) +@@ -70,8 +65,6 @@ + + void MovieDecoder::initialize(const string& filename, bool preferEmbeddedMetadata) + { +- av_register_all(); +- avcodec_register_all(); + avformat_network_init(); + + string inputFile = filename == "-" ? "pipe:" : filename; +@@ -97,8 +90,7 @@ + { + if (m_pVideoCodecContext) + { +- avcodec_close(m_pVideoCodecContext); +- m_pVideoCodecContext = nullptr; ++ avcodec_free_context(&m_pVideoCodecContext); + } + + if ((!m_FormatContextWasGiven) && m_pFormatContext) +@@ -152,10 +144,10 @@ + for (unsigned int i = 0; i < m_pFormatContext->nb_streams; ++i) + { + AVStream *stream = m_pFormatContext->streams[i]; +- auto ctx = m_pFormatContext->streams[i]->codec; +- if (ctx->codec_type == AVMEDIA_TYPE_VIDEO) ++ auto par = m_pFormatContext->streams[i]->codecpar; ++ if (par->codec_type == AVMEDIA_TYPE_VIDEO) + { +- if (!preferEmbeddedMetadata || !isStillImageCodec(ctx->codec_id)) ++ if (!preferEmbeddedMetadata || !isStillImageCodec(par->codec_id)) + { + videoStreams.push_back(i); + continue; +@@ -203,8 +195,7 @@ + } + + m_pVideoStream = m_pFormatContext->streams[m_VideoStream]; +- m_pVideoCodecContext = m_pVideoStream->codec; +- m_pVideoCodec = avcodec_find_decoder(m_pVideoCodecContext->codec_id); ++ m_pVideoCodec = avcodec_find_decoder(m_pVideoStream->codecpar->codec_id); + + if (m_pVideoCodec == nullptr) + { +@@ -214,6 +205,20 @@ + throw logic_error("Video Codec not found"); + } + ++ m_pVideoCodecContext = avcodec_alloc_context3(m_pVideoCodec); ++ ++ if (m_pVideoCodecContext == nullptr) ++ { ++ destroy(); ++ throw logic_error("Could not allocate video codec context"); ++ } ++ ++ if (avcodec_parameters_to_context(m_pVideoCodecContext, m_pVideoStream->codecpar) < 0) ++ { ++ destroy(); ++ throw logic_error("Could not configure video codec context"); ++ } ++ + m_pVideoCodecContext->workaround_bugs = 1; + + if (avcodec_open2(m_pVideoCodecContext, m_pVideoCodec, nullptr) < 0) +@@ -386,13 +391,6 @@ + + void MovieDecoder::initializeFilterGraph(const AVRational& timeBase, const std::string& size, bool maintainAspectRatio) + { +- static const AVPixelFormat pixelFormats[] = { AV_PIX_FMT_RGB24, AV_PIX_FMT_NONE }; +- +- auto del = [] (AVBufferSinkParams* p) { av_freep(p); }; +- std::unique_ptr buffersinkParams(av_buffersink_params_alloc(), del); +- +- avfilter_register_all(); +- + m_pFilterGraph = avfilter_graph_alloc(); + assert(m_pFilterGraph); + +@@ -404,10 +402,8 @@ + + checkRc(avfilter_graph_create_filter(&m_pFilterSource, avfilter_get_by_name("buffer"), "thumb_buffer", ss.str().c_str(), nullptr, m_pFilterGraph), + "Failed to create filter source"); +- buffersinkParams->pixel_fmts = pixelFormats; +- checkRc(avfilter_graph_create_filter(&m_pFilterSink, avfilter_get_by_name("buffersink"), "thumb_buffersink", nullptr, buffersinkParams.get(), m_pFilterGraph), ++ checkRc(avfilter_graph_create_filter(&m_pFilterSink, avfilter_get_by_name("buffersink"), "thumb_buffersink", nullptr, nullptr, m_pFilterGraph), + "Failed to create filter sink"); +- buffersinkParams.release(); + + AVFilterContext* yadifFilter = nullptr; + if (m_pFrame->interlaced_frame != 0) +@@ -500,15 +496,15 @@ + } + + checkRc(av_seek_frame(m_pFormatContext, -1, timestamp, 0), "Seeking in video failed"); +- avcodec_flush_buffers(m_pFormatContext->streams[m_VideoStream]->codec); ++ avcodec_flush_buffers(m_pVideoCodecContext); + + int keyFrameAttempts = 0; +- bool gotFrame = 0; ++ bool gotFrame; + + do + { + int count = 0; +- gotFrame = 0; ++ gotFrame = false; + + while (!gotFrame && count < 20) + { +@@ -552,17 +548,33 @@ + return false; + } + +- av_frame_unref(m_pFrame); +- +- int frameFinished; ++ int rc = avcodec_send_packet(m_pVideoCodecContext, m_pPacket); ++ if(rc == AVERROR(EAGAIN)) ++ { ++ rc = 0; ++ } + +- int bytesDecoded = avcodec_decode_video2(m_pVideoCodecContext, m_pFrame, &frameFinished, m_pPacket); +- if (bytesDecoded < 0) ++ if(rc == AVERROR_EOF) ++ { ++ return false; ++ } ++ else if(rc < 0) + { +- throw logic_error("Failed to decode video frame: bytesDecoded < 0"); ++ throw logic_error("Failed to decode video frame: avcodec_send_packet() < 0"); + } + +- return frameFinished > 0; ++ rc = avcodec_receive_frame(m_pVideoCodecContext, m_pFrame); ++ switch(rc) ++ { ++ case 0: ++ return true; ++ ++ case AVERROR(EAGAIN): ++ return false; ++ ++ default: ++ throw logic_error("Failed to decode video frame: avcodec_receive_frame() < 0"); ++ } + } + + bool MovieDecoder::getVideoPacket() +@@ -570,8 +582,6 @@ + bool framesAvailable = true; + bool frameDecoded = false; + +- int attempts = 0; +- + if (m_pPacket) + { + av_packet_unref(m_pPacket); +@@ -580,6 +590,7 @@ + + m_pPacket = new AVPacket(); + ++ + while (framesAvailable && !frameDecoded) + { + framesAvailable = av_read_frame(m_pFormatContext, m_pPacket) >= 0; +@@ -644,7 +655,7 @@ + + int32_t MovieDecoder::getStreamRotation() + { +- int32_t* matrix = reinterpret_cast(av_stream_get_side_data(m_pVideoStream, AV_PKT_DATA_DISPLAYMATRIX, nullptr)); ++ auto matrix = reinterpret_cast(av_stream_get_side_data(m_pVideoStream, AV_PKT_DATA_DISPLAYMATRIX, nullptr)); + if (matrix) + { + auto angle = lround(av_display_rotation_get(matrix)); + +--- a/libffmpegthumbnailer/moviedecoder.h 2017-11-12 04:23:38.000000000 -0500 ++++ b/libffmpegthumbnailer/moviedecoder.h 2023-05-05 13:26:07.095529911 -0400 +@@ -78,7 +78,7 @@ + int m_VideoStream; + AVFormatContext* m_pFormatContext; + AVCodecContext* m_pVideoCodecContext; +- AVCodec* m_pVideoCodec; ++ const AVCodec* m_pVideoCodec; + AVFilterGraph* m_pFilterGraph; + AVFilterContext* m_pFilterSource; + AVFilterContext* m_pFilterSink; diff --git a/srcpkgs/ffmpegthumbnailer/template b/srcpkgs/ffmpegthumbnailer/template index 039eea7622b391..add38199986eb5 100644 --- a/srcpkgs/ffmpegthumbnailer/template +++ b/srcpkgs/ffmpegthumbnailer/template @@ -1,16 +1,16 @@ # Template file for 'ffmpegthumbnailer' pkgname=ffmpegthumbnailer version=2.2.2 -revision=1 +revision=2 build_style=cmake hostmakedepends="pkg-config" -makedepends="libpng-devel libjpeg-turbo-devel ffmpeg-devel" +makedepends="libpng-devel libjpeg-turbo-devel ffmpeg6-devel" depends="ffmpeg" short_desc="Lightweight video thumbnailer" maintainer="Orphaned " license="GPL-2.0-or-later" -homepage="https://github.com/dirkvdb/${pkgname}" -distfiles="${homepage}/releases/download/${version}/${pkgname}-${version}.tar.bz2" +homepage="https://github.com/dirkvdb" +distfiles="${homepage}/${pkgname}/releases/download/${version}/${pkgname}-${version}.tar.bz2" checksum=1cb24059c38223f657b300c84dd80491b7040d4b69471c4fea69be862bc99b5b post_install() { From 028aaec914f5fc9c382ef2c1110d338d750141f6 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:47 -0400 Subject: [PATCH 04/86] ffmpegthumbs: revbump for ffmpeg6 ffmpegthumbs : redo --- srcpkgs/ffmpegthumbs/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/ffmpegthumbs/template b/srcpkgs/ffmpegthumbs/template index c26b2627b5a0e3..6ce033c2059347 100644 --- a/srcpkgs/ffmpegthumbs/template +++ b/srcpkgs/ffmpegthumbs/template @@ -1,14 +1,14 @@ # Template file for 'ffmpegthumbs' pkgname=ffmpegthumbs version=24.02.2 -revision=1 +revision=2 build_style=cmake configure_args="-DQT_MAJOR_VERSION=6 -DKF6_HOST_TOOLING=/usr/lib/cmake -DKDE_INSTALL_QTPLUGINDIR=lib/qt6/plugins" hostmakedepends="extra-cmake-modules pkg-config gettext qt6-base kf6-kconfig" makedepends="qt6-base-devel kf6-kconfig-devel kf6-kio-devel kf6-ki18n-devel - ffmpeg-devel taglib-devel" + ffmpeg6-devel taglib-devel" short_desc="FFmpeg-based thumbnail creator for video files" maintainer="Michael Straube " license="GPL-2.0-or-later" From 5437048785667494c3743599a01afa9a28ffa2af Mon Sep 17 00:00:00 2001 From: zlice Date: Fri, 31 Mar 2023 09:07:40 -0400 Subject: [PATCH 05/86] nv-codec-headers: update to 12.0.16.0 --- srcpkgs/nv-codec-headers/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/nv-codec-headers/template b/srcpkgs/nv-codec-headers/template index 3d422a61e48917..251e057f826fb8 100644 --- a/srcpkgs/nv-codec-headers/template +++ b/srcpkgs/nv-codec-headers/template @@ -1,6 +1,6 @@ # Template file for 'nv-codec-headers' pkgname=nv-codec-headers -version=11.1.5.1 +version=12.0.16.0 revision=1 build_style=gnu-makefile short_desc="FFmpeg version of headers required to interface with Nvidias codec APIs" @@ -8,7 +8,7 @@ maintainer="Orphaned " license="MIT" homepage="http://git.videolan.org/?p=ffmpeg/nv-codec-headers.git" distfiles="https://github.com/FFmpeg/nv-codec-headers/archive/n${version}.tar.gz" -checksum=d095fbd56aa93772471a323be0ebe65504a0f43f06c76a30b6d25da77b06ae9c +checksum=2a1533b65f55f9da52956faf0627ed3b74868ac0c7f269990edd21369113b48f post_install() { sed -n '4,25p' include/ffnvcodec/nvEncodeAPI.h > LICENSE From da3c9e5bc1d185888f96562ca16ae8bd621673a1 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:47 -0400 Subject: [PATCH 06/86] guvcview: update to 2.0.8. --- srcpkgs/guvcview/patches/fix-include.patch | 10 ++++++++++ srcpkgs/guvcview/template | 9 ++++----- 2 files changed, 14 insertions(+), 5 deletions(-) create mode 100644 srcpkgs/guvcview/patches/fix-include.patch diff --git a/srcpkgs/guvcview/patches/fix-include.patch b/srcpkgs/guvcview/patches/fix-include.patch new file mode 100644 index 00000000000000..503c2af3b78c1a --- /dev/null +++ b/srcpkgs/guvcview/patches/fix-include.patch @@ -0,0 +1,10 @@ +--- a/guvcview/guvcview.c ++++ b/guvcview/guvcview.c +@@ -28,6 +28,7 @@ + #include + #include + #include ++#include + + #include "gview.h" + #include "gviewv4l2core.h" diff --git a/srcpkgs/guvcview/template b/srcpkgs/guvcview/template index d42fd38fa4ad12..07efdb1b9b4ae3 100644 --- a/srcpkgs/guvcview/template +++ b/srcpkgs/guvcview/template @@ -1,12 +1,11 @@ # Template file for 'guvcview' pkgname=guvcview -version=2.0.7 -revision=2 -create_wrksrc=yes +version=2.0.8 +revision=1 build_style=gnu-configure configure_args="--disable-static --disable-debian-menu" hostmakedepends="pkg-config intltool autoconf automake libtool glib-devel" -makedepends="eudev-libudev-devel gtk+3-devel SDL2-devel ffmpeg-devel libusb-devel +makedepends="eudev-libudev-devel gtk+3-devel SDL2-devel ffmpeg6-devel libusb-devel pulseaudio-devel v4l-utils-devel portaudio-devel gsl-devel" depends="desktop-file-utils" short_desc="Simple GTK interface for capturing and viewing video from UVC devices" @@ -14,7 +13,7 @@ maintainer="Orphaned " license="GPL-3.0-or-later" homepage="http://guvcview.sourceforge.net/" distfiles="${SOURCEFORGE_SITE}/${pkgname}/${pkgname}-src-${version}.tar.bz2" -checksum=f47d51fbd06e44eeaa1a82f4a153c927527c90d94514197a70b2956028cc8ad4 +checksum=a21f4e448286666cf27bafef5290cc953a0a1796b752e5bbe521266dc1230c81 post_patch() { sed '31a#include ' -i guvcview/guvcview.c From ccc2c9ad7470f6c27b601834c5548c8892ec2075 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:48 -0400 Subject: [PATCH 07/86] handbrake: update to 1.6.1 --- .../patches/fix-missing-x265-link-flag.patch | 11 ++++++----- .../handbrake/patches/libhb-vpl-include.patch | 15 +++++++++++++++ srcpkgs/handbrake/template | 19 +++++++++++-------- 3 files changed, 32 insertions(+), 13 deletions(-) create mode 100644 srcpkgs/handbrake/patches/libhb-vpl-include.patch diff --git a/srcpkgs/handbrake/patches/fix-missing-x265-link-flag.patch b/srcpkgs/handbrake/patches/fix-missing-x265-link-flag.patch index 26db03867a0c83..d6bb2eda627a36 100644 --- a/srcpkgs/handbrake/patches/fix-missing-x265-link-flag.patch +++ b/srcpkgs/handbrake/patches/fix-missing-x265-link-flag.patch @@ -1,14 +1,15 @@ --- a/gtk/configure.ac +++ b/gtk/configure.ac @@ -203,7 +203,7 @@ - + AM_CONDITIONAL([MINGW], [test "x$mingw_flag" = "xyes"]) - --HB_LIBS="$HB_LIBS -lhandbrake -lavformat -lavfilter -lavcodec -lavutil -ldav1d -lswresample -lpostproc -ldvdnav -ldvdread -lmp3lame -lvorbis -lvorbisenc -logg -lswscale -ltheoraenc -ltheoradec -lvpx -lz -lbz2 -lbluray -lass -lfontconfig -lfreetype -lxml2 -ljansson -lopus -lspeex -lturbojpeg -llzma -lzimg" -+HB_LIBS="$HB_LIBS -lhandbrake -lavformat -lavfilter -lavcodec -lavutil -ldav1d -lswresample -lpostproc -ldvdnav -ldvdread -lmp3lame -lvorbis -lvorbisenc -logg -lswscale -ltheoraenc -ltheoradec -lvpx -lz -lbz2 -lbluray -lass -lfontconfig -lfreetype -lxml2 -ljansson -lopus -lspeex -lturbojpeg -llzma -lzimg -ldl" + +-HB_LIBS="$HB_LIBS -lhandbrake -lavformat -lavfilter -lavcodec -lavutil -ldav1d -lswresample -lpostproc -ldvdnav -ldvdread -lmp3lame -lvorbis -lvorbisenc -logg -lswscale -ltheoraenc -ltheoradec -lvpx -lz -lbz2 -lbluray -lass -lfontconfig -lfreetype -lxml2 -ljansson -lopus -lspeex -lturbojpeg -llzma -lzimg -lSvtAv1Enc" ++HB_LIBS="$HB_LIBS -lhandbrake -lavformat -lavfilter -lavcodec -lavutil -ldav1d -lswresample -lpostproc -ldvdnav -ldvdread -lmp3lame -lvorbis -lvorbisenc -logg -lswscale -ltheoraenc -ltheoradec -lvpx -lz -lbz2 -lbluray -lass -lfontconfig -lfreetype -lxml2 -ljansson -lopus -lspeex -lturbojpeg -llzma -lzimg -lSvtAv1Enc -ldl" HB_CPPFLAGS="$HB_CPPFLAGS $HBINC" - + PKG_CHECK_MODULES([x264], [x264], sys_x264=yes, sys_x264=no) + --- a/test/module.defs +++ b/test/module.defs @@ -69,6 +69,9 @@ diff --git a/srcpkgs/handbrake/patches/libhb-vpl-include.patch b/srcpkgs/handbrake/patches/libhb-vpl-include.patch new file mode 100644 index 00000000000000..298f9f4ab28f2a --- /dev/null +++ b/srcpkgs/handbrake/patches/libhb-vpl-include.patch @@ -0,0 +1,15 @@ +--- a/libhb/module.defs 2023-01-22 11:36:49.000000000 -0500 ++++ b/libhb/module.defs 2023-04-03 22:37:52.395467010 -0400 +@@ -46,11 +46,7 @@ + LIBHB.GCC.I += $(LIBHB.build/) $(CONTRIB.build/)include + + ifeq (1,$(FEATURE.qsv)) +- ifeq ($(HOST.system),freebsd)) +- LIBHB.GCC.I += $(LOCALBASE)/include/vpl +- else +- LIBHB.GCC.I += $(CONTRIB.build/)include/vpl +- endif ++ LIBHB.GCC.I += /usr/include/vpl + endif + + ifneq (,$(filter $(HOST.system),freebsd netbsd openbsd)) diff --git a/srcpkgs/handbrake/template b/srcpkgs/handbrake/template index ca5e4571e49c37..a27d74d2458f3f 100644 --- a/srcpkgs/handbrake/template +++ b/srcpkgs/handbrake/template @@ -1,19 +1,22 @@ # Template file for 'handbrake' pkgname=handbrake -version=1.5.1 +version=1.6.1 revision=1 build_style=gnu-configure configure_args="--force --disable-gtk-update-checks --disable-df-fetch --harden - $(vopt_enable fdk_aac fdk-aac) $(vopt_enable nvenc)" + $(vopt_enable fdk_aac fdk-aac) $(vopt_enable nvenc) $(vopt_enable qsv)" make_build_args="-C ${XBPS_TRIPLET}" make_install_args="-C ${XBPS_TRIPLET}" hostmakedepends="automake cmake gettext-devel glib-devel intltool libtool m4 meson nasm pkg-config python3" -makedepends="bzip2-devel ffmpeg-devel gst-plugins-base1-devel gtk+3-devel +makedepends="bzip2-devel ffmpeg6-devel gst-plugins-base1-devel gtk+3-devel jansson-devel lame-devel libass-devel libbluray-devel libdav1d-devel libdvdnav-devel libdvdread-devel libgudev-devel libnuma-devel libsamplerate-devel libtheora-devel libvorbis-devel libvpx-devel libxml2-devel - opus-devel speex-devel x264-devel x265-devel zimg-devel + opus-devel speex-devel x264-devel x265-devel zimg-devel libsvt-av1-devel $(vopt_if fdk_aac fdk-aac-devel) + $(vopt_if qsv libva-devel) + $(vopt_if qsv libdrm-devel) + $(vopt_if qsv oneVPL-devel) $(vopt_if nvenc nv-codec-headers)" depends="desktop-file-utils gst-plugins-good1 hicolor-icon-theme" short_desc="Multithreaded video transcoder" @@ -21,15 +24,15 @@ maintainer="Enno Boland " license="GPL-2.0-only" homepage="https://handbrake.fr/" distfiles="https://github.com/HandBrake/HandBrake/releases/download/${version}/HandBrake-${version}-source.tar.bz2" -checksum=3999fe06d5309c819799a73a968a8ec3840e7840c2b64af8f5cdb7fd8c9430f0 +checksum=94ccfe03db917a91650000c510f7fd53f844da19f19ad4b4be1b8f6bc31a8d4c nocross=yes -build_options="fdk_aac nvenc" +build_options="fdk_aac nvenc qsv" case "$XBPS_TARGET_MACHINE" in x86_64*|i686*) CFLAGS="-msse" - build_options_default="nvenc" + build_options_default="nvenc qsv" ;; esac @@ -37,7 +40,7 @@ pre_configure() { # use system libraries, don't download them rm -rf contrib/ for module in fdk-aac ffmpeg libbluray libdav1d libdvdnav libdvdread nvenc \ - x265 zimg; do + x265 zimg svt-av1 libvpl; do vsed -i "/MODULES += contrib\/${module}/d" make/include/main.defs done } From ca0ea22185c01e28ce2776885c27851227ff7046 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 19:59:04 -0400 Subject: [PATCH 08/86] opencv: update to 4.7.0. --- common/shlibs | 104 ++++++++++++++++++++-------------------- srcpkgs/opencv/template | 10 ++-- 2 files changed, 57 insertions(+), 57 deletions(-) diff --git a/common/shlibs b/common/shlibs index acc207266caff4..bfacd7b99c5740 100644 --- a/common/shlibs +++ b/common/shlibs @@ -2191,58 +2191,58 @@ libcapstone.so.5 capstone-5.0.1_1 libhavege.so.2 libhaveged-1.9.11_1 libnih.so.1 libnih-1.0.3_1 libnih-dbus.so.1 libnih-1.0.3_1 -libopencv_quality.so.406 libopencv-4.6.0_1 -libopencv_reg.so.406 libopencv-4.6.0_1 -libopencv_surface_matching.so.406 libopencv-4.6.0_1 -libopencv_xphoto.so.406 libopencv-4.6.0_1 -libopencv_freetype.so.406 libopencv-4.6.0_1 -libopencv_fuzzy.so.406 libopencv-4.6.0_1 -libopencv_hfs.so.406 libopencv-4.6.0_1 -libopencv_img_hash.so.406 libopencv-4.6.0_1 -libopencv_line_descriptor.so.406 libopencv-4.6.0_1 -libopencv_saliency.so.406 libopencv-4.6.0_1 -libopencv_structured_light.so.406 libopencv-4.6.0_1 -libopencv_aruco.so.406 libopencv-4.6.0_1 -libopencv_bgsegm.so.406 libopencv-4.6.0_1 -libopencv_bioinspired.so.406 libopencv-4.6.0_1 -libopencv_ccalib.so.406 libopencv-4.6.0_1 -libopencv_face.so.406 libopencv-4.6.0_1 -libopencv_tracking.so.406 libopencv-4.6.0_1 -libopencv_xfeatures2d.so.406 libopencv-4.6.0_1 -libopencv_optflow.so.406 libopencv-4.6.0_1 -libopencv_ximgproc.so.406 libopencv-4.6.0_1 -libopencv_plot.so.406 libopencv-4.6.0_1 -libopencv_text.so.406 libopencv-4.6.0_1 -libopencv_ml.so.406 libopencv-4.6.0_1 -libopencv_objdetect.so.406 libopencv-4.6.0_1 -libopencv_dnn.so.406 libopencv-4.6.0_1 -libopencv_shape.so.406 libopencv-4.6.0_1 -libopencv_stitching.so.406 libopencv-4.6.0_1 -libopencv_photo.so.406 libopencv-4.6.0_1 -libopencv_video.so.406 libopencv-4.6.0_1 -libopencv_calib3d.so.406 libopencv-4.6.0_1 -libopencv_features2d.so.406 libopencv-4.6.0_1 -libopencv_flann.so.406 libopencv-4.6.0_1 -libopencv_highgui.so.406 libopencv-4.6.0_1 -libopencv_videoio.so.406 libopencv-4.6.0_1 -libopencv_imgcodecs.so.406 libopencv-4.6.0_1 -libopencv_imgproc.so.406 libopencv-4.6.0_1 -libopencv_core.so.406 libopencv-4.6.0_1 -libopencv_superres.so.406 libopencv-4.6.0_1 -libopencv_videostab.so.406 libopencv-4.6.0_1 -libopencv_gapi.so.406 libopencv-4.6.0_1 -libopencv_xobjdetect.so.406 libopencv-4.6.0_1 -libopencv_datasets.so.406 libopencv-4.6.0_1 -libopencv_dnn_objdetect.so.406 libopencv-4.6.0_1 -libopencv_dnn_superres.so.406 libopencv-4.6.0_1 -libopencv_dpm.so.406 libopencv-4.6.0_1 -libopencv_phase_unwrapping.so.406 libopencv-4.6.0_1 -libopencv_stereo.so.406 libopencv-4.6.0_1 -libopencv_rapid.so.406 libopencv-4.6.0_1 -libopencv_intensity_transform.so.406 libopencv-4.6.0_1 -libopencv_alphamat.so.406 libopencv-4.6.0_1 -libopencv_barcode.so.406 libopencv-4.6.0_1 -libopencv_mcc.so.406 libopencv-4.6.0_1 +libopencv_quality.so.407 libopencv-4.7.0_1 +libopencv_reg.so.407 libopencv-4.7.0_1 +libopencv_surface_matching.so.407 libopencv-4.7.0_1 +libopencv_xphoto.so.407 libopencv-4.7.0_1 +libopencv_freetype.so.407 libopencv-4.7.0_1 +libopencv_fuzzy.so.407 libopencv-4.7.0_1 +libopencv_hfs.so.407 libopencv-4.7.0_1 +libopencv_img_hash.so.407 libopencv-4.7.0_1 +libopencv_line_descriptor.so.407 libopencv-4.7.0_1 +libopencv_saliency.so.407 libopencv-4.7.0_1 +libopencv_structured_light.so.407 libopencv-4.7.0_1 +libopencv_aruco.so.407 libopencv-4.7.0_1 +libopencv_bgsegm.so.407 libopencv-4.7.0_1 +libopencv_bioinspired.so.407 libopencv-4.7.0_1 +libopencv_ccalib.so.407 libopencv-4.7.0_1 +libopencv_face.so.407 libopencv-4.7.0_1 +libopencv_tracking.so.407 libopencv-4.7.0_1 +libopencv_xfeatures2d.so.407 libopencv-4.7.0_1 +libopencv_optflow.so.407 libopencv-4.7.0_1 +libopencv_ximgproc.so.407 libopencv-4.7.0_1 +libopencv_plot.so.407 libopencv-4.7.0_1 +libopencv_text.so.407 libopencv-4.7.0_1 +libopencv_ml.so.407 libopencv-4.7.0_1 +libopencv_objdetect.so.407 libopencv-4.7.0_1 +libopencv_dnn.so.407 libopencv-4.7.0_1 +libopencv_shape.so.407 libopencv-4.7.0_1 +libopencv_stitching.so.407 libopencv-4.7.0_1 +libopencv_photo.so.407 libopencv-4.7.0_1 +libopencv_video.so.407 libopencv-4.7.0_1 +libopencv_calib3d.so.407 libopencv-4.7.0_1 +libopencv_features2d.so.407 libopencv-4.7.0_1 +libopencv_flann.so.407 libopencv-4.7.0_1 +libopencv_highgui.so.407 libopencv-4.7.0_1 +libopencv_videoio.so.407 libopencv-4.7.0_1 +libopencv_imgcodecs.so.407 libopencv-4.7.0_1 +libopencv_imgproc.so.407 libopencv-4.7.0_1 +libopencv_core.so.407 libopencv-4.7.0_1 +libopencv_superres.so.407 libopencv-4.7.0_1 +libopencv_videostab.so.407 libopencv-4.7.0_1 +libopencv_gapi.so.407 libopencv-4.7.0_1 +libopencv_xobjdetect.so.407 libopencv-4.7.0_1 +libopencv_datasets.so.407 libopencv-4.7.0_1 +libopencv_dnn_objdetect.so.407 libopencv-4.7.0_1 +libopencv_dnn_superres.so.407 libopencv-4.7.0_1 +libopencv_dpm.so.407 libopencv-4.7.0_1 +libopencv_phase_unwrapping.so.407 libopencv-4.7.0_1 +libopencv_stereo.so.407 libopencv-4.7.0_1 +libopencv_rapid.so.407 libopencv-4.7.0_1 +libopencv_intensity_transform.so.407 libopencv-4.7.0_1 +libopencv_alphamat.so.407 libopencv-4.7.0_1 +libopencv_barcode.so.407 libopencv-4.7.0_1 +libopencv_mcc.so.407 libopencv-4.7.0_1 libuniconf.so.4.6 wvstreams-4.6.1_20 libwvbase.so.4.6 wvstreams-4.6.1_20 libwvutils.so.4.6 wvstreams-4.6.1_20 diff --git a/srcpkgs/opencv/template b/srcpkgs/opencv/template index aea4bfc3a265cf..498bee789d640f 100644 --- a/srcpkgs/opencv/template +++ b/srcpkgs/opencv/template @@ -1,7 +1,7 @@ # Template file for 'opencv' pkgname=opencv -version=4.6.0 -revision=6 +version=4.7.0 +revision=1 create_wrksrc=yes build_wrksrc=${pkgname}-${version} build_style=cmake @@ -13,7 +13,7 @@ configure_args="-DENABLE_PRECOMPILED_HEADERS=OFF -DWITH_OPENMP=ON -DBUILD_opencv_wechat_qrcode=OFF -DBUILD_opencv_rgbd=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF" hostmakedepends="pkg-config eigen python3-numpy python3-setuptools" -makedepends="ffmpeg-devel libpng-devel libjpeg-turbo-devel tiff-devel +makedepends="ffmpeg6-devel libpng-devel libjpeg-turbo-devel tiff-devel jasper-devel ocl-icd-devel libgomp-devel libopenexr-devel gtk+3-devel libgphoto2-devel gst-plugins-base1-devel openblas-devel python3-numpy python3-devel" @@ -24,8 +24,8 @@ homepage="https://opencv.org" changelog="https://github.com/opencv/opencv/wiki/ChangeLog" distfiles="https://github.com/opencv/opencv/archive/${version}.tar.gz https://github.com/opencv/opencv_contrib/archive/${version}.tar.gz>contrib.tar.gz" -checksum="1ec1cba65f9f20fe5a41fda1586e01c70ea0c9a6d7b67c9e13edf0cfe2239277 - 1777d5fd2b59029cf537e5fd6f8aa68d707075822f90bde683fcde086f85f7a7" +checksum="8df0079cdbe179748a18d44731af62a245a45ebf5085223dc03133954c662973 + 42df840cf9055e59d0e22c249cfb19f04743e1bdad113d31b1573d3934d62584" patch_args="-Np1 -d ${build_wrksrc}" # tests hang indenfinitely, even with test data included make_check=no From e7e353711f06f2b7c54d014c3231001b6740a343 Mon Sep 17 00:00:00 2001 From: zlice Date: Sun, 15 Oct 2023 21:18:36 -0400 Subject: [PATCH 09/86] sumo: revbump for ffmpeg6 --- srcpkgs/sumo/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/sumo/template b/srcpkgs/sumo/template index a730afa9fafa92..f5475ac9b5c00a 100644 --- a/srcpkgs/sumo/template +++ b/srcpkgs/sumo/template @@ -1,10 +1,10 @@ # Template file for 'sumo' pkgname=sumo version=1.12.0 -revision=7 +revision=8 build_style=cmake hostmakedepends="libgdal-tools pkg-config swig python3-setuptools" -makedepends="python3-devel ffmpeg-devel fox-devel gl2ps-devel libgdal-devel +makedepends="python3-devel ffmpeg6-devel fox-devel gl2ps-devel libgdal-devel libxerces-c-devel osg-devel proj-devel" short_desc="SUMO (Simulation of Urban MObility) and included applications" maintainer="Warrior Graph " From 82e7f2dabc52ee181ee9d90dde27e351c5905e0c Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:52 -0400 Subject: [PATCH 10/86] unpaper: update to 7.0.0. --- srcpkgs/unpaper/template | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/srcpkgs/unpaper/template b/srcpkgs/unpaper/template index 38ed47a5840165..60d3e251754dcf 100644 --- a/srcpkgs/unpaper/template +++ b/srcpkgs/unpaper/template @@ -1,13 +1,13 @@ # Template file for 'unpaper' pkgname=unpaper -version=6.1 -revision=3 -build_style=gnu-configure +version=7.0.0 +revision=1 +build_style=meson +hostmakedepends="pkg-config meson libxslt" +makedepends="ffmpeg6-devel python3-Sphinx" +short_desc="Post-processing tool for scanned sheets of paper" maintainer="Orphaned " -hostmakedepends="pkg-config libxslt" -makedepends="ffmpeg-devel" -license="GPL-2" +license="GPL-2.0-or-later" homepage="https://www.flameeyes.eu/projects/unpaper" -short_desc="A post-processing tool for scanned sheets of paper" distfiles="https://www.flameeyes.eu/files/${pkgname}-${version}.tar.xz" -checksum=237c84f5da544b3f7709827f9f12c37c346cdf029b1128fb4633f9bafa5cb930 +checksum=2575fbbf26c22719d1cb882b59602c9900c7f747118ac130883f63419be46a80 From 1ba8b0f10a9abc551cfb7fca9d3865a0fc3ab8ed Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 19:59:45 -0400 Subject: [PATCH 11/86] actiona: revbump for opencv-4.7.0 --- srcpkgs/actiona/template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/actiona/template b/srcpkgs/actiona/template index cf5f0b7a2ae610..0d899311e6df75 100644 --- a/srcpkgs/actiona/template +++ b/srcpkgs/actiona/template @@ -1,7 +1,7 @@ # Template file for 'actiona' pkgname=actiona version=3.10.1 -revision=2 +revision=3 build_style=qmake configure_args="PKGCONFIG_OPENCV=opencv4" hostmakedepends="pkg-config qt5-plugin-mysql qt5-qmake qt5-host-tools" From b7dc6ef727ee2fe354d7e3f7f82e33ed30cde764 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 19:59:46 -0400 Subject: [PATCH 12/86] retroshare: revbump for opencv-4.7.0 --- srcpkgs/retroshare/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/retroshare/template b/srcpkgs/retroshare/template index 35a2732c77f634..4b834864c4143a 100644 --- a/srcpkgs/retroshare/template +++ b/srcpkgs/retroshare/template @@ -1,13 +1,13 @@ # Template file for 'retroshare' pkgname=retroshare version=0.6.6 -revision=4 +revision=5 build_style=qmake #XXX broadcast feature requires an ancient udp-discovery-cpp which either needs # to be fetched+patched (FTBFS) here or packaged :/ configure_args="RS_UPNP_LIB=miniupnpc CONFIG+=no_rs_broadcast_discovery" hostmakedepends="pkg-config qt5-qmake qt5-host-tools" -makedepends="ffmpeg-devel libsecret-devel libmicrohttpd-devel +makedepends="ffmpeg6-devel libsecret-devel libmicrohttpd-devel libopencv-devel libssh-devel miniupnpc-devel libXScrnSaver-devel libxslt-devel pulseaudio-devel qt5-multimedia-devel qt5-tools-devel qt5-x11extras-devel speex-devel sqlcipher-devel sqlite-devel rapidjson" From c9ca8c270048476fc28effba4f0a3b131ec153af Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 19:59:46 -0400 Subject: [PATCH 13/86] waifu2x-converter-cpp: revbump for opencv-4.7.0 --- srcpkgs/waifu2x-converter-cpp/template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/waifu2x-converter-cpp/template b/srcpkgs/waifu2x-converter-cpp/template index 361b8a23b94977..c5ac17eb54ea4c 100644 --- a/srcpkgs/waifu2x-converter-cpp/template +++ b/srcpkgs/waifu2x-converter-cpp/template @@ -1,7 +1,7 @@ # Template file for 'waifu2x-converter-cpp' pkgname=waifu2x-converter-cpp version=5.2.4 -revision=2 +revision=3 build_style=cmake configure_args="-DINSTALL_MODELS=ON" hostmakedepends="pkg-config" From 67dcc442a3c26c1d821a5a98b2cc68b442b95e77 Mon Sep 17 00:00:00 2001 From: zlice Date: Tue, 17 Oct 2023 08:54:11 -0400 Subject: [PATCH 14/86] New package: spex-x replaces spek-alternative for ffmpeg6 --- srcpkgs/spek-alternative | 1 + srcpkgs/spek-alternative/template | 24 ------------------------ srcpkgs/spek-x/patches/musl.patch | 7 +++++++ srcpkgs/spek-x/template | 31 +++++++++++++++++++++++++++++++ 4 files changed, 39 insertions(+), 24 deletions(-) create mode 120000 srcpkgs/spek-alternative delete mode 100644 srcpkgs/spek-alternative/template create mode 100644 srcpkgs/spek-x/patches/musl.patch create mode 100644 srcpkgs/spek-x/template diff --git a/srcpkgs/spek-alternative b/srcpkgs/spek-alternative new file mode 120000 index 00000000000000..76648236da7017 --- /dev/null +++ b/srcpkgs/spek-alternative @@ -0,0 +1 @@ +spek-x \ No newline at end of file diff --git a/srcpkgs/spek-alternative/template b/srcpkgs/spek-alternative/template deleted file mode 100644 index d7b55c776b1d43..00000000000000 --- a/srcpkgs/spek-alternative/template +++ /dev/null @@ -1,24 +0,0 @@ -# Template file for 'spek-alternative' -pkgname=spek-alternative -version=0.8.2.3 -revision=2 -build_style=gnu-configure -hostmakedepends="automake gettext-devel intltool libtool pkg-config - wxWidgets-common wxWidgets-gtk3-devel" -makedepends="ffmpeg-devel wxWidgets-gtk3-devel" -depends="ffmpeg" -short_desc="Acoustic spectrum analyser" -maintainer="Kartik Singh " -license="GPL-3.0-or-later" -homepage="https://github.com/withmorten/spek-alternative" -distfiles="https://github.com/withmorten/spek-alternative/archive/${version}.tar.gz" -checksum="007ba4b84a310b078e378aa84c8e80783db5821437a757a488c3ecec377e6b2a" - -CXXFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" - -# Tell autogen.sh to use "wx-config-gtk3" instead of "wx-config" -export WX_CONFIG_NAME="wx-config-gtk3" - -pre_configure() { - NOCONFIGURE=1 ./autogen.sh -} diff --git a/srcpkgs/spek-x/patches/musl.patch b/srcpkgs/spek-x/patches/musl.patch new file mode 100644 index 00000000000000..662f45936febc6 --- /dev/null +++ b/srcpkgs/spek-x/patches/musl.patch @@ -0,0 +1,7 @@ +--- a/tests/perf.cc 2024-03-09 17:13:49.086603418 -0500 ++++ b/tests/perf.cc 2024-03-09 17:13:59.453603753 -0500 +@@ -1,3 +1,4 @@ ++#include + #include + #include + #include diff --git a/srcpkgs/spek-x/template b/srcpkgs/spek-x/template new file mode 100644 index 00000000000000..8a4c40a48a34cf --- /dev/null +++ b/srcpkgs/spek-x/template @@ -0,0 +1,31 @@ +# Template file for 'spek-x' +pkgname=spek-x +version=0.9.3 +revision=1 +build_style=gnu-configure +hostmakedepends="automake gettext-devel intltool libtool pkg-config + wxWidgets-common wxWidgets-gtk3-devel" +makedepends="ffmpeg6-devel wxWidgets-gtk3-devel" +depends="ffmpeg6" +short_desc="Acoustic spectrum analyser" +maintainer="zlice " +license="GPL-3.0-or-later" +homepage="https://github.com/MikeWang000000/spek-x" +distfiles="https://github.com/MikeWang000000/spek-x/archive/v${version}.tar.gz" +checksum="7f4b109903333cdd310ab2b9176f0dc49a565891376e281a233d342cedf90ef7" +replaces="spek-alternatives<=0.8.2.3_2" + +CXXFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" + +# Tell autogen.sh to use "wx-config-gtk3" instead of "wx-config" +export WX_CONFIG_NAME="wx-config-gtk3" + +pre_configure() { + NOCONFIGURE=1 ./autogen.sh +} + +spek-alternative_package() { + depends="spek-x" + short_desc+=" - transitional dummy package" + build_style=meta +} From 349e57204eea805a294c6891ccca45249d83b368 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:45 -0400 Subject: [PATCH 15/86] attract: revbump for ffmpeg6 attract : redo --- srcpkgs/attract/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/attract/template b/srcpkgs/attract/template index 776cbe4ebd2c93..f6cda941c297cf 100644 --- a/srcpkgs/attract/template +++ b/srcpkgs/attract/template @@ -1,12 +1,12 @@ # Template file for 'attract' pkgname=attract version=2.7.0 -revision=2 +revision=3 build_style=gnu-makefile make_build_args="VERBOSE=1" make_use_env=yes hostmakedepends="pkg-config" -makedepends="SFML-devel ffmpeg-devel fontconfig-devel glu-devel libarchive-devel +makedepends="SFML-devel ffmpeg6-devel fontconfig-devel glu-devel libarchive-devel libcurl-devel libjpeg-turbo-devel libXinerama-devel libXrandr-devel" short_desc="Attract-Mode is a graphical frontend for emulators" maintainer="Pedro Narciso García Revington " From 0c43dfdf68c7c8516d47c80709e6c1f24103918f Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:45 -0400 Subject: [PATCH 16/86] aubio: revbump for ffmpeg6 aubio : redo --- srcpkgs/aubio/patches/ffmpeg5.patch | 25 +++++++++++++++++++++++++ srcpkgs/aubio/patches/python3.12.patch | 21 +++++++++++++++++++++ srcpkgs/aubio/template | 4 ++-- 3 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 srcpkgs/aubio/patches/ffmpeg5.patch create mode 100644 srcpkgs/aubio/patches/python3.12.patch diff --git a/srcpkgs/aubio/patches/ffmpeg5.patch b/srcpkgs/aubio/patches/ffmpeg5.patch new file mode 100644 index 00000000000000..aace41a6e6d9a4 --- /dev/null +++ b/srcpkgs/aubio/patches/ffmpeg5.patch @@ -0,0 +1,25 @@ +From 8a05420e5dd8c7b8b2447f82dc919765876511b3 Mon Sep 17 00:00:00 2001 +From: Paul Brossier +Date: Tue, 25 Jan 2022 18:30:27 +0100 +Subject: [PATCH] [source_avcodec] define FF_API_LAVF_AVCTX for libavcodec > + 59, thx @berolinux (closes gh-353) + +--- + src/io/source_avcodec.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/io/source_avcodec.c b/src/io/source_avcodec.c +index e0ae93b5..1421bd9a 100644 +--- a/src/io/source_avcodec.c ++++ b/src/io/source_avcodec.c +@@ -68,6 +68,10 @@ + #define AUBIO_AVCODEC_MAX_BUFFER_SIZE AV_INPUT_BUFFER_MIN_SIZE + #endif + ++#if LIBAVCODEC_VERSION_MAJOR >= 59 ++#define FF_API_LAVF_AVCTX 1 ++#endif ++ + struct _aubio_source_avcodec_t { + uint_t hop_size; + uint_t samplerate; diff --git a/srcpkgs/aubio/patches/python3.12.patch b/srcpkgs/aubio/patches/python3.12.patch new file mode 100644 index 00000000000000..81cf6d1f0f7cab --- /dev/null +++ b/srcpkgs/aubio/patches/python3.12.patch @@ -0,0 +1,21 @@ +--- a/waflib/Context.py 2024-06-04 07:49:13.399793819 -0400 ++++ b/waflib/Context.py 2024-06-04 08:00:35.473824306 -0400 +@@ -2,7 +2,7 @@ + # encoding: utf-8 + # WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file + +-import os,re,imp,sys ++import os,re,types,sys + from waflib import Utils,Errors,Logs + import waflib.Node + HEXVERSION=0x2000e00 +@@ -344,7 +344,7 @@ + return cache_modules[path] + except KeyError: + pass +- module=imp.new_module(WSCRIPT_FILE) ++ module=types.ModuleType(WSCRIPT_FILE) + try: + code=Utils.readf(path,m='r',encoding=encoding) + except EnvironmentError: + diff --git a/srcpkgs/aubio/template b/srcpkgs/aubio/template index ad1c4b25699178..98b5b8168c2a25 100644 --- a/srcpkgs/aubio/template +++ b/srcpkgs/aubio/template @@ -1,11 +1,11 @@ # Template file for 'aubio' pkgname=aubio version=0.4.9 -revision=1 +revision=2 build_style=waf3 # XXX lash, pure and swig support. hostmakedepends="pkg-config txt2man" -makedepends="libsamplerate-devel fftw-devel jack-devel ffmpeg-devel" +makedepends="libsamplerate-devel fftw-devel jack-devel ffmpeg6-devel" short_desc="Library for audio labelling" maintainer="Orphaned " license="GPL-3.0-or-later" From f64605f2ac3445e7ff2da85ed3715c5f49051b5d Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:45 -0400 Subject: [PATCH 17/86] audacious-plugins: revbump for ffmpeg6 --- .../audacious-plugins/patches/ffmpeg5.patch | 43 +++++++++++++++++++ srcpkgs/audacious-plugins/template | 4 +- 2 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 srcpkgs/audacious-plugins/patches/ffmpeg5.patch diff --git a/srcpkgs/audacious-plugins/patches/ffmpeg5.patch b/srcpkgs/audacious-plugins/patches/ffmpeg5.patch new file mode 100644 index 00000000000000..4e5e34099d71c4 --- /dev/null +++ b/srcpkgs/audacious-plugins/patches/ffmpeg5.patch @@ -0,0 +1,43 @@ +commit 298aa371c56c2f52c25a33d9bdec4918b11cebdc +Author: tibequadorian +Date: Sat Mar 19 18:40:12 2022 +0100 + + audacious-plugins: rebuild against ffmpeg-5.0 + +diff --git a/srcpkgs/audacious-plugins/patches/ffmpeg-5.0.patch b/srcpkgs/audacious-plugins/patches/ffmpeg-5.0.patch +new file mode 100644 +index 0000000000..617c11215b +--- /dev/null ++++ b/srcpkgs/audacious-plugins/patches/ffmpeg-5.0.patch +@@ -0,0 +1,31 @@ ++From f60beb400eeb1e4778bbfd738bc4a4ccef3de539 Mon Sep 17 00:00:00 2001 ++From: John Lindgren ++Date: Sat, 5 Mar 2022 12:05:34 -0500 ++Subject: [PATCH] Fix build with FFmpeg 5.0 ++ ++--- ++ src/ffaudio/ffaudio-core.cc | 4 ++-- ++ 1 file changed, 2 insertions(+), 2 deletions(-) ++ ++diff --git a/src/ffaudio/ffaudio-core.cc b/src/ffaudio/ffaudio-core.cc ++index 16dc63e3a..a2b95fd6c 100644 ++--- a/src/ffaudio/ffaudio-core.cc +++++ b/src/ffaudio/ffaudio-core.cc ++@@ -274,7 +274,7 @@ static AVInputFormat * get_format_by_content (const char * name, VFSFile & file) ++ AVProbeData d = {name, buf, filled}; ++ score = target; ++ ++- f = av_probe_input_format2 (& d, true, & score); +++ f = (AVInputFormat *) av_probe_input_format2 (& d, true, & score); ++ if (f) ++ break; ++ ++@@ -347,7 +347,7 @@ static bool find_codec (AVFormatContext * c, CodecInfo * cinfo) ++ #endif ++ if (stream && stream->codecpar && stream->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) ++ { ++- AVCodec * codec = avcodec_find_decoder (stream->codecpar->codec_id); +++ AVCodec * codec = (AVCodec *) avcodec_find_decoder (stream->codecpar->codec_id); ++ ++ if (codec) ++ { diff --git a/srcpkgs/audacious-plugins/template b/srcpkgs/audacious-plugins/template index 4a67e362c3e91d..7a80c8c0bef675 100644 --- a/srcpkgs/audacious-plugins/template +++ b/srcpkgs/audacious-plugins/template @@ -2,12 +2,12 @@ # Keep in sync with audacious and audacious-base pkgname=audacious-plugins version=4.4 -revision=1 +revision=2 build_style=meson configure_args="$(vopt_bool gtk) $(vopt_bool qt)" hostmakedepends="gettext pkg-config glib-devel $(vopt_if qt qt6-tools)" makedepends="audacious-base-devel alsa-lib-devel pulseaudio-devel jack-devel - lame-devel libvorbis-devel libflac-devel mpg123-devel faad2-devel ffmpeg-devel + lame-devel libvorbis-devel libflac-devel mpg123-devel faad2-devel ffmpeg6-devel libmodplug-devel fluidsynth-devel libcdio-paranoia-devel wavpack-devel libnotify-devel libcurl-devel libmtp-devel neon-devel libmms-devel libxml2-devel opus-devel opusfile-devel libbs2b-devel libsoxr-devel libsidplayfp-devel libcue-devel libopenmpt-devel pipewire-devel From 9ea0f22c34fc7dad973b2aa01fe1dcaf518472f4 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:45 -0400 Subject: [PATCH 18/86] audacity: update to 3.5.1 --- srcpkgs/audacity/template | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/srcpkgs/audacity/template b/srcpkgs/audacity/template index 7b838119ab2611..c88971a75a8891 100644 --- a/srcpkgs/audacity/template +++ b/srcpkgs/audacity/template @@ -1,6 +1,6 @@ # Template file for 'audacity' pkgname=audacity -version=3.4.2 +version=3.5.1 revision=1 build_style=cmake build_helper="cmake-wxWidgets-gtk3 qemu" @@ -12,7 +12,7 @@ configure_args="-Daudacity_use_ffmpeg=loaded -Daudacity_lib_preference=system -Daudacity_has_updates_check=OFF -DAUDACITY_BUILD_LEVEL=2" hostmakedepends="pkg-config gettext python3" makedepends="wxWidgets-gtk3-devel gtk+3-devel expat-devel lame-devel - libsoxr-devel portaudio-devel sqlite-devel ffmpeg-devel + libsoxr-devel portaudio-devel sqlite-devel ffmpeg6-devel libid3tag-devel libmad-devel vamp-plugin-sdk-devel libogg-devel libvorbis-devel libflac-devel lilv-devel lv2 serd-devel sord-devel sratom-devel suil-devel portmidi-devel soundtouch-devel twolame-devel @@ -25,7 +25,7 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, CC-BY-3.0" homepage="https://www.audacityteam.org" changelog="https://github.com/audacity/audacity/raw/master/CHANGELOG.txt" distfiles="https://github.com/audacity/audacity/releases/download/Audacity-${version}/audacity-sources-${version}.tar.gz" -checksum=f28dd718d2c5a2aa9f207b8351443a90c1f02b65378ca94bcc7febda42635e48 +checksum=8786a1be8d63f4793fc3f2a5f1f61c441e0a4b9a7ed9137d59277ad5f72bd512 CXXFLAGS="-D_FILE_OFFSET_BITS=64" From 90146a8451c716ec5d82ecd9ee176f74040fea7f Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:45 -0400 Subject: [PATCH 19/86] avidemux: revbump for ffmpeg6 --- srcpkgs/avidemux/files/negative-shift.patch | 73 +++++++++++++++++++++ srcpkgs/avidemux/template | 8 ++- 2 files changed, 79 insertions(+), 2 deletions(-) create mode 100644 srcpkgs/avidemux/files/negative-shift.patch diff --git a/srcpkgs/avidemux/files/negative-shift.patch b/srcpkgs/avidemux/files/negative-shift.patch new file mode 100644 index 00000000000000..ddd3fa2a8e29aa --- /dev/null +++ b/srcpkgs/avidemux/files/negative-shift.patch @@ -0,0 +1,73 @@ + +From effadce6c756247ea8bae32dc13bb3e6f464f0eb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= +Date: Sun, 16 Jul 2023 18:18:02 +0300 +Subject: [PATCH] avcodec/x86/mathops: clip constants used with shift + instructions within inline assembly + +Fixes assembling with binutil as >= 2.41 + +Signed-off-by: James Almer +--- + libavcodec/x86/mathops.h | 26 +++++++++++++++++++++++--- + 1 file changed, 23 insertions(+), 3 deletions(-) + +diff --git a/libavcodec/x86/mathops.h b/libavcodec/x86/mathops.h +index 6298f5ed1983b..ca7e2dffc1076 100644 +--- libavcodec/x86/mathops.h ++++ libavcodec/x86/mathops.h +@@ -35,12 +35,20 @@ + static av_always_inline av_const int MULL(int a, int b, unsigned shift) + { + int rt, dummy; ++ if (__builtin_constant_p(shift)) + __asm__ ( + "imull %3 \n\t" + "shrdl %4, %%edx, %%eax \n\t" + :"=a"(rt), "=d"(dummy) +- :"a"(a), "rm"(b), "ci"((uint8_t)shift) ++ :"a"(a), "rm"(b), "i"(shift & 0x1F) + ); ++ else ++ __asm__ ( ++ "imull %3 \n\t" ++ "shrdl %4, %%edx, %%eax \n\t" ++ :"=a"(rt), "=d"(dummy) ++ :"a"(a), "rm"(b), "c"((uint8_t)shift) ++ ); + return rt; + } + +@@ -113,19 +121,31 @@ __asm__ volatile(\ + // avoid +32 for shift optimization (gcc should do that ...) + #define NEG_SSR32 NEG_SSR32 + static inline int32_t NEG_SSR32( int32_t a, int8_t s){ ++ if (__builtin_constant_p(s)) + __asm__ ("sarl %1, %0\n\t" + : "+r" (a) +- : "ic" ((uint8_t)(-s)) ++ : "i" (-s & 0x1F) + ); ++ else ++ __asm__ ("sarl %1, %0\n\t" ++ : "+r" (a) ++ : "c" ((uint8_t)(-s)) ++ ); + return a; + } + + #define NEG_USR32 NEG_USR32 + static inline uint32_t NEG_USR32(uint32_t a, int8_t s){ ++ if (__builtin_constant_p(s)) + __asm__ ("shrl %1, %0\n\t" + : "+r" (a) +- : "ic" ((uint8_t)(-s)) ++ : "i" (-s & 0x1F) + ); ++ else ++ __asm__ ("shrl %1, %0\n\t" ++ : "+r" (a) ++ : "c" ((uint8_t)(-s)) ++ ); + return a; + } diff --git a/srcpkgs/avidemux/template b/srcpkgs/avidemux/template index 253a0243e22599..4ad120e1b5259b 100644 --- a/srcpkgs/avidemux/template +++ b/srcpkgs/avidemux/template @@ -1,14 +1,14 @@ # Template file for 'avidemux' pkgname=avidemux version=2.8.0 -revision=2 +revision=3 # Can't be compiled for aarch64, arm* or mips* archs="x86_64* i686*" hostmakedepends="cmake pkg-config qt5-host-tools qt5-devel tar yasm" makedepends="alsa-lib-devel faac-devel faad2-devel gettext-devel jack-devel glu-devel lame-devel libass-devel libdca-devel libvorbis-devel libXv-devel vapoursynth-devel libmp4v2-devel sqlite-devel libva-devel libvdpau-devel - qt5-multimedia-devel qt5-script-devel qt5-tools-devel ffmpeg-devel + qt5-multimedia-devel qt5-script-devel qt5-tools-devel ffmpeg6-devel liba52-devel libmad-devel x264-devel x265-devel xvidcore-devel" short_desc="Video editing and processing application" maintainer="Orphaned " @@ -25,6 +25,10 @@ case "${XBPS_TARGET_MACHINE}" in i686*) CFLAGS="-fno-PIC";; esac +post_extract() { + cp ${FILESDIR}/*patch ${wrksrc}/avidemux_core/ffmpeg_package/patches/ +} + do_configure() { MAKEFLAGS=${makejobs} \ bash bootStrap.bash \ From 13fd6e90f4a2912e8774d0ba98ff12d4c4a8549f Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:46 -0400 Subject: [PATCH 20/86] blender: revbump for ffmpeg6 blender : redo --- srcpkgs/blender/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/blender/template b/srcpkgs/blender/template index 68787b76a26c18..7e321a9ad525cd 100644 --- a/srcpkgs/blender/template +++ b/srcpkgs/blender/template @@ -1,7 +1,7 @@ # Template file for 'blender' pkgname=blender version=4.0.2 -revision=2 +revision=3 archs="x86_64* ppc64*" build_style="cmake" pycompile_dirs="usr/share/blender/${version%.*}/scripts" @@ -17,7 +17,7 @@ configure_args="-DWITH_INSTALL_PORTABLE=OFF -DWITH_PYTHON_INSTALL=OFF hostmakedepends="pkg-config" makedepends="libgomp-devel libpng-devel tiff-devel python3-devel glu-devel glew-devel freetype-devel jack-devel libopenal-devel libsndfile-devel - libsamplerate-devel ffmpeg-devel fftw-devel boost-devel pcre-devel llvm + libsamplerate-devel ffmpeg6-devel fftw-devel boost-devel pcre-devel llvm libopenexr-devel libopenjpeg2-devel libXi-devel openimageio-devel opencolorio-devel opencollada-devel python3-numpy libXrender-devel OpenSubdiv-devel tbb-devel libxml2-devel openvdb-devel alembic-devel From 341b70f006dbc0a1e61712ac9f00963edf6a977e Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:46 -0400 Subject: [PATCH 21/86] cantata: revbump for ffmpeg6 cantata : redo --- srcpkgs/cantata/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/cantata/template b/srcpkgs/cantata/template index 4b417d80d5c2da..54e82fbb85dfe8 100644 --- a/srcpkgs/cantata/template +++ b/srcpkgs/cantata/template @@ -1,12 +1,12 @@ # Template file for 'cantata' pkgname=cantata version=2.5.0 -revision=1 +revision=2 build_style=cmake hostmakedepends="pkg-config qt5-qmake qt5-host-tools qt5-tools" makedepends="qt5-devel qt5-tools-devel qt5-svg-devel qt5-xmlpatterns-devel qt5-plugin-mysql qt5-plugin-pgsql qt5-plugin-sqlite qt5-plugin-odbc - qt5-plugin-tds vlc-devel zlib-devel ffmpeg-devel taglib-devel + qt5-plugin-tds vlc-devel zlib-devel ffmpeg6-devel taglib-devel taglib-extras-devel libmtp-devel mpg123-devel libcdparanoia-devel libcddb-devel speex-devel eudev-libudev-devel udisks2-devel libmusicbrainz5-devel qt5-multimedia-devel libcdio-paranoia-devel" From a0bb8493b31f8aebb14dc0853a897ae5f3a63397 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:46 -0400 Subject: [PATCH 22/86] ccextractor: revbump for ffmpeg6 ccextractor : redo --- ...5-and-tesseract-5-compatibility-1479.patch | 168 ++++++++++++++++++ srcpkgs/ccextractor/template | 4 +- 2 files changed, 170 insertions(+), 2 deletions(-) create mode 100644 srcpkgs/ccextractor/patches/0001-fix-ffmpeg-5-and-tesseract-5-compatibility-1479.patch diff --git a/srcpkgs/ccextractor/patches/0001-fix-ffmpeg-5-and-tesseract-5-compatibility-1479.patch b/srcpkgs/ccextractor/patches/0001-fix-ffmpeg-5-and-tesseract-5-compatibility-1479.patch new file mode 100644 index 00000000000000..bcab4890554b9a --- /dev/null +++ b/srcpkgs/ccextractor/patches/0001-fix-ffmpeg-5-and-tesseract-5-compatibility-1479.patch @@ -0,0 +1,168 @@ +From b1cbfcea9b9c687143bf0d80bc179b563e99d025 Mon Sep 17 00:00:00 2001 +From: Prateek Sunal +Date: Thu, 9 Mar 2023 01:44:53 +0530 +Subject: [PATCH] fix: ffmpeg 5 and tesseract 5 compatibility (#1479) + +* fix: replace deprecated `codec` property with `codecpar` + +* fix: replace deprecated method `avcodec_decode_video2` with `avcodec_receive_frame` and `avcodec_send_packet` + +* Update CHANGES.TXT + +* fix: remove deprecated `av_register_all` function + +* fix: formatting + +* fix: add support for tesseract 5 + +* fix: tesseract v5 + +* fix: hardsubx codec context error + +* fix: lint const warning +--- + docs/CHANGES.TXT | 1 + + src/lib_ccx/ffmpeg_intgr.c | 7 +++--- + src/lib_ccx/hardsubx.c | 25 ++++++++++++------ + src/lib_ccx/hardsubx_decoder.c | 27 ++++++++------------ + src/lib_ccx/ocr.c | 46 ++++++++++++---------------------- + 5 files changed, 47 insertions(+), 59 deletions(-) + +diff --git a/src/lib_ccx/ffmpeg_intgr.c b/src/lib_ccx/ffmpeg_intgr.c +index be988890..e6f21e20 100644 +--- a/src/lib_ccx/ffmpeg_intgr.c ++++ b/src/lib_ccx/ffmpeg_intgr.c +@@ -66,7 +66,6 @@ void *init_ffmpeg(const char *path) + struct ffmpeg_ctx *ctx; + AVCodec *dec = NULL; + avcodec_register_all(); +- av_register_all(); + + if (ccx_options.debug_mask & CCX_DMT_VERBOSE) + av_log_set_level(AV_LOG_INFO); +@@ -133,7 +132,6 @@ int ff_get_ccframe(void *arg, unsigned char *data, int maxlen) + struct ffmpeg_ctx *ctx = arg; + int len = 0; + int ret = 0; +- int got_frame; + AVPacket packet; + + ret = av_read_frame(ctx->ifmt, &packet); +@@ -151,12 +149,13 @@ int ff_get_ccframe(void *arg, unsigned char *data, int maxlen) + return AVERROR(EAGAIN); + } + +- ret = avcodec_decode_video2(ctx->dec_ctx, ctx->frame, &got_frame, &packet); ++ avcodec_send_packet(ctx->codec_ctx, &ctx->packet); ++ ret = avcodec_receive_frame(ctx->dec_ctx, ctx->frame); + if (ret < 0) + { + av_log(NULL, AV_LOG_ERROR, "unable to decode packet\n"); + } +- else if (!got_frame) ++ else if (ret != 0) + { + return AVERROR(EAGAIN); + } +diff --git a/src/lib_ccx/hardsubx.c b/src/lib_ccx/hardsubx.c +index 411377f9..fb844c91 100644 +--- a/src/lib_ccx/hardsubx.c ++++ b/src/lib_ccx/hardsubx.c +@@ -12,9 +12,6 @@ + + int hardsubx_process_data(struct lib_hardsubx_ctx *ctx) + { +- // Get the required media attributes and initialize structures +- av_register_all(); +- + if (avformat_open_input(&ctx->format_ctx, ctx->inputfile[0], NULL, NULL) != 0) + { + fatal(EXIT_READ_ERROR, "Error reading input file!\n"); +@@ -32,7 +29,7 @@ + ctx->video_stream_id = -1; + for (int i = 0; i < ctx->format_ctx->nb_streams; i++) + { +- if (ctx->format_ctx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) ++ if (ctx->format_ctx->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) + { + ctx->video_stream_id = i; + break; +@@ -43,8 +40,21 @@ + fatal(EXIT_READ_ERROR, "Video Stream not found!\n"); + } + +- ctx->codec_ctx = ctx->format_ctx->streams[ctx->video_stream_id]->codec; +- ctx->codec = avcodec_find_decoder(ctx->codec_ctx->codec_id); ++ ctx->codec_ctx = avcodec_alloc_context3(NULL); ++ if (!ctx->codec_ctx) ++ { ++ fatal(EXIT_NOT_ENOUGH_MEMORY, "Could not allocate codec context!\n"); ++ } ++ ++ // Assign codec parameters to codec context ++ if (avcodec_parameters_to_context(ctx->codec_ctx, ctx->format_ctx->streams[ctx->video_stream_id]->codecpar) < 0) ++ { ++ fatal(EXIT_READ_ERROR, "Could not initialize codec context!\n"); ++ } ++ ++ // Find decoder for the codec context ++ ctx->codec = (AVCodec *)avcodec_find_decoder(ctx->codec_ctx->codec_id); ++ + if (ctx->codec == NULL) + { + fatal(EXIT_READ_ERROR, "Input codec is not supported!\n"); +diff --git a/src/lib_ccx/hardsubx_decoder.c b/src/lib_ccx/hardsubx_decoder.c +index bd9b0980..b5dfaec4 100644 +--- a/src/lib_ccx/hardsubx_decoder.c ++++ b/src/lib_ccx/hardsubx_decoder.c +@@ -371,7 +371,6 @@ + int hardsubx_process_frames_tickertext(struct lib_hardsubx_ctx *ctx, struct encoder_ctx *enc_ctx) + { + // Search for ticker text at the bottom of the screen, such as in Russia TV1 or stock prices +- int got_frame; + int cur_sec = 0, total_sec, progress; + int frame_number = 0; + char *ticker_text = NULL; +@@ -382,8 +381,8 @@ + { + frame_number++; + //Decode the video stream packet +- avcodec_decode_video2(ctx->codec_ctx, ctx->frame, &got_frame, &ctx->packet); +- if (got_frame && frame_number % 1000 == 0) ++ avcodec_send_packet(ctx->codec_ctx, &ctx->packet); ++ if (avcodec_receive_frame(ctx->codec_ctx, ctx->frame) == 0 && frame_number % 1000 == 0) + { + // sws_scale is used to convert the pixel format to RGB24 from all other cases + sws_scale( +@@ -434,9 +433,8 @@ + frame_number++; + + //Decode the video stream packet +- avcodec_decode_video2(ctx->codec_ctx, ctx->frame, &got_frame, &ctx->packet); +- +- if (got_frame && frame_number % 25 == 0) ++ avcodec_send_packet(ctx->codec_ctx, &ctx->packet); ++ if (avcodec_receive_frame(ctx->codec_ctx, ctx->frame) == 0 && frame_number % 25 == 0) + { + float diff = (float)convert_pts_to_ms(ctx->packet.pts - prev_packet_pts, ctx->format_ctx->streams[ctx->video_stream_id]->time_base); + if (fabsf(diff) < 1000 * ctx->min_sub_duration) //If the minimum duration of a subtitle line is exceeded, process packet +@@ -548,7 +546,6 @@ + { + // Do a binary search over the input video for faster processing + // printf("Duration: %d\n", (int)ctx->format_ctx->duration); +- int got_frame; + int seconds_time = 0; + for (seconds_time = 0; seconds_time < 20; seconds_time++) + { +@@ -568,8 +565,9 @@ + { + if (ctx->packet.stream_index == ctx->video_stream_id) + { +- avcodec_decode_video2(ctx->codec_ctx, ctx->frame, &got_frame, &ctx->packet); +- if (got_frame) ++ avcodec_send_packet(ctx->codec_ctx, &ctx->packet); ++ if (avcodec_receive_frame(ctx->codec_ctx, ctx->frame) == 0) ++ + { + // printf("%d\n", seek_time); + if (ctx->packet.pts < seek_time) diff --git a/srcpkgs/ccextractor/template b/srcpkgs/ccextractor/template index 659af7e64fee4c..5d922ac0e442f7 100644 --- a/srcpkgs/ccextractor/template +++ b/srcpkgs/ccextractor/template @@ -1,12 +1,12 @@ # Template file for 'ccextractor' pkgname=ccextractor version=0.93 -revision=2 +revision=3 build_wrksrc="linux" build_style=gnu-configure configure_args="--enable-ocr --enable-hardsubx" hostmakedepends="automake pkg-config tesseract-ocr-devel" -makedepends="leptonica-devel tesseract-ocr-devel ffmpeg-devel" +makedepends="leptonica-devel tesseract-ocr-devel ffmpeg6-devel" short_desc="Extract subtitles from video streams" maintainer="newbluemoon " license="GPL-2.0-or-later" From 041d09a91b45ed3f4adca2868a255e9d10b9af91 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:46 -0400 Subject: [PATCH 23/86] chromaprint: revbump for ffmpeg6 chromaprint : redo --- srcpkgs/chromaprint/patches/ffmpeg5.patch | 569 ++++++++++++++++++++++ srcpkgs/chromaprint/template | 4 +- 2 files changed, 571 insertions(+), 2 deletions(-) create mode 100644 srcpkgs/chromaprint/patches/ffmpeg5.patch diff --git a/srcpkgs/chromaprint/patches/ffmpeg5.patch b/srcpkgs/chromaprint/patches/ffmpeg5.patch new file mode 100644 index 00000000000000..a9fd307a23c8a4 --- /dev/null +++ b/srcpkgs/chromaprint/patches/ffmpeg5.patch @@ -0,0 +1,569 @@ +From 8ccad6937177b1b92e40ab8f4447ea27bac009a7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Lalinsk=C3=BD?= +Date: Fri, 4 Nov 2022 21:47:38 +0100 +Subject: [PATCH] Use FFmpeg 5.x (#120) + +* Use FFmpeg 5.1.2 for CI builds + +* Build on Ubuntu 20.04 + +* Upgrade code to FFmpeg 5.x APIs + +* Only set FFmpeg include dirs if building tools + +* No longer needed + +* Use ubuntu 20.04 +--- + .github/workflows/build.yml | 6 +- + CMakeLists.txt | 16 -- + package/build.sh | 4 +- + src/audio/ffmpeg_audio_processor.h | 2 - + src/audio/ffmpeg_audio_processor_avresample.h | 72 ------- + src/audio/ffmpeg_audio_processor_swresample.h | 18 +- + src/audio/ffmpeg_audio_reader.h | 197 +++++++++--------- + tests/CMakeLists.txt | 6 + + 8 files changed, 122 insertions(+), 199 deletions(-) + delete mode 100644 src/audio/ffmpeg_audio_processor_avresample.h + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f8d6a32..4da2405 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -84,9 +84,6 @@ find_package(FFmpeg) + if(FFMPEG_LIBRARIES) + cmake_push_check_state(RESET) + set(CMAKE_REQUIRED_LIBRARIES ${FFMPEG_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} -lm) +- check_function_exists(av_packet_unref HAVE_AV_PACKET_UNREF) +- check_function_exists(av_frame_alloc HAVE_AV_FRAME_ALLOC) +- check_function_exists(av_frame_free HAVE_AV_FRAME_FREE) + cmake_pop_check_state() + endif() + +@@ -163,14 +160,11 @@ message(STATUS "Using ${FFT_LIB} for FFT calculations") + if(NOT AUDIO_PROCESSOR_LIB) + if(FFMPEG_LIBSWRESAMPLE_FOUND) + set(AUDIO_PROCESSOR_LIB "swresample") +- elseif(FFMPEG_LIBAVRESAMPLE_FOUND) +- set(AUDIO_PROCESSOR_LIB "avresample") + endif() + endif() + + if(AUDIO_PROCESSOR_LIB STREQUAL "swresample") + if(FFMPEG_LIBSWRESAMPLE_FOUND) +- set(USE_AVRESAMPLE OFF) + set(USE_SWRESAMPLE ON) + set(AUDIO_PROCESSOR_LIBRARIES ${FFMPEG_LIBSWRESAMPLE_LIBRARIES}) + set(AUDIO_PROCESSOR_INCLUDE_DIRS ${FFMPEG_LIBSWRESAMPLE_INCLUDE_DIRS}) +@@ -178,16 +172,6 @@ if(AUDIO_PROCESSOR_LIB STREQUAL "swresample") + message(FATAL_ERROR "Selected ${AUDIO_PROCESSOR_LIB} for audio processing, but the library is not found") + endif() + message(STATUS "Using ${AUDIO_PROCESSOR_LIB} for audio conversion") +-elseif(AUDIO_PROCESSOR_LIB STREQUAL "avresample") +- if(FFMPEG_LIBAVRESAMPLE_FOUND) +- set(USE_AVRESAMPLE ON) +- set(USE_SWRESAMPLE OFF) +- set(AUDIO_PROCESSOR_LIBRARIES ${FFMPEG_LIBAVRESAMPLE_LIBRARIES}) +- set(AUDIO_PROCESSOR_INCLUDE_DIRS ${FFMPEG_LIBAVRESAMPLE_INCLUDE_DIRS}) +- else() +- message(FATAL_ERROR "Selected ${AUDIO_PROCESSOR_LIB} for audio processing, but the library is not found") +- endif() +- message(STATUS "Using ${AUDIO_PROCESSOR_LIB} for audio conversion") + else() + message(STATUS "Building without audio conversion support, please install FFmpeg with libswresample") + endif() +diff --git a/package/build.sh b/package/build.sh +index da631ae..b41d36e 100755 +--- a/package/build.sh ++++ b/package/build.sh +@@ -7,8 +7,8 @@ set -eux + + BASE_DIR=$(cd $(dirname $0)/.. && pwd) + +-FFMPEG_VERSION=4.4.1 +-FFMPEG_BUILD_TAG=v4.4.1-1 ++FFMPEG_VERSION=5.1.2 ++FFMPEG_BUILD_TAG=v${FFMPEG_VERSION}-1 + + TMP_BUILD_DIR=$BASE_DIR/$(mktemp -d build.XXXXXXXX) + trap 'rm -rf $TMP_BUILD_DIR' EXIT +diff --git a/src/audio/ffmpeg_audio_processor.h b/src/audio/ffmpeg_audio_processor.h +index 7628fc7..39f4f6d 100644 +--- a/src/audio/ffmpeg_audio_processor.h ++++ b/src/audio/ffmpeg_audio_processor.h +@@ -10,8 +10,6 @@ + + #if defined(USE_SWRESAMPLE) + #include "audio/ffmpeg_audio_processor_swresample.h" +-#elif defined(USE_AVRESAMPLE) +-#include "audio/ffmpeg_audio_processor_avresample.h" + #else + #error "no audio processing library" + #endif +diff --git a/src/audio/ffmpeg_audio_processor_avresample.h b/src/audio/ffmpeg_audio_processor_avresample.h +deleted file mode 100644 +index bd85f92..0000000 +--- a/src/audio/ffmpeg_audio_processor_avresample.h ++++ /dev/null +@@ -1,72 +0,0 @@ +-// Copyright (C) 2016 Lukas Lalinsky +-// Distributed under the MIT license, see the LICENSE file for details. +- +-#ifndef CHROMAPRINT_AUDIO_FFMPEG_AUDIO_PROCESSOR_AVRESAMPLE_H_ +-#define CHROMAPRINT_AUDIO_FFMPEG_AUDIO_PROCESSOR_AVRESAMPLE_H_ +- +-extern "C" { +-#include +-} +- +-namespace chromaprint { +- +-class FFmpegAudioProcessor { +-public: +- FFmpegAudioProcessor() { +- m_resample_ctx = avresample_alloc_context(); +- } +- +- ~FFmpegAudioProcessor() { +- avresample_free(&m_resample_ctx); +- } +- +- void SetCompatibleMode() { +- av_opt_set_int(m_resample_ctx, "filter_size", 16, 0); +- av_opt_set_int(m_resample_ctx, "phase_shift", 8, 0); +- av_opt_set_int(m_resample_ctx, "linear_interp", 1, 0); +- av_opt_set_double(m_resample_ctx, "cutoff", 0.8, 0); +- } +- +- void SetInputChannelLayout(int64_t channel_layout) { +- av_opt_set_int(m_resample_ctx, "in_channel_layout", channel_layout, 0); +- } +- +- void SetInputSampleFormat(AVSampleFormat sample_format) { +- av_opt_set_int(m_resample_ctx, "in_sample_fmt", sample_format, 0); +- } +- +- void SetInputSampleRate(int sample_rate) { +- av_opt_set_int(m_resample_ctx, "in_sample_rate", sample_rate, 0); +- } +- +- void SetOutputChannelLayout(int64_t channel_layout) { +- av_opt_set_int(m_resample_ctx, "out_channel_layout", channel_layout, 0); +- } +- +- void SetOutputSampleFormat(AVSampleFormat sample_format) { +- av_opt_set_int(m_resample_ctx, "out_sample_fmt", sample_format, 0); +- } +- +- void SetOutputSampleRate(int sample_rate) { +- av_opt_set_int(m_resample_ctx, "out_sample_fmt", sample_rate, 0); +- } +- +- int Init() { +- return avresample_open(m_resample_ctx); +- } +- +- int Convert(uint8_t **out, int out_count, const uint8_t **in, int in_count) { +- return avresample_convert(m_resample_ctx, out, 0, out_count, (uint8_t **) in, 0, in_count); +- } +- +- int Flush(uint8_t **out, int out_count) { +- return avresample_read(m_resample_ctx, out, out_count); +- } +- +-private: +- AVAudioResampleContext *m_resample_ctx = nullptr; +-}; +- +-}; // namespace chromaprint +- +-#endif +diff --git a/src/audio/ffmpeg_audio_processor_swresample.h b/src/audio/ffmpeg_audio_processor_swresample.h +index b86266b..b1d4bea 100644 +--- a/src/audio/ffmpeg_audio_processor_swresample.h ++++ b/src/audio/ffmpeg_audio_processor_swresample.h +@@ -28,30 +28,28 @@ public: + av_opt_set_double(m_swr_ctx, "cutoff", 0.8, 0); + } + +- void SetInputChannelLayout(int64_t channel_layout) { +- av_opt_set_int(m_swr_ctx, "icl", channel_layout, 0); +- av_opt_set_int(m_swr_ctx, "ich", av_get_channel_layout_nb_channels(channel_layout), 0); ++ void SetInputChannelLayout(AVChannelLayout *channel_layout) { ++ av_opt_set_int(m_swr_ctx, "in_channel_layout", channel_layout->u.mask, 0); + } + + void SetInputSampleFormat(AVSampleFormat sample_format) { +- av_opt_set_int(m_swr_ctx, "isf", sample_format, 0); ++ av_opt_set_sample_fmt(m_swr_ctx, "in_sample_fmt", sample_format, 0); + } + + void SetInputSampleRate(int sample_rate) { +- av_opt_set_int(m_swr_ctx, "isr", sample_rate, 0); ++ av_opt_set_int(m_swr_ctx, "in_sample_rate", sample_rate, 0); + } + +- void SetOutputChannelLayout(int64_t channel_layout) { +- av_opt_set_int(m_swr_ctx, "ocl", channel_layout, 0); +- av_opt_set_int(m_swr_ctx, "och", av_get_channel_layout_nb_channels(channel_layout), 0); ++ void SetOutputChannelLayout(AVChannelLayout *channel_layout) { ++ av_opt_set_int(m_swr_ctx, "out_channel_layout", channel_layout->u.mask, 0); + } + + void SetOutputSampleFormat(AVSampleFormat sample_format) { +- av_opt_set_int(m_swr_ctx, "osf", sample_format, 0); ++ av_opt_set_sample_fmt(m_swr_ctx, "out_sample_fmt", sample_format, 0); + } + + void SetOutputSampleRate(int sample_rate) { +- av_opt_set_int(m_swr_ctx, "osr", sample_rate, 0); ++ av_opt_set_int(m_swr_ctx, "out_sample_rate", sample_rate, 0); + } + + int Init() { +diff --git a/src/audio/ffmpeg_audio_reader.h b/src/audio/ffmpeg_audio_reader.h +index 5550164..1c6b346 100644 +--- a/src/audio/ffmpeg_audio_reader.h ++++ b/src/audio/ffmpeg_audio_reader.h +@@ -62,7 +62,7 @@ public: + bool Read(const int16_t **data, size_t *size); + + bool IsOpen() const { return m_opened; } +- bool IsFinished() const { return m_finished && !m_got_frame; } ++ bool IsFinished() const { return !m_has_more_packets && !m_has_more_frames; } + + std::string GetError() const { return m_error; } + int GetErrorCode() const { return m_error_code; } +@@ -74,20 +74,19 @@ private: + uint8_t *m_convert_buffer[1] = { nullptr }; + int m_convert_buffer_nb_samples = 0; + +- AVInputFormat *m_input_fmt = nullptr; ++ const AVInputFormat *m_input_fmt = nullptr; + AVDictionary *m_input_opts = nullptr; + + AVFormatContext *m_format_ctx = nullptr; + AVCodecContext *m_codec_ctx = nullptr; +- AVFrame *m_frame = nullptr; + int m_stream_index = -1; + std::string m_error; + int m_error_code = 0; +- bool m_finished = false; + bool m_opened = false; +- int m_got_frame = 0; +- AVPacket m_packet; +- AVPacket m_packet0; ++ bool m_has_more_packets = true; ++ bool m_has_more_frames = true; ++ AVPacket *m_packet = nullptr; ++ AVFrame *m_frame = nullptr; + + int m_output_sample_rate = 0; + int m_output_channels = 0; +@@ -98,19 +97,12 @@ private: + + inline FFmpegAudioReader::FFmpegAudioReader() { + av_log_set_level(AV_LOG_QUIET); +- +- av_init_packet(&m_packet); +- m_packet.data = nullptr; +- m_packet.size = 0; +- +- m_packet0 = m_packet; + } + + inline FFmpegAudioReader::~FFmpegAudioReader() { + Close(); + av_dict_free(&m_input_opts); + av_freep(&m_convert_buffer[0]); +- av_packet_unref(&m_packet0); + } + + inline bool FFmpegAudioReader::SetInputFormat(const char *name) { +@@ -135,11 +127,10 @@ inline bool FFmpegAudioReader::Open(const std::string &file_name) { + + Close(); + +- av_init_packet(&m_packet); +- m_packet.data = nullptr; +- m_packet.size = 0; +- +- m_packet0 = m_packet; ++ m_packet = av_packet_alloc(); ++ if (!m_packet) { ++ return false; ++ } + + ret = avformat_open_input(&m_format_ctx, file_name.c_str(), m_input_fmt, &m_input_opts); + if (ret < 0) { +@@ -153,26 +144,31 @@ inline bool FFmpegAudioReader::Open(const std::string &file_name) { + return false; + } + +- AVCodec *codec; ++ const AVCodec *codec; + ret = av_find_best_stream(m_format_ctx, AVMEDIA_TYPE_AUDIO, -1, -1, &codec, 0); + if (ret < 0) { + SetError("Could not find any audio stream in the file", ret); + return false; + } + m_stream_index = ret; ++ auto stream = m_format_ctx->streams[m_stream_index]; + +- m_codec_ctx = m_format_ctx->streams[m_stream_index]->codec; ++ m_codec_ctx = avcodec_alloc_context3(codec); + m_codec_ctx->request_sample_fmt = AV_SAMPLE_FMT_S16; + ++ ret = avcodec_parameters_to_context(m_codec_ctx, stream->codecpar); ++ if (ret < 0) { ++ SetError("Could not copy the stream parameters", ret); ++ return false; ++ } ++ + ret = avcodec_open2(m_codec_ctx, codec, nullptr); + if (ret < 0) { + SetError("Could not open the codec", ret); + return false; + } + +- if (!m_codec_ctx->channel_layout) { +- m_codec_ctx->channel_layout = av_get_default_channel_layout(m_codec_ctx->channels); +- } ++ av_dump_format(m_format_ctx, 0, "foo", 0); + + m_frame = av_frame_alloc(); + if (!m_frame) { +@@ -183,19 +179,23 @@ inline bool FFmpegAudioReader::Open(const std::string &file_name) { + m_output_sample_rate = m_codec_ctx->sample_rate; + } + +- if (!m_output_channels) { +- m_output_channels = m_codec_ctx->channels; ++ AVChannelLayout output_channel_layout; ++ if (m_output_channels) { ++ av_channel_layout_default(&output_channel_layout, m_output_channels); ++ } else { ++ m_output_channels = m_codec_ctx->ch_layout.nb_channels; ++ av_channel_layout_default(&output_channel_layout, m_output_channels); + } + +- if (m_codec_ctx->sample_fmt != AV_SAMPLE_FMT_S16 || m_codec_ctx->channels != m_output_channels || m_codec_ctx->sample_rate != m_output_sample_rate) { ++ if (m_codec_ctx->sample_fmt != AV_SAMPLE_FMT_S16 || m_codec_ctx->ch_layout.nb_channels != m_output_channels || m_codec_ctx->sample_rate != m_output_sample_rate) { + m_converter.reset(new FFmpegAudioProcessor()); + m_converter->SetCompatibleMode(); + m_converter->SetInputSampleFormat(m_codec_ctx->sample_fmt); + m_converter->SetInputSampleRate(m_codec_ctx->sample_rate); +- m_converter->SetInputChannelLayout(m_codec_ctx->channel_layout); ++ m_converter->SetInputChannelLayout(&(m_codec_ctx->ch_layout)); + m_converter->SetOutputSampleFormat(AV_SAMPLE_FMT_S16); + m_converter->SetOutputSampleRate(m_output_sample_rate); +- m_converter->SetOutputChannelLayout(av_get_default_channel_layout(m_output_channels)); ++ m_converter->SetOutputChannelLayout(&output_channel_layout); + auto ret = m_converter->Init(); + if (ret != 0) { + SetError("Could not create an audio converter instance", ret); +@@ -203,10 +203,11 @@ inline bool FFmpegAudioReader::Open(const std::string &file_name) { + } + } + ++ av_channel_layout_uninit(&output_channel_layout); ++ + m_opened = true; +- m_finished = false; +- m_got_frame = 0; +- m_nb_packets = 0; ++ m_has_more_packets = true; ++ m_has_more_frames = true; + m_decode_error = 0; + + return true; +@@ -214,6 +215,7 @@ inline bool FFmpegAudioReader::Open(const std::string &file_name) { + + inline void FFmpegAudioReader::Close() { + av_frame_free(&m_frame); ++ av_packet_free(&m_packet); + + m_stream_index = -1; + +@@ -252,91 +254,98 @@ inline bool FFmpegAudioReader::Read(const int16_t **data, size_t *size) { + return false; + } + ++ *data = nullptr; ++ *size = 0; ++ + int ret; ++ bool needs_packet = false; + while (true) { +- while (m_packet.size <= 0) { +- av_packet_unref(&m_packet0); +- av_init_packet(&m_packet); +- m_packet.data = nullptr; +- m_packet.size = 0; +- ret = av_read_frame(m_format_ctx, &m_packet); ++ while (needs_packet && m_packet->size == 0) { ++ ret = av_read_frame(m_format_ctx, m_packet); + if (ret < 0) { + if (ret == AVERROR_EOF) { +- m_finished = true; ++ needs_packet = false; ++ m_has_more_packets = false; + break; +- } else { ++ } ++ SetError("Error reading from the audio source", ret); ++ return false; ++ } ++ if (m_packet->stream_index == m_stream_index) { ++ needs_packet = false; ++ } else { ++ av_packet_unref(m_packet); ++ } ++ } ++ ++ if (m_packet->size != 0) { ++ ret = avcodec_send_packet(m_codec_ctx, m_packet); ++ if (ret < 0) { ++ if (ret != AVERROR(EAGAIN)) { + SetError("Error reading from the audio source", ret); + return false; + } +- } +- m_packet0 = m_packet; +- if (m_packet.stream_index != m_stream_index) { +- m_packet.data = nullptr; +- m_packet.size = 0; + } else { +- m_nb_packets++; ++ av_packet_unref(m_packet); + } + } + +- ret = avcodec_decode_audio4(m_codec_ctx, m_frame, &m_got_frame, &m_packet); ++ ret = avcodec_receive_frame(m_codec_ctx, m_frame); + if (ret < 0) { +- if (m_decode_error) { +- SetError("Error decoding audio frame", m_decode_error); +- return false; ++ if (ret == AVERROR_EOF) { ++ m_has_more_frames = false; ++ } else if (ret == AVERROR(EAGAIN)) { ++ if (m_has_more_packets) { ++ needs_packet = true; ++ continue; ++ } else { ++ m_has_more_frames = false; ++ } + } +- m_decode_error = ret; +- m_packet.data = nullptr; +- m_packet.size = 0; +- continue; ++ SetError("Error decoding the audio source", ret); ++ return false; + } + +- break; +- } +- +- m_decode_error = 0; +- +- const int decoded = std::min(ret, m_packet.size); +- m_packet.data += decoded; +- m_packet.size -= decoded; +- +- if (m_got_frame) { +- if (m_converter) { +- if (m_frame->nb_samples > m_convert_buffer_nb_samples) { +- int linsize; +- av_freep(&m_convert_buffer[0]); +- m_convert_buffer_nb_samples = std::max(1024 * 8, m_frame->nb_samples); +- ret = av_samples_alloc(m_convert_buffer, &linsize, m_codec_ctx->channels, m_convert_buffer_nb_samples, AV_SAMPLE_FMT_S16, 1); +- if (ret < 0) { +- SetError("Couldn't allocate audio converter buffer", ret); ++ if (m_frame->nb_samples > 0) { ++ if (m_converter) { ++ if (m_frame->nb_samples > m_convert_buffer_nb_samples) { ++ int linsize; ++ av_freep(&m_convert_buffer[0]); ++ m_convert_buffer_nb_samples = std::max(1024 * 8, m_frame->nb_samples); ++ ret = av_samples_alloc(m_convert_buffer, &linsize, m_codec_ctx->ch_layout.nb_channels, m_convert_buffer_nb_samples, AV_SAMPLE_FMT_S16, 1); ++ if (ret < 0) { ++ SetError("Couldn't allocate audio converter buffer", ret); ++ return false; ++ } ++ } ++ auto nb_samples = m_converter->Convert(m_convert_buffer, m_convert_buffer_nb_samples, (const uint8_t **) m_frame->data, m_frame->nb_samples); ++ if (nb_samples < 0) { ++ SetError("Couldn't convert audio", ret); + return false; + } +- } +- auto nb_samples = m_converter->Convert(m_convert_buffer, m_convert_buffer_nb_samples, (const uint8_t **) m_frame->data, m_frame->nb_samples); +- if (nb_samples < 0) { +- SetError("Couldn't convert audio", ret); +- return false; +- } +- *data = (const int16_t *) m_convert_buffer[0]; +- *size = nb_samples; +- } else { +- *data = (const int16_t *) m_frame->data[0]; +- *size = m_frame->nb_samples; +- } +- } else { +- if (m_finished && m_converter) { +- auto nb_samples = m_converter->Flush(m_convert_buffer, m_convert_buffer_nb_samples); +- if (nb_samples < 0) { +- SetError("Couldn't convert audio", ret); +- return false; +- } else if (nb_samples > 0) { +- m_got_frame = 1; + *data = (const int16_t *) m_convert_buffer[0]; + *size = nb_samples; ++ } else { ++ *data = (const int16_t *) m_frame->data[0]; ++ *size = m_frame->nb_samples; ++ } ++ } else { ++ if (m_converter) { ++ if (IsFinished()) { ++ auto nb_samples = m_converter->Flush(m_convert_buffer, m_convert_buffer_nb_samples); ++ if (nb_samples < 0) { ++ SetError("Couldn't convert audio", ret); ++ return false; ++ } else if (nb_samples > 0) { ++ *data = (const int16_t *) m_convert_buffer[0]; ++ *size = nb_samples; ++ } ++ } + } + } +- } + +- return true; ++ return true; ++ } + } + + inline void FFmpegAudioReader::SetError(const char *message, int errnum) { +diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt +index a2b517b..123e643 100644 +--- a/tests/CMakeLists.txt ++++ b/tests/CMakeLists.txt +@@ -38,6 +38,12 @@ set(SRCS + + if(BUILD_TOOLS) + set(SRCS ${SRCS} ../src/audio/ffmpeg_audio_reader_test.cpp) ++ include_directories( ++ ${FFMPEG_LIBAVFORMAT_INCLUDE_DIRS} ++ ${FFMPEG_LIBAVCODEC_INCLUDE_DIRS} ++ ${FFMPEG_LIBAVUTIL_INCLUDE_DIRS} ++ ${AUDIO_PROCESSOR_INCLUDE_DIRS} ++ ) + link_libraries(fpcalc_libs) + endif() + +-- +2.38.1 + + diff --git a/srcpkgs/chromaprint/template b/srcpkgs/chromaprint/template index 7ef7838949f3a3..1b990191b7fb02 100644 --- a/srcpkgs/chromaprint/template +++ b/srcpkgs/chromaprint/template @@ -1,11 +1,11 @@ # Template file for 'chromaprint' pkgname=chromaprint version=1.5.1 -revision=1 +revision=2 build_style=cmake configure_args="-DBUILD_TOOLS=ON" make_check_target="check" -makedepends="fftw-devel ffmpeg-devel" +makedepends="fftw-devel ffmpeg6-devel" short_desc="Library that extracts fingerprints from any audio source" maintainer="Orphaned " license="MIT, LGPL-2.1-only" From dac95c73e7ca0d9a010f40ef673122a88d09cbf5 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:46 -0400 Subject: [PATCH 24/86] chromium: revbump for ffmpeg6 --- srcpkgs/chromium/patches/ffmpeg5.patch | 47 ++++++++++++++++++++++++++ srcpkgs/chromium/template | 2 +- 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/chromium/patches/ffmpeg5.patch diff --git a/srcpkgs/chromium/patches/ffmpeg5.patch b/srcpkgs/chromium/patches/ffmpeg5.patch new file mode 100644 index 00000000000000..24e2da38e34ca2 --- /dev/null +++ b/srcpkgs/chromium/patches/ffmpeg5.patch @@ -0,0 +1,47 @@ +--- a/media/filters/ffmpeg_demuxer.cc 2023-01-23 17:33:57.366213805 +0200 ++++ b/media/filters/ffmpeg_demuxer.cc 2023-01-23 17:43:09.283436983 +0200 +@@ -92,24 +92,12 @@ + + static base::TimeDelta ExtractStartTime(AVStream* stream) { + // The default start time is zero. +- base::TimeDelta start_time; ++ base::TimeDelta start_time = kNoTimestamp; + + // First try to use the |start_time| value as is. +- if (stream->start_time != kNoFFmpegTimestamp) ++ if (stream->start_time != kNoFFmpegTimestamp) // AV_NOPTS_VALUE + start_time = ConvertFromTimeBase(stream->time_base, stream->start_time); + +- // Next try to use the first DTS value, for codecs where we know PTS == DTS +- // (excludes all H26x codecs). The start time must be returned in PTS. +- if (av_stream_get_first_dts(stream) != kNoFFmpegTimestamp && +- stream->codecpar->codec_id != AV_CODEC_ID_HEVC && +- stream->codecpar->codec_id != AV_CODEC_ID_H264 && +- stream->codecpar->codec_id != AV_CODEC_ID_MPEG4) { +- const base::TimeDelta first_pts = +- ConvertFromTimeBase(stream->time_base, av_stream_get_first_dts(stream)); +- if (first_pts < start_time) +- start_time = first_pts; +- } +- + return start_time; + } + +@@ -1597,7 +1585,7 @@ + for (const auto& stream : streams_) { + if (!stream || stream->IsEnabled() != enabled) + continue; +- if (av_stream_get_first_dts(stream->av_stream()) == kInvalidPTSMarker) ++ if (stream->av_stream()->start_time == AV_NOPTS_VALUE) + continue; + if (!lowest_start_time_stream || + stream->start_time() < lowest_start_time_stream->start_time()) { +@@ -1618,7 +1606,7 @@ + if (stream->type() != DemuxerStream::VIDEO) + continue; + +- if (av_stream_get_first_dts(stream->av_stream()) == kInvalidPTSMarker) ++ if (stream->av_stream()->start_time == AV_NOPTS_VALUE) + continue; + + if (!stream->IsEnabled()) diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template index bd51612ed64748..2207f744f0c4ef 100644 --- a/srcpkgs/chromium/template +++ b/srcpkgs/chromium/template @@ -2,7 +2,7 @@ pkgname=chromium # See https://chromiumdash.appspot.com/releases?platform=Linux for the latest version version=126.0.6478.55 -revision=1 +revision=2 archs="i686* x86_64* aarch64* armv7l*" hostmakedepends=" $(vopt_if clang "clang17 lld17 llvm17 compiler-rt") From b39f6cb628a7d554957a6dc2f3c9557d7bc55caf Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:46 -0400 Subject: [PATCH 25/86] cmus: revbump for ffmpeg6 cmus : redo --- srcpkgs/chromium/patches/ffmpeg5.patch | 47 -------------------------- srcpkgs/cmus/patches/ffmpeg6.patch | 12 +++++++ srcpkgs/cmus/template | 4 +-- 3 files changed, 14 insertions(+), 49 deletions(-) delete mode 100644 srcpkgs/chromium/patches/ffmpeg5.patch create mode 100644 srcpkgs/cmus/patches/ffmpeg6.patch diff --git a/srcpkgs/chromium/patches/ffmpeg5.patch b/srcpkgs/chromium/patches/ffmpeg5.patch deleted file mode 100644 index 24e2da38e34ca2..00000000000000 --- a/srcpkgs/chromium/patches/ffmpeg5.patch +++ /dev/null @@ -1,47 +0,0 @@ ---- a/media/filters/ffmpeg_demuxer.cc 2023-01-23 17:33:57.366213805 +0200 -+++ b/media/filters/ffmpeg_demuxer.cc 2023-01-23 17:43:09.283436983 +0200 -@@ -92,24 +92,12 @@ - - static base::TimeDelta ExtractStartTime(AVStream* stream) { - // The default start time is zero. -- base::TimeDelta start_time; -+ base::TimeDelta start_time = kNoTimestamp; - - // First try to use the |start_time| value as is. -- if (stream->start_time != kNoFFmpegTimestamp) -+ if (stream->start_time != kNoFFmpegTimestamp) // AV_NOPTS_VALUE - start_time = ConvertFromTimeBase(stream->time_base, stream->start_time); - -- // Next try to use the first DTS value, for codecs where we know PTS == DTS -- // (excludes all H26x codecs). The start time must be returned in PTS. -- if (av_stream_get_first_dts(stream) != kNoFFmpegTimestamp && -- stream->codecpar->codec_id != AV_CODEC_ID_HEVC && -- stream->codecpar->codec_id != AV_CODEC_ID_H264 && -- stream->codecpar->codec_id != AV_CODEC_ID_MPEG4) { -- const base::TimeDelta first_pts = -- ConvertFromTimeBase(stream->time_base, av_stream_get_first_dts(stream)); -- if (first_pts < start_time) -- start_time = first_pts; -- } -- - return start_time; - } - -@@ -1597,7 +1585,7 @@ - for (const auto& stream : streams_) { - if (!stream || stream->IsEnabled() != enabled) - continue; -- if (av_stream_get_first_dts(stream->av_stream()) == kInvalidPTSMarker) -+ if (stream->av_stream()->start_time == AV_NOPTS_VALUE) - continue; - if (!lowest_start_time_stream || - stream->start_time() < lowest_start_time_stream->start_time()) { -@@ -1618,7 +1606,7 @@ - if (stream->type() != DemuxerStream::VIDEO) - continue; - -- if (av_stream_get_first_dts(stream->av_stream()) == kInvalidPTSMarker) -+ if (stream->av_stream()->start_time == AV_NOPTS_VALUE) - continue; - - if (!stream->IsEnabled()) diff --git a/srcpkgs/cmus/patches/ffmpeg6.patch b/srcpkgs/cmus/patches/ffmpeg6.patch new file mode 100644 index 00000000000000..ffa95ab811101b --- /dev/null +++ b/srcpkgs/cmus/patches/ffmpeg6.patch @@ -0,0 +1,12 @@ +--- a/ip/ffmpeg.c ++++ b/ip/ffmpeg.c +@@ -202,9 +202,6 @@ static int ffmpeg_open(struct input_plugin_data *ip_data) + break; + } + +- if (codec->capabilities & AV_CODEC_CAP_TRUNCATED) +- cc->flags |= AV_CODEC_FLAG_TRUNCATED; +- + if (avcodec_open2(cc, codec, NULL) < 0) { + d_print("could not open codec: %d, %s\n", cc->codec_id, avcodec_get_name(cc->codec_id)); + err = -IP_ERROR_UNSUPPORTED_FILE_TYPE; diff --git a/srcpkgs/cmus/template b/srcpkgs/cmus/template index 0d1436744f1b2c..4bc08a31d3fbe7 100644 --- a/srcpkgs/cmus/template +++ b/srcpkgs/cmus/template @@ -1,14 +1,14 @@ # Template file for 'cmus' pkgname=cmus version=2.10.0 -revision=3 +revision=4 build_style=configure configure_args="prefix=/usr LD=$CC" hostmakedepends="pkg-config" makedepends="ncurses-devel faad2-devel libcdio-devel libcdio-paranoia-devel libcddb-devel libdiscid-devel libflac-devel libao-devel libmad-devel libmodplug-devel libmp4v2-devel libmpcdec-devel pulseaudio-devel - opusfile-devel wavpack-devel alsa-lib-devel libvorbis-devel ffmpeg-devel + opusfile-devel wavpack-devel alsa-lib-devel libvorbis-devel ffmpeg6-devel sndio-devel jack-devel $(vopt_if elogind elogind-devel)" short_desc="Small, fast and powerful console music player" maintainer="Orphaned " From 6e753996e64fde2d7d982f65b0cf43edd4794649 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:46 -0400 Subject: [PATCH 26/86] cyanrip: revbump for ffmpeg6 --- srcpkgs/cyanrip/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/cyanrip/template b/srcpkgs/cyanrip/template index 9796e3461601a7..d725cc8b97dac4 100644 --- a/srcpkgs/cyanrip/template +++ b/srcpkgs/cyanrip/template @@ -1,10 +1,10 @@ # Template file for 'cyanrip' pkgname=cyanrip version=0.9.0 -revision=1 +revision=2 build_style=meson hostmakedepends="pkg-config" -makedepends="ffmpeg-devel libcdio-devel libcdio-paranoia-devel libcurl-devel libmusicbrainz5-devel" +makedepends="ffmpeg6-devel libcdio-devel libcdio-paranoia-devel libcurl-devel libmusicbrainz5-devel" short_desc="Bule-ish CD ripper" maintainer="Duncaen " license="LGPL-2.1-or-later" From 355d6536918698a1d7e71a2a7988b0bacab45c78 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:46 -0400 Subject: [PATCH 27/86] droidcam-obs-plugin: revbump for ffmpeg6 droidcam-obs-plugin : redo --- srcpkgs/droidcam-obs-plugin/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/droidcam-obs-plugin/template b/srcpkgs/droidcam-obs-plugin/template index 9dc6648efe94ad..ad64403e8ba843 100644 --- a/srcpkgs/droidcam-obs-plugin/template +++ b/srcpkgs/droidcam-obs-plugin/template @@ -1,12 +1,12 @@ # Template file for 'droidcam-obs-plugin' pkgname=droidcam-obs-plugin version=2.3.2 -revision=1 +revision=2 build_style=gnu-makefile make_use_env=yes make_build_args="ALLOW_STATIC=no" makedepends="obs-devel libusbmuxd-devel libjpeg-turbo-devel - ffmpeg-devel libimobiledevice-devel" + ffmpeg6-devel libimobiledevice-devel" short_desc="DroidCam OBS Source" maintainer="Michael Aldridge " license="GPL-2.0-only" From 1730938d3bdd5026551ad18bc95da87d448355fa Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:46 -0400 Subject: [PATCH 28/86] droidcam: revbump for ffmpeg6 droidcam : redo --- srcpkgs/droidcam/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/droidcam/template b/srcpkgs/droidcam/template index f727b7a64f3c8e..e5f800937d7c9b 100644 --- a/srcpkgs/droidcam/template +++ b/srcpkgs/droidcam/template @@ -1,12 +1,12 @@ # Template file for 'droidcam' pkgname=droidcam version=2.1.3 -revision=1 +revision=2 build_style=gnu-makefile make_use_env=true make_build_args="USBMUXD=-lusbmuxd-2.0 APPINDICATOR=ayatana-appindicator3-0.1" hostmakedepends="pkg-config" -makedepends="pkg-config libjpeg-turbo-devel ffmpeg-devel alsa-lib-devel +makedepends="pkg-config libjpeg-turbo-devel ffmpeg6-devel alsa-lib-devel speex-devel libusbmuxd-devel libplist-devel gtk+3-devel libayatana-appindicator-devel" depends="v4l2loopback" From f3c17a688f648d0c3be4ad41623992e841270ea8 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:47 -0400 Subject: [PATCH 29/86] ffms2: revbump for ffmpeg6 ffms2 : redo --- srcpkgs/ffms2/patches/ffmpeg5.patch | 424 ++++++++++++++++++++++++++++ srcpkgs/ffms2/template | 4 +- 2 files changed, 426 insertions(+), 2 deletions(-) create mode 100644 srcpkgs/ffms2/patches/ffmpeg5.patch diff --git a/srcpkgs/ffms2/patches/ffmpeg5.patch b/srcpkgs/ffms2/patches/ffmpeg5.patch new file mode 100644 index 00000000000000..1479fabcafcb4e --- /dev/null +++ b/srcpkgs/ffms2/patches/ffmpeg5.patch @@ -0,0 +1,424 @@ +From 45673149e9a2f5586855ad472e3059084eaa36b1 Mon Sep 17 00:00:00 2001 +From: Derek Buitenhuis +Date: Tue, 4 May 2021 14:41:21 +0100 +Subject: [PATCH] Use auto for AVCodec + +The geniuses over at FFmpeg decided to constify this API, so old +versions of the library will return AVCodec *, while new versions +of the libary will return const AVCodec *, which, in C++, are not +OK to convert between. + +Rather than use some macro hell in ffmscompat.h, we can work around +this by using auto. + +Gross. + +Signed-off-by: Derek Buitenhuis +--- + src/core/audiosource.cpp | 2 +- + src/core/indexing.cpp | 6 +++--- + src/core/videosource.cpp | 2 +- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/core/audiosource.cpp b/src/core/audiosource.cpp +index e4ce97c..ac09666 100644 +--- a/src/core/audiosource.cpp ++++ b/src/core/audiosource.cpp +@@ -469,7 +469,7 @@ void FFMS_AudioSource::OpenFile() { + + LAVFOpenFile(SourceFile.c_str(), FormatContext, TrackNumber); + +- AVCodec *Codec = avcodec_find_decoder(FormatContext->streams[TrackNumber]->codecpar->codec_id); ++ auto *Codec = avcodec_find_decoder(FormatContext->streams[TrackNumber]->codecpar->codec_id); + if (Codec == nullptr) + throw FFMS_Exception(FFMS_ERROR_DECODING, FFMS_ERROR_CODEC, + "Audio codec not found"); +diff --git a/src/core/indexing.cpp b/src/core/indexing.cpp +index e547c5a..59fb4e8 100644 +--- a/src/core/indexing.cpp ++++ b/src/core/indexing.cpp +@@ -384,7 +384,7 @@ FFMS_TrackType FFMS_Indexer::GetTrackType(int Track) { + } + + const char *FFMS_Indexer::GetTrackCodec(int Track) { +- AVCodec *codec = avcodec_find_decoder(FormatContext->streams[Track]->codecpar->codec_id); ++ auto *codec = avcodec_find_decoder(FormatContext->streams[Track]->codecpar->codec_id); + return codec ? codec->name : nullptr; + } + +@@ -402,7 +402,7 @@ FFMS_Index *FFMS_Indexer::DoIndexing() { + UseDTS); + + if (IndexMask.count(i) && FormatContext->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) { +- AVCodec *VideoCodec = avcodec_find_decoder(FormatContext->streams[i]->codecpar->codec_id); ++ auto *VideoCodec = avcodec_find_decoder(FormatContext->streams[i]->codecpar->codec_id); + if (!VideoCodec) { + FormatContext->streams[i]->discard = AVDISCARD_ALL; + IndexMask.erase(i); +@@ -433,7 +433,7 @@ FFMS_Index *FFMS_Indexer::DoIndexing() { + IndexMask.insert(i); + } + } else if (IndexMask.count(i) && FormatContext->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) { +- AVCodec *AudioCodec = avcodec_find_decoder(FormatContext->streams[i]->codecpar->codec_id); ++ auto *AudioCodec = avcodec_find_decoder(FormatContext->streams[i]->codecpar->codec_id); + if (AudioCodec == nullptr) + throw FFMS_Exception(FFMS_ERROR_CODEC, FFMS_ERROR_UNSUPPORTED, + "Audio codec not found"); +diff --git a/src/core/videosource.cpp b/src/core/videosource.cpp +index b889970..8956c22 100644 +--- a/src/core/videosource.cpp ++++ b/src/core/videosource.cpp +@@ -171,7 +171,7 @@ FFMS_VideoSource::FFMS_VideoSource(const char *SourceFile, FFMS_Index &Index, in + + LAVFOpenFile(SourceFile, FormatContext, VideoTrack); + +- AVCodec *Codec = avcodec_find_decoder(FormatContext->streams[VideoTrack]->codecpar->codec_id); ++ auto *Codec = avcodec_find_decoder(FormatContext->streams[VideoTrack]->codecpar->codec_id); + if (Codec == nullptr) + throw FFMS_Exception(FFMS_ERROR_DECODING, FFMS_ERROR_CODEC, + "Video codec not found"); +-- +2.40.0 + +From 96cbf38ea9381829a1314f432a2c60495dcefaad Mon Sep 17 00:00:00 2001 +From: Derek Buitenhuis +Date: Tue, 4 May 2021 14:12:41 +0100 +Subject: [PATCH] all: Update AVPacket API usage + +AVPackets must all be on the heap now, since it is no longer +part of the libav* ABI. + +Signed-off-by: Derek Buitenhuis +--- + src/core/audiosource.cpp | 16 ++++++---- + src/core/indexing.cpp | 63 ++++++++++++++++++++++------------------ + src/core/indexing.h | 4 +-- + src/core/utils.cpp | 6 ---- + src/core/utils.h | 1 - + src/core/videosource.cpp | 30 ++++++++++--------- + 6 files changed, 64 insertions(+), 56 deletions(-) + +diff --git a/src/core/audiosource.cpp b/src/core/audiosource.cpp +index 37cf9ae..e4ce97c 100644 +--- a/src/core/audiosource.cpp ++++ b/src/core/audiosource.cpp +@@ -285,10 +285,15 @@ FFMS_AudioSource::AudioBlock *FFMS_AudioSource::CacheBlock(CacheIterator &pos) { + int FFMS_AudioSource::DecodeNextBlock(CacheIterator *pos) { + CurrentFrame = &Frames[PacketNumber]; + +- AVPacket Packet; +- if (!ReadPacket(&Packet)) ++ AVPacket *Packet = av_packet_alloc(); ++ if (!Packet) ++ throw FFMS_Exception(FFMS_ERROR_PARSER, FFMS_ERROR_ALLOCATION_FAILED, ++ "Could not allocate packet."); ++ if (!ReadPacket(Packet)) { ++ av_packet_free(&Packet); + throw FFMS_Exception(FFMS_ERROR_PARSER, FFMS_ERROR_UNKNOWN, + "ReadPacket unexpectedly failed to read a packet"); ++ } + + // ReadPacket may have changed the packet number + CurrentFrame = &Frames[PacketNumber]; +@@ -297,8 +302,9 @@ int FFMS_AudioSource::DecodeNextBlock(CacheIterator *pos) { + int NumberOfSamples = 0; + AudioBlock *CachedBlock = nullptr; + +- int Ret = avcodec_send_packet(CodecContext, &Packet); +- av_packet_unref(&Packet); ++ int Ret = avcodec_send_packet(CodecContext, Packet); ++ av_packet_unref(Packet); ++ av_packet_free(&Packet); + + av_frame_unref(DecodeFrame); + Ret = avcodec_receive_frame(CodecContext, DecodeFrame); +@@ -513,8 +519,6 @@ void FFMS_AudioSource::Seek() { + } + + bool FFMS_AudioSource::ReadPacket(AVPacket *Packet) { +- InitNullPacket(*Packet); +- + while (av_read_frame(FormatContext, Packet) >= 0) { + if (Packet->stream_index == TrackNumber) { + // Required because not all audio packets, especially in ogg, have a pts. Use the previous valid packet's pts instead. +diff --git a/src/core/indexing.cpp b/src/core/indexing.cpp +index 23fb95b..e547c5a 100644 +--- a/src/core/indexing.cpp ++++ b/src/core/indexing.cpp +@@ -320,7 +320,7 @@ void FFMS_Indexer::CheckAudioProperties(int Track, AVCodecContext *Context) { + } + } + +-void FFMS_Indexer::ParseVideoPacket(SharedAVContext &VideoContext, AVPacket &pkt, int *RepeatPict, ++void FFMS_Indexer::ParseVideoPacket(SharedAVContext &VideoContext, AVPacket *pkt, int *RepeatPict, + int *FrameType, bool *Invisible, enum AVPictureStructure *LastPicStruct) { + if (VideoContext.Parser) { + uint8_t *OB; +@@ -330,8 +330,8 @@ void FFMS_Indexer::ParseVideoPacket(SharedAVContext &VideoContext, AVPacket &pkt + av_parser_parse2(VideoContext.Parser, + VideoContext.CodecContext, + &OB, &OBSize, +- pkt.data, pkt.size, +- pkt.pts, pkt.dts, pkt.pos); ++ pkt->data, pkt->size, ++ pkt->pts, pkt->dts, pkt->pos); + + // H.264 (PAFF) and HEVC may have one field per packet, so we need to track + // when we have a full or half frame available, and mark one of them as +@@ -351,15 +351,15 @@ void FFMS_Indexer::ParseVideoPacket(SharedAVContext &VideoContext, AVPacket &pkt + + *RepeatPict = VideoContext.Parser->repeat_pict; + *FrameType = VideoContext.Parser->pict_type; +- *Invisible = (IncompleteFrame || VideoContext.Parser->repeat_pict < 0 || (pkt.flags & AV_PKT_FLAG_DISCARD)); ++ *Invisible = (IncompleteFrame || VideoContext.Parser->repeat_pict < 0 || (pkt->flags & AV_PKT_FLAG_DISCARD)); + } else { +- *Invisible = !!(pkt.flags & AV_PKT_FLAG_DISCARD); ++ *Invisible = !!(pkt->flags & AV_PKT_FLAG_DISCARD); + } + + if (VideoContext.CodecContext->codec_id == AV_CODEC_ID_VP8) +- ParseVP8(pkt.data[0], Invisible, FrameType); ++ ParseVP8(pkt->data[0], Invisible, FrameType); + else if (VideoContext.CodecContext->codec_id == AV_CODEC_ID_VP9) +- ParseVP9(pkt.data[0], Invisible, FrameType); ++ ParseVP9(pkt->data[0], Invisible, FrameType); + } + + void FFMS_Indexer::Free() { +@@ -458,32 +458,36 @@ FFMS_Index *FFMS_Indexer::DoIndexing() { + } + } + +- AVPacket Packet; +- InitNullPacket(Packet); ++ AVPacket *Packet = av_packet_alloc(); ++ if (!Packet) ++ throw FFMS_Exception(FFMS_ERROR_CODEC, FFMS_ERROR_ALLOCATION_FAILED, ++ "Could not allocate packet."); + std::vector LastValidTS(FormatContext->nb_streams, AV_NOPTS_VALUE); + + int64_t filesize = avio_size(FormatContext->pb); + enum AVPictureStructure LastPicStruct = AV_PICTURE_STRUCTURE_UNKNOWN; +- while (av_read_frame(FormatContext, &Packet) >= 0) { ++ while (av_read_frame(FormatContext, Packet) >= 0) { + // Update progress + // FormatContext->pb can apparently be NULL when opening images. + if (IC && FormatContext->pb) { +- if ((*IC)(FormatContext->pb->pos, filesize, ICPrivate)) ++ if ((*IC)(FormatContext->pb->pos, filesize, ICPrivate)) { ++ av_packet_free(&Packet); + throw FFMS_Exception(FFMS_ERROR_CANCELLED, FFMS_ERROR_USER, + "Cancelled by user"); ++ } + } +- if (!IndexMask.count(Packet.stream_index)) { +- av_packet_unref(&Packet); ++ if (!IndexMask.count(Packet->stream_index)) { ++ av_packet_unref(Packet); + continue; + } + +- int Track = Packet.stream_index; ++ int Track = Packet->stream_index; + FFMS_Track &TrackInfo = (*TrackIndices)[Track]; +- bool KeyFrame = !!(Packet.flags & AV_PKT_FLAG_KEY); ++ bool KeyFrame = !!(Packet->flags & AV_PKT_FLAG_KEY); + ReadTS(Packet, LastValidTS[Track], (*TrackIndices)[Track].UseDTS); + + if (FormatContext->streams[Track]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) { +- int64_t PTS = TrackInfo.UseDTS ? Packet.dts : Packet.pts; ++ int64_t PTS = TrackInfo.UseDTS ? Packet->dts : Packet->pts; + if (PTS == AV_NOPTS_VALUE) { + // VPx alt-refs are output as packets which lack timestmps or durations, since + // they are invisible. Currently, the timestamp mangling code in libavformat +@@ -495,9 +499,11 @@ FFMS_Index *FFMS_Indexer::DoIndexing() { + // FFMS2 currently sorts packets by PTS, which will break decoding, otherwise. + bool HasAltRefs = (FormatContext->streams[Track]->codecpar->codec_id == AV_CODEC_ID_VP8 || + FormatContext->streams[Track]->codecpar->codec_id == AV_CODEC_ID_VP9); +- if (Packet.duration == 0 && !HasAltRefs) ++ if (Packet->duration == 0 && !HasAltRefs) { ++ av_packet_free(&Packet); + throw FFMS_Exception(FFMS_ERROR_INDEXING, FFMS_ERROR_PARSER, + "Invalid packet pts, dts, and duration"); ++ } + + if (TrackInfo.empty()) + PTS = 0; +@@ -513,7 +519,7 @@ FFMS_Index *FFMS_Indexer::DoIndexing() { + ParseVideoPacket(AVContexts[Track], Packet, &RepeatPict, &FrameType, &Invisible, &LastPicStruct); + + TrackInfo.AddVideoFrame(PTS, RepeatPict, KeyFrame, +- FrameType, Packet.pos, Invisible); ++ FrameType, Packet->pos, Invisible); + } else if (FormatContext->streams[Track]->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) { + // For video seeking timestamps are used only if all packets have + // timestamps, while for audio they're used if any have timestamps, +@@ -522,28 +528,29 @@ FFMS_Index *FFMS_Indexer::DoIndexing() { + TrackInfo.HasTS = true; + + int64_t StartSample = AVContexts[Track].CurrentSample; +- uint32_t SampleCount = IndexAudioPacket(Track, &Packet, AVContexts[Track], *TrackIndices); ++ uint32_t SampleCount = IndexAudioPacket(Track, Packet, AVContexts[Track], *TrackIndices); + TrackInfo.SampleRate = AVContexts[Track].CodecContext->sample_rate; + + TrackInfo.AddAudioFrame(LastValidTS[Track], +- StartSample, SampleCount, KeyFrame, Packet.pos, Packet.flags & AV_PKT_FLAG_DISCARD); ++ StartSample, SampleCount, KeyFrame, Packet->pos, Packet->flags & AV_PKT_FLAG_DISCARD); + } + +- if (!(Packet.flags & AV_PKT_FLAG_DISCARD)) +- TrackInfo.LastDuration = Packet.duration; ++ if (!(Packet->flags & AV_PKT_FLAG_DISCARD)) ++ TrackInfo.LastDuration = Packet->duration; + +- av_packet_unref(&Packet); ++ av_packet_unref(Packet); + } ++ av_packet_free(&Packet); + + TrackIndices->Finalize(AVContexts, FormatContext->iformat->name); + return TrackIndices.release(); + } + +-void FFMS_Indexer::ReadTS(const AVPacket &Packet, int64_t &TS, bool &UseDTS) { +- if (!UseDTS && Packet.pts != AV_NOPTS_VALUE) +- TS = Packet.pts; ++void FFMS_Indexer::ReadTS(const AVPacket *Packet, int64_t &TS, bool &UseDTS) { ++ if (!UseDTS && Packet->pts != AV_NOPTS_VALUE) ++ TS = Packet->pts; + if (TS == AV_NOPTS_VALUE) + UseDTS = true; +- if (UseDTS && Packet.dts != AV_NOPTS_VALUE) +- TS = Packet.dts; ++ if (UseDTS && Packet->dts != AV_NOPTS_VALUE) ++ TS = Packet->dts; + } +diff --git a/src/core/indexing.h b/src/core/indexing.h +index 3cfc3c3..5c06868 100644 +--- a/src/core/indexing.h ++++ b/src/core/indexing.h +@@ -80,10 +80,10 @@ private: + int64_t Filesize; + uint8_t Digest[20]; + +- void ReadTS(const AVPacket &Packet, int64_t &TS, bool &UseDTS); ++ void ReadTS(const AVPacket *Packet, int64_t &TS, bool &UseDTS); + void CheckAudioProperties(int Track, AVCodecContext *Context); + uint32_t IndexAudioPacket(int Track, AVPacket *Packet, SharedAVContext &Context, FFMS_Index &TrackIndices); +- void ParseVideoPacket(SharedAVContext &VideoContext, AVPacket &pkt, int *RepeatPict, int *FrameType, bool *Invisible, enum AVPictureStructure *LastPicStruct); ++ void ParseVideoPacket(SharedAVContext &VideoContext, AVPacket *pkt, int *RepeatPict, int *FrameType, bool *Invisible, enum AVPictureStructure *LastPicStruct); + void Free(); + public: + FFMS_Indexer(const char *Filename); +diff --git a/src/core/utils.cpp b/src/core/utils.cpp +index ce67533..8a2e997 100644 +--- a/src/core/utils.cpp ++++ b/src/core/utils.cpp +@@ -62,12 +62,6 @@ void ClearErrorInfo(FFMS_ErrorInfo *ErrorInfo) { + } + } + +-void InitNullPacket(AVPacket &pkt) { +- av_init_packet(&pkt); +- pkt.data = nullptr; +- pkt.size = 0; +-} +- + void FillAP(FFMS_AudioProperties &AP, AVCodecContext *CTX, FFMS_Track &Frames) { + AP.SampleFormat = static_cast(av_get_packed_sample_fmt(CTX->sample_fmt)); + AP.BitsPerSample = av_get_bytes_per_sample(CTX->sample_fmt) * 8; +diff --git a/src/core/utils.h b/src/core/utils.h +index 9819dc7..003ab79 100644 +--- a/src/core/utils.h ++++ b/src/core/utils.h +@@ -58,7 +58,6 @@ std::unique_ptr make_unique(Args&&... args) { + } + + void ClearErrorInfo(FFMS_ErrorInfo *ErrorInfo); +-void InitNullPacket(AVPacket &pkt); + void FillAP(FFMS_AudioProperties &AP, AVCodecContext *CTX, FFMS_Track &Frames); + + void LAVFOpenFile(const char *SourceFile, AVFormatContext *&FormatContext, int Track); +diff --git a/src/core/videosource.cpp b/src/core/videosource.cpp +index 06bd161..b889970 100644 +--- a/src/core/videosource.cpp ++++ b/src/core/videosource.cpp +@@ -673,30 +673,34 @@ void FFMS_VideoSource::DecodeNextFrame(int64_t &AStartTime, int64_t &Pos) { + if (HasPendingDelayedFrames()) + return; + +- AVPacket Packet; +- InitNullPacket(Packet); +- +- while (ReadFrame(&Packet) >= 0) { +- if (Packet.stream_index != VideoTrack) { +- av_packet_unref(&Packet); ++ AVPacket *Packet = av_packet_alloc(); ++ if (!Packet) ++ throw FFMS_Exception(FFMS_ERROR_DECODING, FFMS_ERROR_ALLOCATION_FAILED, ++ "Could not allocate packet."); ++ ++ while (ReadFrame(Packet) >= 0) { ++ if (Packet->stream_index != VideoTrack) { ++ av_packet_unref(Packet); + continue; + } + + if (AStartTime < 0) +- AStartTime = Frames.UseDTS ? Packet.dts : Packet.pts; ++ AStartTime = Frames.UseDTS ? Packet->dts : Packet->pts; + + if (Pos < 0) +- Pos = Packet.pos; ++ Pos = Packet->pos; + +- bool FrameFinished = DecodePacket(&Packet); +- av_packet_unref(&Packet); +- if (FrameFinished) ++ bool FrameFinished = DecodePacket(Packet); ++ av_packet_unref(Packet); ++ if (FrameFinished) { ++ av_packet_free(&Packet); + return; ++ } + } + + // Flush final frames +- InitNullPacket(Packet); +- DecodePacket(&Packet); ++ DecodePacket(Packet); ++ av_packet_free(&Packet); + } + + bool FFMS_VideoSource::SeekTo(int n, int SeekOffset) { +-- +2.40.0 + +From bf9e03e9e08534c024e5a744a6437c4aac160201 Mon Sep 17 00:00:00 2001 +From: Derek Buitenhuis +Date: Tue, 4 May 2021 14:20:47 +0100 +Subject: [PATCH 2/3] configure: Remove deprecated API use + +Signed-off-by: Derek Buitenhuis +--- + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index b35ef80bc..d19714d0f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -102,10 +102,10 @@ CFLAGS="$_CFLAGS $FFMPEG_CFLAGS" + + AC_DEFUN([TEST_FFMPEG], + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +- #include ++ #include + #include + ]],[[ +- avcodec_register_all(); ++ avformat_network_init(); + swscale_version(); + ]])], [eval $1=yes], [eval $1=no]) + ]) + diff --git a/srcpkgs/ffms2/template b/srcpkgs/ffms2/template index 365f64d10cbabf..42f402ce680151 100644 --- a/srcpkgs/ffms2/template +++ b/srcpkgs/ffms2/template @@ -1,11 +1,11 @@ # Template file for 'ffms2' pkgname=ffms2 version=2.40 -revision=1 +revision=2 build_style=gnu-configure configure_args="--enable-shared --disable-static" hostmakedepends="pkg-config autoconf automake libtool" -makedepends="ffmpeg-devel zlib-devel" +makedepends="ffmpeg6-devel zlib-devel" short_desc="Libav/ffmpeg based frames server" maintainer="Orphaned " license="MIT, GPL-3.0-or-later" From 08e828817059facd7bb9709d6e58ab5d5bf5c37a Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:47 -0400 Subject: [PATCH 30/86] freerdp: revbump for ffmpeg6 freerdp : redo --- srcpkgs/freerdp/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/freerdp/template b/srcpkgs/freerdp/template index f6ca3980c4c145..57c330ba77469b 100644 --- a/srcpkgs/freerdp/template +++ b/srcpkgs/freerdp/template @@ -1,7 +1,7 @@ # Template file for 'freerdp' pkgname=freerdp version=2.11.4 -revision=2 +revision=3 build_style=cmake configure_args="-DWITH_ALSA=ON -DWITH_CUPS=OFF -DWITH_FFMPEG=ON -DWITH_GSTREAMER_0_10=OFF -DWITH_GSTREAMER_1_0=OFF -DWITH_JPEG=ON @@ -10,7 +10,7 @@ configure_args="-DWITH_ALSA=ON -DWITH_CUPS=OFF -DWITH_FFMPEG=ON -DWITH_XKBFILE=ON -DWITH_XRENDER=ON -DWITH_XV=ON -DWITH_SERVER=ON -DWAYLAND_SCANNER=/usr/bin/wayland-scanner -DWITH_CAIRO=ON" hostmakedepends="pkg-config xmlto wayland-devel" -makedepends="alsa-lib-devel ffmpeg-devel glib-devel libusb-devel +makedepends="alsa-lib-devel ffmpeg6-devel glib-devel libusb-devel libXcursor-devel libXinerama-devel libXrandr-devel libXv-devel libjpeg-turbo-devel openssl-devel libxkbfile-devel pulseaudio-devel libxkbcommon-devel wayland-devel cairo-devel libXdamage-devel" From c090a3fb574d0821ebcb87987b81d7efa1c329a4 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:47 -0400 Subject: [PATCH 31/86] gerbera: revbump for ffmpeg6 --- srcpkgs/gerbera/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/gerbera/template b/srcpkgs/gerbera/template index ae14f35c767c03..5e2da9c98da86b 100644 --- a/srcpkgs/gerbera/template +++ b/srcpkgs/gerbera/template @@ -1,11 +1,11 @@ # Template file for 'gerbera' pkgname=gerbera version=1.12.1 -revision=1 +revision=2 build_style=cmake configure_args="-DWITH_SYSTEMD=0 -DWITH_AVCODEC=1" hostmakedepends="pkg-config" -makedepends="duktape-devel expat-devel ffmpeg-devel file-devel libcurl-devel +makedepends="duktape-devel expat-devel ffmpeg6-devel file-devel libcurl-devel libexif-devel libupnp-devel libuuid-devel sqlite-devel taglib-devel fmt-devel spdlog pugixml-devel libebml-devel libmatroska-devel" short_desc="UPnP Media Server based on MediaTomb" From cfb64f6e376742362def3c7f1062f8a03f7f3021 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:47 -0400 Subject: [PATCH 32/86] goldendict: revbump for ffmpeg6 --- srcpkgs/goldendict/template | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/srcpkgs/goldendict/template b/srcpkgs/goldendict/template index f4a05759f693d3..400a0e44f2a9de 100644 --- a/srcpkgs/goldendict/template +++ b/srcpkgs/goldendict/template @@ -1,16 +1,16 @@ # Template file for 'goldendict' pkgname=goldendict version=1.5.0 -revision=1 +revision=2 build_style=qmake configure_args="CONFIG+=zim_support goldendict.pro" hostmakedepends="qt5-qmake pkg-config qt5-host-tools" makedepends="tiff-devel qt5-devel libvorbis-devel zlib-devel libXtst-devel hunspell-devel qt5-tools-devel qt5-declarative-devel qt5-webkit-devel lzo-devel bzip2-devel libao-devel qt5-svg-devel - libeb-devel qt5-x11extras-devel ffmpeg-devel liblzma-devel + libeb-devel qt5-x11extras-devel ffmpeg6-devel liblzma-devel qt5-multimedia-devel" -short_desc="A feature-rich dictionary lookup program" +short_desc="Feature-rich dictionary lookup program" maintainer="John " license="GPL-3.0-or-later" homepage="http://goldendict.org/" From 50eb89ff98a7c046f023ae92f1019a3427183a02 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:47 -0400 Subject: [PATCH 33/86] gst-libav: revbump for ffmpeg6 --- srcpkgs/gst-libav/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/gst-libav/template b/srcpkgs/gst-libav/template index 45ca47c48b60b8..28bfe738af7d71 100644 --- a/srcpkgs/gst-libav/template +++ b/srcpkgs/gst-libav/template @@ -1,10 +1,10 @@ # Template file for 'gst-libav' pkgname=gst-libav version=1.24.4 -revision=1 +revision=2 build_style=meson hostmakedepends="pkg-config yasm" -makedepends="orc-devel gst-plugins-base1-devel ffmpeg-devel" +makedepends="orc-devel gst-plugins-base1-devel ffmpeg6-devel" depends="orc>=0.4.18 gst-plugins-base1>=${version}" short_desc="GStreamer libav plugin (1.x)" maintainer="Orphaned " From 8bef3be4b6ec5deeea51027ffb8f28ac4ac06f4f Mon Sep 17 00:00:00 2001 From: zlice Date: Sat, 3 Feb 2024 01:52:46 -0500 Subject: [PATCH 34/86] gst-plugins-bad1: revbump for ffmpeg6 --- srcpkgs/gst-plugins-bad1/template | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/srcpkgs/gst-plugins-bad1/template b/srcpkgs/gst-plugins-bad1/template index 5fc213e75b829c..345425785d435d 100644 --- a/srcpkgs/gst-plugins-bad1/template +++ b/srcpkgs/gst-plugins-bad1/template @@ -1,7 +1,7 @@ # Template file for 'gst-plugins-bad1' pkgname=gst-plugins-bad1 version=1.24.4 -revision=1 +revision=2 build_helper="gir" build_style=meson configure_args="-Dpackage-origin=https://voidlinux.org -Ddoc=disabled @@ -26,8 +26,8 @@ makedepends="alsa-lib-devel celt-devel openssl-devel exempi-devel libgudev-devel libusb-devel libaom-devel libbs2b-devel chromaprint-devel fdk-aac-devel flite-devel fluidsynth-devel liblrdf-devel ladspa-sdk lilv-devel lv2 libopenjpeg2-devel sbc-devel spandsp-devel vulkan-loader-devel - webrtc-audio-processing-devel libzbar-devel ffmpeg-devel srt-devel libva-devel - $(vopt_if gme libgme-devel)" + webrtc-audio-processing-devel libzbar-devel ffmpeg6-devel + srt-devel libva-devel $(vopt_if onevpl oneVPL-devel) $(vopt_if gme libgme-devel)" depends="gst-plugins-base1>=${version}" short_desc="GStreamer plugins from the bad set (v1.x)" maintainer="Orphaned " @@ -37,12 +37,13 @@ changelog="https://gstreamer.freedesktop.org/releases/${version%.*}/#${version}" distfiles="https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${version}.tar.xz" checksum=260bd0a463b4faff9a42f41e5e028f787f10a92b779af8959aec64586f546bd3 -build_options="gir gme wayland" +build_options="gir gme onevpl wayland" build_options_default="gir wayland" desc_option_gme="Build with Game Music Emulator support" case "$XBPS_TARGET_MACHINE" in mips*) ;; # libgme cannot be built for mips* + x86_64*) build_options_default+=" gme onevpl" ;; # onevpl only supports 64bit *) build_options_default+=" gme" ;; esac From cd0d5caba549929444fe3ec9107a9a823778af4b Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:47 -0400 Subject: [PATCH 35/86] gst-rtsp-server: revbump for ffmpeg6 --- srcpkgs/gst-rtsp-server/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/gst-rtsp-server/template b/srcpkgs/gst-rtsp-server/template index b6a74181a4062d..806d336205e4e4 100644 --- a/srcpkgs/gst-rtsp-server/template +++ b/srcpkgs/gst-rtsp-server/template @@ -1,12 +1,12 @@ # Template file for 'gst-rtsp-server' pkgname=gst-rtsp-server version=1.24.4 -revision=1 +revision=2 build_style=meson build_helper=gir configure_args="-Dintrospection=enabled" hostmakedepends="pkg-config python3" -makedepends="glib-devel gst-plugins-bad1-devel gst-plugins-good1 ffmpeg-devel +makedepends="glib-devel gst-plugins-bad1-devel gst-plugins-good1 ffmpeg6-devel python3-gobject-devel" short_desc="GStreamer multimedia graph framework - rtsp server" maintainer="1is7ac3 " From f9a39c038cab8df8e87be6b61a53c46cc490bae8 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:48 -0400 Subject: [PATCH 36/86] hedgewars: revbump for ffmpeg6 --- .../0001-Add-support-for-ffmpeg-6.0.patch | 459 ++++++++++++++++++ srcpkgs/hedgewars/template | 4 +- 2 files changed, 461 insertions(+), 2 deletions(-) create mode 100644 srcpkgs/hedgewars/patches/0001-Add-support-for-ffmpeg-6.0.patch diff --git a/srcpkgs/hedgewars/patches/0001-Add-support-for-ffmpeg-6.0.patch b/srcpkgs/hedgewars/patches/0001-Add-support-for-ffmpeg-6.0.patch new file mode 100644 index 00000000000000..228f329fc3802e --- /dev/null +++ b/srcpkgs/hedgewars/patches/0001-Add-support-for-ffmpeg-6.0.patch @@ -0,0 +1,459 @@ +From 71691fad8654031328f4af077fc32aaf29cdb7d0 Mon Sep 17 00:00:00 2001 +From: Pekka Ristola +Date: Tue, 9 May 2023 20:11:47 +0300 +Subject: [PATCH] Add support for ffmpeg 6.0 + +- Use the new send_frame/receive_packet API for encoding +- Use the new channel layout API for audio +- Fix audio recording + - Copy codec parameters to the stream parameters + - Set correct pts for audio frames +- Read audio samples from file directly to the refcounted AVFrame buffer instead of the `g_pSamples` buffer +- Use global AVPackets allocated with `av_packet_alloc` +- Stop trying to write more audio frames when `WriteAudioFrame` fails with a negative error code +- Fix segfault with `g_pContainer->url`. The field has to be allocated with `av_malloc` before writing to it. It's set to `NULL` by default. +- Properly free allocations with `avcodec_free_context` and `avformat_free_context` +--- + hedgewars/avwrapper/avwrapper.c | 234 +++++++++++++++++++++++++++----- + 1 file changed, 203 insertions(+), 31 deletions(-) + +diff --git a/hedgewars/avwrapper/avwrapper.c b/hedgewars/avwrapper/avwrapper.c +index 6c0fe739b..3daeb07b7 100644 +--- a/hedgewars/avwrapper/avwrapper.c ++++ b/hedgewars/avwrapper/avwrapper.c +@@ -42,15 +42,19 @@ + #define UNUSED(x) (void)(x) + + static AVFormatContext* g_pContainer; +-static AVOutputFormat* g_pFormat; ++static const AVOutputFormat* g_pFormat; + static AVStream* g_pAStream; + static AVStream* g_pVStream; + static AVFrame* g_pAFrame; + static AVFrame* g_pVFrame; +-static AVCodec* g_pACodec; +-static AVCodec* g_pVCodec; ++static const AVCodec* g_pACodec; ++static const AVCodec* g_pVCodec; + static AVCodecContext* g_pAudio; + static AVCodecContext* g_pVideo; ++#if LIBAVCODEC_VERSION_MAJOR >= 58 ++static AVPacket* g_pAPacket; ++static AVPacket* g_pVPacket; ++#endif + + static int g_Width, g_Height; + static uint32_t g_Frequency, g_Channels; +@@ -58,8 +62,13 @@ static int g_VQuality; + static AVRational g_Framerate; + + static FILE* g_pSoundFile; ++#if LIBAVUTIL_VERSION_MAJOR < 53 + static int16_t* g_pSamples; ++#endif + static int g_NumSamples; ++#if LIBAVCODEC_VERSION_MAJOR >= 53 ++static int64_t g_NextAudioPts; ++#endif + + + // compatibility section +@@ -93,6 +102,8 @@ static void rescale_ts(AVPacket *pkt, AVRational ctb, AVRational stb) + if (pkt->duration > 0) + pkt->duration = av_rescale_q(pkt->duration, ctb, stb); + } ++ ++#define avcodec_free_context(ctx) do { avcodec_close(*ctx); av_freep(ctx); } while (0) + #endif + + #ifndef AV_CODEC_CAP_DELAY +@@ -165,8 +176,42 @@ static void Log(const char* pFmt, ...) + AddFileLogRaw(Buffer); + } + ++#if LIBAVCODEC_VERSION_MAJOR >= 58 ++static int EncodeAndWriteFrame( ++ const AVStream* pStream, ++ AVCodecContext* pCodecContext, ++ const AVFrame* pFrame, ++ AVPacket* pPacket) ++{ ++ int ret; ++ ++ ret = avcodec_send_frame(pCodecContext, pFrame); ++ if (ret < 0) ++ return FatalError("avcodec_send_frame failed: %d", ret); ++ while (1) ++ { ++ ret = avcodec_receive_packet(pCodecContext, pPacket); ++ if (ret == AVERROR(EAGAIN)) ++ return 1; ++ else if (ret == AVERROR_EOF) ++ return 0; ++ else if (ret < 0) ++ return FatalError("avcodec_receive_packet failed: %d", ret); ++ ++ av_packet_rescale_ts(pPacket, pCodecContext->time_base, pStream->time_base); ++ ++ // Write the compressed frame to the media file. ++ pPacket->stream_index = pStream->index; ++ ret = av_interleaved_write_frame(g_pContainer, pPacket); ++ if (ret != 0) ++ return FatalError("Error while writing frame: %d", ret); ++ } ++} ++#endif ++ + static void AddAudioStream() + { ++ int ret; + g_pAStream = avformat_new_stream(g_pContainer, g_pACodec); + if(!g_pAStream) + { +@@ -176,20 +221,44 @@ static void AddAudioStream() + g_pAStream->id = 1; + + #if LIBAVCODEC_VERSION_MAJOR >= 59 +- const AVCodec *audio_st_codec = avcodec_find_decoder(g_pAStream->codecpar->codec_id); +- g_pAudio = avcodec_alloc_context3(audio_st_codec); +- avcodec_parameters_to_context(g_pAudio, g_pAStream->codecpar); ++ g_pAudio = avcodec_alloc_context3(g_pACodec); + #else + g_pAudio = g_pAStream->codec; +-#endif + + avcodec_get_context_defaults3(g_pAudio, g_pACodec); + g_pAudio->codec_id = g_pACodec->id; ++#endif + + // put parameters + g_pAudio->sample_fmt = AV_SAMPLE_FMT_S16; + g_pAudio->sample_rate = g_Frequency; ++#if LIBAVCODEC_VERSION_MAJOR >= 60 ++ const AVChannelLayout* pChLayout = g_pACodec->ch_layouts; ++ if (pChLayout) ++ { ++ for (; pChLayout->nb_channels; pChLayout++) ++ { ++ if (pChLayout->nb_channels == g_Channels) ++ { ++ ret = av_channel_layout_copy(&g_pAudio->ch_layout, pChLayout); ++ if (ret != 0) ++ { ++ Log("Channel layout copy failed: %d\n", ret); ++ return; ++ } ++ break; ++ } ++ } ++ } ++ if (!g_pAudio->ch_layout.nb_channels) ++ { ++ // no suitable layout found ++ g_pAudio->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; ++ g_pAudio->ch_layout.nb_channels = g_Channels; ++ } ++#else + g_pAudio->channels = g_Channels; ++#endif + + // set time base as invers of sample rate + g_pAudio->time_base.den = g_pAStream->time_base.den = g_Frequency; +@@ -213,6 +282,15 @@ static void AddAudioStream() + return; + } + ++#if LIBAVCODEC_VERSION_MAJOR >= 58 ++ ret = avcodec_parameters_from_context(g_pAStream->codecpar, g_pAudio); ++ if (ret < 0) ++ { ++ Log("Could not copy parameters from codec context: %d\n", ret); ++ return; ++ } ++#endif ++ + #if LIBAVCODEC_VERSION_MAJOR >= 54 + if (g_pACodec->capabilities & AV_CODEC_CAP_VARIABLE_FRAME_SIZE) + #else +@@ -221,13 +299,46 @@ static void AddAudioStream() + g_NumSamples = 4096; + else + g_NumSamples = g_pAudio->frame_size; +- g_pSamples = (int16_t*)av_malloc(g_NumSamples*g_Channels*sizeof(int16_t)); + g_pAFrame = av_frame_alloc(); + if (!g_pAFrame) + { + Log("Could not allocate frame\n"); + return; + } ++#if LIBAVUTIL_VERSION_MAJOR >= 53 ++#if LIBAVCODEC_VERSION_MAJOR >= 60 ++ ret = av_channel_layout_copy(&g_pAFrame->ch_layout, &g_pAudio->ch_layout); ++ if (ret != 0) ++ { ++ Log("Channel layout copy for frame failed: %d\n", ret); ++ return; ++ } ++#else ++ g_pAFrame->channels = g_pAudio->channels; ++#endif ++ g_pAFrame->format = g_pAudio->sample_fmt; ++ g_pAFrame->sample_rate = g_pAudio->sample_rate; ++ g_pAFrame->nb_samples = g_NumSamples; ++ ret = av_frame_get_buffer(g_pAFrame, 1); ++ if (ret < 0) ++ { ++ Log("Failed to allocate frame buffer: %d\n", ret); ++ return; ++ } ++#else ++ g_pSamples = (int16_t*)av_malloc(g_NumSamples*g_Channels*sizeof(int16_t)); ++#endif ++#if LIBAVCODEC_VERSION_MAJOR >= 58 ++ g_pAPacket = av_packet_alloc(); ++ if (!g_pAPacket) ++ { ++ Log("Could not allocate audio packet\n"); ++ return; ++ } ++#endif ++#if LIBAVCODEC_VERSION_MAJOR >= 53 ++ g_NextAudioPts = 0; ++#endif + } + + // returns non-zero if there is more sound, -1 in case of error +@@ -236,22 +347,46 @@ static int WriteAudioFrame() + if (!g_pAStream) + return 0; + +- AVPacket Packet; +- av_init_packet(&Packet); +- Packet.data = NULL; +- Packet.size = 0; ++ int ret; ++ int16_t* pData; ++#if LIBAVUTIL_VERSION_MAJOR >= 53 ++ ret = av_frame_make_writable(g_pAFrame); ++ if (ret < 0) ++ return FatalError("Could not make audio frame writable: %d", ret); ++ pData = (int16_t*) g_pAFrame->data[0]; ++#else ++ pData = g_pSamples; ++#endif + +- int NumSamples = fread(g_pSamples, 2*g_Channels, g_NumSamples, g_pSoundFile); ++ int NumSamples = fread(pData, 2*g_Channels, g_NumSamples, g_pSoundFile); + + #if LIBAVCODEC_VERSION_MAJOR >= 53 + AVFrame* pFrame = NULL; + if (NumSamples > 0) + { + g_pAFrame->nb_samples = NumSamples; ++ g_pAFrame->pts = g_NextAudioPts; ++ g_NextAudioPts += NumSamples; ++#if LIBAVUTIL_VERSION_MAJOR < 53 + avcodec_fill_audio_frame(g_pAFrame, g_Channels, AV_SAMPLE_FMT_S16, +- (uint8_t*)g_pSamples, NumSamples*2*g_Channels, 1); ++ (uint8_t*)pData, NumSamples*2*g_Channels, 1); ++#endif + pFrame = g_pAFrame; + } ++#endif ++ ++#if LIBAVCODEC_VERSION_MAJOR >= 58 ++ ret = EncodeAndWriteFrame(g_pAStream, g_pAudio, pFrame, g_pAPacket); ++ if (ret < 0) ++ return FatalError("Audio frame processing failed"); ++ return ret; ++#else ++ AVPacket Packet; ++ av_init_packet(&Packet); ++ Packet.data = NULL; ++ Packet.size = 0; ++ ++#if LIBAVCODEC_VERSION_MAJOR >= 53 + // when NumSamples == 0 we still need to call encode_audio2 to flush + int got_packet; + if (avcodec_encode_audio2(g_pAudio, &Packet, pFrame, &got_packet) != 0) +@@ -266,7 +401,7 @@ static int WriteAudioFrame() + int BufferSize = OUTBUFFER_SIZE; + if (g_pAudio->frame_size == 0) + BufferSize = NumSamples*g_Channels*2; +- Packet.size = avcodec_encode_audio(g_pAudio, g_OutBuffer, BufferSize, g_pSamples); ++ Packet.size = avcodec_encode_audio(g_pAudio, g_OutBuffer, BufferSize, pData); + if (Packet.size == 0) + return 1; + if (g_pAudio->coded_frame && g_pAudio->coded_frame->pts != AV_NOPTS_VALUE) +@@ -280,25 +415,25 @@ static int WriteAudioFrame() + if (av_interleaved_write_frame(g_pContainer, &Packet) != 0) + return FatalError("Error while writing audio frame"); + return 1; ++#endif + } + + // add a video output stream + static int AddVideoStream() + { ++ int ret; + g_pVStream = avformat_new_stream(g_pContainer, g_pVCodec); + if (!g_pVStream) + return FatalError("Could not allocate video stream"); + + #if LIBAVCODEC_VERSION_MAJOR >= 59 +- const AVCodec *video_st_codec = avcodec_find_decoder(g_pVStream->codecpar->codec_id); +- g_pVideo = avcodec_alloc_context3(video_st_codec); +- avcodec_parameters_to_context(g_pVideo, g_pVStream->codecpar); ++ g_pVideo = avcodec_alloc_context3(g_pVCodec); + #else + g_pVideo = g_pVStream->codec; +-#endif + + avcodec_get_context_defaults3(g_pVideo, g_pVCodec); + g_pVideo->codec_id = g_pVCodec->id; ++#endif + + // put parameters + // resolution must be a multiple of two +@@ -361,6 +496,12 @@ static int AddVideoStream() + if (avcodec_open2(g_pVideo, g_pVCodec, NULL) < 0) + return FatalError("Could not open video codec %s", g_pVCodec->long_name); + ++#if LIBAVCODEC_VERSION_MAJOR >= 58 ++ ret = avcodec_parameters_from_context(g_pVStream->codecpar, g_pVideo); ++ if (ret < 0) ++ return FatalError("Could not copy parameters from codec context: %d", ret); ++#endif ++ + g_pVFrame = av_frame_alloc(); + if (!g_pVFrame) + return FatalError("Could not allocate frame"); +@@ -370,6 +511,12 @@ static int AddVideoStream() + g_pVFrame->height = g_Height; + g_pVFrame->format = AV_PIX_FMT_YUV420P; + ++#if LIBAVCODEC_VERSION_MAJOR >= 58 ++ g_pVPacket = av_packet_alloc(); ++ if (!g_pVPacket) ++ return FatalError("Could not allocate packet"); ++#endif ++ + return avcodec_default_get_buffer2(g_pVideo, g_pVFrame, 0); + } + +@@ -380,6 +527,10 @@ static int WriteFrame(AVFrame* pFrame) + // write interleaved audio frame + if (g_pAStream) + { ++#if LIBAVCODEC_VERSION_MAJOR >= 58 ++ if (!g_pAPacket) ++ return FatalError("Error while writing video frame: g_pAPacket does not exist"); ++#endif + VideoTime = (double)g_pVFrame->pts * g_pVStream->time_base.num/g_pVStream->time_base.den; + do + { +@@ -388,7 +539,7 @@ static int WriteFrame(AVFrame* pFrame) + AudioTime = (double)g_pAFrame->pts * g_pAStream->time_base.num/g_pAStream->time_base.den; + ret = WriteAudioFrame(); + } +- while (AudioTime < VideoTime && ret); ++ while (AudioTime < VideoTime && ret > 0); + if (ret < 0) + return ret; + } +@@ -396,13 +547,18 @@ static int WriteFrame(AVFrame* pFrame) + if (!g_pVStream) + return 0; + ++ g_pVFrame->pts++; ++#if LIBAVCODEC_VERSION_MAJOR >= 58 ++ ret = EncodeAndWriteFrame(g_pVStream, g_pVideo, pFrame, g_pVPacket); ++ if (ret < 0) ++ return FatalError("Video frame processing failed"); ++ return ret; ++#else + AVPacket Packet; + av_init_packet(&Packet); + Packet.data = NULL; + Packet.size = 0; + +- g_pVFrame->pts++; +-#if LIBAVCODEC_VERSION_MAJOR < 58 + if (g_pFormat->flags & AVFMT_RAWPICTURE) + { + /* raw video case. The API will change slightly in the near +@@ -417,7 +573,6 @@ static int WriteFrame(AVFrame* pFrame) + return 0; + } + else +-#endif + { + #if LIBAVCODEC_VERSION_MAJOR >= 54 + int got_packet; +@@ -447,6 +602,7 @@ static int WriteFrame(AVFrame* pFrame) + + return 1; + } ++#endif + } + + AVWRAP_DECL int AVWrapper_WriteFrame(uint8_t *buf) +@@ -539,9 +695,13 @@ AVWRAP_DECL int AVWrapper_Init( + char ext[16]; + strncpy(ext, g_pFormat->extensions, 16); + ext[15] = 0; +- ext[strcspn(ext,",")] = 0; ++ size_t extLen = strcspn(ext, ","); ++ ext[extLen] = 0; + #if LIBAVCODEC_VERSION_MAJOR >= 59 +- snprintf(g_pContainer->url, sizeof(g_pContainer->url), "%s.%s", pFilename, ext); ++ // pFilename + dot + ext + null byte ++ size_t urlLen = strlen(pFilename) + 1 + extLen + 1; ++ g_pContainer->url = av_malloc(urlLen); ++ snprintf(g_pContainer->url, urlLen, "%s.%s", pFilename, ext); + #else + snprintf(g_pContainer->filename, sizeof(g_pContainer->filename), "%s.%s", pFilename, ext); + #endif +@@ -636,21 +796,33 @@ AVWRAP_DECL int AVWrapper_Close() + // free everything + if (g_pVStream) + { +- avcodec_close(g_pVideo); +- av_free(g_pVideo); +- av_free(g_pVStream); ++ avcodec_free_context(&g_pVideo); + av_frame_free(&g_pVFrame); ++#if LIBAVCODEC_VERSION_MAJOR >= 58 ++ av_packet_free(&g_pVPacket); ++#endif + } + if (g_pAStream) + { +- avcodec_close(g_pAudio); +- av_free(g_pAudio); +- av_free(g_pAStream); ++ avcodec_free_context(&g_pAudio); + av_frame_free(&g_pAFrame); ++#if LIBAVCODEC_VERSION_MAJOR >= 58 ++ av_packet_free(&g_pAPacket); ++#endif ++#if LIBAVUTIL_VERSION_MAJOR < 53 + av_free(g_pSamples); ++#endif + fclose(g_pSoundFile); + } + ++#if LIBAVCODEC_VERSION_MAJOR >= 59 ++ avformat_free_context(g_pContainer); ++#else ++ if (g_pVStream) ++ av_free(g_pVStream); ++ if (g_pAStream) ++ av_free(g_pAStream); + av_free(g_pContainer); ++#endif + return 0; + } +-- +2.45.2 + diff --git a/srcpkgs/hedgewars/template b/srcpkgs/hedgewars/template index 8dd0e4252ca8c5..85eb9cdc943db4 100644 --- a/srcpkgs/hedgewars/template +++ b/srcpkgs/hedgewars/template @@ -1,13 +1,13 @@ # Template file for 'hedgewars' pkgname=hedgewars version=1.0.2 -revision=1 +revision=2 build_style=cmake configure_args="-DNOSERVER=1 -DDATA_INSTALL_DIR=/usr/share/${pkgname} -DPHYSFS_SYSTEM=1 -DMINIMAL_FLAGS=1" make_cmd=make hostmakedepends="lua51 pkg-config qt5-qmake qt5-host-tools" -makedepends="ffmpeg-devel lua51-devel physfs-devel qt5-tools-devel SDL2_image-devel +makedepends="ffmpeg6-devel lua51-devel physfs-devel qt5-tools-devel SDL2_image-devel SDL2_mixer-devel SDL2_net-devel SDL2_ttf-devel" depends="libfreeglut" short_desc="Funny turn-based artillery game, featuring fighting Hedgehogs!" From d5cc22d736678e4b4b7c722d1f5fb6c595ca892a Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:48 -0400 Subject: [PATCH 37/86] kid3: revbump for ffmpeg6 --- srcpkgs/kid3/patches/ffmpeg5.patch | 17 +++++++++++++++++ srcpkgs/kid3/template | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/kid3/patches/ffmpeg5.patch diff --git a/srcpkgs/kid3/patches/ffmpeg5.patch b/srcpkgs/kid3/patches/ffmpeg5.patch new file mode 100644 index 00000000000000..135fc50e07c9ba --- /dev/null +++ b/srcpkgs/kid3/patches/ffmpeg5.patch @@ -0,0 +1,17 @@ +# https://aur.archlinux.org/cgit/aur.git/diff/ffmpeg5.patch?h=kid3-cli&id=12410a74906612e7efc0ec8fbce739b4a0fef7e7 +diff --git a/src/plugins/acoustidimport/ffmpegfingerprintdecoder.cpp b/src/plugins/acoustidimport/ffmpegfingerprintdecoder.cpp +index e156d424..e12b9abd 100644 +--- a/src/plugins/acoustidimport/ffmpegfingerprintdecoder.cpp ++++ b/src/plugins/acoustidimport/ffmpegfingerprintdecoder.cpp +@@ -232,7 +232,11 @@ private: + friend class Format; + friend class Converter; + AVCodecContext* m_ptr; ++#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(59, 0, 0) + AVCodec* m_impl; ++#else ++ const AVCodec* m_impl; ++#endif + AVFrame* m_frame; + bool m_opened; + }; diff --git a/srcpkgs/kid3/template b/srcpkgs/kid3/template index f32f9decb0e7f6..869fded597555c 100644 --- a/srcpkgs/kid3/template +++ b/srcpkgs/kid3/template @@ -11,7 +11,7 @@ configure_args="-DWITH_APPS='CLI;$(vopt_if KDE KDE Qt)' hostmakedepends="pkg-config python3 libxslt $(vopt_if KDE extra-cmake-modules)" makedepends="qt5-declarative-devel qt5-multimedia-devel qt5-tools-devel docbook-xsl readline-devel $(vopt_if KDE kio-devel) $(vopt_if vorbis libvorbis-devel) - $(vopt_if mp4 libmp4v2-devel) $(vopt_if chromaprint 'chromaprint-devel ffmpeg-devel') + $(vopt_if mp4 libmp4v2-devel) $(vopt_if chromaprint 'chromaprint-devel ffmpeg6-devel') $(vopt_if mp3 id3lib-devel) $(vopt_if flac libflac-devel) $(vopt_if taglib taglib-devel)" depends="desktop-file-utils hicolor-icon-theme" short_desc="MP3, Ogg/Vorbis and FLAC tag editor" From a1adc122dfa62188b20450f12d00901217b7aa49 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:48 -0400 Subject: [PATCH 38/86] kpipewire: revbump for ffmpeg6 --- srcpkgs/kpipewire/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/kpipewire/template b/srcpkgs/kpipewire/template index bc41efe7b1e250..57cf356a2e84c6 100644 --- a/srcpkgs/kpipewire/template +++ b/srcpkgs/kpipewire/template @@ -1,13 +1,13 @@ # Template file for 'kpipewire' pkgname=kpipewire version=6.0.5 -revision=2 +revision=3 build_style=cmake build_helper=qemu configure_args="-DKDE_INSTALL_QMLDIR=lib/qt6/qml" hostmakedepends="extra-cmake-modules gettext qt6-base qt6-tools pkg-config pipewire qt6-wayland-tools wayland-devel qt6-declarative-host-tools" -makedepends="ffmpeg-devel kf6-kcoreaddons-devel kf6-kwayland-devel +makedepends="ffmpeg6-devel kf6-kcoreaddons-devel kf6-kwayland-devel kf6-ki18n-devel libva-devel libepoxy-devel pipewire-devel qt6-wayland-devel wayland-devel qt6-declarative-devel qt6-base-private-devel" depends="pipewire" From bce0df069f73ca70fd4faf6e71f9b3f3dd41d746 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:48 -0400 Subject: [PATCH 39/86] libopenal: revbump for ffmpeg6 --- srcpkgs/libopenal/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/libopenal/template b/srcpkgs/libopenal/template index 88d0f11307d81a..c40570a769427a 100644 --- a/srcpkgs/libopenal/template +++ b/srcpkgs/libopenal/template @@ -1,11 +1,11 @@ # Template file for 'libopenal' pkgname=libopenal version=1.23.1 -revision=1 +revision=2 build_style=cmake configure_args="-DALSOFT_EXAMPLES=OFF" hostmakedepends="pkg-config" -makedepends="zlib-devel alsa-lib-devel pulseaudio-devel SDL2-devel ffmpeg-devel +makedepends="zlib-devel alsa-lib-devel pulseaudio-devel SDL2-devel ffmpeg6-devel jack-devel $(vopt_if sndio sndio-devel)" short_desc="Cross-platform 3D audio library" maintainer="Orphaned " From 92603ddf278e85090695a775689194dfc2211407 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:48 -0400 Subject: [PATCH 40/86] loudgain: revbump for ffmpeg6 --- srcpkgs/loudgain/patches/ffmpeg5.patch | 11 +++++++++++ srcpkgs/loudgain/template | 4 ++-- 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 srcpkgs/loudgain/patches/ffmpeg5.patch diff --git a/srcpkgs/loudgain/patches/ffmpeg5.patch b/srcpkgs/loudgain/patches/ffmpeg5.patch new file mode 100644 index 00000000000000..16d4510ee98faa --- /dev/null +++ b/srcpkgs/loudgain/patches/ffmpeg5.patch @@ -0,0 +1,11 @@ +--- a/src/scan.c 2019-09-06 11:31:19.000000000 -0400 ++++ b/src/scan.c 2023-03-23 11:15:40.867968521 -0400 +@@ -69,8 +69,6 @@ + * It is now useless + * https://github.com/FFmpeg/FFmpeg/blob/70d25268c21cbee5f08304da95be1f647c630c15/doc/APIchanges#L86 + */ +- if (avformat_version() < AV_VERSION_INT(58,9,100)) +- av_register_all(); + + av_log_set_callback(scan_av_log); + diff --git a/srcpkgs/loudgain/template b/srcpkgs/loudgain/template index da4f2d56e94c3d..8d6c6aeb772636 100644 --- a/srcpkgs/loudgain/template +++ b/srcpkgs/loudgain/template @@ -1,10 +1,10 @@ # Template file for 'loudgain' pkgname=loudgain version=0.6.8 -revision=2 +revision=3 build_style=cmake hostmakedepends="pkg-config" -makedepends="libebur128-devel taglib-devel ffmpeg-devel" +makedepends="libebur128-devel taglib-devel ffmpeg6-devel" short_desc="ReplayGain 2.0 loudness normalizer" maintainer="Kartik Singh " license="BSD-2-Clause" From ddf0b0119187e45b89a3d8c5e7c50ff4f709921b Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:48 -0400 Subject: [PATCH 41/86] mgba: revbump for ffmpeg6 --- srcpkgs/mgba/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/mgba/template b/srcpkgs/mgba/template index 6cd65650312543..c2d39cd17d86bc 100644 --- a/srcpkgs/mgba/template +++ b/srcpkgs/mgba/template @@ -1,10 +1,10 @@ # Template file for 'mgba' pkgname=mgba version=0.10.3 -revision=1 +revision=2 build_style=cmake hostmakedepends="pkg-config qt5-host-tools qt5-qmake desktop-file-utils" -makedepends="SDL2-devel ffmpeg-devel libedit-devel libepoxy-devel libmagick-devel +makedepends="SDL2-devel ffmpeg6-devel libedit-devel libepoxy-devel libmagick-devel libzip-devel qt5-multimedia-devel qt5-tools-devel" short_desc="Game Boy Advance emulator written in C" maintainer="fanyx " From 7ea06bcb50f89a1a44cbbabf5da86b3a95659b13 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:49 -0400 Subject: [PATCH 42/86] motion: revbump for ffmpeg6 --- srcpkgs/motion/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/motion/template b/srcpkgs/motion/template index 607ebeb3c7b242..e334a32a8b1896 100644 --- a/srcpkgs/motion/template +++ b/srcpkgs/motion/template @@ -1,10 +1,10 @@ # Template file for 'motion' pkgname=motion version=4.6.0 -revision=1 +revision=2 build_style=gnu-configure hostmakedepends="automake pkg-config gettext-devel tar" -makedepends="ffmpeg-devel libmicrohttpd-devel v4l-utils-devel gettext-devel" +makedepends="ffmpeg6-devel libmicrohttpd-devel v4l-utils-devel gettext-devel" short_desc="Software motion detector" maintainer="Andrea Brancaleoni " license="GPL-2.0-or-later" From 5c56b2b4d07d8b0d29cc0d81425aee99dd425a64 Mon Sep 17 00:00:00 2001 From: zlice Date: Sun, 15 Oct 2023 21:18:14 -0400 Subject: [PATCH 43/86] openshot: revbump for ffmpeg6 --- srcpkgs/openshot/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/openshot/template b/srcpkgs/openshot/template index 3849858fe963b5..13d949bae91048 100644 --- a/srcpkgs/openshot/template +++ b/srcpkgs/openshot/template @@ -1,10 +1,10 @@ # Template file for 'openshot' pkgname=openshot version=3.1.1 -revision=1 +revision=2 build_style=python3-module hostmakedepends="python3 python3-setuptools" -makedepends="ffmpeg-devel python3-PyQt5" +makedepends="ffmpeg6-devel python3-PyQt5" depends="ImageMagick libopenshot python3-PyQt5-svg python3-PyQt5-webkit python3-httplib2 python3-pyzmq python3-requests" short_desc="Open-source, non-linear video editor for Linux" From 71d9c0de5b639f8a2bce16c1dcd0b43030af1449 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:00:55 -0400 Subject: [PATCH 44/86] osg: revbump for ffmpeg6 --- srcpkgs/osg/patches/ffmpeg5.patch | 490 ++++++++++++++++++++++++++++++ srcpkgs/osg/template | 4 +- 2 files changed, 492 insertions(+), 2 deletions(-) create mode 100644 srcpkgs/osg/patches/ffmpeg5.patch diff --git a/srcpkgs/osg/patches/ffmpeg5.patch b/srcpkgs/osg/patches/ffmpeg5.patch new file mode 100644 index 00000000000000..ae46dcd4c467e3 --- /dev/null +++ b/srcpkgs/osg/patches/ffmpeg5.patch @@ -0,0 +1,490 @@ +Index: openscenegraph-3.6.5+dfsg1/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp +=================================================================== +--- openscenegraph-3.6.5+dfsg1.orig/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp ++++ openscenegraph-3.6.5+dfsg1/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp +@@ -45,12 +45,19 @@ static int decode_audio(AVCodecContext * + if (!frame) + return AVERROR(ENOMEM); + +- ret = avcodec_decode_audio4(avctx, frame, &got_frame, &avpkt); ++ ret = avcodec_send_packet(avctx, &avpkt); ++ if (ret >= 0) { ++ ret = avcodec_receive_frame(avctx, frame); ++ if (ret == 0) { ++ got_frame = 1; ++ } ++ } ++ + + #ifdef USE_AVRESAMPLE // libav's AVFrame structure does not contain a 'channels' field + if (ret >= 0 && got_frame) { + #else +- if (ret >= 0 && got_frame && av_frame_get_channels(frame)>0) { ++ if (ret >= 0 && got_frame && frame->ch_layout.nb_channels>0) { + #endif + int ch, plane_size; + int planar = av_sample_fmt_is_planar(avctx->sample_fmt); +@@ -151,11 +158,13 @@ void FFmpegDecoderAudio::open(AVStream * + return; + + m_stream = stream; +- m_context = stream->codec; +- +- m_in_sample_rate = m_context->sample_rate; +- m_in_nb_channels = m_context->channels; +- m_in_sample_format = m_context->sample_fmt; ++ AVCodecParameters* avp = stream->codecpar; ++ const AVCodec * p_codec = avcodec_find_decoder(avp->codec_id); ++ m_context = avcodec_alloc_context3(p_codec); ++ ++ m_in_sample_rate = avp->sample_rate; ++ m_in_nb_channels = avp->channels; ++ m_in_sample_format = ((AVSampleFormat)(avp->format)); + + AVDictionaryEntry *opt_out_sample_rate = av_dict_get( *parameters->getOptions(), "out_sample_rate", NULL, 0 ); + if ( opt_out_sample_rate ) +@@ -210,11 +219,10 @@ printf("### CONVERTING from sample forma + } + + // Check stream sanity +- if (m_context->codec_id == AV_CODEC_ID_NONE) ++ if (avp->codec_id == AV_CODEC_ID_NONE) + throw std::runtime_error("invalid audio codec");; + + // Find the decoder for the audio stream +- AVCodec * const p_codec = avcodec_find_decoder(m_context->codec_id); + + if (p_codec == 0) + throw std::runtime_error("avcodec_find_decoder() failed"); +diff -Naur old/src/osgPlugins/ffmpeg/FFmpegDecoder.cpp new/src/osgPlugins/ffmpeg/FFmpegDecoder.cpp +--- old/src/osgPlugins/ffmpeg/FFmpegDecoder.cpp 2020-01-31 21:03:07.000000000 +1000 ++++ new/src/osgPlugins/ffmpeg/FFmpegDecoder.cpp 2023-11-26 08:09:37.280442193 +1000 +@@ -62,7 +62,7 @@ + { + // Open video file + AVFormatContext * p_format_context = 0; +- AVInputFormat *iformat = 0; ++ const AVInputFormat *iformat = 0; + + if (filename.compare(0, 5, "/dev/")==0) + { +@@ -304,12 +304,11 @@ + else + { + // Make the packet data available beyond av_read_frame() logical scope. +- if ((error = av_dup_packet(&packet)) < 0) { +- OSG_FATAL << "av_dup_packet() returned " << AvStrError(error) << std::endl; +- throw std::runtime_error("av_dup_packet() failed"); ++ if ((error = av_packet_ref(&(m_pending_packet.packet), &packet)) < 0) { ++ OSG_FATAL << "av_packet_ref() returned " << AvStrError(error) << std::endl; ++ throw std::runtime_error("av_packet_ref() failed"); + } +- +- m_pending_packet = FFmpegPacket(packet); ++ m_pending_packet.type = FFmpegPacket::PACKET_DATA; + } + } + +diff -Naur old/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp new/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp +--- old/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp 2020-01-31 21:03:07.000000000 +1000 ++++ new/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp 2023-11-26 13:07:02.501812075 +1000 +@@ -6,6 +6,9 @@ + #include + #include + ++#include ++ ++ + namespace osgFFmpeg { + + // TODO - add support for using RGB or RGBA pixel format. +@@ -18,8 +21,6 @@ + m_stream(0), + m_context(0), + m_codec(0), +- m_packet_data(0), +- m_bytes_remaining(0), + m_packet_pts(AV_NOPTS_VALUE), + m_writeBuffer(0), + m_user_data(0), +@@ -61,8 +62,12 @@ + + void FFmpegDecoderVideo::open(AVStream * const stream) + { ++ int linesizes[4]; ++ + m_stream = stream; +- m_context = stream->codec; ++ ++ if (avcodec_parameters_to_context(m_context, stream->codecpar) < 0) ++ throw std::runtime_error("avcodec_parameters_to_context() failed inside FFMpegDecoderVideo::open()"); + + // Trust the video size given at this point + // (avcodec_open seems to sometimes return a 0x0 size) +@@ -99,11 +104,15 @@ + + // Allocate converted RGB frame + m_frame_rgba.reset(av_frame_alloc()); +- m_buffer_rgba[0].resize(avpicture_get_size(AV_PIX_FMT_RGB24, width(), height())); ++ m_buffer_rgba[0].resize(av_image_get_buffer_size(AV_PIX_FMT_RGB24, width(), height(), 1)); + m_buffer_rgba[1].resize(m_buffer_rgba[0].size()); + + // Assign appropriate parts of the buffer to image planes in m_frame_rgba ++#if BCS + avpicture_fill((AVPicture *) (m_frame_rgba).get(), &(m_buffer_rgba[0])[0], AV_PIX_FMT_RGB24, width(), height()); ++#else ++ av_image_fill_arrays(m_frame_rgba.get()->data, linesizes, &(m_buffer_rgba[0])[0], AV_PIX_FMT_RGB24, width(), height(), 1); ++#endif + + // Override get_buffer()/release_buffer() from codec context in order to retrieve the PTS of each frame. + m_context->opaque = this; +@@ -148,128 +157,123 @@ + } + + +- +-void FFmpegDecoderVideo::decodeLoop() ++double FFmpegDecoderVideo::calculateFramePTS(int64_t packet_dts) + { +- FFmpegPacket packet; +- double pts; ++ double pts = 0; + +- while (! m_exit) ++#if LIBAVCODEC_VERSION_INT <= AV_VERSION_INT(57,24,102) ++ //ffmpeg-3.0 and below ++ AVRational timebase; ++ // Find out the frame pts ++ if (m_frame->pts != int64_t(AV_NOPTS_VALUE)) + { +- // Work on the current packet until we have decoded all of it +- +- while (m_bytes_remaining > 0) +- { +- // Save global PTS to be stored in m_frame via getBuffer() ++ pts = m_frame->pts; ++ timebase = m_context->time_base; ++ } ++ else if (packet_dts == int64_t(AV_NOPTS_VALUE) && ++ m_frame->opaque != 0 && ++ *reinterpret_cast(m_frame->opaque) != int64_t(AV_NOPTS_VALUE)) ++ { ++ pts = *reinterpret_cast(m_frame->opaque); ++ timebase = m_stream->time_base; ++ } ++ else if (packet_dts != int64_t(AV_NOPTS_VALUE)) ++ { ++ pts = packet_dts; ++ timebase = m_stream->time_base; ++ } ++ else ++ { ++ timebase = m_context->time_base; ++ } + +- m_packet_pts = packet.packet.pts; ++ pts *= av_q2d(timebase); + +- // Decode video frame ++#else ++ //above ffmpeg-3.0 ++ // Find out the frame pts ++ if (m_frame->pts != int64_t(AV_NOPTS_VALUE)) ++ { ++ pts = av_q2d(m_stream->time_base) * m_frame->pts; ++ } ++ else if (packet_dts == int64_t(AV_NOPTS_VALUE) && ++ m_frame->opaque != 0 && ++ *reinterpret_cast(m_frame->opaque) != int64_t(AV_NOPTS_VALUE)) ++ { ++ pts = av_q2d(m_stream->time_base) * *reinterpret_cast(m_frame->opaque); ++ } ++ else if (packet_dts != int64_t(AV_NOPTS_VALUE)) ++ { ++ pts = av_q2d(m_stream->time_base) * packet_dts; ++ } ++#endif + +- int frame_finished = 0; ++ return pts; ++} + +- // We want to use the entire packet since some codecs will require extra information for decoding +- const int bytes_decoded = avcodec_decode_video2(m_context, m_frame.get(), &frame_finished, &(packet.packet)); + +- if (bytes_decoded < 0) +- throw std::runtime_error("avcodec_decode_video failed()"); ++void FFmpegDecoderVideo::decodeLoop() ++{ ++ bool need_more_data = true; ++ FFmpegPacket packet; + +- m_bytes_remaining -= bytes_decoded; +- m_packet_data += bytes_decoded; ++ while (! m_exit) ++ { ++ if (need_more_data) ++ { ++ bool is_empty = true; ++ packet = m_packets.timedPop(is_empty, 10); + +- // Publish the frame if we have decoded a complete frame +- if (frame_finished) ++ if (! is_empty) + { +-#if LIBAVCODEC_VERSION_INT <= AV_VERSION_INT(57,24,102) +- //ffmpeg-3.0 and below +- AVRational timebase; +- // Find out the frame pts +- if (m_frame->pts != int64_t(AV_NOPTS_VALUE)) +- { +- pts = m_frame->pts; +- timebase = m_context->time_base; +- } +- else if (packet.packet.dts == int64_t(AV_NOPTS_VALUE) && +- m_frame->opaque != 0 && +- *reinterpret_cast(m_frame->opaque) != int64_t(AV_NOPTS_VALUE)) +- { +- pts = *reinterpret_cast(m_frame->opaque); +- timebase = m_stream->time_base; +- } +- else if (packet.packet.dts != int64_t(AV_NOPTS_VALUE)) +- { +- pts = packet.packet.dts; +- timebase = m_stream->time_base; +- } +- else +- { +- pts = 0; +- timebase = m_context->time_base; +- } +- +- pts *= av_q2d(timebase); ++ if (packet.type == FFmpegPacket::PACKET_FLUSH) ++ avcodec_flush_buffers(m_context); + +-#else +- //above ffmpeg-3.0 +- // Find out the frame pts +- if (m_frame->pts != int64_t(AV_NOPTS_VALUE)) +- { +- pts = av_q2d(m_stream->time_base) * m_frame->pts; +- } +- else if (packet.packet.dts == int64_t(AV_NOPTS_VALUE) && +- m_frame->opaque != 0 && +- *reinterpret_cast(m_frame->opaque) != int64_t(AV_NOPTS_VALUE)) +- { +- pts = av_q2d(m_stream->time_base) * *reinterpret_cast(m_frame->opaque); +- } +- else if (packet.packet.dts != int64_t(AV_NOPTS_VALUE)) +- { +- pts = av_q2d(m_stream->time_base) * packet.packet.dts; +- } +- else +- { +- pts = 0; +- } +-#endif +- const double synched_pts = m_clocks.videoSynchClock(m_frame.get(), av_q2d(av_inv_q(m_context->framerate)), pts); +- const double frame_delay = m_clocks.videoRefreshSchedule(synched_pts); ++ // Save global PTS to be stored in m_frame via getBuffer() ++ m_packet_pts = packet.packet.pts; + +- publishFrame(frame_delay, m_clocks.audioDisabled()); ++ if (avcodec_send_packet(m_context, &packet.packet) < 0) ++ throw std::runtime_error("avcodec_send_packet() failed inside FFmpegDecoderVideo::decodeLoop()"); + } +- } +- +- while(m_paused && !m_exit) +- { +- microSleep(10000); +- } ++ } + +- // Get the next packet ++ const int decode_status = avcodec_receive_frame(m_context, m_frame.get()); + +- pts = 0; ++ if (decode_status == 0) ++ { ++ // Completed at least one full frame ++ need_more_data = false; + +- if (packet.valid()) +- packet.clear(); ++ const double pts = calculateFramePTS(m_frame.get()->pkt_dts); ++ const double synched_pts = m_clocks.videoSynchClock(m_frame.get(), av_q2d(av_inv_q(m_context->framerate)), pts); ++ const double frame_delay = m_clocks.videoRefreshSchedule(synched_pts); + +- bool is_empty = true; +- packet = m_packets.timedPop(is_empty, 10); ++ publishFrame(frame_delay, m_clocks.audioDisabled()); ++ } ++ else if (decode_status == AVERROR(EOF)) ++ { ++ // Decoder has reached end of the stream ++ return; ++ } ++ else if (decode_status == AVERROR(EAGAIN)) ++ { ++ // Frame not yet complete ++ need_more_data = true; ++ ++ if (packet.valid()) ++ packet.clear(); ++ } ++ else ++ throw std::runtime_error("avcodec_receive_frame() failed inside FFmpegDecoderVideo::decodeLoop()"); + +- if (! is_empty) ++ while(m_paused && !m_exit) + { +- if (packet.type == FFmpegPacket::PACKET_DATA) +- { +- m_bytes_remaining = packet.packet.size; +- m_packet_data = packet.packet.data; +- } +- else if (packet.type == FFmpegPacket::PACKET_FLUSH) +- { +- avcodec_flush_buffers(m_context); +- } ++ microSleep(10000); + } + } + } + + +- + void FFmpegDecoderVideo::findAspectRatio() + { + float ratio = 0.0f; +@@ -283,7 +287,8 @@ + m_pixel_aspect_ratio = ratio; + } + +-int FFmpegDecoderVideo::convert(AVPicture *dst, int dst_pix_fmt, AVPicture *src, ++ ++int FFmpegDecoderVideo::convert(AVFrame *dst, int dst_pix_fmt, AVFrame *src, + int src_pix_fmt, int src_width, int src_height) + { + osg::Timer_t startTick = osg::Timer::instance()->tick(); +@@ -318,6 +323,8 @@ + + void FFmpegDecoderVideo::publishFrame(const double delay, bool audio_disabled) + { ++ int linesizes[4]; ++ + // If no publishing function, just ignore the frame + if (m_publish_func == 0) + return; +@@ -334,11 +341,11 @@ + return; + #endif + +- AVPicture * const src = (AVPicture *) m_frame.get(); +- AVPicture * const dst = (AVPicture *) m_frame_rgba.get(); ++ AVFrame * const src = (AVFrame *) m_frame.get(); ++ AVFrame * const dst = (AVFrame *) m_frame_rgba.get(); + + // Assign appropriate parts of the buffer to image planes in m_frame_rgba +- avpicture_fill((AVPicture *) (m_frame_rgba).get(), &(m_buffer_rgba[m_writeBuffer])[0], AV_PIX_FMT_RGB24, width(), height()); ++ av_image_fill_arrays(m_frame_rgba.get()->data, linesizes, &(m_buffer_rgba[m_writeBuffer])[0], AV_PIX_FMT_RGB24, width(), height(), 1); + + // Convert YUVA420p (i.e. YUV420p plus alpha channel) using our own routine + +@@ -370,7 +377,7 @@ + + + +-void FFmpegDecoderVideo::yuva420pToRgba(AVPicture * const dst, AVPicture * const src, int width, int height) ++void FFmpegDecoderVideo::yuva420pToRgba(AVFrame * const dst, AVFrame * const src, int width, int height) + { + convert(dst, AV_PIX_FMT_RGB24, src, m_context->pix_fmt, width, height); + +diff -Naur old/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp new/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp +--- old/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp 2020-01-31 21:03:07.000000000 +1000 ++++ new/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp 2023-11-26 09:34:00.040263426 +1000 +@@ -87,10 +87,11 @@ + void decodeLoop(); + void findAspectRatio(); + void publishFrame(double delay, bool audio_disabled); ++ double calculateFramePTS(int64_t packet_dts); + double synchronizeVideo(double pts); +- void yuva420pToRgba(AVPicture *dst, AVPicture *src, int width, int height); ++ void yuva420pToRgba(AVFrame *dst, AVFrame *src, int width, int height); + +- int convert(AVPicture *dst, int dst_pix_fmt, AVPicture *src, ++ int convert(AVFrame *dst, int dst_pix_fmt, AVFrame *src, + int src_pix_fmt, int src_width, int src_height); + + +@@ -101,9 +102,7 @@ + FFmpegClocks & m_clocks; + AVStream * m_stream; + AVCodecContext * m_context; +- AVCodec * m_codec; +- const uint8_t * m_packet_data; +- int m_bytes_remaining; ++ const AVCodec * m_codec; + int64_t m_packet_pts; + + FramePtr m_frame; +diff -Naur old/src/osgPlugins/ffmpeg/FFmpegPacket.hpp new/src/osgPlugins/ffmpeg/FFmpegPacket.hpp +--- old/src/osgPlugins/ffmpeg/FFmpegPacket.hpp 2020-01-31 21:03:07.000000000 +1000 ++++ new/src/osgPlugins/ffmpeg/FFmpegPacket.hpp 2023-11-26 07:20:03.739547190 +1000 +@@ -42,7 +42,7 @@ + void clear() + { + if (packet.data != 0) +- av_free_packet(&packet); ++ av_packet_unref(&packet); + + release(); + } +diff -Naur old/src/osgPlugins/ffmpeg/FFmpegParameters.hpp new/src/osgPlugins/ffmpeg/FFmpegParameters.hpp +--- old/src/osgPlugins/ffmpeg/FFmpegParameters.hpp 2020-01-31 21:03:07.000000000 +1000 ++++ new/src/osgPlugins/ffmpeg/FFmpegParameters.hpp 2023-11-26 13:09:25.198807036 +1000 +@@ -20,7 +20,7 @@ + + bool isFormatAvailable() const { return m_format!=NULL; } + +- AVInputFormat* getFormat() { return m_format; } ++ const AVInputFormat* getFormat() { return m_format; } + AVDictionary** getOptions() { return &m_options; } + void setContext(AVIOContext* context) { m_context = context; } + AVIOContext* getContext() { return m_context; } +@@ -29,7 +29,7 @@ + + protected: + +- AVInputFormat* m_format; ++ const AVInputFormat* m_format; + AVIOContext* m_context; + AVDictionary* m_options; + }; +diff -Naur old/src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp new/src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp +--- old/src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp 2020-01-31 21:03:07.000000000 +1000 ++++ new/src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp 2023-11-26 13:25:22.060773249 +1000 +@@ -20,7 +20,7 @@ + #include + + +-#if LIBAVCODEC_VERSION_MAJOR >= 53 || \ ++#if (LIBAVCODEC_VERSION_MAJOR>=53 && LIBAVCODEC_VERSION_MAJOR<=58) || \ + (LIBAVCODEC_VERSION_MAJOR==52 && LIBAVCODEC_VERSION_MINOR>=30) || \ + (LIBAVCODEC_VERSION_MAJOR==52 && LIBAVCODEC_VERSION_MINOR==20 && LIBAVCODEC_VERSION_MICRO >= 1) + #define USE_AV_LOCK_MANAGER +@@ -117,8 +117,11 @@ + // enable thread locking + av_lockmgr_register(&lockMgr); + #endif +- // Register all FFmpeg formats/codecs ++ ++#if LIBAVCODEC_VERSION_MAJOR<=57 ++ // Register all FFmpeg formats/codecs--- not required in FFmpeg 4.0 and later + av_register_all(); ++#endif + + avformat_network_init(); + } diff --git a/srcpkgs/osg/template b/srcpkgs/osg/template index 8ef0efc599a1b1..2a89cf2164e133 100644 --- a/srcpkgs/osg/template +++ b/srcpkgs/osg/template @@ -1,14 +1,14 @@ # Template file for 'osg' pkgname=osg version=3.6.5 -revision=3 +revision=4 build_style=cmake build_helper="qemu" # don't use /usr/lib64 on 64bit platforms configure_args="-DLIB_POSTFIX=" hostmakedepends="pkg-config xrandr" makedepends="MesaLib-devel gtkglext-devel libcurl-devel giflib-devel librsvg-devel - jasper-devel tiff-devel libgdal-devel libgta-devel ffmpeg-devel xine-lib-devel + jasper-devel tiff-devel libgdal-devel libgta-devel ffmpeg6-devel xine-lib-devel SDL2-devel gst-plugins-base1-devel $(vopt_if openexr libopenexr-devel) $(vopt_if poppler poppler-glib-devel) From 4a463104cb23442aec0dd555b1c6d7829a8ce863 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:13 -0400 Subject: [PATCH 45/86] xine-lib: revbump for ffmpeg6 --- srcpkgs/xine-lib/template | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/srcpkgs/xine-lib/template b/srcpkgs/xine-lib/template index 3be4d08eac77a3..f54ad0a91e15c7 100644 --- a/srcpkgs/xine-lib/template +++ b/srcpkgs/xine-lib/template @@ -1,14 +1,14 @@ # Template file for 'xine-lib' pkgname=xine-lib -version=1.2.12 -revision=3 +version=1.2.13 +revision=1 build_style=gnu-configure configure_args="--disable-vcd --disable-gnomevfs --without-esound --disable-dxr3 --disable-oss" hostmakedepends="automake gettext-devel libtool pkg-config perl" makedepends=" zlib-devel alsa-lib-devel libxcb-devel libSM-devel libXext-devel libXv-devel - libXvMC-devel liba52-devel libmad-devel ffmpeg-devel pulseaudio-devel + libXvMC-devel liba52-devel libmad-devel ffmpeg6-devel pulseaudio-devel jack-devel samba-devel libflac-devel libmodplug-devel libmpcdec-devel speex-devel libtheora-devel libvorbis-devel libdca-devel faad2-devel libcdio-devel libbluray-devel aalib-devel libcaca-devel libXinerama-devel @@ -19,7 +19,7 @@ license="GPL-2.0-or-later, LGPL-2.0-or-later" homepage="http://www.xine-project.org" changelog="https://sourceforge.net/projects/xine/files/xine-lib/${version}/README.txt/view" distfiles="${SOURCEFORGE_SITE}/xine/${pkgname}-${version}.tar.xz" -checksum=d606270468e1540c2a89c0d7f5fdf11e17ecc0c2698cc0bcb1065ff26abee098 +checksum=5f10d6d718a4a51c17ed1b32b031d4f9b80b061e8276535b2be31e5ac4b75e6f case "$XBPS_TARGET_MACHINE" in i686-musl) From cbcabafcfaa2a07921d45de83e8afdacd5315114 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:50 -0400 Subject: [PATCH 46/86] pianobar: revbump for ffmpeg6 --- srcpkgs/pianobar/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/pianobar/template b/srcpkgs/pianobar/template index e3febb821a4510..25ef1ab4c34af6 100644 --- a/srcpkgs/pianobar/template +++ b/srcpkgs/pianobar/template @@ -1,11 +1,11 @@ # Template file for 'pianobar' pkgname=pianobar version=2022.04.01 -revision=1 +revision=2 build_style=gnu-makefile make_build_args="V=1" hostmakedepends="pkg-config" -makedepends="faad2-devel ffmpeg-devel gnutls-devel json-c-devel libao-devel +makedepends="faad2-devel ffmpeg6-devel gnutls-devel json-c-devel libao-devel libcurl-devel libgcrypt-devel" short_desc="Free/open-source, console-based client for Pandora radio" maintainer="Orphaned " From e84420d357818ef60cab7f96c16fd41f9a3b02da Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:50 -0400 Subject: [PATCH 47/86] ppsspp: revbump for ffmpeg6 --- srcpkgs/ppsspp/patches/ffmpeg6.patch | 15 +++++++++++++++ srcpkgs/ppsspp/template | 5 ++--- 2 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 srcpkgs/ppsspp/patches/ffmpeg6.patch diff --git a/srcpkgs/ppsspp/patches/ffmpeg6.patch b/srcpkgs/ppsspp/patches/ffmpeg6.patch new file mode 100644 index 00000000000000..5803c7bf227309 --- /dev/null +++ b/srcpkgs/ppsspp/patches/ffmpeg6.patch @@ -0,0 +1,15 @@ +--- a/Core/HW/SimpleAudioDec.cpp 2024-02-04 08:08:02.000000000 -0500 ++++ b/Core/HW/SimpleAudioDec.cpp 2024-02-15 14:48:27.114362051 -0500 +@@ -81,7 +81,11 @@ + return; + } + // Find decoder ++#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(58, 18, 100) + codec_ = avcodec_find_decoder((AVCodecID)audioCodecId); ++#else // this is a macro to const in the header ++ codec_ = (AVCodec*)avcodec_find_decoder((AVCodecID)audioCodecId); ++#endif + if (!codec_) { + // Eh, we shouldn't even have managed to compile. But meh. + ERROR_LOG(ME, "This version of FFMPEG does not support AV_CODEC_ctx for audio (%s). Update your submodule.", GetCodecName(audioType)); + diff --git a/srcpkgs/ppsspp/template b/srcpkgs/ppsspp/template index 2238a7601c0af8..e929fd18122c7c 100644 --- a/srcpkgs/ppsspp/template +++ b/srcpkgs/ppsspp/template @@ -1,7 +1,7 @@ # Template file for 'ppsspp' pkgname=ppsspp version=1.17.1 -revision=1 +revision=2 _glslang_commit=b34f619e1c85810dcb3c578107d2e48ba4ee2b37 _SPIRV_Cross_commit=4212eef67ed0ca048cb726a6767185504e7695e5 _armips_commit=a8d71f0f279eb0d30ecf6af51473b66ae0cf8e8d @@ -15,7 +15,7 @@ configure_args="-DHEADLESS=1 -DUSE_SYSTEM_FFMPEG=1 -DUNITTEST=ON -DUSING_QT_UI=$(vopt_if qt ON OFF) -DUSE_SYSTEM_ZSTD=ON -DARMIPS_USE_STD_FILESYSTEM=ON" hostmakedepends="pkg-config python3 $(vopt_if qt qt5-host-tools)" -makedepends="zlib-devel glew-devel ffmpeg-devel libzip-devel +makedepends="zlib-devel glew-devel ffmpeg6-devel libzip-devel snappy-devel rapidjson libpng-devel libzstd-devel $(vopt_if sdl2 'SDL2_ttf-devel SDL2-devel') wayland-devel $(vopt_if qt 'qt5-devel qt5-multimedia-devel')" @@ -91,7 +91,6 @@ post_configure() { } do_install() { - vlicense LICENSE.TXT vinstall icons/icon.svg 644 usr/share/pixmaps ppsspp.svg vinstall Qt/PPSSPP.desktop 644 usr/share/applications vbin build/PPSSPPHeadless ppsspp-headless From 2c95755a94f8f22f34cb65ee42fddb3352368012 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:50 -0400 Subject: [PATCH 48/86] pqiv: revbump for ffmpeg6 --- srcpkgs/pqiv/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/pqiv/template b/srcpkgs/pqiv/template index f9f7751196d4ee..7d638c0310582e 100644 --- a/srcpkgs/pqiv/template +++ b/srcpkgs/pqiv/template @@ -1,10 +1,10 @@ # Template file for 'pqiv' pkgname=pqiv version=2.13.1 -revision=1 +revision=2 build_style=gnu-makefile hostmakedepends="pkg-config" -makedepends="glib-devel gtk+3-devel $(vopt_if ffmpeg ffmpeg-devel) +makedepends="glib-devel gtk+3-devel $(vopt_if ffmpeg ffmpeg6-devel) $(vopt_if archive libarchive-devel) $(vopt_if ps libspectre-devel) $(vopt_if webp libwebp-devel) $(vopt_if pdf poppler-glib-devel)" short_desc="Powerful quick image viewer" From ccb5561db3f9ce4b59696d81b8a3e76c1ba7424d Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:50 -0400 Subject: [PATCH 49/86] qmmp: revbump for ffmpeg6 --- srcpkgs/qmmp/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/qmmp/template b/srcpkgs/qmmp/template index 53781ea3bc28ad..e96175b05eaed6 100644 --- a/srcpkgs/qmmp/template +++ b/srcpkgs/qmmp/template @@ -1,12 +1,12 @@ # Template file for 'qmmp' pkgname=qmmp version=1.6.1 -revision=3 +revision=4 build_style=cmake configure_args="-DUSE_HAL:BOOL=FALSE -DQMMP_DEFAULT_UI:STRING=simple" hostmakedepends="pkg-config qt5-host-tools qt5-qmake" # XXX projectm -makedepends="enca-devel faad2-devel ffmpeg-devel jack-devel libarchive-devel +makedepends="enca-devel faad2-devel ffmpeg6-devel jack-devel libarchive-devel libbs2b-devel libcdio-paranoia-devel libcurl-devel libgme-devel libmad-devel libmms-devel libmodplug-devel libmpcdec-devel libsamplerate-devel libwildmidi-devel libshout-devel libsidplayfp-devel libsoxr-devel opusfile-devel pulseaudio-devel From a97536b0330394dd6e3f8c6888afb4a6e2b66a52 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:51 -0400 Subject: [PATCH 50/86] retroarch: revbump for ffmpeg6 --- srcpkgs/retroarch/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/retroarch/template b/srcpkgs/retroarch/template index 5429d13ef3eea4..011c14b74475c1 100644 --- a/srcpkgs/retroarch/template +++ b/srcpkgs/retroarch/template @@ -1,7 +1,7 @@ # Template file for 'retroarch' pkgname=retroarch version=1.16.0.3 -revision=3 +revision=4 build_style=configure configure_args="--prefix=/usr --sysconfdir=/etc --enable-networking --enable-udev --disable-builtinflac --disable-builtinglslang @@ -12,7 +12,7 @@ configure_args="--prefix=/usr --sysconfdir=/etc --enable-networking conf_files="/etc/retroarch.cfg" hostmakedepends="pkg-config" makedepends="alsa-lib-devel eudev-libudev-devel freetype-devel libusb-devel libxkbcommon-devel - mbedtls-devel zlib-devel $(vopt_if ffmpeg ffmpeg-devel) $(vopt_if flac libflac-devel) + mbedtls-devel zlib-devel $(vopt_if ffmpeg ffmpeg6-devel) $(vopt_if flac libflac-devel) $(vopt_if glslang 'glslang-devel SPIRV-Tools-devel') $(vopt_if jack jack-devel) $(vopt_if pulseaudio pulseaudio-devel) $(vopt_if qt5 qt5-devel) $(vopt_if sdl2 SDL2-devel) $(vopt_if vulkan vulkan-loader-devel) From fb749960302f688f7a9a810200492d7e312ada31 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:51 -0400 Subject: [PATCH 51/86] scrcpy: revbump for ffmpeg6 --- srcpkgs/scrcpy/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/scrcpy/template b/srcpkgs/scrcpy/template index d40651ad8dc835..dc23650225f849 100644 --- a/srcpkgs/scrcpy/template +++ b/srcpkgs/scrcpy/template @@ -1,12 +1,12 @@ # Template file for 'scrcpy' pkgname=scrcpy version=2.4 -revision=1 +revision=2 build_style=meson configure_args="-Dcompile_server=false -Dprebuilt_server=/usr/share/scrcpy/scrcpy-server-v${version}" hostmakedepends="pkg-config" -makedepends="SDL2-devel ffmpeg-devel" +makedepends="SDL2-devel ffmpeg6-devel" depends="android-tools" short_desc="Display and control your Android device" maintainer="SolitudeSF " From cbc43191d6cf7d73378340d1c85ba7b3ede6a72e Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:51 -0400 Subject: [PATCH 52/86] ssr: revbump for ffmpeg6 --- .../0001-Fix-build-with-ffmpeg-5.0.patch | 241 ++++++++++++++++++ srcpkgs/ssr/template | 4 +- 2 files changed, 243 insertions(+), 2 deletions(-) create mode 100644 srcpkgs/ssr/patches/0001-Fix-build-with-ffmpeg-5.0.patch diff --git a/srcpkgs/ssr/patches/0001-Fix-build-with-ffmpeg-5.0.patch b/srcpkgs/ssr/patches/0001-Fix-build-with-ffmpeg-5.0.patch new file mode 100644 index 00000000000000..4c069b5a9fc464 --- /dev/null +++ b/srcpkgs/ssr/patches/0001-Fix-build-with-ffmpeg-5.0.patch @@ -0,0 +1,241 @@ +From f4cbde38021d9330dc73d2e3dfa8a70da3ff5721 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Bernhard=20Rosenkr=C3=A4nzer?= +Date: Sun, 16 Jan 2022 02:40:04 +0100 +Subject: [PATCH] Fix build with ffmpeg 5.0 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Adapt to ffmpeg 5.0 requiring more const-ness for AVCodec. + +Signed-off-by: Bernhard Rosenkränzer +--- + src/AV/Output/AudioEncoder.cpp | 6 +++--- + src/AV/Output/AudioEncoder.h | 4 ++-- + src/AV/Output/BaseEncoder.cpp | 4 ++-- + src/AV/Output/BaseEncoder.h | 4 ++-- + src/AV/Output/Muxer.cpp | 12 ++++++------ + src/AV/Output/Muxer.h | 4 ++-- + src/AV/Output/VideoEncoder.cpp | 6 +++--- + src/AV/Output/VideoEncoder.h | 4 ++-- + 8 files changed, 22 insertions(+), 22 deletions(-) + +diff --git a/src/AV/Output/AudioEncoder.cpp b/src/AV/Output/AudioEncoder.cpp +index 34d015c..cefc2e0 100644 +--- a/src/AV/Output/AudioEncoder.cpp ++++ b/src/AV/Output/AudioEncoder.cpp +@@ -34,7 +34,7 @@ const std::vector AudioEncoder::SUPPORTED_SAMPLE + + const unsigned int AudioEncoder::DEFAULT_FRAME_SAMPLES = 1024; + +-AudioEncoder::AudioEncoder(Muxer* muxer, AVStream* stream, AVCodecContext *codec_context, AVCodec* codec, AVDictionary** options) ++AudioEncoder::AudioEncoder(Muxer* muxer, AVStream* stream, AVCodecContext *codec_context, const AVCodec* codec, AVDictionary** options) + : BaseEncoder(muxer, stream, codec_context, codec, options) { + + #if !SSR_USE_AVCODEC_ENCODE_AUDIO2 +@@ -77,7 +77,7 @@ unsigned int AudioEncoder::GetSampleRate() { + } + + bool AudioEncoder::AVCodecIsSupported(const QString& codec_name) { +- AVCodec *codec = avcodec_find_encoder_by_name(codec_name.toUtf8().constData()); ++ const AVCodec *codec = avcodec_find_encoder_by_name(codec_name.toUtf8().constData()); + if(codec == NULL) + return false; + if(!av_codec_is_encoder(codec)) +@@ -93,7 +93,7 @@ bool AudioEncoder::AVCodecIsSupported(const QString& codec_name) { + return false; + } + +-void AudioEncoder::PrepareStream(AVStream* stream, AVCodecContext* codec_context, AVCodec* codec, AVDictionary** options, const std::vector >& codec_options, ++void AudioEncoder::PrepareStream(AVStream* stream, AVCodecContext* codec_context, const AVCodec* codec, AVDictionary** options, const std::vector >& codec_options, + unsigned int bit_rate, unsigned int channels, unsigned int sample_rate) { + + if(channels == 0) { +diff --git a/src/AV/Output/AudioEncoder.h b/src/AV/Output/AudioEncoder.h +index c93278c..ae9c82e 100644 +--- a/src/AV/Output/AudioEncoder.h ++++ b/src/AV/Output/AudioEncoder.h +@@ -40,7 +40,7 @@ private: + #endif + + public: +- AudioEncoder(Muxer* muxer, AVStream* stream, AVCodecContext* codec_context, AVCodec* codec, AVDictionary** options); ++ AudioEncoder(Muxer* muxer, AVStream* stream, AVCodecContext* codec_context, const AVCodec* codec, AVDictionary** options); + ~AudioEncoder(); + + // Returns the required frame size, i.e. the number of samples (for each channel). +@@ -57,7 +57,7 @@ public: + + public: + static bool AVCodecIsSupported(const QString& codec_name); +- static void PrepareStream(AVStream* stream, AVCodecContext* codec_context, AVCodec* codec, AVDictionary** options, const std::vector >& codec_options, ++ static void PrepareStream(AVStream* stream, AVCodecContext* codec_context, const AVCodec* codec, AVDictionary** options, const std::vector >& codec_options, + unsigned int bit_rate, unsigned int channels, unsigned int sample_rate); + + private: +diff --git a/src/AV/Output/BaseEncoder.cpp b/src/AV/Output/BaseEncoder.cpp +index 7c01ef3..4780aaf 100644 +--- a/src/AV/Output/BaseEncoder.cpp ++++ b/src/AV/Output/BaseEncoder.cpp +@@ -42,7 +42,7 @@ double ParseCodecOptionDouble(const QString& key, const QString& value, double m + return clamp(value_double, min, max) * multiply; + } + +-BaseEncoder::BaseEncoder(Muxer* muxer, AVStream* stream, AVCodecContext* codec_context, AVCodec* codec, AVDictionary** options) { ++BaseEncoder::BaseEncoder(Muxer* muxer, AVStream* stream, AVCodecContext* codec_context, const AVCodec* codec, AVDictionary** options) { + + m_muxer = muxer; + m_stream = stream; +@@ -157,7 +157,7 @@ void BaseEncoder::IncrementPacketCounter() { + ++lock->m_total_packets; + } + +-void BaseEncoder::Init(AVCodec* codec, AVDictionary** options) { ++void BaseEncoder::Init(const AVCodec* codec, AVDictionary** options) { + + // open codec + if(avcodec_open2(m_codec_context, codec, options) < 0) { +diff --git a/src/AV/Output/BaseEncoder.h b/src/AV/Output/BaseEncoder.h +index 3d92f29..7f02bbd 100644 +--- a/src/AV/Output/BaseEncoder.h ++++ b/src/AV/Output/BaseEncoder.h +@@ -51,7 +51,7 @@ private: + std::atomic m_should_stop, m_should_finish, m_is_done, m_error_occurred; + + protected: +- BaseEncoder(Muxer* muxer, AVStream* stream, AVCodecContext* codec_context, AVCodec* codec, AVDictionary** options); ++ BaseEncoder(Muxer* muxer, AVStream* stream, AVCodecContext* codec_context, const AVCodec* codec, AVDictionary** options); + + public: + virtual ~BaseEncoder(); // encoders will be deleted by Muxer, don't delete them yourself! +@@ -117,7 +117,7 @@ protected: + void IncrementPacketCounter(); + + private: +- void Init(AVCodec* codec, AVDictionary** options); ++ void Init(const AVCodec* codec, AVDictionary** options); + void Free(); + + void EncoderThread(); +diff --git a/src/AV/Output/Muxer.cpp b/src/AV/Output/Muxer.cpp +index ad58380..14650b0 100644 +--- a/src/AV/Output/Muxer.cpp ++++ b/src/AV/Output/Muxer.cpp +@@ -87,7 +87,7 @@ Muxer::~Muxer() { + + VideoEncoder* Muxer::AddVideoEncoder(const QString& codec_name, const std::vector >& codec_options, + unsigned int bit_rate, unsigned int width, unsigned int height, unsigned int frame_rate) { +- AVCodec *codec = FindCodec(codec_name); ++ const AVCodec *codec = FindCodec(codec_name); + AVCodecContext *codec_context = NULL; + AVStream *stream = AddStream(codec, &codec_context); + VideoEncoder *encoder; +@@ -111,7 +111,7 @@ VideoEncoder* Muxer::AddVideoEncoder(const QString& codec_name, const std::vecto + + AudioEncoder* Muxer::AddAudioEncoder(const QString& codec_name, const std::vector >& codec_options, + unsigned int bit_rate, unsigned int channels, unsigned int sample_rate) { +- AVCodec *codec = FindCodec(codec_name); ++ const AVCodec *codec = FindCodec(codec_name); + AVCodecContext *codec_context = NULL; + AVStream *stream = AddStream(codec, &codec_context); + AudioEncoder *encoder; +@@ -194,7 +194,7 @@ unsigned int Muxer::GetQueuedPacketCount(unsigned int stream_index) { + void Muxer::Init() { + + // get the format we want (this is just a pointer, we don't have to free this) +- AVOutputFormat *format = av_guess_format(m_container_name.toUtf8().constData(), NULL, NULL); ++ const AVOutputFormat *format = av_guess_format(m_container_name.toUtf8().constData(), NULL, NULL); + if(format == NULL) { + Logger::LogError("[Muxer::Init] " + Logger::tr("Error: Can't find chosen output format!")); + throw LibavException(); +@@ -261,8 +261,8 @@ void Muxer::Free() { + } + } + +-AVCodec* Muxer::FindCodec(const QString& codec_name) { +- AVCodec *codec = avcodec_find_encoder_by_name(codec_name.toUtf8().constData()); ++const AVCodec* Muxer::FindCodec(const QString& codec_name) { ++ const AVCodec *codec = avcodec_find_encoder_by_name(codec_name.toUtf8().constData()); + if(codec == NULL) { + Logger::LogError("[Muxer::FindCodec] " + Logger::tr("Error: Can't find codec!")); + throw LibavException(); +@@ -270,7 +270,7 @@ AVCodec* Muxer::FindCodec(const QString& codec_name) { + return codec; + } + +-AVStream* Muxer::AddStream(AVCodec* codec, AVCodecContext** codec_context) { ++AVStream* Muxer::AddStream(const AVCodec* codec, AVCodecContext** codec_context) { + assert(!m_started); + assert(m_format_context->nb_streams < MUXER_MAX_STREAMS); + +diff --git a/src/AV/Output/Muxer.h b/src/AV/Output/Muxer.h +index d72347d..b104bcb 100644 +--- a/src/AV/Output/Muxer.h ++++ b/src/AV/Output/Muxer.h +@@ -114,8 +114,8 @@ private: + void Init(); + void Free(); + +- AVCodec* FindCodec(const QString& codec_name); +- AVStream* AddStream(AVCodec* codec, AVCodecContext** codec_context); ++ const AVCodec* FindCodec(const QString& codec_name); ++ AVStream* AddStream(const AVCodec* codec, AVCodecContext** codec_context); + + void MuxerThread(); + +diff --git a/src/AV/Output/VideoEncoder.cpp b/src/AV/Output/VideoEncoder.cpp +index 8087e8e..fc8b5d1 100644 +--- a/src/AV/Output/VideoEncoder.cpp ++++ b/src/AV/Output/VideoEncoder.cpp +@@ -34,7 +34,7 @@ const std::vector VideoEncoder::SUPPORTED_PIXEL_F + {"rgb", AV_PIX_FMT_RGB24, false}, + }; + +-VideoEncoder::VideoEncoder(Muxer* muxer, AVStream* stream, AVCodecContext* codec_context, AVCodec* codec, AVDictionary** options) ++VideoEncoder::VideoEncoder(Muxer* muxer, AVStream* stream, AVCodecContext* codec_context, const AVCodec* codec, AVDictionary** options) + : BaseEncoder(muxer, stream, codec_context, codec, options) { + + #if !SSR_USE_AVCODEC_ENCODE_VIDEO2 +@@ -95,7 +95,7 @@ unsigned int VideoEncoder::GetFrameRate() { + } + + bool VideoEncoder::AVCodecIsSupported(const QString& codec_name) { +- AVCodec *codec = avcodec_find_encoder_by_name(codec_name.toUtf8().constData()); ++ const AVCodec *codec = avcodec_find_encoder_by_name(codec_name.toUtf8().constData()); + if(codec == NULL) + return false; + if(!av_codec_is_encoder(codec)) +@@ -111,7 +111,7 @@ bool VideoEncoder::AVCodecIsSupported(const QString& codec_name) { + return false; + } + +-void VideoEncoder::PrepareStream(AVStream* stream, AVCodecContext* codec_context, AVCodec* codec, AVDictionary** options, const std::vector >& codec_options, ++void VideoEncoder::PrepareStream(AVStream* stream, AVCodecContext* codec_context, const AVCodec* codec, AVDictionary** options, const std::vector >& codec_options, + unsigned int bit_rate, unsigned int width, unsigned int height, unsigned int frame_rate) { + + if(width == 0 || height == 0) { +diff --git a/src/AV/Output/VideoEncoder.h b/src/AV/Output/VideoEncoder.h +index cb7ca27..68d872e 100644 +--- a/src/AV/Output/VideoEncoder.h ++++ b/src/AV/Output/VideoEncoder.h +@@ -40,7 +40,7 @@ private: + #endif + + public: +- VideoEncoder(Muxer* muxer, AVStream* stream, AVCodecContext* codec_context, AVCodec* codec, AVDictionary** options); ++ VideoEncoder(Muxer* muxer, AVStream* stream, AVCodecContext* codec_context, const AVCodec* codec, AVDictionary** options); + ~VideoEncoder(); + + // Returns the required pixel format. +@@ -55,7 +55,7 @@ public: + + public: + static bool AVCodecIsSupported(const QString& codec_name); +- static void PrepareStream(AVStream* stream, AVCodecContext* codec_context, AVCodec* codec, AVDictionary** options, const std::vector >& codec_options, ++ static void PrepareStream(AVStream* stream, AVCodecContext* codec_context, const AVCodec* codec, AVDictionary** options, const std::vector >& codec_options, + unsigned int bit_rate, unsigned int width, unsigned int height, unsigned int frame_rate); + + private: +-- +2.43.0 + diff --git a/srcpkgs/ssr/template b/srcpkgs/ssr/template index 3097754e3cbe54..5d5c0a98d65f58 100644 --- a/srcpkgs/ssr/template +++ b/srcpkgs/ssr/template @@ -1,11 +1,11 @@ # Template file for 'ssr' pkgname=ssr version=0.4.4 -revision=2 +revision=3 build_style=cmake configure_args="-DWITH_QT5=ON" hostmakedepends="pkg-config" -makedepends="alsa-lib-devel ffmpeg-devel glu-devel jack-devel pulseaudio-devel +makedepends="alsa-lib-devel ffmpeg6-devel glu-devel jack-devel pulseaudio-devel qt5-tools-devel qt5-x11extras-devel libXinerama-devel v4l-utils-devel" depends="desktop-file-utils hicolor-icon-theme" short_desc="Simple Screen Recorder for programs and games" From c87f32ad36f1311f99a061e642b47d12058bd0d6 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:52 -0400 Subject: [PATCH 53/86] synfig: revbump for ffmpeg6 and mlt7 --- srcpkgs/synfig/patches/ffmpeg6.patch | 71 ++++++++++++++++++++++++++++ srcpkgs/synfig/template | 8 ++-- 2 files changed, 75 insertions(+), 4 deletions(-) create mode 100644 srcpkgs/synfig/patches/ffmpeg6.patch diff --git a/srcpkgs/synfig/patches/ffmpeg6.patch b/srcpkgs/synfig/patches/ffmpeg6.patch new file mode 100644 index 00000000000000..10780b42782f4b --- /dev/null +++ b/srcpkgs/synfig/patches/ffmpeg6.patch @@ -0,0 +1,71 @@ +--- a/src/modules/mod_libavcodec/trgt_av.cpp 2022-10-25 09:14:12.000000000 -0400 ++++ b/src/modules/mod_libavcodec/trgt_av.cpp 2023-05-05 21:34:17.899194559 -0400 +@@ -38,6 +41,7 @@ + extern "C" + { + #ifdef HAVE_LIBAVFORMAT_AVFORMAT_H ++# include + # include + #elif defined(HAVE_AVFORMAT_H) + # include +@@ -155,11 +156,11 @@ + } + + bool open_video_stream() { +- if (avcodec_open2(video_context, NULL, NULL) < 0) { ++ if (avcodec_open2(video_context, nullptr, nullptr) < 0) { + synfig::error("Target_LibAVCodec: could not open video codec"); + // seems the calling of avcodec_free_context after error will cause crash + // so just forget about this context +- video_context = NULL; ++ video_context = nullptr; + close(); + return false; + } +@@ -234,15 +235,21 @@ + close(); + + if (!av_registered) { ++#if LIBAVCODEC_VERSION_MAJOR < 58 // FFMPEG < 4.0 + av_register_all(); ++#endif + av_registered = true; + } + + // guess format +- AVOutputFormat *format = av_guess_format(NULL, filename.c_str(), NULL); ++#if LIBAVCODEC_VERSION_MAJOR < 59 // FFMPEG < 5.0 ++ AVOutputFormat* format = av_guess_format(nullptr, filename.c_str(), nullptr); ++#else ++ const AVOutputFormat* format = av_guess_format(nullptr, filename.c_str(), nullptr); ++#endif + if (!format) { + synfig::warning("Target_LibAVCodec: unable to guess the output format, defaulting to MPEG"); +- format = av_guess_format("mpeg", NULL, NULL); ++ format = av_guess_format("mpeg", nullptr, nullptr); + } + if (!format) { + synfig::error("Target_LibAVCodec: unable to find 'mpeg' output format"); +@@ -254,6 +261,7 @@ + context = avformat_alloc_context(); + assert(context); + context->oformat = format; ++#if LIBAVCODEC_VERSION_MAJOR < 58 // FFMPEG < 4.0 + if (filename.size() + 1 > sizeof(context->filename)) { + synfig::error( + "Target_LibAVCodec: filename too long, max length is %d, filename is '%s'", +@@ -263,6 +271,14 @@ + return false; + } + memcpy(context->filename, filename.c_str(), filename.size() + 1); ++#else ++ context->url = av_strndup(filename.c_str(), filename.size()); ++ if (!context->url) { ++ synfig::error("Target_LibAVCodec: cannot allocate space for filename"); ++ close(); ++ return false; ++ } ++#endif + + packet = av_packet_alloc(); + assert(packet); diff --git a/srcpkgs/synfig/template b/srcpkgs/synfig/template index 510eb2b4dbf05d..6308bdf1758124 100644 --- a/srcpkgs/synfig/template +++ b/srcpkgs/synfig/template @@ -2,12 +2,12 @@ # Should be kept in sync with 'synfigstudio' and 'ETL' pkgname=synfig version=1.4.5 -revision=1 +revision=2 build_style=gnu-configure configure_args="--with-boost-libdir=${XBPS_CROSS_BASE}/usr/lib" hostmakedepends="boost-build ImageMagick pkg-config intltool" -makedepends="ETL gettext-devel libxml++-devel mlt-devel libmagick-devel - libmng-devel boost-build boost-devel libopenexr-devel ffmpeg-devel" +makedepends="ETL gettext-devel libxml++-devel mlt7-devel libmagick-devel + libmng-devel boost-build boost-devel libopenexr-devel ffmpeg6-devel" depends="ImageMagick" short_desc="CLI 2D vector and timeline-based animation software" maintainer="Orphaned " @@ -20,7 +20,7 @@ CXXFLAGS="-std=c++11 -DHAVE_LOCALE_H=1" synfig-devel_package() { depends="${sourcepkg}>=${version}_${revision} - libopenexr-devel libxml++-devel mlt-devel" + libopenexr-devel libxml++-devel mlt7-devel" short_desc+=" - development files" pkg_install() { vmove usr/bin/synfig-config From b1439e631f4f9c53e121a62385f80de32fc7f8a6 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:52 -0400 Subject: [PATCH 54/86] timg: revbump for ffmpeg6 --- srcpkgs/timg/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/timg/template b/srcpkgs/timg/template index 2a2ab763d2fddf..c4ef9765ff4e5d 100644 --- a/srcpkgs/timg/template +++ b/srcpkgs/timg/template @@ -1,11 +1,11 @@ # Template file for 'timg' pkgname=timg version=1.4.5 -revision=1 +revision=2 build_style=cmake configure_args="-DWITH_OPENSLIDE_SUPPORT=off -Wno-dev" hostmakedepends="pkg-config git" -makedepends="libgraphicsmagick-devel ffmpeg-devel libjpeg-turbo-devel libexif-devel" +makedepends="libgraphicsmagick-devel ffmpeg6-devel libjpeg-turbo-devel libexif-devel" short_desc="24-bit color image & video viewer for terminal" maintainer="33KK " license="GPL-2.0-only" From 5306fbea92b8d6620bfcb3caa4ebe5f8f9d5883c Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:52 -0400 Subject: [PATCH 55/86] vice: revbump for ffmpeg6 --- srcpkgs/vice/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/vice/template b/srcpkgs/vice/template index 1c641d9ae9be22..052fa1eecc6268 100644 --- a/srcpkgs/vice/template +++ b/srcpkgs/vice/template @@ -1,7 +1,7 @@ # Template file for 'vice' pkgname=vice version=3.8 -revision=1 +revision=2 build_style=gnu-configure configure_args="--enable-cpuhistory --enable-x64 --disable-pdf-docs --libdir=/usr/lib$XBPS_TARGET_WORDSIZE $(vopt_enable sdl2 sdlui2) @@ -12,7 +12,7 @@ hostmakedepends="pkg-config flex dos2unix xa perl glib-devel xdg-utils" makedepends="zlib-devel readline-devel libpng-devel glew-devel alsa-lib-devel libcurl-devel $(vopt_if sdl2 SDL2_mixer-devel) $(vopt_if sdl2 SDL2-devel) $(vopt_if gtk3 gtk+3-devel) $(vopt_if gtk3 pulseaudio-devel) - $(vopt_if ffmpeg ffmpeg-devel)" + $(vopt_if ffmpeg ffmpeg6-devel)" short_desc="Emulator for C64, C128, CBM-II, PET, VIC20, Plus4 and C16" maintainer="Orphaned " license="GPL-2.0-or-later" From 6ec7187cd812ce036021cf75fee18c65c9edd6d3 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:52 -0400 Subject: [PATCH 56/86] waypipe: revbump for ffmpeg6 --- srcpkgs/waypipe/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/waypipe/template b/srcpkgs/waypipe/template index 6da88b21bf2a19..871147b0e2148e 100644 --- a/srcpkgs/waypipe/template +++ b/srcpkgs/waypipe/template @@ -1,14 +1,14 @@ # Template file for 'waypipe' pkgname=waypipe version=0.8.6 -revision=1 +revision=2 build_style=meson # lto is off because it causes linking errors in armv6l and armv7l (due to NEON) configure_args="-Dwerror=false -Dwith_dmabuf=enabled -Dwith_lz4=enabled -Dwith_zstd=enabled -Dwith_video=enabled -Dwith_vaapi=enabled -Db_lto=false" hostmakedepends="wayland-devel scdoc pkg-config" makedepends="liblz4-devel libzstd-devel libva-devel - MesaLib-devel libdrm-devel ffmpeg-devel" + MesaLib-devel libdrm-devel ffmpeg6-devel" depends="openssh" short_desc="Proxy for Wayland clients" maintainer="Érico Nogueira " From 2d28d3a3b454e3c9950ae85d570a724432f03c23 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 22 Mar 2023 20:01:52 -0400 Subject: [PATCH 57/86] xpra: revbump for ffmpeg6 --- srcpkgs/xpra/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/xpra/template b/srcpkgs/xpra/template index a5bd87040d01d3..fd1f52ac64b750 100644 --- a/srcpkgs/xpra/template +++ b/srcpkgs/xpra/template @@ -1,12 +1,12 @@ # Template file for 'xpra' pkgname=xpra version=6.0.1 -revision=1 +revision=2 build_style=python3-module make_build_args="--without-cuda_kernels --without-cuda_rebuild" make_install_args="$(vopt_with docs) ${make_build_args}" hostmakedepends="pkg-config python3-Cython $(vopt_if docs pandoc)" -makedepends="ffmpeg-devel libXcomposite-devel libXrandr-devel libXtst-devel +makedepends="ffmpeg6-devel libXcomposite-devel libXrandr-devel libXtst-devel libvpx-devel libwebp-devel libxkbfile-devel python3-gobject-devel x264-devel gtk+3-devel pam-devel libXres-devel liblz4-devel libavif-devel procps-ng-devel xxHash-devel" From c7d496ba53bfacf8e69d47d75685c13cb80ecbb7 Mon Sep 17 00:00:00 2001 From: zlice Date: Fri, 31 Mar 2023 09:08:40 -0400 Subject: [PATCH 58/86] openimagedenoise: revbump for ffmpeg6 --- srcpkgs/openimagedenoise/template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/openimagedenoise/template b/srcpkgs/openimagedenoise/template index 109deb171c3f75..44edf38fb289d8 100644 --- a/srcpkgs/openimagedenoise/template +++ b/srcpkgs/openimagedenoise/template @@ -1,7 +1,7 @@ # Template file for 'openimagedenoise' pkgname=openimagedenoise version=1.4.3 -revision=2 +revision=3 archs="x86_64*" build_style=cmake hostmakedepends="ispc python3" From c1e206d472049c2b5d13c092b342183c041cb9c2 Mon Sep 17 00:00:00 2001 From: zlice Date: Mon, 3 Apr 2023 23:31:45 -0400 Subject: [PATCH 59/86] shotcut: revbump for ffmpeg6 --- srcpkgs/shotcut/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/shotcut/template b/srcpkgs/shotcut/template index 13e8a08522b68f..5c9ae4e1847c92 100644 --- a/srcpkgs/shotcut/template +++ b/srcpkgs/shotcut/template @@ -1,14 +1,14 @@ # Template file for 'shotcut' pkgname=shotcut version=23.09.29 -revision=2 +revision=3 build_style=cmake configure_args="-DSHOTCUT_VERSION=${version}" hostmakedepends="pkg-config qt6-base qt6-tools" makedepends="mlt7-devel qt6-declarative-devel qt6-multimedia-devel qt6-websockets-devel qt6-plugin-mysql qt6-plugin-odbc qt6-plugin-pgsql qt6-plugin-sqlite" -depends="ffmpeg frei0r-plugins qt6-declarative" +depends="ffmpeg6 frei0r-plugins qt6-declarative" short_desc="Free, open source, cross-platform video editor" maintainer="John " license="GPL-3.0-or-later" From 277996ad7de868f1c12379e70babfcab9cbb068f Mon Sep 17 00:00:00 2001 From: zlice Date: Sun, 4 Jun 2023 11:28:26 -0400 Subject: [PATCH 60/86] siril: revbump for ffmpeg6 --- srcpkgs/siril/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/siril/template b/srcpkgs/siril/template index 84332f79d060d2..65a7d8f84fe693 100644 --- a/srcpkgs/siril/template +++ b/srcpkgs/siril/template @@ -1,12 +1,12 @@ # Template file for 'siril' pkgname=siril version=0.9.12 -revision=10 +revision=11 build_style=gnu-configure hostmakedepends="pkg-config intltool autoconf automake gettext-devel" makedepends="fftw-devel libconfig-devel libopencv-devel libffms2-devel gsl-devel libraw-devel tiff-devel libpng-devel libcurl-devel - ffmpeg-devel gtk+3-devel cfitsio-devel gsl-devel libgomp-devel" + ffmpeg6-devel gtk+3-devel cfitsio-devel gsl-devel libgomp-devel" depends="gnuplot" short_desc="Free astronomical image processing software" maintainer="Orphaned " From f6c80c8d9c02cf3c069049a30acb6c93fc370534 Mon Sep 17 00:00:00 2001 From: zlice Date: Sat, 8 Jul 2023 20:20:59 -0400 Subject: [PATCH 61/86] tracker-miners: revbump for ffmpeg6 --- srcpkgs/tracker-miners/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/tracker-miners/template b/srcpkgs/tracker-miners/template index 169cfc58afae52..bb4126b4936423 100644 --- a/srcpkgs/tracker-miners/template +++ b/srcpkgs/tracker-miners/template @@ -1,7 +1,7 @@ # Template file for 'tracker-miners' pkgname=tracker-miners version=3.7.3 -revision=1 +revision=2 build_style=meson build_helper=qemu # missing libgrss for miner_rss @@ -14,7 +14,7 @@ configure_args="-Dtracker_core=system -Dextract=true -Dcue=enabled -Dexif=enable -Dsystemd_user_services=false -Dnetwork_manager=enabled $(vopt_feature landlock)" hostmakedepends="pkg-config glib-devel intltool asciidoc" -makedepends="tracker-devel ffmpeg-devel dbus-devel exempi-devel +makedepends="tracker-devel ffmpeg6-devel dbus-devel exempi-devel libglib-devel libgexiv2-devel gstreamer1-devel icu-devel libcue-devel libexif-devel libgsf-devel libgxps-devel libiptcdata-devel libjpeg-turbo-devel libosinfo-devel libpng-devel libseccomp-devel tiff-devel libxml2-devel From cd32dc06397f2baaaa99fa4fe1ad4a1e84d765d7 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 30 Aug 2023 09:10:02 -0400 Subject: [PATCH 62/86] tg_owt: revbump for ffmpeg6 --- srcpkgs/tg_owt/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/tg_owt/template b/srcpkgs/tg_owt/template index 34e8fef0540569..4e13db81869a32 100644 --- a/srcpkgs/tg_owt/template +++ b/srcpkgs/tg_owt/template @@ -1,7 +1,7 @@ # Template file for 'tg_owt' pkgname=tg_owt version=0.0.0.20231221 -revision=2 +revision=3 _commit=afd9d5d31798d3eacf9ed6c30601e91d0f1e4d60 _libyuv_commit=04821d1e7d60845525e8db55c7bcd41ef5be9406 _abseil_commit=8c0b94e793a66495e0b1f34a5eb26bd7dc672db0 @@ -11,7 +11,7 @@ build_style=cmake configure_args="-DBUILD_SHARED_LIBS=OFF -DTG_OWT_ARCH_ARMV7_USE_NEON=OFF" hostmakedepends="pkg-config yasm protobuf" makedepends="alsa-lib-devel pulseaudio-devel openssl-devel opus-devel - pipewire-devel ffmpeg-devel libjpeg-turbo-devel protobuf-devel + pipewire-devel ffmpeg6-devel libjpeg-turbo-devel protobuf-devel libevent-devel libXcomposite-devel libXrandr-devel libXdamage-devel libepoxy-devel libdrm-devel libXrender-devel libglib-devel libgbm-devel libvpx-devel" From 9ecb4f70c18371a1a749e2bb480f442071fddbeb Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 30 Aug 2023 09:10:44 -0400 Subject: [PATCH 63/86] telegram-desktop: revbump for ffmpeg6 --- srcpkgs/telegram-desktop/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/telegram-desktop/template b/srcpkgs/telegram-desktop/template index 4e4aa79747e64a..c57c0373a09327 100644 --- a/srcpkgs/telegram-desktop/template +++ b/srcpkgs/telegram-desktop/template @@ -1,7 +1,7 @@ # Template file for 'telegram-desktop' pkgname=telegram-desktop version=5.1.7 -revision=2 +revision=3 build_style=cmake build_helper="qemu gir" configure_args="-DTDESKTOP_API_ID=209235 @@ -12,7 +12,7 @@ configure_args="-DTDESKTOP_API_ID=209235 -DQT_HOST_PATH=/usr" hostmakedepends="pkg-config qt6-base python3 extra-cmake-modules qt6-wayland-tools wayland-devel protobuf glib-devel kf6-kcoreaddons" -makedepends="alsa-lib-devel boost-devel fmt-devel ffmpeg-devel libglib-devel +makedepends="alsa-lib-devel boost-devel fmt-devel ffmpeg6-devel libglib-devel gobject-introspection libdbusmenu-glib-devel libopenal-devel minizip-devel opus-devel xxHash-devel pulseaudio-devel range-v3 qt6-svg-devel libva-devel rapidjson liblz4-devel liblzma-devel From 6dc66f9df1348df95afa58f7b63465697c5a560f Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 30 Aug 2023 09:12:09 -0400 Subject: [PATCH 64/86] openmw: revbump for ffmpeg6 --- srcpkgs/openmw/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/openmw/template b/srcpkgs/openmw/template index 0abf5ff7cdbecc..2c6c351f606f92 100644 --- a/srcpkgs/openmw/template +++ b/srcpkgs/openmw/template @@ -1,7 +1,7 @@ # Template file for 'openmw' pkgname=openmw version=0.48.0 -revision=2 +revision=3 build_style=cmake _recast_commit=e75adf86f91eb3082220085e42dda62679f9a3ea _bullet_tag=3.17 @@ -10,7 +10,7 @@ _bullet_tag=3.17 configure_args="-DDESIRED_QT_VERSION=5 -DOPENMW_USE_SYSTEM_BULLET=OFF -DOPENMW_LTO_BUILD=ON -DFETCHCONTENT_FULLY_DISCONNECTED=On" hostmakedepends="pkg-config qt5-host-tools qt5-qmake" -makedepends="SDL2-devel boost-devel ffmpeg-devel libXt-devel +makedepends="SDL2-devel boost-devel ffmpeg6-devel libXt-devel libmygui-devel libopenal-devel libunshield-devel osg-devel qt5-devel liblz4-devel yaml-cpp-devel LuaJIT-devel" short_desc="Open Implementation of Morrowind's Engine" From 80e67099ae591eac2cfed519d1700660f163ede7 Mon Sep 17 00:00:00 2001 From: zlice Date: Sun, 15 Oct 2023 21:47:18 -0400 Subject: [PATCH 65/86] libopenshot: revbump for ffmpeg6 --- srcpkgs/libopenshot/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/libopenshot/template b/srcpkgs/libopenshot/template index fc45a258057079..2da22764f66e9b 100644 --- a/srcpkgs/libopenshot/template +++ b/srcpkgs/libopenshot/template @@ -1,13 +1,13 @@ # Template file for 'libopenshot' pkgname=libopenshot version=0.3.2 -revision=1 +revision=2 build_style=cmake # Builds fail with Ruby-2.4.1 configure_args="-DENABLE_RUBY=OFF -DUSE_SYSTEM_JSONCPP=ON" hostmakedepends="swig doxygen ruby python3 python3-setuptools pkg-config qt5-qmake qt5-host-tools" -makedepends="python3-devel ffmpeg-devel libmagick-devel qt5-devel libgomp-devel +makedepends="python3-devel ffmpeg6-devel libmagick-devel qt5-devel libgomp-devel libopenshot-audio-devel qt5-multimedia-devel unittest-cpp zeromq-devel cppzmq jsoncpp-devel qt5-svg-devel" depends="python3" From 4f6cd0dc826088cdcfa5200123fcc4c1ea427f60 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 8 Nov 2023 10:10:30 -0500 Subject: [PATCH 66/86] openimageio: revbump for ffmpeg6 --- srcpkgs/openimageio/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/openimageio/template b/srcpkgs/openimageio/template index 27d2131bc0a61a..27a3ecd3aa92de 100644 --- a/srcpkgs/openimageio/template +++ b/srcpkgs/openimageio/template @@ -1,7 +1,7 @@ # Template file for 'openimageio' pkgname=openimageio version=2.4.9.0 -revision=8 +revision=9 build_style=cmake build_helper=qemu configure_args="-DUSE_QT=0 -DUSE_PYTHON=0 -DOIIO_BUILD_TESTS=0 @@ -10,7 +10,7 @@ configure_args="-DUSE_QT=0 -DUSE_PYTHON=0 -DOIIO_BUILD_TESTS=0 hostmakedepends="pkg-config git" makedepends="boost-devel giflib-devel libraw-devel libopenjpeg-devel libwebp-devel libjpeg-turbo-devel tiff-devel libpng-devel libopenexr-devel freetype-devel - ffmpeg-devel opencolorio-devel ptex-devel libheif-devel openvdb-devel + ffmpeg6-devel opencolorio-devel ptex-devel libheif-devel openvdb-devel robin-map fmt-devel" short_desc="Library for reading and writing images" maintainer="lemmi " From f3cb50132f8a0236e71118075dc7b91202dad754 Mon Sep 17 00:00:00 2001 From: zlice Date: Wed, 8 Nov 2023 10:11:57 -0500 Subject: [PATCH 67/86] synfigstudio: revbump for ffmpeg6 --- srcpkgs/synfigstudio/template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/synfigstudio/template b/srcpkgs/synfigstudio/template index 5cde919b703343..db86252c95d6fe 100644 --- a/srcpkgs/synfigstudio/template +++ b/srcpkgs/synfigstudio/template @@ -2,7 +2,7 @@ # Should be kept in sync with 'synfig' and 'ETL' pkgname=synfigstudio version=1.4.5 -revision=1 +revision=2 build_style=gnu-configure configure_args="--disable-update-mimedb" hostmakedepends="pkg-config intltool gettext synfig" From 5e7b3e041d85f75e2cc6a31eb93dc17f9270be8b Mon Sep 17 00:00:00 2001 From: zlice Date: Fri, 10 Nov 2023 14:53:10 -0500 Subject: [PATCH 68/86] mixxx: revbump for ffmpeg6 --- srcpkgs/mixxx/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/mixxx/template b/srcpkgs/mixxx/template index 6a79b328c1abf0..3568315470a260 100644 --- a/srcpkgs/mixxx/template +++ b/srcpkgs/mixxx/template @@ -1,11 +1,11 @@ # Template file for 'mixxx' pkgname=mixxx version=2.3.3 -revision=7 +revision=8 build_style=cmake configure_args="-DCMAKE_BUILD_TYPE=Release" hostmakedepends="extra-cmake-modules pkg-config protobuf qt5-host-tools qt5-qmake" -makedepends="chromaprint-devel faad2-devel ffmpeg-devel libkeyfinder-devel glu-devel +makedepends="chromaprint-devel faad2-devel ffmpeg6-devel libkeyfinder-devel glu-devel lame-devel libid3tag-devel libmad-devel libmodplug-devel libusb-devel opusfile-devel libflac-devel libogg-devel libsndfile-devel libvorbis-devel wavpack-devel portaudio-devel portmidi-devel protobuf-devel qt5-script-devel From feeec86c5067386c7ecf84e3c69be113b6176915 Mon Sep 17 00:00:00 2001 From: zlice Date: Fri, 10 Nov 2023 14:53:28 -0500 Subject: [PATCH 69/86] musikcube: revbump for ffmpeg6 --- srcpkgs/musikcube/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/musikcube/template b/srcpkgs/musikcube/template index acdf51453b8c94..7b594ac432a666 100644 --- a/srcpkgs/musikcube/template +++ b/srcpkgs/musikcube/template @@ -1,12 +1,12 @@ # Template file for 'musikcube' pkgname=musikcube version=3.0.2 -revision=1 +revision=2 build_style=cmake make_cmd=make configure_args="-DNO_NCURSESW=1" hostmakedepends="pkg-config" -makedepends="libgme-devel libogg-devel libmicrohttpd-devel ffmpeg-devel +makedepends="libgme-devel libogg-devel libmicrohttpd-devel ffmpeg6-devel openssl-devel pulseaudio-devel lame-devel zlib-devel alsa-lib-devel libvorbis-devel libcurl-devel ncurses-devel libev-devel taglib-devel sndio-devel pipewire-devel ncurses-libtinfo-devel libopenmpt-devel From 77f6cbb5acc0f83cdf7a29a0abc8d2388f73a685 Mon Sep 17 00:00:00 2001 From: zlice Date: Fri, 10 Nov 2023 14:54:13 -0500 Subject: [PATCH 70/86] wf-recorder: revbump for ffmpeg6 --- srcpkgs/wf-recorder/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/wf-recorder/template b/srcpkgs/wf-recorder/template index 08f986b0310067..7a1bc7afc509ec 100644 --- a/srcpkgs/wf-recorder/template +++ b/srcpkgs/wf-recorder/template @@ -1,10 +1,10 @@ # Template file for 'wf-recorder' pkgname=wf-recorder version=0.4.1 -revision=2 +revision=3 build_style=meson hostmakedepends="pkg-config scdoc wayland-devel" -makedepends="wayland-protocols wayland-devel ffmpeg-devel libgbm-devel x264-devel +makedepends="wayland-protocols wayland-devel ffmpeg6-devel libgbm-devel x264-devel pulseaudio-devel" short_desc="Screen recorder for wlroots-based compositors" maintainer="Jony " From 74ff30dfd40190ffd94b06f5c6666b819806f50a Mon Sep 17 00:00:00 2001 From: zlice Date: Fri, 10 Nov 2023 14:54:26 -0500 Subject: [PATCH 71/86] obs: revbump for ffmpeg6 --- srcpkgs/obs/template | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/srcpkgs/obs/template b/srcpkgs/obs/template index feb9649977a8d4..dc2f6bd54f6c7e 100644 --- a/srcpkgs/obs/template +++ b/srcpkgs/obs/template @@ -1,14 +1,14 @@ # Template file for 'obs' pkgname=obs version=30.1.1 -revision=1 +revision=2 archs="i686* x86_64* ppc64le* aarch64* riscv64*" build_style=cmake configure_args="-DOBS_VERSION_OVERRIDE=${version} -DENABLE_JACK=ON -DENABLE_VST=OFF -DENABLE_AJA=OFF -DCALM_DEPRECATION=ON -DENABLE_SCRIPTING_LUA=$(vopt_if luajit 'ON' 'OFF')" -hostmakedepends="pkg-config swig python3-devel qt6-base" -makedepends="$(vopt_if luajit LuaJIT-devel) fdk-aac-devel ffmpeg-devel glu-devel +hostmakedepends="pkg-config swig python3-devel qt6-base qt6-base-private-devel" +makedepends="$(vopt_if luajit LuaJIT-devel) fdk-aac-devel ffmpeg6-devel glu-devel jack-devel libXcomposite-devel libcurl-devel libva-devel pulseaudio-devel python3-devel speexdsp-devel v4l-utils-devel vlc-devel qt6-svg-devel x264-devel mbedtls-devel jansson-devel From 4d6400f3552e56cd0bbaee9acbff4166c47ff34c Mon Sep 17 00:00:00 2001 From: zlice Date: Fri, 10 Nov 2023 14:54:36 -0500 Subject: [PATCH 72/86] mlt7: revbump for ffmpeg6 --- srcpkgs/mlt7/template | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/srcpkgs/mlt7/template b/srcpkgs/mlt7/template index 65eed998d39832..3ee0c05f26f9c7 100644 --- a/srcpkgs/mlt7/template +++ b/srcpkgs/mlt7/template @@ -1,13 +1,13 @@ # Template file for 'mlt7' pkgname=mlt7 version=7.20.0 -revision=2 +revision=3 build_style=cmake configure_args="-DSWIG_PYTHON=ON -DMOD_QT6=ON" hostmakedepends="doxygen pkg-config ladspa-sdk swig python3 which qt5-host-tools qt5-qmake qt6-base qt6-tools" -makedepends="alsa-lib-devel ffmpeg-devel gtk+-devel jack-devel ladspa-sdk - libexif-devel libsamplerate-devel libxml2-devel sox-devel SDL_image-devel +makedepends="alsa-lib-devel ffmpeg6-devel gtk+-devel jack-devel ladspa-sdk + libexif-devel libsamplerate-devel libxml2-devel sox-devel SDL2_image-devel fftw-devel frei0r-plugins python3-devel pulseaudio-devel movit-devel libvidstab-devel qt5-svg-devel qt6-svg-devel qt6-qt5compat-devel" depends="mlt7-data>=${version}_${revision} ladspa-sdk-example-plugins" From 3aa219ddcb4bc4bcecc9ae867bd009fec4982989 Mon Sep 17 00:00:00 2001 From: zlice Date: Fri, 10 Nov 2023 15:00:15 -0500 Subject: [PATCH 73/86] baresip: revbump for ffmpeg6 --- srcpkgs/baresip/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/baresip/template b/srcpkgs/baresip/template index e6c845637bb50e..f591afd6c4d53a 100644 --- a/srcpkgs/baresip/template +++ b/srcpkgs/baresip/template @@ -1,13 +1,13 @@ # Template file for 'baresip' pkgname=baresip version=3.11.0 -revision=1 +revision=2 build_style=cmake hostmakedepends="pkg-config glib-devel" makedepends="libgsm-devel libpng-devel openssl-devel libsndfile-devel opus-devel re-devel spandsp-devel speex-devel speexdsp-devel tiff-devel twolame-devel cairo-devel gst-plugins-base1-devel jack-devel - gstreamer1-devel gtk+3-devel mpg123-devel SDL2-devel ffmpeg-devel libvpx-devel + gstreamer1-devel gtk+3-devel mpg123-devel SDL2-devel ffmpeg6-devel libvpx-devel libX11-devel v4l-utils-devel x265-devel libXext-devel webrtc-audio-processing-devel fdk-aac-devel libmosquitto-devel codec2-devel" # sndio-devel Currently not hooked up in their cmake build system From ff369fb1ef630acaa5320d53aa13b64b46ebf3a3 Mon Sep 17 00:00:00 2001 From: zlice Date: Fri, 10 Nov 2023 15:02:30 -0500 Subject: [PATCH 74/86] QMPlay2: revbump for ffmpeg6 --- srcpkgs/QMPlay2/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/QMPlay2/template b/srcpkgs/QMPlay2/template index 054b7bad0452f7..b58ef7c089bd4e 100644 --- a/srcpkgs/QMPlay2/template +++ b/srcpkgs/QMPlay2/template @@ -1,10 +1,10 @@ # Template file for 'QMPlay2' pkgname=QMPlay2 version=24.06.16 -revision=1 +revision=2 build_style=cmake hostmakedepends="pkg-config qt5-qmake qt5-host-tools" -makedepends="alsa-lib-devel ffmpeg-devel libass-devel libcdio-devel libgme-devel +makedepends="alsa-lib-devel ffmpeg6-devel libass-devel libcdio-devel libgme-devel libsidplayfp-devel libva-glx-devel libXv-devel pulseaudio-devel qt5-svg-devel qt5-tools-devel qt5-x11extras-devel taglib-devel libcdio-paranoia-devel qt5-declarative-devel" From 103b1ae3327bb6dcab42a14b977d4c83e08ea630 Mon Sep 17 00:00:00 2001 From: zlice Date: Fri, 10 Nov 2023 15:02:34 -0500 Subject: [PATCH 75/86] alsa-plugins: revbump for ffmpeg6 --- srcpkgs/alsa-plugins/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/alsa-plugins/template b/srcpkgs/alsa-plugins/template index 4c892ed730d9a5..7948570cc0003d 100644 --- a/srcpkgs/alsa-plugins/template +++ b/srcpkgs/alsa-plugins/template @@ -1,11 +1,11 @@ # Template file for 'alsa-plugins' pkgname=alsa-plugins version=1.2.12 -revision=1 +revision=2 build_style=gnu-configure configure_args="--disable-maemo-plugin" hostmakedepends="pkg-config" -makedepends="ffmpeg-devel jack-devel libsamplerate-devel pulseaudio-devel" +makedepends="ffmpeg6-devel jack-devel libsamplerate-devel pulseaudio-devel" short_desc="Advanced Linux Sound Architecture (ALSA) extra plugins" maintainer="Orphaned " license="GPL-2.0-or-later, LGPL-2.1-or-later" From 7d0cad0b663b9ccc21e4bab7e7495167732c1d60 Mon Sep 17 00:00:00 2001 From: zlice Date: Fri, 10 Nov 2023 15:02:43 -0500 Subject: [PATCH 76/86] minidlna: revbump for ffmpeg6 --- srcpkgs/minidlna/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/minidlna/template b/srcpkgs/minidlna/template index 5fa929f3a0c124..473c9a95aeaf43 100644 --- a/srcpkgs/minidlna/template +++ b/srcpkgs/minidlna/template @@ -1,7 +1,7 @@ # Template file for 'minidlna' pkgname=minidlna version=1.3.3 -revision=2 +revision=3 build_style=gnu-configure configure_args=" --sbindir=/usr/bin @@ -12,7 +12,7 @@ make_dirs=" /var/lib/minidlna 0750 minidlna minidlna /var/log/minidlna 0750 minidlna minidlna" hostmakedepends="pkg-config gettext" -makedepends="ffmpeg-devel libjpeg-turbo-devel sqlite-devel libexif-devel +makedepends="ffmpeg6-devel libjpeg-turbo-devel sqlite-devel libexif-devel libid3tag-devel libvorbis-devel libflac-devel" short_desc="DLNA/UPnP-AV compliant media server" maintainer="Duncaen " From 952399bd13528c675e0e5e3b9273d06040030808 Mon Sep 17 00:00:00 2001 From: zlice Date: Mon, 20 Nov 2023 17:57:47 -0500 Subject: [PATCH 77/86] mpv: revbump for ffmpeg6 --- srcpkgs/mpv/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/mpv/template b/srcpkgs/mpv/template index 32dd956c6bf6b6..644b92f2856337 100644 --- a/srcpkgs/mpv/template +++ b/srcpkgs/mpv/template @@ -1,7 +1,7 @@ # Template file for 'mpv' pkgname=mpv version=0.38.0 -revision=2 +revision=3 build_style=meson configure_args="-Dcdda=enabled -Ddvbin=enabled -Ddvdnav=enabled -Dlibmpv=true -Dcplugins=enabled @@ -21,7 +21,7 @@ configure_args="-Dcdda=enabled -Ddvbin=enabled -Ddvdnav=enabled $(vopt_feature pipewire pipewire) $(vopt_feature sndio sndio)" hostmakedepends="pkg-config python3-docutils $(vopt_if wayland wayland-devel)" -makedepends="MesaLib-devel ffmpeg-devel harfbuzz-devel libXv-devel libass-devel +makedepends="MesaLib-devel ffmpeg6-devel harfbuzz-devel libXv-devel libass-devel libbluray-devel libcdio-paranoia-devel libdvdnav-devel libuuid-devel libva-devel rubberband-devel uchardet-devel libplacebo-devel libarchive-devel $(vopt_if alsa alsa-lib-devel) $(vopt_if caca libcaca-devel) From 1b8b1bf0126708715a4646cfda2ab8112f17ed7b Mon Sep 17 00:00:00 2001 From: zlice Date: Mon, 20 Nov 2023 18:00:36 -0500 Subject: [PATCH 78/86] kfilemetadata5: revbump for ffmpeg6 --- srcpkgs/kfilemetadata5/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/kfilemetadata5/template b/srcpkgs/kfilemetadata5/template index a0c4d809395323..51450e80a620fc 100644 --- a/srcpkgs/kfilemetadata5/template +++ b/srcpkgs/kfilemetadata5/template @@ -1,12 +1,12 @@ # Template file for 'kfilemetadata5' pkgname=kfilemetadata5 version=5.115.0 -revision=1 +revision=2 build_style=cmake hostmakedepends="kcoreaddons extra-cmake-modules pkg-config qt5-host-tools qt5-qmake gettext kcoreaddons python3" makedepends="karchive-devel ki18n-devel poppler-qt5-devel kcoreaddons-devel - taglib-devel exiv2-devel ffmpeg-devel attr-devel ebook-tools-devel + taglib-devel exiv2-devel ffmpeg6-devel attr-devel ebook-tools-devel libqmobipocket-devel" short_desc="Simple library for extracting the text and metadata" maintainer="John " From 936d29b81faf1b93dfe9d909e22b1dc9b5e1f995 Mon Sep 17 00:00:00 2001 From: zlice Date: Fri, 8 Dec 2023 11:46:01 -0500 Subject: [PATCH 79/86] vba-m: revbump for ffmpeg6 --- srcpkgs/vba-m/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/vba-m/template b/srcpkgs/vba-m/template index 3d135efa1d0b69..b88d8cf72fdbf4 100644 --- a/srcpkgs/vba-m/template +++ b/srcpkgs/vba-m/template @@ -2,12 +2,12 @@ pkgname=vba-m reverts=1292_2 version=2.1.9 -revision=1 +revision=2 build_style=cmake configure_args="-DENABLE_GTK=TRUE -DENABLE_FFMPEG=TRUE -DENABLE_LINK=TRUE -DCMAKE_BUILD_TYPE=Release" hostmakedepends="gettext pkg-config unzip zip yasm wxWidgets-gtk3-devel" makedepends="zlib-devel libpng-devel MesaLib-devel libopenal-devel SDL2-devel - gtkmm2-devel ffmpeg-devel gtk+3-devel + gtkmm2-devel ffmpeg6-devel gtk+3-devel SFML-devel wxWidgets-gtk3-devel libgomp-devel" short_desc="Gameboy Advance Emulator" maintainer="Andrea Brancaleoni " From e6ed5458410a24d1d53bab5dcecb094f652aee32 Mon Sep 17 00:00:00 2001 From: zlice Date: Fri, 8 Dec 2023 11:46:19 -0500 Subject: [PATCH 80/86] dolphin-emu: revbump for ffmpeg6 --- srcpkgs/audacity/patches/hscroll.patch | 26 +++++++++++++++++++++++ srcpkgs/dolphin-emu/patches/ipproto.patch | 13 ++++++++++++ srcpkgs/dolphin-emu/template | 4 ++-- 3 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 srcpkgs/audacity/patches/hscroll.patch create mode 100644 srcpkgs/dolphin-emu/patches/ipproto.patch diff --git a/srcpkgs/audacity/patches/hscroll.patch b/srcpkgs/audacity/patches/hscroll.patch new file mode 100644 index 00000000000000..2e083792d8e114 --- /dev/null +++ b/srcpkgs/audacity/patches/hscroll.patch @@ -0,0 +1,26 @@ +--- a/libraries/lib-viewport/Viewport.cpp 2024-06-01 09:25:58.915855057 -0400 ++++ b/libraries/lib-viewport/Viewport.cpp 2024-06-01 11:06:08.779799589 -0400 +@@ -326,10 +326,10 @@ + bool newvstate = panelHeight < totalHeight; + + // Hide scrollbar thumbs and buttons if not scrollable +- if (mpCallbacks) { +- mpCallbacks->ShowHorizontalScrollbar(newhstate); +- mpCallbacks->ShowVerticalScrollbar(newvstate); +- } ++ //if (mpCallbacks) { ++ // mpCallbacks->ShowHorizontalScrollbar(newhstate); ++ // mpCallbacks->ShowVerticalScrollbar(newvstate); ++ //} + + // When not scrollable in either axis, align viewport to top or left and + // repaint it later +@@ -378,7 +378,7 @@ + totalHeight / scrollStep, + panelHeight / scrollStep, true); + +- rescroll = (rescroll && ++ rescroll = (rescroll || + (viewInfo.GetScreenEndTime() - viewInfo.hpos) < total); + Publish({ (refresh || rescroll), + (oldhstate != newhstate || oldvstate != newvstate), false }); diff --git a/srcpkgs/dolphin-emu/patches/ipproto.patch b/srcpkgs/dolphin-emu/patches/ipproto.patch new file mode 100644 index 00000000000000..67c371f0b6a900 --- /dev/null +++ b/srcpkgs/dolphin-emu/patches/ipproto.patch @@ -0,0 +1,13 @@ +--- a/Source/Core/Core/HW/EXI/BBA/BuiltIn.h 2023-05-11 17:02:30.000000000 -0400 ++++ b/Source/Core/Core/HW/EXI/BBA/BuiltIn.h 2024-06-04 09:24:19.476262345 -0400 +@@ -20,9 +20,6 @@ + constexpr u16 TCP_FLAG_FIN = 0x1; + constexpr u16 TCP_FLAG_RST = 0x4; + +-constexpr u16 IP_PROTOCOL = 0x800; +-constexpr u16 ARP_PROTOCOL = 0x806; +- + constexpr u8 MAX_TCP_BUFFER = 4; + constexpr u16 MAX_UDP_LENGTH = 1500; + constexpr u16 MAX_TCP_LENGTH = 440; + diff --git a/srcpkgs/dolphin-emu/template b/srcpkgs/dolphin-emu/template index 862d3ae964eec4..c4a6ad40162834 100644 --- a/srcpkgs/dolphin-emu/template +++ b/srcpkgs/dolphin-emu/template @@ -1,7 +1,7 @@ # Template file for 'dolphin-emu' pkgname=dolphin-emu version=5.0.19368 -revision=3 +revision=4 _dolphin_commit=dadbeb4bae7e7fa23af2b46e0add4143094dc107 _mgba_commit=44e074a15e9651481f7f652ac006a7c9d58cbeb9 _googletest_commit=be03d00f5f0cc3a997d1a368bee8a1fe93651f48 @@ -24,7 +24,7 @@ configure_args="-DUSE_SHARED_ENET=ON hostmakedepends="pkg-config qt6-tools qt6-base gettext-devel" makedepends=" zlib-devel glew-devel libusb-devel qt6-base-devel miniupnpc-devel libevdev-devel - SDL2-devel pulseaudio-devel alsa-lib-devel ffmpeg-devel libgomp-devel libcurl-devel + SDL2-devel pulseaudio-devel alsa-lib-devel ffmpeg6-devel libgomp-devel libcurl-devel portaudio-devel libopenal-devel soundtouch-devel lzo-devel libbluetooth-devel mbedtls-devel SFML-devel libenet-devel liblzma-devel pugixml-devel" depends="desktop-file-utils" From 5d3c24eed7d60def6ad5058f464939f49eb1b160 Mon Sep 17 00:00:00 2001 From: zlice Date: Thu, 11 Jan 2024 11:52:00 -0500 Subject: [PATCH 81/86] arcan: revbump for ffmpeg6 --- srcpkgs/arcan/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/arcan/template b/srcpkgs/arcan/template index ff9091f90ebb10..6dfd7ea30859c1 100644 --- a/srcpkgs/arcan/template +++ b/srcpkgs/arcan/template @@ -2,7 +2,7 @@ # !! keep synced with: acfgfs aclip aloadimage pkgname=arcan version=0.6.2.1 -revision=2 +revision=3 create_wrksrc=yes build_wrksrc=arcan/src build_style=cmake @@ -12,7 +12,7 @@ configure_args="-DDISTR_TAG='Void Linux' -DVIDEO_PLATFORM=egl-dri $(vopt_if luajit '-DDISABLE_JIT=OFF' '-DDISABLE_JIT=ON')" hostmakedepends="pkg-config $(vopt_if wayland wayland-devel)" -makedepends="MesaLib-devel ffmpeg-devel file-devel freetype-devel liblzma-devel +makedepends="MesaLib-devel ffmpeg6-devel file-devel freetype-devel liblzma-devel libopenal-devel libusb-devel libvncserver-devel libxkbcommon-devel sqlite-devel vlc-devel SDL2-devel xcb-util-devel xcb-util-wm-devel $(vopt_if tts 'libespeak-ng-devel') From 4beddc89acdab1b4f6d6501db0a4fc123a895b74 Mon Sep 17 00:00:00 2001 From: zlice Date: Thu, 11 Jan 2024 11:52:10 -0500 Subject: [PATCH 82/86] notcurses: revbump for ffmpeg6 --- srcpkgs/notcurses/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/notcurses/template b/srcpkgs/notcurses/template index 48a7463cb68eb9..5704c264d66844 100644 --- a/srcpkgs/notcurses/template +++ b/srcpkgs/notcurses/template @@ -1,11 +1,11 @@ # Template file for 'notcurses' pkgname=notcurses version=3.0.9 -revision=2 +revision=3 build_style=cmake configure_args="-DUSE_STATIC=ON -DUSE_QRCODEGEN=On $(vopt_bool man USE_PANDOC)" hostmakedepends="pkg-config $(vopt_if man pandoc)" -makedepends="libunistring-devel ffmpeg-devel ncurses-libtinfo-devel qrcodegen +makedepends="libunistring-devel ffmpeg6-devel ncurses-libtinfo-devel qrcodegen doctest-devel libdeflate-devel" depends="ncurses-base" short_desc="Blingful character graphics/TUI library" From 7eb16ba1f6670a400b469d7b7db79d1530b27166 Mon Sep 17 00:00:00 2001 From: zlice Date: Mon, 3 Jun 2024 19:45:29 -0400 Subject: [PATCH 83/86] mpd: revbump for ffmpeg6 --- srcpkgs/mpd/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/mpd/template b/srcpkgs/mpd/template index b8e2bd4c1b59c8..7e059ca3f78af5 100644 --- a/srcpkgs/mpd/template +++ b/srcpkgs/mpd/template @@ -1,7 +1,7 @@ # Template file for 'mpd' pkgname=mpd version=0.23.15 -revision=2 +revision=3 build_style=meson configure_args="-Dopus=enabled -Dmikmod=enabled -Dneighbor=true -Dsoundcloud=enabled -Dpipe=true -Dtwolame=enabled -Dbzip2=enabled @@ -18,7 +18,7 @@ configure_args="-Dopus=enabled -Dmikmod=enabled -Dneighbor=true $(vopt_feature openmpt openmpt) $(vopt_feature pipewire pipewire)" conf_files="/etc/mpd.conf" hostmakedepends="pkg-config python3-Sphinx" -makedepends="avahi-glib-libs-devel boost-devel faad2-devel ffmpeg-devel +makedepends="avahi-glib-libs-devel boost-devel faad2-devel ffmpeg6-devel libcurl-devel libid3tag-devel libmad-devel libmikmod-devel libmms-devel libmodplug-devel libmpdclient-devel libnfs-devel libsamplerate-devel libnpupnp-devel mpg123-devel opus-devel yajl-devel pcre2-devel icu-devel From d8bc80f77f5c49c13a691085d620daa459992018 Mon Sep 17 00:00:00 2001 From: zlice Date: Tue, 4 Jun 2024 09:05:18 -0400 Subject: [PATCH 84/86] kf6-kfilemetadata: revbump for ffmpeg6 --- srcpkgs/kf6-kfilemetadata/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/kf6-kfilemetadata/template b/srcpkgs/kf6-kfilemetadata/template index e16935aa52b51b..154b134a46e437 100644 --- a/srcpkgs/kf6-kfilemetadata/template +++ b/srcpkgs/kf6-kfilemetadata/template @@ -1,14 +1,14 @@ # Template file for 'kf6-kfilemetadata' pkgname=kf6-kfilemetadata version=6.3.0 -revision=1 +revision=2 build_style=cmake configure_args="-DKDE_INSTALL_QTPLUGINDIR=lib/qt6/plugins" hostmakedepends="extra-cmake-modules qt6-tools qt6-base gettext pkg-config" makedepends="qt6-base-devel kf6-kcodecs-devel kf6-ki18n-devel kf6-karchive-devel kf6-kcoreaddons-devel kf6-kconfig-devel attr-devel taglib-devel libqmobipocket6-devel - exiv2-devel ffmpeg-devel ebook-tools-devel poppler-qt6-devel" + exiv2-devel ffmpeg6-devel ebook-tools-devel poppler-qt6-devel" short_desc="Library for extracting file metadata" maintainer="John " license="LGPL-2.1-or-later" From 381216f6960ad021cbd81069ca35de741adad892 Mon Sep 17 00:00:00 2001 From: zlice Date: Mon, 3 Apr 2023 23:33:30 -0400 Subject: [PATCH 85/86] shiboken2: revbump for qt5-5.15.11 --- srcpkgs/shiboken2/patches/importlib-machinery-bypass.patch | 1 + 1 file changed, 1 insertion(+) create mode 120000 srcpkgs/shiboken2/patches/importlib-machinery-bypass.patch diff --git a/srcpkgs/shiboken2/patches/importlib-machinery-bypass.patch b/srcpkgs/shiboken2/patches/importlib-machinery-bypass.patch new file mode 120000 index 00000000000000..efcf3249bd8854 --- /dev/null +++ b/srcpkgs/shiboken2/patches/importlib-machinery-bypass.patch @@ -0,0 +1 @@ +../../python3-pyside2/patches/importlib-machinery-bypass.patch \ No newline at end of file From 2f5b3d7d008d1ba8eff0289856cdea7baf59cb7c Mon Sep 17 00:00:00 2001 From: zlice Date: Mon, 3 Apr 2023 23:33:53 -0400 Subject: [PATCH 86/86] python3-pyside2: revbump for qt5-5.15.11 --- .../patches/importlib-machinery-bypass.patch | 15 +++++++++++++++ srcpkgs/python3-pyside2/template | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/python3-pyside2/patches/importlib-machinery-bypass.patch diff --git a/srcpkgs/python3-pyside2/patches/importlib-machinery-bypass.patch b/srcpkgs/python3-pyside2/patches/importlib-machinery-bypass.patch new file mode 100644 index 00000000000000..64c429584776b5 --- /dev/null +++ b/srcpkgs/python3-pyside2/patches/importlib-machinery-bypass.patch @@ -0,0 +1,15 @@ +Using this prevents an error around line 220 below it. +"AttributeError: module 'importlib' has no attribute 'machinery'" +The old backup logic is in place and compiles without issues. +--- a/sources/shiboken2/libshiboken/embed/signature_bootstrap.py 2023-04-02 23:09:34.688912402 -0400 ++++ b/sources/shiboken2/libshiboken/embed/signature_bootstrap.py 2023-04-02 23:10:03.395529582 -0400 +@@ -170,9 +170,6 @@ + + # 'zipstring_sequence' comes from signature.cpp + zipbytes = base64.b64decode(''.join(zipstring_sequence)) +- if sys.version_info[0] >= 3: +- vzip = zipfile.ZipFile(io.BytesIO(zipbytes)) +- return sys.meta_path, EmbeddableZipImporter(vzip) + + # Old version for Python 2.7, only. + import os diff --git a/srcpkgs/python3-pyside2/template b/srcpkgs/python3-pyside2/template index 249efa90988425..52626436ce75f2 100644 --- a/srcpkgs/python3-pyside2/template +++ b/srcpkgs/python3-pyside2/template @@ -1,7 +1,7 @@ # Template file for 'python3-pyside2' pkgname=python3-pyside2 version=5.15.10 -revision=1 +revision=2 _pkgname="pyside-setup-opensource-src-${version}" build_wrksrc="sources/pyside2" build_style=cmake