summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Makles2023-04-10 15:56:51 +0100
committerPaul Makles2023-04-10 15:56:51 +0100
commit3bffddea05afe39a0a709bb07842cb05bea27806 (patch)
tree09ac9f12f7f754b092caf2400dbad417544a5b2d
parentb70b7a07783ddf633576647322188e6bc5bf9fa5 (diff)
downloadaur-obs-studio-ftl.tar.gz
fix: add patch for ffmpeg flag deprecation
-rw-r--r--.SRCINFO4
-rw-r--r--PKGBUILD9
-rw-r--r--fix_ffmpeg_flag_deprecation.patch96
3 files changed, 105 insertions, 4 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 613e1371a0d6..2736bdda0c61 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = obs-studio-ftl
pkgdesc = Free, open source software for live streaming and recording (with FTL protocol support)
pkgver = 29.0.2
- pkgrel = 1
+ pkgrel = 2
url = https://obsproject.com
arch = x86_64
license = GPL2
@@ -38,8 +38,10 @@ pkgbase = obs-studio-ftl
source = obs-studio-ftl-29.0.2.tar.gz::https://github.com/jp9000/obs-studio/archive/29.0.2.tar.gz
source = fix_python_binary_loading.patch
source = ignore_unused_submodules.patch
+ source = fix_ffmpeg_flag_deprecation.patch
sha256sums = 0e6260800b80c3fc9f67c4c3fb12ffae740ab1dd188e526a55e0fc8949168db2
sha256sums = bdfbd062f080bc925588aec1989bb1df34bf779cc2fc08ac27236679cf612abd
sha256sums = 60b0ee1f78df632e1a8c13cb0a7a5772b2a4b092c4a2a78f23464a7d239557c3
+ sha256sums = ae4ec61bfb6076234ab60468625f7d4d701717ae3a18a2e3a96aee20cdbd0bf8
pkgname = obs-studio-ftl
diff --git a/PKGBUILD b/PKGBUILD
index 06747c013c96..703c70ab0d0a 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,7 +6,7 @@
_pkgname=obs-studio
pkgname=obs-studio-ftl
pkgver=29.0.2
-pkgrel=1
+pkgrel=2
pkgdesc="Free, open source software for live streaming and recording (with FTL protocol support)"
arch=('x86_64')
url="https://obsproject.com"
@@ -25,15 +25,18 @@ provides=($_pkgname)
conflicts=($_pkgname)
source=($pkgname-$pkgver.tar.gz::https://github.com/jp9000/obs-studio/archive/$pkgver.tar.gz
fix_python_binary_loading.patch
- ignore_unused_submodules.patch)
+ ignore_unused_submodules.patch
+ fix_ffmpeg_flag_deprecation.patch)
sha256sums=('0e6260800b80c3fc9f67c4c3fb12ffae740ab1dd188e526a55e0fc8949168db2'
'bdfbd062f080bc925588aec1989bb1df34bf779cc2fc08ac27236679cf612abd'
- '60b0ee1f78df632e1a8c13cb0a7a5772b2a4b092c4a2a78f23464a7d239557c3')
+ '60b0ee1f78df632e1a8c13cb0a7a5772b2a4b092c4a2a78f23464a7d239557c3'
+ 'ae4ec61bfb6076234ab60468625f7d4d701717ae3a18a2e3a96aee20cdbd0bf8')
prepare() {
cd $_pkgname-$pkgver
patch -Np1 < "$srcdir"/fix_python_binary_loading.patch
patch -Np1 < "$srcdir"/ignore_unused_submodules.patch
+ patch -Np1 < "$srcdir"/fix_ffmpeg_flag_deprecation.patch
}
build() {
diff --git a/fix_ffmpeg_flag_deprecation.patch b/fix_ffmpeg_flag_deprecation.patch
new file mode 100644
index 000000000000..bf1717ccc0f3
--- /dev/null
+++ b/fix_ffmpeg_flag_deprecation.patch
@@ -0,0 +1,96 @@
+From 1603aaf4a2ef16b7aabb3cf330c7b3fde77ad8ca Mon Sep 17 00:00:00 2001
+From: pkv <pkv@obsproject.com>
+Date: Tue, 28 Feb 2023 17:28:38 +0100
+Subject: [PATCH] obs-ffmpeg: Fix for FFmpeg 6 deprecating a flag
+
+Also modifies libobs & deps/media-playback.
+AV_CODEC_CAP_TRUNCATED was removed in avcodec 60 [1].
+We ifdef the code depending on it to allow compilation.
+
+[1] avcodec: remove FF_API_FLAG_TRUNCATED
+https://github.com/FFmpeg/FFmpeg/commit/3ceffe783965767e62d59e8e68ecd265c98460ec
+
+Signed-off-by: pkv <pkv@obsproject.com>
+---
+ deps/media-playback/media-playback/decode.c | 2 ++
+ deps/media-playback/media-playback/decode.h | 2 ++
+ libobs/obs-ffmpeg-compat.h | 2 ++
+ plugins/obs-ffmpeg/obs-ffmpeg-compat.h | 2 ++
+ plugins/win-dshow/ffmpeg-decode.c | 2 ++
+ 5 files changed, 10 insertions(+)
+
+diff --git a/deps/media-playback/media-playback/decode.c b/deps/media-playback/media-playback/decode.c
+index 05d6afcc649a2..e1aa9aec0577b 100644
+--- a/deps/media-playback/media-playback/decode.c
++++ b/deps/media-playback/media-playback/decode.c
+@@ -230,8 +230,10 @@ bool mp_decode_init(mp_media_t *m, enum AVMediaType type, bool hw)
+ d->in_frame = d->sw_frame;
+ }
+
++#if LIBAVCODEC_VERSION_MAJOR < 60
+ if (d->codec->capabilities & CODEC_CAP_TRUNC)
+ d->decoder->flags |= CODEC_FLAG_TRUNC;
++#endif
+
+ d->orig_pkt = av_packet_alloc();
+ d->pkt = av_packet_alloc();
+diff --git a/deps/media-playback/media-playback/decode.h b/deps/media-playback/media-playback/decode.h
+index 1ca271b419fbd..6da34061b3dee 100644
+--- a/deps/media-playback/media-playback/decode.h
++++ b/deps/media-playback/media-playback/decode.h
+@@ -37,8 +37,10 @@ extern "C" {
+ #endif
+
+ #if LIBAVCODEC_VERSION_MAJOR >= 58
++#if LIBAVCODEC_VERSION_MAJOR < 60
+ #define CODEC_CAP_TRUNC AV_CODEC_CAP_TRUNCATED
+ #define CODEC_FLAG_TRUNC AV_CODEC_FLAG_TRUNCATED
++#endif
+ #else
+ #define CODEC_CAP_TRUNC CODEC_CAP_TRUNCATED
+ #define CODEC_FLAG_TRUNC CODEC_FLAG_TRUNCATED
+diff --git a/libobs/obs-ffmpeg-compat.h b/libobs/obs-ffmpeg-compat.h
+index c4e23b9851242..ad633521e3b0b 100644
+--- a/libobs/obs-ffmpeg-compat.h
++++ b/libobs/obs-ffmpeg-compat.h
+@@ -23,8 +23,10 @@
+ #endif
+
+ #if LIBAVCODEC_VERSION_MAJOR >= 58
++#if LIBAVCODEC_VERSION_MAJOR < 60
+ #define CODEC_CAP_TRUNC AV_CODEC_CAP_TRUNCATED
+ #define CODEC_FLAG_TRUNC AV_CODEC_FLAG_TRUNCATED
++#endif
+ #define INPUT_BUFFER_PADDING_SIZE AV_INPUT_BUFFER_PADDING_SIZE
+ #else
+ #define CODEC_CAP_TRUNC CODEC_CAP_TRUNCATED
+diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-compat.h b/plugins/obs-ffmpeg/obs-ffmpeg-compat.h
+index 181167aff383d..39efa00c774b3 100644
+--- a/plugins/obs-ffmpeg/obs-ffmpeg-compat.h
++++ b/plugins/obs-ffmpeg/obs-ffmpeg-compat.h
+@@ -27,8 +27,10 @@
+ #endif
+
+ #if LIBAVCODEC_VERSION_MAJOR >= 58
++#if LIBAVCODEC_VERSION_MAJOR < 60
+ #define CODEC_CAP_TRUNC AV_CODEC_CAP_TRUNCATED
+ #define CODEC_FLAG_TRUNC AV_CODEC_FLAG_TRUNCATED
++#endif
+ #define CODEC_FLAG_GLOBAL_H AV_CODEC_FLAG_GLOBAL_HEADER
+ #else
+ #define CODEC_CAP_TRUNC CODEC_CAP_TRUNCATED
+diff --git a/plugins/win-dshow/ffmpeg-decode.c b/plugins/win-dshow/ffmpeg-decode.c
+index d27c98441da15..49df62b7a79f2 100644
+--- a/plugins/win-dshow/ffmpeg-decode.c
++++ b/plugins/win-dshow/ffmpeg-decode.c
+@@ -105,8 +105,10 @@ int ffmpeg_decode_init(struct ffmpeg_decode *decode, enum AVCodecID id,
+ return ret;
+ }
+
++#if LIBAVCODEC_VERSION_MAJOR < 60
+ if (decode->codec->capabilities & CODEC_CAP_TRUNC)
+ decode->decoder->flags |= CODEC_FLAG_TRUNC;
++#endif
+
+ return 0;
+ }