summaryrefslogtreecommitdiffstats
path: root/multimedia/obs-studio/patches/1_7ed9b1f.patch
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/obs-studio/patches/1_7ed9b1f.patch')
-rw-r--r--multimedia/obs-studio/patches/1_7ed9b1f.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/multimedia/obs-studio/patches/1_7ed9b1f.patch b/multimedia/obs-studio/patches/1_7ed9b1f.patch
new file mode 100644
index 0000000000..438004ea39
--- /dev/null
+++ b/multimedia/obs-studio/patches/1_7ed9b1f.patch
@@ -0,0 +1,43 @@
+From 7ed9b1f3a6b5e73a39daf906c8e8c19e93fce4b4 Mon Sep 17 00:00:00 2001
+From: Stephen Seo <seo.disparate@gmail.com>
+Date: Wed, 29 Nov 2023 22:06:09 +0900
+Subject: [PATCH] deps/media-playback: Use new (nb_)coded_side_data FFmpeg 6.1
+ API
+
+Fixes for using FFmpeg 6.1 due to deprecations. Uses `#if` macros to
+allow builds for using older versions of FFmpeg.
+
+The change in deps/media-playback/media-playback/decode.c is due to
+FFmpeg moving "side_data" into AVCodecParameters which is mentioned in
+commit [1] in FFmpeg's repository.
+
+In summary of the "side_data" change, AVStream.side_data is deprecated
+and replaced with AVStream.codecpar->coded_side_data, and
+AVStream.nb_side_data is replaced with
+AVStream.codecpar->nb_coded_side_data.
+
+[1]: avcodec/codec_par: add side data to AVCodecParameters
+https://github.com/FFmpeg/FFmpeg/commit/21d7cc6fa9a26e94965fa71b25655d07568450fe
+---
+ deps/media-playback/media-playback/decode.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/deps/media-playback/media-playback/decode.c b/deps/media-playback/media-playback/decode.c
+index 55b91c140ace4..40853f171bde7 100644
+--- a/deps/media-playback/media-playback/decode.c
++++ b/deps/media-playback/media-playback/decode.c
+@@ -114,8 +114,14 @@ static uint16_t get_max_luminance(const AVStream *stream)
+ {
+ uint32_t max_luminance = 0;
+
++#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(60, 31, 102)
+ for (int i = 0; i < stream->nb_side_data; i++) {
+ const AVPacketSideData *const sd = &stream->side_data[i];
++#else
++ for (int i = 0; i < stream->codecpar->nb_coded_side_data; i++) {
++ const AVPacketSideData *const sd =
++ &stream->codecpar->coded_side_data[i];
++#endif
+ switch (sd->type) {
+ case AV_PKT_DATA_MASTERING_DISPLAY_METADATA: {
+ const AVMasteringDisplayMetadata *mastering =