Date: Sunday, January 23, 2022 @ 22:36:18 Author: arojas Revision: 435015
ffmpeg 5 rebuild Added: chromaprint/trunk/ffmpeg5.patch Modified: chromaprint/trunk/PKGBUILD ---------------+ PKGBUILD | 15 ++++++++--- ffmpeg5.patch | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+), 4 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2022-01-23 20:08:13 UTC (rev 435014) +++ PKGBUILD 2022-01-23 22:36:18 UTC (rev 435015) @@ -4,7 +4,7 @@ pkgname=chromaprint pkgver=1.5.1 -pkgrel=1 +pkgrel=2 pkgdesc="Library for extracting fingerprints from any audio source" url="https://acoustid.org/chromaprint" arch=('x86_64') @@ -13,10 +13,17 @@ makedepends=('cmake' 'ffmpeg' 'gtest') provides=('libchromaprint.so') # upstream signs with DSA key: https://github.com/acoustid/chromaprint/issues/81 -source=("${pkgname}-${pkgver}.tar.gz::https://github.com/acoustid/${pkgname}/archive/v${pkgver}.tar.gz") -sha512sums=('ea16e4d2b879c15b1d9b9ec93878da8b893f1834c70942663e1d2d106c2e0a661094fe2dd3bae7a6c2a1f9d5d8fab5e0b0ba493561090cf57b2228606fad1e66') -b2sums=('9f7f030e97d3114cf679df298d313ea826c0fb05e7e7d8a10090d0a27ed0811b380b81b29fce973e0493826c478964367396311fd0484619cb2fc4c2d8e0d4c0') +source=(https://github.com/acoustid/${pkgname}/archive/v$pkgver/$pkgname-$pkgver.tar.gz + ffmpeg5.patch) +sha512sums=('ea16e4d2b879c15b1d9b9ec93878da8b893f1834c70942663e1d2d106c2e0a661094fe2dd3bae7a6c2a1f9d5d8fab5e0b0ba493561090cf57b2228606fad1e66' + '2d44d4ce2f070e48c1600b8eca386e5610262084aa1de83e46adcd2154fc178faed95a66a3f2d0b8519faa2bae666e6f7337e8a364c04e87cd5c325cbbd2328f') +b2sums=('9f7f030e97d3114cf679df298d313ea826c0fb05e7e7d8a10090d0a27ed0811b380b81b29fce973e0493826c478964367396311fd0484619cb2fc4c2d8e0d4c0' + '9e67be84d26a69916e1846533e98808044412d495abb7a5725141dd81833ac87992ba4a0a49e804c3c7ffe7b01dc2b9e112d6109643654f7fd33f422042bc3a4') +prepare() { + patch -d $pkgname-$pkgver -p1 < ffmpeg5.patch +} + build() { cd "${pkgname}-${pkgver}" cmake -DCMAKE_INSTALL_PREFIX=/usr \ Added: ffmpeg5.patch =================================================================== --- ffmpeg5.patch (rev 0) +++ ffmpeg5.patch 2022-01-23 22:36:18 UTC (rev 435015) @@ -0,0 +1,74 @@ +From 6d938d70b1d52634f8b0d88cb29da87f8d5b35a2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Bernhard=20Rosenkr=C3=A4nzer?= <[email protected]> +Date: Mon, 17 Jan 2022 04:41:33 +0100 +Subject: [PATCH] Port to ffmpeg 5.0 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Replace removed functionality like accessing the codec context +from an AVStream and avcodec_decode_audio4() + +Signed-off-by: Bernhard Rosenkränzer <[email protected]> +--- + src/audio/ffmpeg_audio_reader.h | 24 ++++++++++++++++++++++-- + 1 file changed, 22 insertions(+), 2 deletions(-) + +diff --git a/src/audio/ffmpeg_audio_reader.h b/src/audio/ffmpeg_audio_reader.h +index 5550164..a3b8de7 100644 +--- a/src/audio/ffmpeg_audio_reader.h ++++ b/src/audio/ffmpeg_audio_reader.h +@@ -74,7 +74,7 @@ class FFmpegAudioReader { + 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; +@@ -153,7 +153,7 @@ 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); +@@ -161,7 +161,13 @@ inline bool FFmpegAudioReader::Open(const std::string &file_name) { + } + m_stream_index = ret; + ++#if LIBAVCODEC_VERSION_MAJOR >= 59 ++ const AVCodec *streamcodec = avcodec_find_decoder(m_format_ctx->streams[m_stream_index]->codecpar->codec_id); ++ m_codec_ctx = avcodec_alloc_context3(streamcodec); ++ avcodec_parameters_to_context(m_codec_ctx, m_format_ctx->streams[m_stream_index]->codecpar); ++#else + m_codec_ctx = m_format_ctx->streams[m_stream_index]->codec; ++#endif + m_codec_ctx->request_sample_fmt = AV_SAMPLE_FMT_S16; + + ret = avcodec_open2(m_codec_ctx, codec, nullptr); +@@ -278,7 +284,21 @@ inline bool FFmpegAudioReader::Read(const int16_t **data, size_t *size) { + } + } + ++#if LIBAVCODEC_VERSION_MAJOR < 59 + ret = avcodec_decode_audio4(m_codec_ctx, m_frame, &m_got_frame, &m_packet); ++#else ++ ret = avcodec_receive_frame(m_codec_ctx, m_frame); ++ if (ret == 0) ++ m_got_frame = true; ++ if(ret == AVERROR(EAGAIN)) ++ ret = 0; ++ if (ret == 0) ++ ret = avcodec_send_packet(m_codec_ctx, &m_packet); ++ if (ret == AVERROR(EAGAIN)) ++ ret = 0; ++ if (ret >= 0) ++ ret = m_packet.size; ++#endif + if (ret < 0) { + if (m_decode_error) { + SetError("Error decoding audio frame", m_decode_error);
