Date: Thursday, January 27, 2022 @ 20:50:32 Author: arojas Revision: 1117679
ffmpeg 5 rebuild Added: xmms2/trunk/ffmpeg5.patch Modified: xmms2/trunk/PKGBUILD ---------------+ PKGBUILD | 11 ++++++++--- ffmpeg5.patch | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 3 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2022-01-27 20:50:30 UTC (rev 1117678) +++ PKGBUILD 2022-01-27 20:50:32 UTC (rev 1117679) @@ -9,7 +9,7 @@ pkgname=xmms2 pkgver=0.8DrO_o.7391.dedc33d7 -pkgrel=6 +pkgrel=7 pkgdesc='X-platform Music Multiplexing System 2' arch=(x86_64) url='https://xmms2.org/' @@ -55,7 +55,8 @@ tmpfiles.conf sysusers.conf system.service - user.service) + user.service + ffmpeg5.patch) sha256sums=('SKIP' 'SKIP' 'SKIP' @@ -62,7 +63,8 @@ '13e3e2720e21d048d776156f8ab17c40d05b70437823da00b3c4cc2e7f7ecf7f' 'a37e35dedd48fb8fbc2c97d79be8a3d3c3b00191826f6046f730f649cd67812a' 'a159b18c5959cfe76ca87990ff6879d082bfe9a4c6d674c493461f7f2781f348' - '76f1a06b81cec0f5942430401998f6c8cd9cb95d798f97b854f88afd73ffe61d') + '76f1a06b81cec0f5942430401998f6c8cd9cb95d798f97b854f88afd73ffe61d' + '4a0deb25c83b43f14db8bfe4877f9352b9360239176da3c91824775ea7aff3ef') prepare() { cd xmms2-devel @@ -75,6 +77,9 @@ sed -i 's,#include <cdio/cdda.h>,#include <cdio/paranoia/cdda.h>,' src/plugins/cdda/cdda.c sed -i 's,libsmbclient.h,samba-4.0/libsmbclient.h,' src/plugins/samba/{samba.c,wscript} sed -i 's|Werror|Wno-error|g' waftools/*.py + +# Fix build with FFmpeg 5 + patch -p1 -i ../ffmpeg5.patch } build() { Added: ffmpeg5.patch =================================================================== --- ffmpeg5.patch (rev 0) +++ ffmpeg5.patch 2022-01-27 20:50:32 UTC (rev 1117679) @@ -0,0 +1,37 @@ +diff --git a/src/plugins/avcodec/avcodec.c b/src/plugins/avcodec/avcodec.c +index 23fd4615..506d7cd5 100644 +--- a/src/plugins/avcodec/avcodec.c ++++ b/src/plugins/avcodec/avcodec.c +@@ -477,8 +477,12 @@ xmms_avcodec_internal_decode_some (xmms_avcodec_data_t *data) + /* clear buffers and reset fields to defaults */ + av_frame_unref (data->read_out_frame); + +- bytes_read = avcodec_decode_audio4 ( +- data->codecctx, data->read_out_frame, &got_frame, &packet); ++ bytes_read = avcodec_send_packet(data->codecctx, &packet); ++ if (bytes_read >= 0 || bytes_read == AVERROR_EOF) { ++ bytes_read = avcodec_receive_frame(data->codecctx, data->read_out_frame); ++ if (bytes_read >= 0 || bytes_read == AVERROR(EAGAIN) || bytes_read == AVERROR_EOF) ++ got_frame = 1; ++ } + + /* The DTS decoder of ffmpeg is buggy and always returns + * the input buffer length, get frame length from header */ +diff --git a/src/plugins/avcodec/wscript b/src/plugins/avcodec/wscript +index 00b182b2..f204fcf3 100644 +--- a/src/plugins/avcodec/wscript ++++ b/src/plugins/avcodec/wscript +@@ -40,13 +40,6 @@ def plugin_configure(conf): + conf.check_cc(header_name="avcodec.h", uselib="avcodec", type="cshlib", mandatory=False) + conf.check_cc(header_name="libavcodec/avcodec.h", uselib="avcodec", type="cshlib", mandatory=False) + +- # mandatory function avcodec_decode_audio4 available since +- # * ffmpeg: commit e4de716, lavc 53.40.0, release 0.9 +- # * libav: commit 0eea212, lavc 53.25.0, release 0.8 +- conf.check_cc(fragment=avcodec_decode_audio4_fragment, uselib="avcodec", +- uselib_store="avcodec_decode_audio4", +- msg="Checking for function avcodec_decode_audio4", mandatory=True) +- + # non-mandatory function avcodec_free_frame since + # * ffmpeg: commit 46a3595, lavc 54.59.100, release 1.0 + # * libav: commit a42aada, lavc 54.28.0, release 9
