Compare commits

...

4 Commits
rawhide ... f38

Author SHA1 Message Date
Neal Gompa 0a8da6babf Rebuild for Qt 6.6 2023-11-14 07:11:43 -05:00
Neal Gompa 0a4faab0aa Sync packaging content from rawhide 2023-11-13 09:25:53 -05:00
Neal Gompa 0163430c5b Update to 30.0.0 2023-11-13 09:22:21 -05:00
Jan Grulich aa1f473364 Rebuild (qt6) 2023-11-06 12:34:52 +01:00
9 changed files with 542 additions and 508 deletions

View File

@ -1,7 +1,7 @@
From 04d3a21c6e72cd5574f7333adf548012d912c1ee Mon Sep 17 00:00:00 2001
From dfa857eceb0deaf1a273fbd3423364fd7268ea90 Mon Sep 17 00:00:00 2001
From: Neal Gompa <neal@gompa.dev>
Date: Sat, 7 Jan 2023 23:15:13 -0500
Subject: [PATCH 1/3] UI: Consistently reference the software H264 encoder
Subject: [PATCH 101/103] UI: Consistently reference the software H264 encoder
properly
The code here assumes that the only software encoder is the x264-based
@ -15,10 +15,10 @@ the encoder string to indicate that it's an H.264 encoder from x264.
4 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/UI/data/locale/en-US.ini b/UI/data/locale/en-US.ini
index 4c03aa7db..e44d99660 100644
index e62f38a26..339ac4d86 100644
--- a/UI/data/locale/en-US.ini
+++ b/UI/data/locale/en-US.ini
@@ -980,7 +980,7 @@ Basic.Settings.Output.Simple.Warn.Encoder="Warning: Recording with a software en
@@ -996,7 +996,7 @@ Basic.Settings.Output.Simple.Warn.Encoder="Warning: Recording with a software en
Basic.Settings.Output.Simple.Warn.Lossless="Warning: Lossless quality generates tremendously large file sizes! Lossless quality can use upward of 7 gigabytes of disk space per minute at high resolutions and framerates. Lossless is not recommended for long recordings unless you have a very large amount of disk space available."
Basic.Settings.Output.Simple.Warn.Lossless.Msg="Are you sure you want to use lossless quality?"
Basic.Settings.Output.Simple.Warn.Lossless.Title="Lossless quality warning!"
@ -27,7 +27,7 @@ index 4c03aa7db..e44d99660 100644
Basic.Settings.Output.Simple.Encoder.Hardware.QSV.H264="Hardware (QSV, H.264)"
Basic.Settings.Output.Simple.Encoder.Hardware.QSV.AV1="Hardware (QSV, AV1)"
Basic.Settings.Output.Simple.Encoder.Hardware.AMD.H264="Hardware (AMD, H.264)"
@@ -991,7 +991,7 @@ Basic.Settings.Output.Simple.Encoder.Hardware.NVENC.AV1="Hardware (NVENC, AV1)"
@@ -1007,7 +1007,7 @@ Basic.Settings.Output.Simple.Encoder.Hardware.NVENC.AV1="Hardware (NVENC, AV1)"
Basic.Settings.Output.Simple.Encoder.Hardware.NVENC.HEVC="Hardware (NVENC, HEVC)"
Basic.Settings.Output.Simple.Encoder.Hardware.Apple.H264="Hardware (Apple, H.264)"
Basic.Settings.Output.Simple.Encoder.Hardware.Apple.HEVC="Hardware (Apple, HEVC)"
@ -37,10 +37,10 @@ index 4c03aa7db..e44d99660 100644
Basic.Settings.Output.Simple.Codec.AAC.Default="AAC (Default)"
Basic.Settings.Output.Simple.Codec.Opus="Opus"
diff --git a/UI/window-basic-auto-config-test.cpp b/UI/window-basic-auto-config-test.cpp
index 2d89d7347..09979c031 100644
index 7d7c4278e..a8b5d884a 100644
--- a/UI/window-basic-auto-config-test.cpp
+++ b/UI/window-basic-auto-config-test.cpp
@@ -993,7 +993,7 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
@@ -1010,7 +1010,7 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
}
#define ENCODER_TEXT(x) "Basic.Settings.Output.Simple.Encoder." x
@ -49,7 +49,7 @@ index 2d89d7347..09979c031 100644
#define ENCODER_NVENC ENCODER_TEXT("Hardware.NVENC.H264")
#define ENCODER_QSV ENCODER_TEXT("Hardware.QSV.H264")
#define ENCODER_AMD ENCODER_TEXT("Hardware.AMD.H264")
@@ -1033,7 +1033,7 @@ void AutoConfigTestPage::FinalizeResults()
@@ -1050,7 +1050,7 @@ void AutoConfigTestPage::FinalizeResults()
auto encName = [](AutoConfig::Encoder enc) -> QString {
switch (enc) {
case AutoConfig::Encoder::x264:
@ -58,7 +58,7 @@ index 2d89d7347..09979c031 100644
case AutoConfig::Encoder::NVENC:
return QTStr(ENCODER_NVENC);
case AutoConfig::Encoder::QSV:
@@ -1046,7 +1046,7 @@ void AutoConfigTestPage::FinalizeResults()
@@ -1063,7 +1063,7 @@ void AutoConfigTestPage::FinalizeResults()
return QTStr(QUALITY_SAME);
}
@ -68,23 +68,23 @@ index 2d89d7347..09979c031 100644
auto newLabel = [this](const char *str) -> QLabel * {
diff --git a/UI/window-basic-settings-stream.cpp b/UI/window-basic-settings-stream.cpp
index f6e0817a0..b056938e7 100644
index 2ad275a44..e2ba4b677 100644
--- a/UI/window-basic-settings-stream.cpp
+++ b/UI/window-basic-settings-stream.cpp
@@ -1585,7 +1585,7 @@ void OBSBasicSettings::ResetEncoders(bool streamOnly)
@@ -1670,7 +1670,7 @@ void OBSBasicSettings::ResetEncoders(bool streamOnly)
#define ENCODER_STR(str) QTStr("Basic.Settings.Output.Simple.Encoder." str)
- ui->simpleOutStrEncoder->addItem(ENCODER_STR("Software"),
+ ui->simpleOutStrEncoder->addItem(ENCODER_STR("Software.X264.H264"),
QString(SIMPLE_ENCODER_X264));
#ifdef _WIN32
if (service_supports_encoder(vcodecs, "obs_qsv11"))
ui->simpleOutStrEncoder->addItem(
diff --git a/UI/window-basic-settings.cpp b/UI/window-basic-settings.cpp
index fb170bfc1..48bb4bac6 100644
index b1e6bd6fb..ddf0adc56 100644
--- a/UI/window-basic-settings.cpp
+++ b/UI/window-basic-settings.cpp
@@ -5286,10 +5286,11 @@ void OBSBasicSettings::FillSimpleRecordingValues()
@@ -5237,10 +5237,11 @@ void OBSBasicSettings::FillSimpleRecordingValues()
ADD_QUALITY("HQ");
ADD_QUALITY("Lossless");
@ -100,5 +100,5 @@ index fb170bfc1..48bb4bac6 100644
ui->simpleOutRecEncoder->addItem(
ENCODER_STR("Hardware.QSV.H264"),
--
2.39.2
2.41.0

View File

@ -1,8 +1,8 @@
From 4517d8d8bb4c43af1f5b757773a5f9550bd23d37 Mon Sep 17 00:00:00 2001
From 939db8edca8161f4518900e750551814c2c6088e Mon Sep 17 00:00:00 2001
From: Neal Gompa <neal@gompa.dev>
Date: Sun, 26 Mar 2023 06:06:31 -0400
Subject: [PATCH 2/3] obs-ffmpeg: Add initial support for the OpenH264 H.264
software codec
Subject: [PATCH 102/103] obs-ffmpeg: Add initial support for the OpenH264
H.264 software codec
This allows users to leverage the OpenH264 codec from Cisco to encode
H.264 video content. It is significantly reduced in capability from
@ -20,19 +20,19 @@ software codecs provided through FFmpeg.
create mode 100644 plugins/obs-ffmpeg/obs-ffmpeg-h264.c
diff --git a/plugins/obs-ffmpeg/CMakeLists.txt b/plugins/obs-ffmpeg/CMakeLists.txt
index 3eba00932..f97622c22 100644
index 04530ef39..b77f6366f 100644
--- a/plugins/obs-ffmpeg/CMakeLists.txt
+++ b/plugins/obs-ffmpeg/CMakeLists.txt
@@ -34,6 +34,7 @@ target_sources(
obs-ffmpeg-video-encoders.c
obs-ffmpeg-audio-encoders.c
@@ -36,6 +36,7 @@ target_sources(
obs-ffmpeg-av1.c
obs-ffmpeg-compat.h
obs-ffmpeg-formats.h
+ obs-ffmpeg-h264.c
obs-ffmpeg-nvenc.c
obs-ffmpeg-output.c
obs-ffmpeg-hls-mux.c
obs-ffmpeg-mux.c
obs-ffmpeg-mux.h
diff --git a/plugins/obs-ffmpeg/cmake/legacy.cmake b/plugins/obs-ffmpeg/cmake/legacy.cmake
index 5540676ea..62f2cc7a1 100644
index 4cc75b341..d2e11965d 100644
--- a/plugins/obs-ffmpeg/cmake/legacy.cmake
+++ b/plugins/obs-ffmpeg/cmake/legacy.cmake
@@ -40,6 +40,7 @@ target_sources(
@ -44,10 +44,10 @@ index 5540676ea..62f2cc7a1 100644
obs-ffmpeg-output.c
obs-ffmpeg-mux.c
diff --git a/plugins/obs-ffmpeg/data/locale/en-US.ini b/plugins/obs-ffmpeg/data/locale/en-US.ini
index 55bbe919d..0363ed82b 100644
index 9652be160..e18e39f5a 100644
--- a/plugins/obs-ffmpeg/data/locale/en-US.ini
+++ b/plugins/obs-ffmpeg/data/locale/en-US.ini
@@ -109,4 +109,7 @@ NVENC.CheckDrivers="Try installing the latest <a href=\"https://obsproject.com/g
@@ -120,4 +120,7 @@ NVENC.CheckDrivers="Try installing the latest <a href=\"https://obsproject.com/g
AV1.8bitUnsupportedHdr="OBS does not support 8-bit output of Rec. 2100."
@ -322,10 +322,10 @@ index 000000000..179a61ccf
+ .get_video_info = h264_video_info,
+};
diff --git a/plugins/obs-ffmpeg/obs-ffmpeg.c b/plugins/obs-ffmpeg/obs-ffmpeg.c
index da0b2c2b4..a01a729c8 100644
index 7eb9a876d..fcce8ec3b 100644
--- a/plugins/obs-ffmpeg/obs-ffmpeg.c
+++ b/plugins/obs-ffmpeg/obs-ffmpeg.c
@@ -39,6 +39,7 @@ extern struct obs_encoder_info pcm24_encoder_info;
@@ -38,6 +38,7 @@ extern struct obs_encoder_info pcm24_encoder_info;
extern struct obs_encoder_info pcm32_encoder_info;
extern struct obs_encoder_info alac_encoder_info;
extern struct obs_encoder_info flac_encoder_info;
@ -333,7 +333,7 @@ index da0b2c2b4..a01a729c8 100644
extern struct obs_encoder_info h264_nvenc_encoder_info;
#ifdef ENABLE_HEVC
extern struct obs_encoder_info hevc_nvenc_encoder_info;
@@ -387,6 +388,7 @@ bool obs_module_load(void)
@@ -382,6 +383,7 @@ bool obs_module_load(void)
obs_register_output(&ffmpeg_hls_muxer);
obs_register_output(&replay_buffer);
obs_register_encoder(&aac_encoder_info);
@ -342,5 +342,5 @@ index da0b2c2b4..a01a729c8 100644
register_encoder_if_available(&aom_av1_encoder_info, "libaom-av1");
obs_register_encoder(&opus_encoder_info);
--
2.39.2
2.41.0

View File

@ -1,7 +1,8 @@
From 30f84455969071ff9aa826a44438a0402dd15123 Mon Sep 17 00:00:00 2001
From f26c32b97117273550b9dddea01b5b92684c6886 Mon Sep 17 00:00:00 2001
From: Neal Gompa <neal@gompa.dev>
Date: Tue, 28 Mar 2023 05:08:49 -0400
Subject: [PATCH 3/3] UI: Add support for OpenH264 as the worst-case fallback
Subject: [PATCH 103/103] UI: Add support for OpenH264 as the worst-case
fallback
OpenH264 exists as the codec of last resort, so it is implemented
such that it is only used as the software codec if x264 is not
@ -20,10 +21,10 @@ available.
10 files changed, 123 insertions(+), 48 deletions(-)
diff --git a/UI/data/locale/en-US.ini b/UI/data/locale/en-US.ini
index e44d99660..a5ba5d661 100644
index 339ac4d86..ff8c649da 100644
--- a/UI/data/locale/en-US.ini
+++ b/UI/data/locale/en-US.ini
@@ -980,6 +980,7 @@ Basic.Settings.Output.Simple.Warn.Encoder="Warning: Recording with a software en
@@ -996,6 +996,7 @@ Basic.Settings.Output.Simple.Warn.Encoder="Warning: Recording with a software en
Basic.Settings.Output.Simple.Warn.Lossless="Warning: Lossless quality generates tremendously large file sizes! Lossless quality can use upward of 7 gigabytes of disk space per minute at high resolutions and framerates. Lossless is not recommended for long recordings unless you have a very large amount of disk space available."
Basic.Settings.Output.Simple.Warn.Lossless.Msg="Are you sure you want to use lossless quality?"
Basic.Settings.Output.Simple.Warn.Lossless.Title="Lossless quality warning!"
@ -32,7 +33,7 @@ index e44d99660..a5ba5d661 100644
Basic.Settings.Output.Simple.Encoder.Hardware.QSV.H264="Hardware (QSV, H.264)"
Basic.Settings.Output.Simple.Encoder.Hardware.QSV.AV1="Hardware (QSV, AV1)"
diff --git a/UI/window-basic-auto-config-test.cpp b/UI/window-basic-auto-config-test.cpp
index 09979c031..c791c8b8b 100644
index a8b5d884a..e68a33bb5 100644
--- a/UI/window-basic-auto-config-test.cpp
+++ b/UI/window-basic-auto-config-test.cpp
@@ -199,7 +199,8 @@ void AutoConfigTestPage::TestBandwidthThread()
@ -61,7 +62,7 @@ index 09979c031..c791c8b8b 100644
obs_data_set_int(aencoder_settings, "bitrate", 32);
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
@@ -567,7 +569,8 @@ bool AutoConfigTestPage::TestSoftwareEncoding()
@@ -574,7 +576,8 @@ bool AutoConfigTestPage::TestSoftwareEncoding()
/* create obs objects */
OBSEncoderAutoRelease vencoder = obs_video_encoder_create(
@ -71,7 +72,7 @@ index 09979c031..c791c8b8b 100644
OBSEncoderAutoRelease aencoder = obs_audio_encoder_create(
"ffmpeg_aac", "test_aac", nullptr, 0, nullptr);
OBSOutputAutoRelease output =
@@ -581,17 +584,25 @@ bool AutoConfigTestPage::TestSoftwareEncoding()
@@ -588,17 +591,25 @@ bool AutoConfigTestPage::TestSoftwareEncoding()
obs_data_set_int(aencoder_settings, "bitrate", 32);
if (wiz->type != AutoConfig::Type::Recording) {
@ -103,7 +104,7 @@ index 09979c031..c791c8b8b 100644
}
/* -----------------------------------*/
@@ -944,7 +955,10 @@ void AutoConfigTestPage::TestStreamEncoderThread()
@@ -951,7 +962,10 @@ void AutoConfigTestPage::TestStreamEncoderThread()
else
wiz->streamingEncoder = AutoConfig::Encoder::AMD;
} else {
@ -114,8 +115,8 @@ index 09979c031..c791c8b8b 100644
+ wiz->streamingEncoder = AutoConfig::Encoder::OpenH264;
}
if (preferHardware && !softwareTested && wiz->hardwareEncodingAvailable)
@@ -979,7 +993,10 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
#ifdef __linux__
@@ -996,7 +1010,10 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
else
wiz->recordingEncoder = AutoConfig::Encoder::AMD;
} else {
@ -127,7 +128,7 @@ index 09979c031..c791c8b8b 100644
}
if (wiz->recordingEncoder != AutoConfig::Encoder::NVENC) {
@@ -993,6 +1010,7 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
@@ -1010,6 +1027,7 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
}
#define ENCODER_TEXT(x) "Basic.Settings.Output.Simple.Encoder." x
@ -135,7 +136,7 @@ index 09979c031..c791c8b8b 100644
#define ENCODER_X264 ENCODER_TEXT("Software.X264.H264")
#define ENCODER_NVENC ENCODER_TEXT("Hardware.NVENC.H264")
#define ENCODER_QSV ENCODER_TEXT("Hardware.QSV.H264")
@@ -1032,6 +1050,8 @@ void AutoConfigTestPage::FinalizeResults()
@@ -1049,6 +1067,8 @@ void AutoConfigTestPage::FinalizeResults()
auto encName = [](AutoConfig::Encoder enc) -> QString {
switch (enc) {
@ -144,7 +145,7 @@ index 09979c031..c791c8b8b 100644
case AutoConfig::Encoder::x264:
return QTStr(ENCODER_X264);
case AutoConfig::Encoder::NVENC:
@@ -1046,7 +1066,7 @@ void AutoConfigTestPage::FinalizeResults()
@@ -1063,7 +1083,7 @@ void AutoConfigTestPage::FinalizeResults()
return QTStr(QUALITY_SAME);
}
@ -154,10 +155,10 @@ index 09979c031..c791c8b8b 100644
auto newLabel = [this](const char *str) -> QLabel * {
diff --git a/UI/window-basic-auto-config.cpp b/UI/window-basic-auto-config.cpp
index 3e9c36685..eace18067 100644
index d8ddbfa44..4707a5644 100644
--- a/UI/window-basic-auto-config.cpp
+++ b/UI/window-basic-auto-config.cpp
@@ -961,6 +961,7 @@ AutoConfig::AutoConfig(QWidget *parent) : QWizard(parent)
@@ -979,6 +979,7 @@ AutoConfig::AutoConfig(QWidget *parent) : QWizard(parent)
streamPage->ui->bitrate->setValue(bitrate);
streamPage->ServiceChanged();
@ -165,7 +166,7 @@ index 3e9c36685..eace18067 100644
TestHardwareEncoding();
if (!hardwareEncodingAvailable) {
delete streamPage->ui->preferHardware;
@@ -989,6 +990,16 @@ AutoConfig::~AutoConfig()
@@ -1007,6 +1008,16 @@ AutoConfig::~AutoConfig()
EnableThreadedMessageBoxes(false);
}
@ -182,7 +183,7 @@ index 3e9c36685..eace18067 100644
void AutoConfig::TestHardwareEncoding()
{
size_t idx = 0;
@@ -1061,8 +1072,10 @@ inline const char *AutoConfig::GetEncoderId(Encoder enc)
@@ -1086,8 +1097,10 @@ inline const char *AutoConfig::GetEncoderId(Encoder enc)
return SIMPLE_ENCODER_AMD;
case Encoder::Apple:
return SIMPLE_ENCODER_APPLE_H264;
@ -195,7 +196,7 @@ index 3e9c36685..eace18067 100644
};
diff --git a/UI/window-basic-auto-config.hpp b/UI/window-basic-auto-config.hpp
index eb50701ff..e581791dd 100644
index 5d966c795..c17e32a85 100644
--- a/UI/window-basic-auto-config.hpp
+++ b/UI/window-basic-auto-config.hpp
@@ -43,6 +43,7 @@ class AutoConfig : public QWizard {
@ -223,10 +224,10 @@ index eb50701ff..e581791dd 100644
bool CanTestServer(const char *server);
diff --git a/UI/window-basic-main-outputs.cpp b/UI/window-basic-main-outputs.cpp
index 737ab966d..a4df630c4 100644
index a283d0fcc..4b3f25371 100644
--- a/UI/window-basic-main-outputs.cpp
+++ b/UI/window-basic-main-outputs.cpp
@@ -515,7 +515,9 @@ void SimpleOutput::LoadStreamingPreset_Lossy(const char *encoderId)
@@ -547,7 +547,9 @@ void SimpleOutput::LoadStreamingPreset_Lossy(const char *encoderId)
/* mistakes have been made to lead us to this. */
const char *get_simple_output_encoder(const char *encoder)
{
@ -237,7 +238,7 @@ index 737ab966d..a4df630c4 100644
return "obs_x264";
} else if (strcmp(encoder, SIMPLE_ENCODER_X264_LOWCPU) == 0) {
return "obs_x264";
@@ -549,7 +551,7 @@ const char *get_simple_output_encoder(const char *encoder)
@@ -581,7 +583,7 @@ const char *get_simple_output_encoder(const char *encoder)
#endif
}
@ -247,19 +248,19 @@ index 737ab966d..a4df630c4 100644
void SimpleOutput::LoadRecordingPreset()
diff --git a/UI/window-basic-main-profiles.cpp b/UI/window-basic-main-profiles.cpp
index 4941359ea..1f3ffdc1d 100644
index f9d3f4ea1..27899efc4 100644
--- a/UI/window-basic-main-profiles.cpp
+++ b/UI/window-basic-main-profiles.cpp
@@ -794,7 +794,7 @@ void OBSBasic::ChangeProfile()
Auth::Load();
@@ -806,7 +806,7 @@ void OBSBasic::ChangeProfile()
NewYouTubeAppDock();
#endif
- CheckForSimpleModeX264Fallback();
+ CheckForSimpleModeH264Fallback();
blog(LOG_INFO, "Switched to profile '%s' (%s)", newName, newDir);
blog(LOG_INFO, "------------------------------------------------");
@@ -815,12 +815,13 @@ void OBSBasic::ChangeProfile()
@@ -827,12 +827,13 @@ void OBSBasic::ChangeProfile()
}
}
@ -274,18 +275,18 @@ index 4941359ea..1f3ffdc1d 100644
bool qsv_supported = false;
bool qsv_av1_supported = false;
bool amd_supported = false;
@@ -837,7 +838,9 @@ void OBSBasic::CheckForSimpleModeX264Fallback()
@@ -849,7 +850,9 @@ void OBSBasic::CheckForSimpleModeX264Fallback()
const char *id;
while (obs_enum_encoder_types(idx++, &id)) {
- if (strcmp(id, "amd_amf_h264") == 0)
- if (strcmp(id, "h264_texture_amf") == 0)
+ if (strcmp(id, "obs_x264") == 0)
+ x264_supported = true;
+ else if (strcmp(id, "amd_amf_h264") == 0)
+ else if (strcmp(id, "h264_texture_amf") == 0)
amd_supported = true;
else if (strcmp(id, "obs_qsv11") == 0)
qsv_supported = true;
@@ -865,68 +868,73 @@ void OBSBasic::CheckForSimpleModeX264Fallback()
@@ -877,68 +880,73 @@ void OBSBasic::CheckForSimpleModeX264Fallback()
#endif
}
@ -370,10 +371,10 @@ index 4941359ea..1f3ffdc1d 100644
}
#endif
diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp
index 6d9375eb4..c6aae8c7b 100644
index 943e8cac1..09251de75 100644
--- a/UI/window-basic-main.cpp
+++ b/UI/window-basic-main.cpp
@@ -1379,6 +1379,8 @@ extern void CheckExistingCookieId();
@@ -1449,6 +1449,8 @@ extern void CheckExistingCookieId();
#define DEFAULT_CONTAINER "fragmented_mp4"
#endif
@ -382,7 +383,7 @@ index 6d9375eb4..c6aae8c7b 100644
bool OBSBasic::InitBasicConfigDefaults()
{
QList<QScreen *> screens = QGuiApplication::screens();
@@ -1549,7 +1551,10 @@ bool OBSBasic::InitBasicConfigDefaults()
@@ -1619,7 +1621,10 @@ bool OBSBasic::InitBasicConfigDefaults()
config_set_default_bool(basicConfig, "AdvOut", "UseRescale", false);
config_set_default_uint(basicConfig, "AdvOut", "TrackIndex", 1);
config_set_default_uint(basicConfig, "AdvOut", "VodTrackIndex", 2);
@ -394,7 +395,7 @@ index 6d9375eb4..c6aae8c7b 100644
config_set_default_string(basicConfig, "AdvOut", "RecType", "Standard");
@@ -1672,7 +1677,6 @@ bool OBSBasic::InitBasicConfigDefaults()
@@ -1744,7 +1749,6 @@ bool OBSBasic::InitBasicConfigDefaults()
return true;
}
@ -402,7 +403,7 @@ index 6d9375eb4..c6aae8c7b 100644
extern bool update_nvenc_presets(ConfigFile &config);
void OBSBasic::InitBasicConfigDefaults2()
@@ -1681,12 +1685,14 @@ void OBSBasic::InitBasicConfigDefaults2()
@@ -1753,12 +1757,14 @@ void OBSBasic::InitBasicConfigDefaults2()
"Pre23Defaults");
bool useNV = EncoderAvailable("ffmpeg_nvenc") && !oldEncDefaults;
@ -421,7 +422,7 @@ index 6d9375eb4..c6aae8c7b 100644
const char *aac_default = "ffmpeg_aac";
if (EncoderAvailable("CoreAudio_AAC"))
@@ -1967,7 +1973,7 @@ void OBSBasic::OBSInit()
@@ -2040,7 +2046,7 @@ void OBSBasic::OBSInit()
InitBasicConfigDefaults2();
@ -431,10 +432,10 @@ index 6d9375eb4..c6aae8c7b 100644
blog(LOG_INFO, STARTUP_SEPARATOR);
diff --git a/UI/window-basic-main.hpp b/UI/window-basic-main.hpp
index cbce69832..74c6eb144 100644
index b1eb39592..7d9e8d286 100644
--- a/UI/window-basic-main.hpp
+++ b/UI/window-basic-main.hpp
@@ -66,6 +66,7 @@ class OBSBasicVCamConfig;
@@ -69,6 +69,7 @@ class OBSBasicVCamConfig;
#define SIMPLE_ENCODER_X264 "x264"
#define SIMPLE_ENCODER_X264_LOWCPU "x264_lowcpu"
@ -442,7 +443,7 @@ index cbce69832..74c6eb144 100644
#define SIMPLE_ENCODER_QSV "qsv"
#define SIMPLE_ENCODER_QSV_AV1 "qsv_av1"
#define SIMPLE_ENCODER_NVENC "nvenc"
@@ -434,7 +435,7 @@ private:
@@ -446,7 +447,7 @@ private:
void DeleteProfile(const char *profile_name, const char *profile_dir);
void RefreshProfiles();
void ChangeProfile();
@ -452,10 +453,10 @@ index cbce69832..74c6eb144 100644
void SaveProjectNow();
diff --git a/UI/window-basic-settings-stream.cpp b/UI/window-basic-settings-stream.cpp
index b056938e7..548e5f45f 100644
index e2ba4b677..a08c697d4 100644
--- a/UI/window-basic-settings-stream.cpp
+++ b/UI/window-basic-settings-stream.cpp
@@ -1362,7 +1362,9 @@ static QString get_adv_fallback(const QString &enc)
@@ -1437,7 +1437,9 @@ static QString get_adv_fallback(const QString &enc)
return "com.apple.videotoolbox.videoencoder.ave.avc";
if (enc == "obs_qsv11_av1")
return "obs_qsv11";
@ -466,7 +467,7 @@ index b056938e7..548e5f45f 100644
}
static QString get_adv_audio_fallback(const QString &enc)
@@ -1391,7 +1393,9 @@ static QString get_simple_fallback(const QString &enc)
@@ -1466,7 +1468,9 @@ static QString get_simple_fallback(const QString &enc)
return SIMPLE_ENCODER_APPLE_H264;
if (enc == SIMPLE_ENCODER_QSV_AV1)
return SIMPLE_ENCODER_QSV;
@ -477,7 +478,7 @@ index b056938e7..548e5f45f 100644
}
bool OBSBasicSettings::ServiceSupportsCodecCheck()
@@ -1585,8 +1589,12 @@ void OBSBasicSettings::ResetEncoders(bool streamOnly)
@@ -1670,8 +1674,12 @@ void OBSBasicSettings::ResetEncoders(bool streamOnly)
#define ENCODER_STR(str) QTStr("Basic.Settings.Output.Simple.Encoder." str)
@ -489,14 +490,14 @@ index b056938e7..548e5f45f 100644
+ ui->simpleOutStrEncoder->addItem(
+ ENCODER_STR("Software.X264.H264"),
+ QString(SIMPLE_ENCODER_X264));
#ifdef _WIN32
if (service_supports_encoder(vcodecs, "obs_qsv11"))
ui->simpleOutStrEncoder->addItem(
ENCODER_STR("Hardware.QSV.H264"),
diff --git a/UI/window-basic-settings.cpp b/UI/window-basic-settings.cpp
index 48bb4bac6..51fe280db 100644
index ddf0adc56..9b7324ab9 100644
--- a/UI/window-basic-settings.cpp
+++ b/UI/window-basic-settings.cpp
@@ -3831,6 +3831,11 @@ void OBSBasicSettings::SaveOutputSettings()
@@ -3779,6 +3779,11 @@ void OBSBasicSettings::SaveOutputSettings()
do. This only exists to make sure that the x264 preset doesn't
get overwritten with empty data. */
presetType = "ApplePreset";
@ -508,7 +509,7 @@ index 48bb4bac6..51fe280db 100644
else
presetType = "Preset";
@@ -5286,11 +5291,16 @@ void OBSBasicSettings::FillSimpleRecordingValues()
@@ -5237,11 +5242,16 @@ void OBSBasicSettings::FillSimpleRecordingValues()
ADD_QUALITY("HQ");
ADD_QUALITY("Lossless");
@ -530,7 +531,7 @@ index 48bb4bac6..51fe280db 100644
if (EncoderAvailable("obs_qsv11"))
ui->simpleOutRecEncoder->addItem(
ENCODER_STR("Hardware.QSV.H264"),
@@ -5463,6 +5473,9 @@ void OBSBasicSettings::SimpleStreamingEncoderChanged()
@@ -5414,6 +5424,9 @@ void OBSBasicSettings::SimpleStreamingEncoderChanged()
defaultPreset = "balanced";
preset = curAMDAV1Preset;
@ -541,5 +542,5 @@ index 48bb4bac6..51fe280db 100644
#define PRESET_STR(val) \
--
2.39.2
2.41.0

View File

@ -0,0 +1,423 @@
From 09fbac02fa36e945480edb1cf8547ba8ce4d08ff Mon Sep 17 00:00:00 2001
From: Neal Gompa <neal@gompa.dev>
Date: Mon, 11 Sep 2023 15:50:55 -0400
Subject: [PATCH] cmake: Allow CMake 3.20 and 3.21 to be used to build OBS
CentOS Stream 9 (and thus Red Hat Enterprise Linux 9) have CMake 3.20.
There does not appear to be anything preventing it from building
on CMake 3.20, so let's permit it so that it can still be built
for Fedora Extra Packages for Enterprise Linux 9.
---
CMakeLists.txt | 2 +-
UI/CMakeLists.txt | 2 +-
UI/frontend-plugins/aja-output-ui/CMakeLists.txt | 2 +-
UI/frontend-plugins/decklink-captions/CMakeLists.txt | 2 +-
UI/frontend-plugins/decklink-output-ui/CMakeLists.txt | 2 +-
UI/frontend-plugins/frontend-tools/CMakeLists.txt | 2 +-
UI/obs-frontend-api/CMakeLists.txt | 2 +-
deps/blake2/CMakeLists.txt | 2 +-
deps/file-updater/CMakeLists.txt | 2 +-
deps/glad/CMakeLists.txt | 2 +-
deps/happy-eyeballs/CMakeLists.txt | 2 +-
deps/json11/CMakeLists.txt | 2 +-
deps/libcaption/CMakeLists.txt | 2 +-
deps/media-playback/CMakeLists.txt | 2 +-
deps/obs-scripting/CMakeLists.txt | 2 +-
deps/obs-scripting/obslua/CMakeLists.txt | 2 +-
deps/obs-scripting/obspython/CMakeLists.txt | 2 +-
deps/opts-parser/CMakeLists.txt | 2 +-
deps/uthash/CMakeLists.txt | 2 +-
libobs-opengl/CMakeLists.txt | 2 +-
libobs/CMakeLists.txt | 2 +-
plugins/CMakeLists.txt | 2 +-
plugins/aja/CMakeLists.txt | 2 +-
plugins/decklink/CMakeLists.txt | 2 +-
plugins/image-source/CMakeLists.txt | 2 +-
plugins/obs-ffmpeg/CMakeLists.txt | 2 +-
plugins/obs-ffmpeg/ffmpeg-mux/CMakeLists.txt | 2 +-
plugins/obs-filters/CMakeLists.txt | 2 +-
plugins/obs-outputs/CMakeLists.txt | 2 +-
plugins/obs-qsv11/CMakeLists.txt | 2 +-
plugins/obs-transitions/CMakeLists.txt | 2 +-
plugins/obs-vst/CMakeLists.txt | 2 +-
plugins/obs-webrtc/CMakeLists.txt | 2 +-
plugins/obs-x264/CMakeLists.txt | 2 +-
plugins/rtmp-services/CMakeLists.txt | 2 +-
plugins/text-freetype2/CMakeLists.txt | 2 +-
plugins/vlc-video/CMakeLists.txt | 2 +-
37 files changed, 37 insertions(+), 37 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b6f157fbe..3e628c792 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
if(CMAKE_HOST_SYSTEM_NAME MATCHES "(Darwin)" OR OBS_CMAKE_VERSION VERSION_GREATER_EQUAL 3.0.0)
include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/common/bootstrap.cmake" NO_POLICY_SCOPE)
diff --git a/UI/CMakeLists.txt b/UI/CMakeLists.txt
index cbebcd84d..b5660e662 100644
--- a/UI/CMakeLists.txt
+++ b/UI/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/UI/frontend-plugins/aja-output-ui/CMakeLists.txt b/UI/frontend-plugins/aja-output-ui/CMakeLists.txt
index 3555192e6..e9b9ed0ba 100644
--- a/UI/frontend-plugins/aja-output-ui/CMakeLists.txt
+++ b/UI/frontend-plugins/aja-output-ui/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/UI/frontend-plugins/decklink-captions/CMakeLists.txt b/UI/frontend-plugins/decklink-captions/CMakeLists.txt
index 3fc910b6c..0969dd7b0 100644
--- a/UI/frontend-plugins/decklink-captions/CMakeLists.txt
+++ b/UI/frontend-plugins/decklink-captions/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/UI/frontend-plugins/decklink-output-ui/CMakeLists.txt b/UI/frontend-plugins/decklink-output-ui/CMakeLists.txt
index a5e697e88..1fc0af541 100644
--- a/UI/frontend-plugins/decklink-output-ui/CMakeLists.txt
+++ b/UI/frontend-plugins/decklink-output-ui/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/UI/frontend-plugins/frontend-tools/CMakeLists.txt b/UI/frontend-plugins/frontend-tools/CMakeLists.txt
index 5a0eeba45..b29d335a3 100644
--- a/UI/frontend-plugins/frontend-tools/CMakeLists.txt
+++ b/UI/frontend-plugins/frontend-tools/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/UI/obs-frontend-api/CMakeLists.txt b/UI/obs-frontend-api/CMakeLists.txt
index ca4eae513..fd7c9433b 100644
--- a/UI/obs-frontend-api/CMakeLists.txt
+++ b/UI/obs-frontend-api/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/deps/blake2/CMakeLists.txt b/deps/blake2/CMakeLists.txt
index b9fb338a8..6e31ec857 100644
--- a/deps/blake2/CMakeLists.txt
+++ b/deps/blake2/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
add_library(blake2 STATIC EXCLUDE_FROM_ALL )
add_library(OBS::blake2 ALIAS blake2)
diff --git a/deps/file-updater/CMakeLists.txt b/deps/file-updater/CMakeLists.txt
index e07cd2f0f..fbb358110 100644
--- a/deps/file-updater/CMakeLists.txt
+++ b/deps/file-updater/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
find_package(CURL REQUIRED)
diff --git a/deps/glad/CMakeLists.txt b/deps/glad/CMakeLists.txt
index 64b05a2cc..c6d7ea19c 100644
--- a/deps/glad/CMakeLists.txt
+++ b/deps/glad/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
find_package(OpenGL REQUIRED)
diff --git a/deps/happy-eyeballs/CMakeLists.txt b/deps/happy-eyeballs/CMakeLists.txt
index b3a5692cd..ff3be48ff 100644
--- a/deps/happy-eyeballs/CMakeLists.txt
+++ b/deps/happy-eyeballs/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
add_library(happy-eyeballs INTERFACE)
add_library(OBS::happy-eyeballs ALIAS happy-eyeballs)
diff --git a/deps/json11/CMakeLists.txt b/deps/json11/CMakeLists.txt
index 78cb7c94a..82d0a063b 100644
--- a/deps/json11/CMakeLists.txt
+++ b/deps/json11/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
add_library(json11 INTERFACE)
add_library(OBS::json11 ALIAS json11)
diff --git a/deps/libcaption/CMakeLists.txt b/deps/libcaption/CMakeLists.txt
index 53cd79196..2770b6746 100644
--- a/deps/libcaption/CMakeLists.txt
+++ b/deps/libcaption/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
add_library(caption STATIC EXCLUDE_FROM_ALL )
add_library(OBS::caption ALIAS caption)
diff --git a/deps/media-playback/CMakeLists.txt b/deps/media-playback/CMakeLists.txt
index a84900e47..351f4bb42 100644
--- a/deps/media-playback/CMakeLists.txt
+++ b/deps/media-playback/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
find_package(FFmpeg REQUIRED COMPONENTS avcodec avdevice avutil avformat)
diff --git a/deps/obs-scripting/CMakeLists.txt b/deps/obs-scripting/CMakeLists.txt
index 9096e4b27..988d2235c 100644
--- a/deps/obs-scripting/CMakeLists.txt
+++ b/deps/obs-scripting/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/deps/obs-scripting/obslua/CMakeLists.txt b/deps/obs-scripting/obslua/CMakeLists.txt
index 98517ee7d..22edd1e1c 100644
--- a/deps/obs-scripting/obslua/CMakeLists.txt
+++ b/deps/obs-scripting/obslua/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/deps/obs-scripting/obspython/CMakeLists.txt b/deps/obs-scripting/obspython/CMakeLists.txt
index f0db72f75..f0a07f66c 100644
--- a/deps/obs-scripting/obspython/CMakeLists.txt
+++ b/deps/obs-scripting/obspython/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/deps/opts-parser/CMakeLists.txt b/deps/opts-parser/CMakeLists.txt
index a87ee641e..72d61be53 100644
--- a/deps/opts-parser/CMakeLists.txt
+++ b/deps/opts-parser/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
add_library(opts-parser INTERFACE)
add_library(OBS::opts-parser ALIAS opts-parser)
diff --git a/deps/uthash/CMakeLists.txt b/deps/uthash/CMakeLists.txt
index aecb0d74e..7ebb524f0 100644
--- a/deps/uthash/CMakeLists.txt
+++ b/deps/uthash/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
add_library(uthash INTERFACE)
add_library(OBS::uthash ALIAS uthash)
diff --git a/libobs-opengl/CMakeLists.txt b/libobs-opengl/CMakeLists.txt
index 7ee9478ea..51751719d 100644
--- a/libobs-opengl/CMakeLists.txt
+++ b/libobs-opengl/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/libobs/CMakeLists.txt b/libobs/CMakeLists.txt
index 46112abe7..28551f61d 100644
--- a/libobs/CMakeLists.txt
+++ b/libobs/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt
index 90bea35be..26e6b57ec 100644
--- a/plugins/CMakeLists.txt
+++ b/plugins/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
option(ENABLE_PLUGINS "Enable building OBS plugins" ON)
diff --git a/plugins/aja/CMakeLists.txt b/plugins/aja/CMakeLists.txt
index 423d9d099..daaa57f51 100644
--- a/plugins/aja/CMakeLists.txt
+++ b/plugins/aja/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/plugins/decklink/CMakeLists.txt b/plugins/decklink/CMakeLists.txt
index e93c7c772..8423fe52a 100644
--- a/plugins/decklink/CMakeLists.txt
+++ b/plugins/decklink/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/plugins/image-source/CMakeLists.txt b/plugins/image-source/CMakeLists.txt
index a7682454e..2f5fd3790 100644
--- a/plugins/image-source/CMakeLists.txt
+++ b/plugins/image-source/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/plugins/obs-ffmpeg/CMakeLists.txt b/plugins/obs-ffmpeg/CMakeLists.txt
index 04530ef39..16c4d1e1a 100644
--- a/plugins/obs-ffmpeg/CMakeLists.txt
+++ b/plugins/obs-ffmpeg/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/plugins/obs-ffmpeg/ffmpeg-mux/CMakeLists.txt b/plugins/obs-ffmpeg/ffmpeg-mux/CMakeLists.txt
index afa22b7a5..5644f8213 100644
--- a/plugins/obs-ffmpeg/ffmpeg-mux/CMakeLists.txt
+++ b/plugins/obs-ffmpeg/ffmpeg-mux/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/plugins/obs-filters/CMakeLists.txt b/plugins/obs-filters/CMakeLists.txt
index 22d79388c..84b337c40 100644
--- a/plugins/obs-filters/CMakeLists.txt
+++ b/plugins/obs-filters/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/plugins/obs-outputs/CMakeLists.txt b/plugins/obs-outputs/CMakeLists.txt
index cedc77da0..f131ca671 100644
--- a/plugins/obs-outputs/CMakeLists.txt
+++ b/plugins/obs-outputs/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/plugins/obs-qsv11/CMakeLists.txt b/plugins/obs-qsv11/CMakeLists.txt
index cae152765..f1c39cc6a 100644
--- a/plugins/obs-qsv11/CMakeLists.txt
+++ b/plugins/obs-qsv11/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/plugins/obs-transitions/CMakeLists.txt b/plugins/obs-transitions/CMakeLists.txt
index 65e3b13ac..c18ac96ed 100644
--- a/plugins/obs-transitions/CMakeLists.txt
+++ b/plugins/obs-transitions/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/plugins/obs-vst/CMakeLists.txt b/plugins/obs-vst/CMakeLists.txt
index bb5c32a00..78530783b 100644
--- a/plugins/obs-vst/CMakeLists.txt
+++ b/plugins/obs-vst/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/plugins/obs-webrtc/CMakeLists.txt b/plugins/obs-webrtc/CMakeLists.txt
index de943062f..84b0f1aa5 100644
--- a/plugins/obs-webrtc/CMakeLists.txt
+++ b/plugins/obs-webrtc/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/plugins/obs-x264/CMakeLists.txt b/plugins/obs-x264/CMakeLists.txt
index 4c293fb33..c75491a51 100644
--- a/plugins/obs-x264/CMakeLists.txt
+++ b/plugins/obs-x264/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/plugins/rtmp-services/CMakeLists.txt b/plugins/rtmp-services/CMakeLists.txt
index e8d304ae0..9dc0b2396 100644
--- a/plugins/rtmp-services/CMakeLists.txt
+++ b/plugins/rtmp-services/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/plugins/text-freetype2/CMakeLists.txt b/plugins/text-freetype2/CMakeLists.txt
index bb30f99a7..b19b0cd57 100644
--- a/plugins/text-freetype2/CMakeLists.txt
+++ b/plugins/text-freetype2/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
diff --git a/plugins/vlc-video/CMakeLists.txt b/plugins/vlc-video/CMakeLists.txt
index 0a35ae284..40a62b076 100644
--- a/plugins/vlc-video/CMakeLists.txt
+++ b/plugins/vlc-video/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.22...3.25)
+cmake_minimum_required(VERSION 3.20...3.25)
legacy_check()
--
2.41.0

View File

@ -1,218 +0,0 @@
From b6be0b4bf5b0b2f26c8143641881cde23ac8ba9c Mon Sep 17 00:00:00 2001
From: Neal Gompa <neal@gompa.dev>
Date: Wed, 26 Apr 2023 07:56:35 -0400
Subject: [PATCH 1/2] deps: Add license declaration files
---
deps/blake2/LICENSE.blake2 | 19 ++++++++++
deps/libff/LICENSE.libff | 18 ++++++++++
deps/media-playback/LICENSE.media-playback | 19 ++++++++++
libobs/graphics/libnsgif/LICENSE.libnsgif | 33 ++++++++++++++++++
libobs/util/simde/LICENSE.simde | 40 ++++++++++++++++++++++
plugins/decklink/LICENSE.decklink-sdk | 30 ++++++++++++++++
6 files changed, 159 insertions(+)
create mode 100644 deps/blake2/LICENSE.blake2
create mode 100644 deps/libff/LICENSE.libff
create mode 100644 deps/media-playback/LICENSE.media-playback
create mode 100644 libobs/graphics/libnsgif/LICENSE.libnsgif
create mode 100644 libobs/util/simde/LICENSE.simde
create mode 100644 plugins/decklink/LICENSE.decklink-sdk
diff --git a/deps/blake2/LICENSE.blake2 b/deps/blake2/LICENSE.blake2
new file mode 100644
index 000000000..3a8abc787
--- /dev/null
+++ b/deps/blake2/LICENSE.blake2
@@ -0,0 +1,19 @@
+BLAKE2 is licensed to permit usage under the terms of the CC0, the OpenSSL License,
+ or the Apache Public License 2.0 at the user's option.
+
+The license grant is reproduced in full below.
+
+/*
+ BLAKE2 reference source code package - reference C implementations
+
+ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
+ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
+ your option. The terms of these licenses can be found at:
+
+ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
+ - OpenSSL license : https://www.openssl.org/source/license.html
+ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
+
+ More information about the BLAKE2 hash function can be found at
+ https://blake2.net.
+*/
diff --git a/deps/libff/LICENSE.libff b/deps/libff/LICENSE.libff
new file mode 100644
index 000000000..b6f51157a
--- /dev/null
+++ b/deps/libff/LICENSE.libff
@@ -0,0 +1,18 @@
+libff is licensed under the ISC license. The license terms are fully
+reproduced below:
+
+/*
+ * Copyright (c) 2015 John R. Bradley <jrb@turrettech.com>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
diff --git a/deps/media-playback/LICENSE.media-playback b/deps/media-playback/LICENSE.media-playback
new file mode 100644
index 000000000..17d74f4b3
--- /dev/null
+++ b/deps/media-playback/LICENSE.media-playback
@@ -0,0 +1,19 @@
+media-playback is licensed under the ISC license. The license terms are fully
+reproduced below:
+
+
+/*
+ * Copyright (c) 2023 Hugh Bailey <obs.jim@gmail.com>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
diff --git a/libobs/graphics/libnsgif/LICENSE.libnsgif b/libobs/graphics/libnsgif/LICENSE.libnsgif
new file mode 100644
index 000000000..9b28c0b45
--- /dev/null
+++ b/libobs/graphics/libnsgif/LICENSE.libnsgif
@@ -0,0 +1,33 @@
+libnsgif is licensed under the MIT license. The licensing statement
+and the full license are reproduced below.
+
+/*
+ * Copyright 2003 James Bursa <bursa@users.sourceforge.net>
+ * Copyright 2004 John Tytgat <John.Tytgat@aaug.net>
+ * Copyright 2004 Richard Wilson <richard.wilson@netsurf-browser.org>
+ * Copyright 2008 Sean Fox <dyntryx@gmail.com>
+ *
+ * This file is part of NetSurf's libnsgif, http://www.netsurf-browser.org/
+ * Licenced under the MIT License,
+ * http://www.opensource.org/licenses/mit-license.php
+ */
+
+The MIT License
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/libobs/util/simde/LICENSE.simde b/libobs/util/simde/LICENSE.simde
new file mode 100644
index 000000000..78d482e75
--- /dev/null
+++ b/libobs/util/simde/LICENSE.simde
@@ -0,0 +1,40 @@
+simde is licensed as a combination of MIT and CC0 code.
+
+License notices for both are reproduced below:
+
+/* SPDX-License-Identifier: MIT
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Copyright:
+ * 2017-2020 Evan Nemerson <evan@nemerson.com>
+ */
+
+/* Portable Snippets - https://gitub.com/nemequ/portable-snippets
+ * Created by Evan Nemerson <evan@nemerson.com>
+ *
+ * To the extent possible under law, the authors have waived all
+ * copyright and related or neighboring rights to this code. For
+ * details, see the Creative Commons Zero 1.0 Universal license at
+ * https://creativecommons.org/publicdomain/zero/1.0/
+ *
+ * SPDX-License-Identifier: CC0-1.0
+ */
diff --git a/plugins/decklink/LICENSE.decklink-sdk b/plugins/decklink/LICENSE.decklink-sdk
new file mode 100644
index 000000000..d320d805b
--- /dev/null
+++ b/plugins/decklink/LICENSE.decklink-sdk
@@ -0,0 +1,30 @@
+decklink-sdk is licensed under to Boost Software License 1.0 (BSL-1.0).
+
+The license text is reproduced in full below:
+
+/* -LICENSE-START-
+** Copyright (c) 2020 Blackmagic Design
+**
+** Permission is hereby granted, free of charge, to any person or organization
+** obtaining a copy of the software and accompanying documentation covered by
+** this license (the "Software") to use, reproduce, display, distribute,
+** execute, and transmit the Software, and to prepare derivative works of the
+** Software, and to permit third-parties to whom the Software is furnished to
+** do so, all subject to the following:
+**
+** The copyright notices in the Software and this entire statement, including
+** the above license grant, this restriction and the following disclaimer,
+** must be included in all copies of the Software, in whole or in part, and
+** all derivative works of the Software, unless such copies or derivative
+** works are solely in the form of machine-executable object code generated by
+** a source language processor.
+**
+** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
+** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
+** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
+** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+** DEALINGS IN THE SOFTWARE.
+** -LICENSE-END-
+*/
--
2.40.0

View File

@ -1,79 +0,0 @@
From fbfa25ade86c26088333b3c5e6c39d4a61fc748f Mon Sep 17 00:00:00 2001
From: Neal Gompa <neal@gompa.dev>
Date: Wed, 26 Apr 2023 07:56:42 -0400
Subject: [PATCH 2/2] obs-qsv11: Add license declaration file
---
plugins/obs-qsv11/obs-qsv11-LICENSE.txt | 60 +++++++++++++++++++++++++
1 file changed, 60 insertions(+)
create mode 100644 plugins/obs-qsv11/obs-qsv11-LICENSE.txt
diff --git a/plugins/obs-qsv11/obs-qsv11-LICENSE.txt b/plugins/obs-qsv11/obs-qsv11-LICENSE.txt
new file mode 100644
index 000000000..2e4f30941
--- /dev/null
+++ b/plugins/obs-qsv11/obs-qsv11-LICENSE.txt
@@ -0,0 +1,60 @@
+The OBS QSV plugin is licensed under either the BSD-3-Clause or GPL-2.0-only licenses.
+
+The license declaration is reproduced below:
+
+/*
+
+This is provided under a dual BSD/GPLv2 license. When using or
+redistributing this, you may do so under either license.
+
+GPL LICENSE SUMMARY
+
+Copyright(c) Oct. 2015 Intel Corporation.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of version 2 of the GNU General Public License as
+published by the Free Software Foundation.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+Contact Information:
+
+Seung-Woo Kim, seung-woo.kim@intel.com
+705 5th Ave S #500, Seattle, WA 98104
+
+BSD LICENSE
+
+Copyright(c) <date> Intel Corporation.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+* Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in
+the documentation and/or other materials provided with the
+distribution.
+
+* Neither the name of Intel Corporation nor the names of its
+contributors may be used to endorse or promote products derived
+from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
--
2.40.0

View File

@ -1,107 +0,0 @@
From 1e2fc3ade587a7a7c24e4238996ca382c4c0f719 Mon Sep 17 00:00:00 2001
From: Neal Gompa <ngompa@fedoraproject.org>
Date: Tue, 27 Dec 2022 09:15:08 -0500
Subject: [PATCH] CMake: Use the system version of QRCodeGenCPP dependency
---
CMakeLists.txt | 9 +++++++--
cmake/legacy.cmake | 12 ++++++++----
src/forms/ConnectInfo.cpp | 2 +-
3 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/plugins/obs-websocket/CMakeLists.txt b/plugins/obs-websocket/CMakeLists.txt
index 871f92b..288cc87 100644
--- a/plugins/obs-websocket/CMakeLists.txt
+++ b/plugins/obs-websocket/CMakeLists.txt
@@ -13,7 +13,7 @@ endif()
# Submodule deps check
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/deps/qr/cpp/QrCode.hpp")
- message(FATAL_ERROR "obs-websocket submodule deps not available.")
+ message(INFO "obs-websocket submodule deps not available.")
endif()
# Find Qt
@@ -22,6 +22,9 @@ find_qt(COMPONENTS Core Widgets Svg Network)
# Find nlohmann JSON
find_package(nlohmann_json 3 REQUIRED)
+# Find qrcodegencpp
+find_package(qrcodegencpp REQUIRED)
+
# Find WebSocket++
find_package(Websocketpp 0.8 REQUIRED)
@@ -157,7 +160,9 @@ target_link_libraries(
Qt::Network
nlohmann_json::nlohmann_json
Websocketpp::Websocketpp
- Asio::Asio)
+ Asio::Asio
+ qrcodegencpp
+ )
set_target_properties_obs(
obs-websocket
diff --git a/plugins/obs-websocket/cmake/legacy.cmake b/plugins/obs-websocket/cmake/legacy.cmake
index ab25ec7..98ca704 100644
--- a/plugins/obs-websocket/cmake/legacy.cmake
+++ b/plugins/obs-websocket/cmake/legacy.cmake
@@ -10,7 +10,7 @@ endif()
# Submodule deps check
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/deps/qr/cpp/QrCode.hpp)
- obs_status(FATAL_ERROR "obs-websocket submodule deps not available.")
+ obs_status(INFO "obs-websocket submodule deps not available.")
endif()
# Plugin tests flag
@@ -22,6 +22,9 @@ find_qt(COMPONENTS Core Widgets Svg Network)
# Find nlohmann JSON
find_package(nlohmann_json 3 REQUIRED)
+# Find qrcodegencpp
+find_package(qrcodegencpp REQUIRED)
+
# Find WebSocket++
find_package(Websocketpp 0.8 REQUIRED)
@@ -129,8 +132,7 @@ target_sources(
src/utils/Compat.cpp
src/utils/Compat.h
src/utils/Utils.h
- deps/qr/cpp/QrCode.cpp
- deps/qr/cpp/QrCode.hpp)
+ )
target_link_libraries(
obs-websocket
@@ -142,7 +144,9 @@ target_link_libraries(
Qt::Network
nlohmann_json::nlohmann_json
Websocketpp::Websocketpp
- Asio::Asio)
+ Asio::Asio
+ qrcodegencpp
+ )
target_compile_features(obs-websocket PRIVATE cxx_std_17)
diff --git a/plugins/obs-websocket/src/forms/ConnectInfo.cpp b/plugins/obs-websocket/src/forms/ConnectInfo.cpp
index ddb979d..89a04c4 100644
--- a/plugins/obs-websocket/src/forms/ConnectInfo.cpp
+++ b/plugins/obs-websocket/src/forms/ConnectInfo.cpp
@@ -21,9 +21,9 @@ with this program. If not, see <https://www.gnu.org/licenses/>
#include <QPainter>
#include <QUrl>
#include <obs-module.h>
+#include <qrcodegencpp/QrCode.hpp>
#include "ConnectInfo.h"
-#include "../../deps/qr/cpp/QrCode.hpp"
#include "../obs-websocket.h"
#include "../Config.h"
#include "../utils/Platform.h"
--
2.39.2

View File

@ -5,6 +5,13 @@
%bcond_without lua_scripting
%endif
%ifarch x86_64
# VPL/QSV is only available on x86_64
%bcond_without vpl
%else
%bcond_with vpl
%endif
# VLC is not yet in Fedora
%bcond_with vlc
# x264 is not in Fedora
@ -16,20 +23,20 @@
%global openh264_soversion 7
%global obswebsocket_version 5.2.3
%global obswebsocket_version 5.3.3
#global commit ad859a3f66daac0d30eebcc9b07b0c2004fb6040
#global snapdate 202303261743
#global shortcommit %(c=%{commit}; echo ${c:0:7})
Name: obs-studio
Version: 29.1.3
Release: 4%{?dist}
Version: 30.0.0
Release: 1%{?dist}.1
Summary: Open Broadcaster Software Studio
# OBS itself is GPL-2.0-or-later, while various plugin dependencies are of various other licenses
# The licenses for those dependencies are captured with the bundled provides statements
License: GPL-2.0-or-later and ISC and MIT and BSD-1-Clause and BSD-2-Clause and BSD-3-Clause and BSL-1.0 and LGPL-2.1-or-later and CC0-1.0 and (CC0-1.0 or OpenSSL or Apache-2.0) and LicenseRef-Fedora-Public-Domain and (BSD-3-Clause or GPL-2.0-only)
License: GPL-2.0-or-later and MIT and BSD-1-Clause and BSD-2-Clause and BSD-3-Clause and BSL-1.0 and LGPL-2.1-or-later and CC0-1.0 and (CC0-1.0 or OpenSSL or Apache-2.0) and LicenseRef-Fedora-Public-Domain and (BSD-3-Clause or GPL-2.0-only)
URL: https://obsproject.com/
%if 0%{?snapdate}
Source0: https://github.com/obsproject/obs-studio/archive/%{commit}/%{name}-%{commit}.tar.gz
@ -42,24 +49,19 @@ Source1: https://github.com/obsproject/obs-websocket/archive/%{obswebsock
# Proposed upstream
## From: https://github.com/obsproject/obs-studio/pull/8529
Patch0101: 0001-UI-Consistently-reference-the-software-H264-encoder-.patch
Patch0102: 0002-obs-ffmpeg-Add-initial-support-for-the-OpenH264-H.26.patch
Patch0103: 0003-UI-Add-support-for-OpenH264-as-the-worst-case-fallba.patch
Patch0101: 0101-UI-Consistently-reference-the-software-H264-encoder-.patch
Patch0102: 0102-obs-ffmpeg-Add-initial-support-for-the-OpenH264-H.26.patch
Patch0103: 0103-UI-Add-support-for-OpenH264-as-the-worst-case-fallba.patch
# Downstream Fedora patches
## Use system qrcodegencpp
Patch1001: obs-studio-websocket-use-system-qrcodegencpp.patch
## Downgrade to CMake 3.20 for RHEL 9 compatibility
Patch1001: obs-studio-30-cmake-3.20.patch
## Use fdk-aac by default
Patch1002: obs-studio-UI-use-fdk-aac-by-default.patch
## Add license declarations for bundled deps
Patch9001: obs-studio-deps-Add-license-declaration-files.patch
## Add license declaration for obs-qsv11
Patch9002: obs-studio-obs-qsv11-Add-license-declaration-file.patch
BuildRequires: gcc
BuildRequires: cmake >= 3.16
BuildRequires: cmake >= 3.20
BuildRequires: ninja-build
BuildRequires: libappstream-glib
BuildRequires: desktop-file-utils
@ -73,6 +75,7 @@ BuildRequires: freetype-devel
BuildRequires: jansson-devel >= 2.5
BuildRequires: json-devel
BuildRequires: libcurl-devel
BuildRequires: libdatachannel-devel
BuildRequires: libdrm-devel
BuildRequires: libGL-devel
BuildRequires: libglvnd-devel
@ -90,6 +93,9 @@ BuildRequires: libxkbcommon-devel
BuildRequires: luajit-devel
%endif
BuildRequires: mbedtls-devel
%if %{with vpl}
BuildRequires: oneVPL-devel
%endif
BuildRequires: pciutils-devel
BuildRequires: pipewire-devel
BuildRequires: pipewire-jack-audio-connection-kit-devel
@ -141,8 +147,6 @@ Provides: bundled(blake2)
Provides: bundled(json11)
## License: MIT
Provides: bundled(libcaption)
## License: ISC
Provides: bundled(libff)
## License: BSD-1-Clause
Provides: bundled(uthash)
## License: BSD-3-Clause
@ -199,6 +203,12 @@ mv plugins/obs-x264/CMakeLists.txt plugins/obs-x264/CMakeLists.txt.disabled
touch plugins/obs-x264/CMakeLists.txt
%endif
%if ! %{with vpl}
# disable unusable qsv plugin
mv plugins/obs-qsv11/CMakeLists.txt plugins/obs-qsv11/CMakeLists.txt.disabled
touch plugins/obs-qsv11/CMakeLists.txt
%endif
# remove -Werror flag to mitigate FTBFS with ffmpeg 5.1
sed -e 's|-Werror-implicit-function-declaration||g' -i cmake/Modules/CompilerConfig.cmake
sed -e '/-Werror/d' -i cmake/Modules/CompilerConfig.cmake
@ -223,7 +233,6 @@ cp deps/libcaption/LICENSE.txt .fedora-rpm/licenses/deps/libcaption-LICENSE.txt
cp plugins/obs-qsv11/QSV11-License-Clarification-Email.txt .fedora-rpm/licenses/plugins/QSV11-License-Clarification-Email.txt
cp deps/uthash/uthash/LICENSE .fedora-rpm/licenses/deps/uthash-LICENSE
cp deps/blake2/LICENSE.blake2 .fedora-rpm/licenses/deps/
cp deps/libff/LICENSE.libff .fedora-rpm/licenses/deps/
cp deps/media-playback/LICENSE.media-playback .fedora-rpm/licenses/deps/
cp libobs/graphics/libnsgif/LICENSE.libnsgif .fedora-rpm/licenses/deps/
cp libobs/util/simde/LICENSE.simde .fedora-rpm/licenses/deps/
@ -252,10 +261,6 @@ cp plugins/obs-qsv11/obs-qsv11-LICENSE.txt .fedora-rpm/licenses/plugins/
%install
%cmake_install
# Add missing files to enable the build of obs-ndi
install -Dm644 UI/obs-frontend-api/obs-frontend-api.h %{buildroot}%{_includedir}/obs/
install -Dm644 cmake/external/ObsPluginHelpers.cmake %{buildroot}%{_libdir}/cmake/libobs/
# Work around broken libobs.pc file...
# Cf. https://github.com/obsproject/obs-studio/issues/7972
sed -e 's|^Cflags: .*|Cflags: -I${includedir} -DHAVE_OBSCONFIG_H|' -i %{buildroot}%{_libdir}/pkgconfig/libobs.pc
@ -302,6 +307,15 @@ appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/*.appdata
%changelog
* Tue Nov 14 2023 Neal Gompa <ngompa@fedoraproject.org> - 30.0.0-1.1
- Rebuild for Qt 6.6
* Mon Nov 13 2023 Neal Gompa <ngompa@fedoraproject.org> - 30.0.0-1
- Update to 30.0.0
* Mon Nov 06 2023 Jan Grulich <jgrulich@redhat.com> - 29.1.3-5
- Rebuild (qt6)
* Fri Sep 08 2023 Neal Gompa <ngompa@fedoraproject.org> - 29.1.3-4
- Add obs-plugins libexecdir to libs subpackage

View File

@ -1,2 +1,2 @@
SHA512 (obs-studio-29.1.3.tar.gz) = 563a9b71ebe273b604807b9c43be8bde58fb326e8a0b741afb84a481a99176c96bf63da2aa26b6dcc026573b7fb0bf53e0a296e2db0b93c28f0d4710cd7cf019
SHA512 (obs-websocket-5.2.3.tar.gz) = 76e25bc0a3eb3f6d11b123b5b193544e409cd794b4b38de4ddd634a34cfbdba023c181b81b467fb31d7b4dff17d9b66781be6f1cf0e7e66042868078022d03af
SHA512 (obs-studio-30.0.0.tar.gz) = a99ec286dddea46e95a90b16b52bfb8033ce017faae039128509c561fef9bc71e02a9e55d1fee428c456dc48ce03ba7939e2488eaec35f791116ab4dfd1f34d0
SHA512 (obs-websocket-5.3.3.tar.gz) = 5726bd81a366940ab3b33f4997d5d66e8ff1bb7d456a6fbb1ebddbcc0bc847026294f74908b06460a358488abe9bf7372ff5076c48d06714813295cfbf6f4ad8