]> git.pld-linux.org Git - packages/chromaprint.git/blobdiff - ffmpeg5-decode-retry.patch
- upstream fixes for ffmpeg 5+, rel 2
[packages/chromaprint.git] / ffmpeg5-decode-retry.patch
diff --git a/ffmpeg5-decode-retry.patch b/ffmpeg5-decode-retry.patch
new file mode 100644 (file)
index 0000000..ecfa7d0
--- /dev/null
@@ -0,0 +1,50 @@
+From 82781d02cd3063d071a501218297a90bde9a314f Mon Sep 17 00:00:00 2001
+From: Marshal Walker <CatmanIX@gmail.com>
+Date: Thu, 8 Dec 2022 11:53:58 -0500
+Subject: [PATCH] ffmpeg5 fix for issue #122
+
+tested on Arch Linux, needs testing on win/mac/etc (should be fine tho)
+---
+ src/audio/ffmpeg_audio_processor_swresample.h | 4 ++--
+ src/audio/ffmpeg_audio_reader.h               | 5 +++--
+ 2 files changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/src/audio/ffmpeg_audio_processor_swresample.h b/src/audio/ffmpeg_audio_processor_swresample.h
+index b1d4bea..e8fcb3f 100644
+--- a/src/audio/ffmpeg_audio_processor_swresample.h
++++ b/src/audio/ffmpeg_audio_processor_swresample.h
+@@ -29,7 +29,7 @@ class FFmpegAudioProcessor {
+       }
+       void SetInputChannelLayout(AVChannelLayout *channel_layout) {
+-              av_opt_set_int(m_swr_ctx, "in_channel_layout", channel_layout->u.mask, 0);
++              av_opt_set_chlayout(m_swr_ctx, "in_chlayout", channel_layout, 0);
+       }
+       void SetInputSampleFormat(AVSampleFormat sample_format) {
+@@ -41,7 +41,7 @@ class FFmpegAudioProcessor {
+       }
+       void SetOutputChannelLayout(AVChannelLayout *channel_layout) {
+-              av_opt_set_int(m_swr_ctx, "out_channel_layout", channel_layout->u.mask, 0);
++              av_opt_set_chlayout(m_swr_ctx, "out_chlayout", channel_layout, 0);
+       }
+       void SetOutputSampleFormat(AVSampleFormat sample_format) {
+diff --git a/src/audio/ffmpeg_audio_reader.h b/src/audio/ffmpeg_audio_reader.h
+index 1c6b346..35b2934 100644
+--- a/src/audio/ffmpeg_audio_reader.h
++++ b/src/audio/ffmpeg_audio_reader.h
+@@ -301,9 +301,10 @@ inline bool FFmpegAudioReader::Read(const int16_t **data, size_t *size) {
+                               } else {
+                                       m_has_more_frames = false;
+                               }
++                      } else {
++                              SetError("Error decoding the audio source", ret);
++                              return false;
+                       }
+-                      SetError("Error decoding the audio source", ret);
+-                      return false;
+               }
+               if (m_frame->nb_samples > 0) {
This page took 0.056782 seconds and 4 git commands to generate.