diff options
author | Matteo Bernardini | 2024-03-23 10:56:42 +0100 |
---|---|---|
committer | Matteo Bernardini | 2024-03-23 10:56:42 +0100 |
commit | e22d8113df77c5a098b22591ba205cadb9d014d3 (patch) | |
tree | 46e106ecb626f69362ebc7f6e7d4a3e6e8897f26 /libraries/chromaprint | |
parent | ecfbf772e938e6dfdc25bbce4ec902ad04952af9 (diff) | |
download | slackbuilds-e22d8113df77c5a098b22591ba205cadb9d014d3.tar.gz |
20240323.1 global branch merge.current-20240323.1
Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
Diffstat (limited to 'libraries/chromaprint')
-rw-r--r-- | libraries/chromaprint/chromaprint.SlackBuild | 2 | ||||
-rw-r--r-- | libraries/chromaprint/ffmpeg5.patch | 76 |
2 files changed, 78 insertions, 0 deletions
diff --git a/libraries/chromaprint/chromaprint.SlackBuild b/libraries/chromaprint/chromaprint.SlackBuild index 3b01f015bc..7ec8bf6a04 100644 --- a/libraries/chromaprint/chromaprint.SlackBuild +++ b/libraries/chromaprint/chromaprint.SlackBuild @@ -83,6 +83,8 @@ find -L . \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; +patch -p1 < $CWD/ffmpeg5.patch + mkdir -p build cd build cmake \ diff --git a/libraries/chromaprint/ffmpeg5.patch b/libraries/chromaprint/ffmpeg5.patch new file mode 100644 index 0000000000..d90767fd14 --- /dev/null +++ b/libraries/chromaprint/ffmpeg5.patch @@ -0,0 +1,76 @@ +From 6d938d70b1d52634f8b0d88cb29da87f8d5b35a2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Bernhard=20Rosenkr=C3=A4nzer?= <bero@lindev.ch> +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 <bero@lindev.ch> +--- + 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,23 @@ 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 ++ m_got_frame = 0; ++ ret = avcodec_send_packet(m_codec_ctx, &m_packet); ++ if(ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) ++ ret = 0; ++ if(ret >= 0) { ++ ret = avcodec_receive_frame(m_codec_ctx, m_frame); ++ if (ret == 0) { ++ m_got_frame = 1; ++ ret = m_packet.size; ++ } ++ } ++ if(ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) ++ ret = 0; ++#endif + if (ret < 0) { + if (m_decode_error) { + SetError("Error decoding audio frame", m_decode_error); |