summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJimi Huotari <chiitoo@gentoo.org>2022-04-01 21:24:03 +0300
committerIonen Wolkens <ionen@gentoo.org>2022-04-01 15:42:51 -0400
commit7dcedc667ad80443fc894f4f8aee62ec44785fa0 (patch)
tree7736b31699b6f73d7bed4a9135a31b3b9182ff11 /media-video/obs-studio
parentmedia-video/obs-studio: add version 27.2.4 (diff)
downloadgentoo-7dcedc667ad80443fc894f4f8aee62ec44785fa0.tar.gz
gentoo-7dcedc667ad80443fc894f4f8aee62ec44785fa0.tar.bz2
gentoo-7dcedc667ad80443fc894f4f8aee62ec44785fa0.zip
media-video/obs-studio: remove version 27.1.3
Also remove no longer needed patches. Package-Manager: Portage-3.0.30, Repoman-3.0.3 Signed-off-by: Jimi Huotari <chiitoo@gentoo.org> Closes: https://github.com/gentoo/gentoo/pull/24853 Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
Diffstat (limited to 'media-video/obs-studio')
-rw-r--r--media-video/obs-studio/Manifest3
-rw-r--r--media-video/obs-studio/files/obs-studio-26.1.2-python-3.8.patch18
-rw-r--r--media-video/obs-studio/files/obs-studio-27.1.3-ffmpeg-5.0.patch314
-rw-r--r--media-video/obs-studio/obs-studio-27.1.3-r2.ebuild214
4 files changed, 0 insertions, 549 deletions
diff --git a/media-video/obs-studio/Manifest b/media-video/obs-studio/Manifest
index e6d41f708a76..86c897e4d5f3 100644
--- a/media-video/obs-studio/Manifest
+++ b/media-video/obs-studio/Manifest
@@ -1,7 +1,4 @@
-DIST cef_binary_4280_linux64.tar.bz2 79740715 BLAKE2B c648a9a4205094450f9eae407e98cbc3da2b7cd81b3c19c4f52cfa3efcca01dce40528018996c65f026eb97520d78040165d1906b0d19236a86e76ec39c58c26 SHA512 060a5a8716a75b4b96dfb6ac28c132e22b93107915d680311c1b9d4fd12c7712a9e3497338eac6d2b9f4e74f2dc005a75d195c597bba049e4731fe3724f519ba
DIST cef_binary_4638_linux64.tar.bz2 104578246 BLAKE2B 13ee05d4a2fbf27290506297416b298c786954450c19183b493d13aa691db409c22b30870fbc55adf814ff30142a666eb8b172f16ccc48e6cf01135c72e5d6d6 SHA512 2eb01151e07adf332affce36a659c6e87da1fbc403c65db7e7c53472ff418df6cd04300a7c6ebc8789c094926429cc70d829e556e5de3127da230f8258fabe49
DIST obs-browser-915761778ec1eae99e740ad4bf63b40db3142ee2.tar.gz 100021 BLAKE2B d72df588aaeaf199c6ea5a7e419bb4792ef8b4c4237e700f75064d96caaec83ed2be2ea4ab34ba31e30a87ec6cbf1f267dd7b100c3a6cfec36e46b2eca8c4b2e SHA512 3ab6118a9509054ea4e8aed14dade7f374495ba25fcb5295a3ef7ed29e6e3305b0ae2f12ba2c0d27fcd6886822c98ab44a48fa9a4b66ae0507ab2bf1001157cb
-DIST obs-browser-aee43000bd994022cd73e32dc50938ab777d4a06.tar.gz 89603 BLAKE2B a51b92f829ecb7055dcf969d6d5bdc4632b51288f0bc7e2ab66fda087da608869ddffccda83aa925f049c79e745a6f67e70ec72303184b970f5009fe37b34054 SHA512 8159ca02b5c30d2733ce8e566f21d6b77d6b7beabd0a5898049ee83b0b4d720b967fc55fcf876cd772fdaa12ca08163a0f8cabf249a9b3b6eb56b7666d1192c7
-DIST obs-studio-27.1.3.tar.gz 15994678 BLAKE2B 5544a1ecdb04dca7f6422936ea5499a206b4beb8e5332605c18cd72a91ce73aa74ff06c49a106931822c1c413ee94d383942f173a71f2b21168a00495b4e301f SHA512 04c11c79e3b091aa9ea8fc6674c9fbcaa1c924fe049f68e9be63f63724c31305d6e4fb33aecdd4d0095d20013e2ee188983f6938b175257368d2260681c2fb39
DIST obs-studio-27.2.3.tar.gz 16383685 BLAKE2B 76802ba67dcebccabd9b2a1f09f505a4aea83887b445093c51a2c7a49fbaa064549b6212bd1b2f3200674a78349b2de4bfa54d14871c76be248cd62139d98a56 SHA512 c34e850e1a83e55aed952611257446a39d7ba4456b94f74d91c85d09d77361af2f76848f7d3f3d8ba7ae76c926129adad555e2f54d632658832596d0f2696a3c
DIST obs-studio-27.2.4.tar.gz 16385399 BLAKE2B 00c05ecd055d707b7132ca4b20e1c4946b682c0f79f1477167ae55aba3ec367c97b05aac190b07260f936e68f79f2d58e19dcc0602f70408f4c056eb733a6fdd SHA512 575341dd3d9240b21881517a16d01ca11f833e08b40ca7990f0360b4cd1076e8217a9bb8dddf174eca5429e6eadaadb6cfdbd61d24e0eb13ebeaa7f29cfad8bf
diff --git a/media-video/obs-studio/files/obs-studio-26.1.2-python-3.8.patch b/media-video/obs-studio/files/obs-studio-26.1.2-python-3.8.patch
deleted file mode 100644
index d9e328ea4efb..000000000000
--- a/media-video/obs-studio/files/obs-studio-26.1.2-python-3.8.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-https://bugs.gentoo.org/754006
-
-https://github.com/obsproject/obs-studio/pull/3335
-From: Matt Gajownik <matt@obsproject.com>
-Date: Tue, 25 Aug 2020 19:28:26 +1000
-Subject: [PATCH] libobs/util: Fix loading Python binary modules on *nix
---- a/libobs/util/platform-nix.c
-+++ b/libobs/util/platform-nix.c
-@@ -71,7 +71,8 @@ void *os_dlopen(const char *path)
- #ifdef __APPLE__
- void *res = dlopen(dylib_name.array, RTLD_LAZY | RTLD_FIRST);
- #else
-- void *res = dlopen(dylib_name.array, RTLD_LAZY);
-+ void *res = dlopen(dylib_name.array,
-+ RTLD_LAZY | RTLD_DEEPBIND | RTLD_GLOBAL);
- #endif
- if (!res)
- blog(LOG_ERROR, "os_dlopen(%s->%s): %s\n", path,
diff --git a/media-video/obs-studio/files/obs-studio-27.1.3-ffmpeg-5.0.patch b/media-video/obs-studio/files/obs-studio-27.1.3-ffmpeg-5.0.patch
deleted file mode 100644
index a529dca715a9..000000000000
--- a/media-video/obs-studio/files/obs-studio-27.1.3-ffmpeg-5.0.patch
+++ /dev/null
@@ -1,314 +0,0 @@
-# https://git.exherbo.org/media.git/commit/?id=10c891cb37f4f7e42e95a00b27a5d4636266353e
-# https://git.exherbo.org/media.git/commit/?id=e888c31724357431dbd0e73014ca87a552850d45
-
-From 08547a1696fa381d0bda18aed57b9f87a6b1b334 Mon Sep 17 00:00:00 2001
-From: Ryan Foster <RytoEX@gmail.com>
-Date: Sat, 6 Nov 2021 18:57:35 -0400
-Subject: [PATCH] obs-ffmpeg: Include avcodec header for AVCodecContext
-
-FFmpeg commit e67e02d15672 [1] drops avcodec.h from avformat.h includes.
-Therefore we need to include it explicitly.
-
-[1]: https://github.com/FFmpeg/FFmpeg/commit/e67e02d15672a87da1b0566e197a1e19dc7e1e33
- lavf/avformat.h: drop the avcodec.h include
----
- plugins/obs-ffmpeg/ffmpeg-mux/ffmpeg-mux.c | 1 +
- plugins/obs-ffmpeg/obs-ffmpeg-formats.h | 2 ++
- plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c | 1 +
- plugins/obs-ffmpeg/obs-ffmpeg-output.h | 1 +
- 4 files changed, 5 insertions(+)
-
-diff --git a/plugins/obs-ffmpeg/ffmpeg-mux/ffmpeg-mux.c b/plugins/obs-ffmpeg/ffmpeg-mux/ffmpeg-mux.c
-index 1c160ced4b1f..e4c6cdb9fa2f 100644
---- a/plugins/obs-ffmpeg/ffmpeg-mux/ffmpeg-mux.c
-+++ b/plugins/obs-ffmpeg/ffmpeg-mux/ffmpeg-mux.c
-@@ -27,6 +27,7 @@
- #include "ffmpeg-mux.h"
-
- #include <util/dstr.h>
-+#include <libavcodec/avcodec.h>
- #include <libavformat/avformat.h>
-
- #define ANSI_COLOR_RED "\x1b[0;91m"
-diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-formats.h b/plugins/obs-ffmpeg/obs-ffmpeg-formats.h
-index 62e3866d037a..b40ef37293b4 100644
---- a/plugins/obs-ffmpeg/obs-ffmpeg-formats.h
-+++ b/plugins/obs-ffmpeg/obs-ffmpeg-formats.h
-@@ -1,5 +1,7 @@
- #pragma once
-
-+#include <libavcodec/avcodec.h>
-+
- static inline int64_t rescale_ts(int64_t val, AVCodecContext *context,
- AVRational new_base)
- {
-diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c b/plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c
-index f2d93d2def89..e66010ce5f9c 100644
---- a/plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c
-+++ b/plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c
-@@ -24,6 +24,7 @@
-
- #include <libavutil/opt.h>
- #include <libavutil/pixdesc.h>
-+#include <libavcodec/avcodec.h>
- #include <libavformat/avformat.h>
-
- #include "obs-ffmpeg-formats.h"
-diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-output.h b/plugins/obs-ffmpeg/obs-ffmpeg-output.h
-index 99f4dcd13b44..72d89dfacc4c 100644
---- a/plugins/obs-ffmpeg/obs-ffmpeg-output.h
-+++ b/plugins/obs-ffmpeg/obs-ffmpeg-output.h
-@@ -2,6 +2,7 @@
-
- #include <libavutil/opt.h>
- #include <libavutil/pixdesc.h>
-+#include <libavcodec/avcodec.h>
- #include <libavformat/avformat.h>
- #include <libswscale/swscale.h>
-
-From abf1d609d29196921df8f09ab6e07340b7cf9660 Mon Sep 17 00:00:00 2001
-From: Ryan Foster <RytoEX@gmail.com>
-Date: Sat, 6 Nov 2021 18:58:05 -0400
-Subject: [PATCH] obs-ffmpeg: Include channel_layout.h
-
-avcodec.h stopped including channel_layout.h per FFmpeg commit
-1be3d8a0cb77 [1]. avformat.h stopped including avcodec.h per FFmpeg
-commit e67e02d15672 [2]. As a result, we need to explicitly include
-avutil/channel_layout.h when needed. Fixes compilation error against
-FFmpeg later than the two mentioned commits.
-
-[1]: https://github.com/FFmpeg/FFmpeg/commit/1be3d8a0cb77f8d34c1f39b47bf5328fe10c82d7
-[2]: https://github.com/FFmpeg/FFmpeg/commit/e67e02d15672a87da1b0566e197a1e19dc7e1e33
----
- plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c b/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c
-index 2e3899464362..cbcb9ac31bcb 100644
---- a/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c
-+++ b/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c
-@@ -21,6 +21,7 @@
- #include <util/dstr.h>
- #include <obs-module.h>
-
-+#include <libavutil/channel_layout.h>
- #include <libavutil/opt.h>
- #include <libavformat/avformat.h>
-
-From ce734366bc0b95ff91930f463e7ebe528cf8eabf Mon Sep 17 00:00:00 2001
-From: Ryan Foster <RytoEX@gmail.com>
-Date: Sat, 6 Nov 2021 18:58:36 -0400
-Subject: [PATCH] obs-ffmpeg: Respect AVFormatContext and AVOutputFormat
- constness
-
-AVFormatContext::oformat was made const on April 27, 2021 [1]. If we
-respect the constness of AVOutputFormat and do not cast results from
-FFmpeg functions to non-const, we cannot modify the results after the
-fact. Our choices are either to cast them to non-const (and presumably
-have them implicitly casted back to const on later function calls), or
-only try to modify the results in versions of FFmpeg where these are not
-expected to be const.
-
-Instead of relying on casts, we can set the encoder values in the
-ffmpeg_cfg struct, which are later passed to new_stream.
-
-Also modifies deps/media-playback. Removes compiler warnings.
-Some avformat functions return const AV(In/Out)putFormat per [1], so
-ifdef as needed.
-
-[1]: https://github.com/FFmpeg/FFmpeg/commit/56450a0ee4fdda160f4039fc2ae33edfd27765c9
- lavf 59.0.100 avformat.h
- avformat: Constify the API wrt AV(In|Out)putFormat
-
- Also constify AVProbeData.
----
- deps/media-playback/media-playback/media.c | 4 ++++
- plugins/obs-ffmpeg/ffmpeg-mux/ffmpeg-mux.c | 10 ++++++++++
- plugins/obs-ffmpeg/obs-ffmpeg-output.c | 19 ++++++++++++++++++-
- 3 files changed, 32 insertions(+), 1 deletion(-)
-
-diff --git a/deps/media-playback/media-playback/media.c b/deps/media-playback/media-playback/media.c
-index 9041b62e9cdd..a09b58ed5d10 100644
---- a/deps/media-playback/media-playback/media.c
-+++ b/deps/media-playback/media-playback/media.c
-@@ -608,7 +608,11 @@ static int interrupt_callback(void *data)
-
- static bool init_avformat(mp_media_t *m)
- {
-+#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(59, 0, 100)
- AVInputFormat *format = NULL;
-+#else
-+ const AVInputFormat *format = NULL;
-+#endif
-
- if (m->format_name && *m->format_name) {
- format = av_find_input_format(m->format_name);
-diff --git a/plugins/obs-ffmpeg/ffmpeg-mux/ffmpeg-mux.c b/plugins/obs-ffmpeg/ffmpeg-mux/ffmpeg-mux.c
-index e4c6cdb9fa2f..ffce3ee33eec 100644
---- a/plugins/obs-ffmpeg/ffmpeg-mux/ffmpeg-mux.c
-+++ b/plugins/obs-ffmpeg/ffmpeg-mux/ffmpeg-mux.c
-@@ -565,7 +565,11 @@ static inline bool ffmpeg_mux_get_extra_data(struct ffmpeg_mux *ffm)
-
- static inline int open_output_file(struct ffmpeg_mux *ffm)
- {
-+#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(59, 0, 100)
- AVOutputFormat *format = ffm->output->oformat;
-+#else
-+ const AVOutputFormat *format = ffm->output->oformat;
-+#endif
- int ret;
-
- if ((format->flags & AVFMT_NOFILE) == 0) {
-@@ -631,7 +635,11 @@ static bool ffmpeg_mux_is_network(struct ffmpeg_mux *ffm)
-
- static int ffmpeg_mux_init_context(struct ffmpeg_mux *ffm)
- {
-+#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(59, 0, 100)
- AVOutputFormat *output_format;
-+#else
-+ const AVOutputFormat *output_format;
-+#endif
- int ret;
- bool is_http = false;
- is_http = (strncmp(ffm->params.file, HTTP_PROTO,
-@@ -665,8 +673,10 @@ static int ffmpeg_mux_init_context(struct ffmpeg_mux *ffm)
- return FFM_ERROR;
- }
-
-+#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(59, 0, 100)
- ffm->output->oformat->video_codec = AV_CODEC_ID_NONE;
- ffm->output->oformat->audio_codec = AV_CODEC_ID_NONE;
-+#endif
-
- if (!init_streams(ffm)) {
- free_avformat(ffm);
-diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-output.c b/plugins/obs-ffmpeg/obs-ffmpeg-output.c
-index 6bc1637b1796..7447e952b9c2 100644
---- a/plugins/obs-ffmpeg/obs-ffmpeg-output.c
-+++ b/plugins/obs-ffmpeg/obs-ffmpeg-output.c
-@@ -543,6 +543,7 @@ static enum AVCodecID get_codec_id(const char *name, int id)
- return codec->id;
- }
-
-+#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(59, 0, 100)
- static void set_encoder_ids(struct ffmpeg_data *data)
- {
- data->output->oformat->video_codec = get_codec_id(
-@@ -551,6 +552,7 @@ static void set_encoder_ids(struct ffmpeg_data *data)
- data->output->oformat->audio_codec = get_codec_id(
- data->config.audio_encoder, data->config.audio_encoder_id);
- }
-+#endif
-
- bool ffmpeg_data_init(struct ffmpeg_data *data, struct ffmpeg_cfg *config)
- {
-@@ -570,7 +572,13 @@ bool ffmpeg_data_init(struct ffmpeg_data *data, struct ffmpeg_cfg *config)
-
- is_rtmp = (astrcmpi_n(config->url, "rtmp://", 7) == 0);
-
-- AVOutputFormat *output_format = av_guess_format(
-+#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(59, 0, 100)
-+ AVOutputFormat *output_format;
-+#else
-+ const AVOutputFormat *output_format;
-+#endif
-+
-+ output_format = av_guess_format(
- is_rtmp ? "flv" : data->config.format_name, data->config.url,
- is_rtmp ? NULL : data->config.format_mime_type);
-
-@@ -596,6 +604,7 @@ bool ffmpeg_data_init(struct ffmpeg_data *data, struct ffmpeg_cfg *config)
- goto fail;
- }
-
-+#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(59, 0, 100)
- if (is_rtmp) {
- data->output->oformat->video_codec = AV_CODEC_ID_H264;
- data->output->oformat->audio_codec = AV_CODEC_ID_AAC;
-@@ -603,6 +612,14 @@ bool ffmpeg_data_init(struct ffmpeg_data *data, struct ffmpeg_cfg *config)
- if (data->config.format_name)
- set_encoder_ids(data);
- }
-+#else
-+ if (is_rtmp) {
-+ data->config.audio_encoder = "aac";
-+ data->config.audio_encoder_id = AV_CODEC_ID_AAC;
-+ data->config.video_encoder = "libx264";
-+ data->config.video_encoder_id = AV_CODEC_ID_H264;
-+ }
-+#endif
-
- if (!init_streams(data))
- goto fail;
-
-From d78971b4db34d5fffbd11d2acabf37a65e11cd58 Mon Sep 17 00:00:00 2001
-From: pkv <pkv@obsproject.com>
-Date: Fri, 17 Dec 2021 20:52:11 +0100
-Subject: [PATCH] obs-ffmpeg: Further FFmpeg deprecations fixes for FFmpeg 4.4+
-
-avcodec.h stopped including channel_layout.h per FFmpeg commit
-1be3d8a0cb77 [1]. Fixes compilation error on macOS against
-FFmpeg later than the mentioned commit.
-[1] https://github.com/FFmpeg/FFmpeg/commit/1be3d8a0cb77f8d34c1f39b47bf5328fe10c82d7
----
- plugins/obs-ffmpeg/ffmpeg-mux/ffmpeg-mux.c | 1 +
- plugins/obs-ffmpeg/obs-ffmpeg-output.c | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/plugins/obs-ffmpeg/ffmpeg-mux/ffmpeg-mux.c b/plugins/obs-ffmpeg/ffmpeg-mux/ffmpeg-mux.c
-index c07e22abe266..db26cb425ce5 100644
---- a/plugins/obs-ffmpeg/ffmpeg-mux/ffmpeg-mux.c
-+++ b/plugins/obs-ffmpeg/ffmpeg-mux/ffmpeg-mux.c
-@@ -29,6 +29,7 @@
- #include <util/dstr.h>
- #include <libavcodec/avcodec.h>
- #include <libavformat/avformat.h>
-+#include <libavutil/channel_layout.h>
-
- #define ANSI_COLOR_RED "\x1b[0;91m"
- #define ANSI_COLOR_MAGENTA "\x1b[0;95m"
-diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-output.c b/plugins/obs-ffmpeg/obs-ffmpeg-output.c
-index d3637ebbb59b..7d1f12a60393 100644
---- a/plugins/obs-ffmpeg/obs-ffmpeg-output.c
-+++ b/plugins/obs-ffmpeg/obs-ffmpeg-output.c
-@@ -25,6 +25,7 @@
- #include "obs-ffmpeg-output.h"
- #include "obs-ffmpeg-formats.h"
- #include "obs-ffmpeg-compat.h"
-+#include <libavutil/channel_layout.h>
-
- struct ffmpeg_output {
- obs_output_t *output;
-
-From c398ac9739a82bc95632eef9544dd0fb5bc5f0cf Mon Sep 17 00:00:00 2001
-From: pkv <pkv@obsproject.com>
-Date: Sat, 6 Nov 2021 18:59:37 -0400
-Subject: [PATCH] obs-ffmpeg: Fix NVENC old codec naming removed in FFmpeg
-
-Per FFmpeg commit 337f777f378c [1], FFmpeg removed nvenc_h264_encoder
-and nvenc_hevc_encoder after deprecation in FFmpeg commit 888a5c794778
-[2]. The names to be used are ff_h264_nvenc_encoder and
-ff_hevc_nvenc_encoder. So we must allow alternative search of codec as
-h264_nvenc or nvenc_h264 in obs-ffmpeg.c.
-
-[1]: https://github.com/FFmpeg/FFmpeg/commit/337f777f378cfcc0d6f0d01fb7125905e8b0da55
-[2]: https://github.com/FFmpeg/FFmpeg/commit/888a5c794778a2f2aad22e9b4a3952dff92b11fa
----
- plugins/obs-ffmpeg/obs-ffmpeg.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/plugins/obs-ffmpeg/obs-ffmpeg.c b/plugins/obs-ffmpeg/obs-ffmpeg.c
-index 7330b2273544..399c5bfa64b6 100644
---- a/plugins/obs-ffmpeg/obs-ffmpeg.c
-+++ b/plugins/obs-ffmpeg/obs-ffmpeg.c
-@@ -180,7 +180,9 @@ static bool nvenc_supported(void)
- bool success = false;
-
- if (!nvenc) {
-- goto cleanup;
-+ nvenc = avcodec_find_encoder_by_name("h264_nvenc");
-+ if (!nvenc)
-+ goto cleanup;
- }
-
- #if defined(_WIN32)
diff --git a/media-video/obs-studio/obs-studio-27.1.3-r2.ebuild b/media-video/obs-studio/obs-studio-27.1.3-r2.ebuild
deleted file mode 100644
index a018ce0e7966..000000000000
--- a/media-video/obs-studio/obs-studio-27.1.3-r2.ebuild
+++ /dev/null
@@ -1,214 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CMAKE_REMOVE_MODULES_LIST=( FindFreetype )
-LUA_COMPAT=( luajit )
-PYTHON_COMPAT=( python3_{8..10} )
-
-inherit cmake lua-single python-single-r1 xdg
-
-OBS_BROWSER_COMMIT="aee43000bd994022cd73e32dc50938ab777d4a06"
-CEF_DIR="cef_binary_4280_linux64"
-
-if [[ ${PV} == 9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/obsproject/obs-studio.git"
- EGIT_SUBMODULES=( plugins/obs-browser )
-else
- SRC_URI="https://github.com/obsproject/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
- SRC_URI+=" browser? ( https://github.com/obsproject/obs-browser/archive/${OBS_BROWSER_COMMIT}.tar.gz -> obs-browser-${OBS_BROWSER_COMMIT}.tar.gz )"
- KEYWORDS="~amd64 ~ppc64 ~x86"
-fi
-SRC_URI+=" browser? ( https://cdn-fastly.obsproject.com/downloads/${CEF_DIR}.tar.bz2 )"
-
-DESCRIPTION="Software for Recording and Streaming Live Video Content"
-HOMEPAGE="https://obsproject.com"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="
- +alsa browser decklink fdk jack lua nvenc pipewire
- pulseaudio python speex +ssl truetype v4l vlc wayland
-"
-REQUIRED_USE="
- browser? ( || ( alsa pulseaudio ) )
- lua? ( ${LUA_REQUIRED_USE} )
- python? ( ${PYTHON_REQUIRED_USE} )
-"
-
-BDEPEND="
- lua? ( dev-lang/swig )
- python? ( dev-lang/swig )
-"
-DEPEND="
- dev-libs/glib:2
- dev-libs/jansson:=
- dev-qt/qtcore:5
- dev-qt/qtdeclarative:5
- dev-qt/qtgui:5[wayland?]
- dev-qt/qtmultimedia:5
- dev-qt/qtnetwork:5
- dev-qt/qtquickcontrols:5
- dev-qt/qtsql:5
- dev-qt/qtsvg:5
- dev-qt/qtwidgets:5
- dev-qt/qtx11extras:5
- dev-qt/qtxml:5
- media-libs/libglvnd
- media-libs/x264:=
- media-video/ffmpeg:=[nvenc?,x264]
- net-misc/curl
- sys-apps/dbus
- sys-libs/zlib:=
- virtual/udev
- x11-libs/libX11
- x11-libs/libXcomposite
- x11-libs/libXfixes
- x11-libs/libXinerama
- x11-libs/libXrandr
- x11-libs/libxcb:=
- alsa? ( media-libs/alsa-lib )
- browser? (
- app-accessibility/at-spi2-atk
- app-accessibility/at-spi2-core:2
- dev-libs/atk
- dev-libs/expat
- dev-libs/glib
- dev-libs/nspr
- dev-libs/nss
- media-libs/alsa-lib
- media-libs/fontconfig
- media-libs/mesa[gbm(+)]
- net-print/cups
- x11-libs/libdrm
- x11-libs/libXScrnSaver
- x11-libs/libXcursor
- x11-libs/libXdamage
- x11-libs/libXext
- x11-libs/libXi
- x11-libs/libXrender
- x11-libs/libXtst
- )
- fdk? ( media-libs/fdk-aac:= )
- jack? ( virtual/jack )
- lua? ( ${LUA_DEPS} )
- pipewire? ( media-video/pipewire:= )
- pulseaudio? ( media-sound/pulseaudio )
- python? ( ${PYTHON_DEPS} )
- speex? ( media-libs/speexdsp )
- ssl? ( net-libs/mbedtls:= )
- truetype? (
- media-libs/fontconfig
- media-libs/freetype
- )
- v4l? ( media-libs/libv4l )
- vlc? ( media-video/vlc:= )
- wayland? ( dev-libs/wayland )
-"
-RDEPEND="${DEPEND}"
-
-QA_PREBUILT="
- usr/lib*/obs-plugins/chrome-sandbox
- usr/lib*/obs-plugins/libEGL.so
- usr/lib*/obs-plugins/libGLESv2.so
- usr/lib*/obs-plugins/libcef.so
- usr/lib*/obs-plugins/swiftshader/libEGL.so
- usr/lib*/obs-plugins/swiftshader/libGLESv2.so
-"
-
-PATCHES=(
- "${FILESDIR}/${PN}-26.1.2-python-3.8.patch"
- "${FILESDIR}/${PN}-27.1.3-ffmpeg-5.0.patch"
-)
-
-pkg_setup() {
- use lua && lua-single_pkg_setup
- use python && python-single-r1_pkg_setup
-}
-
-src_unpack() {
- default
-
- if [[ ${PV} == 9999 ]]; then
- git-r3_src_unpack
- elif use browser; then
- rm -d ${P}/plugins/obs-browser || die
- mv obs-browser-${OBS_BROWSER_COMMIT} ${P}/plugins/obs-browser || die
- fi
-}
-
-src_configure() {
- local libdir=$(get_libdir)
- local mycmakeargs=(
- $(usev browser -DCEF_ROOT_DIR=../${CEF_DIR})
- -DBUILD_BROWSER=$(usex browser)
- -DBUILD_VST=no
- -DENABLE_WAYLAND=$(usex wayland)
- -DDISABLE_ALSA=$(usex !alsa)
- -DDISABLE_DECKLINK=$(usex !decklink)
- -DDISABLE_FREETYPE=$(usex !truetype)
- -DDISABLE_JACK=$(usex !jack)
- -DDISABLE_LIBFDK=$(usex !fdk)
- -DENABLE_PIPEWIRE=$(usex pipewire)
- -DDISABLE_PULSEAUDIO=$(usex !pulseaudio)
- $(cmake_use_find_package pulseaudio PulseAudio)
- -DDISABLE_SPEEXDSP=$(usex !speex)
- -DDISABLE_V4L2=$(usex !v4l)
- -DDISABLE_VLC=$(usex !vlc)
- -DOBS_MULTIARCH_SUFFIX=${libdir#lib}
- -DUNIX_STRUCTURE=1
- -DWITH_RTMPS=$(usex ssl)
-
- # deprecated and currently cause issues
- # https://github.com/obsproject/obs-studio/pull/4560#issuecomment-826345608
- -DLIBOBS_PREFER_IMAGEMAGICK=no
- )
-
- if [[ ${PV} != 9999 ]]; then
- mycmakeargs+=(
- -DOBS_VERSION_OVERRIDE=${PV}
- )
- fi
-
- if use lua || use python; then
- mycmakeargs+=(
- -DDISABLE_LUA=$(usex !lua)
- -DDISABLE_PYTHON=$(usex !python)
- -DENABLE_SCRIPTING=yes
- )
- else
- mycmakeargs+=( -DENABLE_SCRIPTING=no )
- fi
-
- cmake_src_configure
-}
-
-src_install() {
- cmake_src_install
-
- # external plugins may need some things not installed by default, install them here
- insinto /usr/include/obs/UI/obs-frontend-api
- doins UI/obs-frontend-api/obs-frontend-api.h
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
-
- if ! use alsa && ! use pulseaudio; then
- elog
- elog "For the audio capture features to be available,"
- elog "either the 'alsa' or the 'pulseaudio' USE-flag needs to"
- elog "be enabled."
- elog
- fi
-
- if use python; then
- ewarn "This ebuild applies a patch that is not yet accepted upstream,"
- ewarn "and while it fixes Python support at least to some extent, it"
- ewarn "may cause other issues."
- ewarn ""
- ewarn "Please report any such issues to the Gentoo maintainer."
- fi
-}