diff options
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | PKGBUILD | 9 | ||||
-rw-r--r-- | fix_ffmpeg_flag_deprecation.patch | 96 |
3 files changed, 105 insertions, 4 deletions
@@ -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 @@ -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; + } |