File 8376.patch of Package obs-studio (Revision 352e76fb992eee2bc00805f8959a4dbf)

Currently displaying revision 352e76fb992eee2bc00805f8959a4dbf , Show latest

97
 
1
From 1603aaf4a2ef16b7aabb3cf330c7b3fde77ad8ca Mon Sep 17 00:00:00 2001
2
From: pkv <pkv@obsproject.com>
3
Date: Tue, 28 Feb 2023 17:28:38 +0100
4
Subject: [PATCH] obs-ffmpeg: Fix for FFmpeg 6 deprecating a flag
5
6
Also modifies libobs & deps/media-playback.
7
AV_CODEC_CAP_TRUNCATED was removed in avcodec 60 [1].
8
We ifdef the code depending on it to allow compilation.
9
10
[1] avcodec: remove FF_API_FLAG_TRUNCATED
11
https://github.com/FFmpeg/FFmpeg/commit/3ceffe783965767e62d59e8e68ecd265c98460ec
12
13
Signed-off-by: pkv <pkv@obsproject.com>
14
---
15
 deps/media-playback/media-playback/decode.c | 2 ++
16
 deps/media-playback/media-playback/decode.h | 2 ++
17
 libobs/obs-ffmpeg-compat.h                  | 2 ++
18
 plugins/obs-ffmpeg/obs-ffmpeg-compat.h      | 2 ++
19
 plugins/win-dshow/ffmpeg-decode.c           | 2 ++
20
 5 files changed, 10 insertions(+)
21
22
diff --git a/deps/media-playback/media-playback/decode.c b/deps/media-playback/media-playback/decode.c
23
index 05d6afcc649a2..e1aa9aec0577b 100644
24
--- a/deps/media-playback/media-playback/decode.c
25
+++ b/deps/media-playback/media-playback/decode.c
26
@@ -230,8 +230,10 @@ bool mp_decode_init(mp_media_t *m, enum AVMediaType type, bool hw)
27
        d->in_frame = d->sw_frame;
28
    }
29
 
30
+#if LIBAVCODEC_VERSION_MAJOR < 60
31
    if (d->codec->capabilities & CODEC_CAP_TRUNC)
32
        d->decoder->flags |= CODEC_FLAG_TRUNC;
33
+#endif
34
 
35
    d->orig_pkt = av_packet_alloc();
36
    d->pkt = av_packet_alloc();
37
diff --git a/deps/media-playback/media-playback/decode.h b/deps/media-playback/media-playback/decode.h
38
index 1ca271b419fbd..6da34061b3dee 100644
39
--- a/deps/media-playback/media-playback/decode.h
40
+++ b/deps/media-playback/media-playback/decode.h
41
@@ -37,8 +37,10 @@ extern "C" {
42
 #endif
43
 
44
 #if LIBAVCODEC_VERSION_MAJOR >= 58
45
+#if LIBAVCODEC_VERSION_MAJOR < 60
46
 #define CODEC_CAP_TRUNC AV_CODEC_CAP_TRUNCATED
47
 #define CODEC_FLAG_TRUNC AV_CODEC_FLAG_TRUNCATED
48
+#endif
49
 #else
50
 #define CODEC_CAP_TRUNC CODEC_CAP_TRUNCATED
51
 #define CODEC_FLAG_TRUNC CODEC_FLAG_TRUNCATED
52
diff --git a/libobs/obs-ffmpeg-compat.h b/libobs/obs-ffmpeg-compat.h
53
index c4e23b9851242..ad633521e3b0b 100644
54
--- a/libobs/obs-ffmpeg-compat.h
55
+++ b/libobs/obs-ffmpeg-compat.h
56
@@ -23,8 +23,10 @@
57
 #endif
58
 
59
 #if LIBAVCODEC_VERSION_MAJOR >= 58
60
+#if LIBAVCODEC_VERSION_MAJOR < 60
61
 #define CODEC_CAP_TRUNC AV_CODEC_CAP_TRUNCATED
62
 #define CODEC_FLAG_TRUNC AV_CODEC_FLAG_TRUNCATED
63
+#endif
64
 #define INPUT_BUFFER_PADDING_SIZE AV_INPUT_BUFFER_PADDING_SIZE
65
 #else
66
 #define CODEC_CAP_TRUNC CODEC_CAP_TRUNCATED
67
diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-compat.h b/plugins/obs-ffmpeg/obs-ffmpeg-compat.h
68
index 181167aff383d..39efa00c774b3 100644
69
--- a/plugins/obs-ffmpeg/obs-ffmpeg-compat.h
70
+++ b/plugins/obs-ffmpeg/obs-ffmpeg-compat.h
71
@@ -27,8 +27,10 @@
72
 #endif
73
 
74
 #if LIBAVCODEC_VERSION_MAJOR >= 58
75
+#if LIBAVCODEC_VERSION_MAJOR < 60
76
 #define CODEC_CAP_TRUNC AV_CODEC_CAP_TRUNCATED
77
 #define CODEC_FLAG_TRUNC AV_CODEC_FLAG_TRUNCATED
78
+#endif
79
 #define CODEC_FLAG_GLOBAL_H AV_CODEC_FLAG_GLOBAL_HEADER
80
 #else
81
 #define CODEC_CAP_TRUNC CODEC_CAP_TRUNCATED
82
diff --git a/plugins/win-dshow/ffmpeg-decode.c b/plugins/win-dshow/ffmpeg-decode.c
83
index d27c98441da15..49df62b7a79f2 100644
84
--- a/plugins/win-dshow/ffmpeg-decode.c
85
+++ b/plugins/win-dshow/ffmpeg-decode.c
86
@@ -105,8 +105,10 @@ int ffmpeg_decode_init(struct ffmpeg_decode *decode, enum AVCodecID id,
87
        return ret;
88
    }
89
 
90
+#if LIBAVCODEC_VERSION_MAJOR < 60
91
    if (decode->codec->capabilities & CODEC_CAP_TRUNC)
92
        decode->decoder->flags |= CODEC_FLAG_TRUNC;
93
+#endif
94
 
95
    return 0;
96
 }
97