File 8376.patch of Package obs-studio (Revision 7dd164f2315b04aafad960cea9e6799c)
Currently displaying revision 7dd164f2315b04aafad960cea9e6799c , 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
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
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
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
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
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