commit 7394b10c1be9f2d157a07a19109a223c8fde2c5a
Author: Dominik 'Rathann' Mierzejewski <dominik(a)greysector.net>
Date: Wed Aug 28 22:56:52 2024 +0200
Update to 30.2.2
...ntly-reference-the-software-H264-encoder-.patch | 26 +++---
...Add-initial-support-for-the-OpenH264-H.26.patch | 18 ++---
...ort-for-OpenH264-as-the-worst-case-fallba.patch | 94 +++++++++++-----------
obs-studio-freeworld.spec | 16 ++--
sources | 4 +-
5 files changed, 80 insertions(+), 78 deletions(-)
---
diff --git a/0101-UI-Consistently-reference-the-software-H264-encoder-.patch
b/0101-UI-Consistently-reference-the-software-H264-encoder-.patch
index 470544f..12a6aca 100644
--- a/0101-UI-Consistently-reference-the-software-H264-encoder-.patch
+++ b/0101-UI-Consistently-reference-the-software-H264-encoder-.patch
@@ -1,4 +1,4 @@
-From f6bc114c7d80f6344353619f51d9584ad022d91b Mon Sep 17 00:00:00 2001
+From e46d94eaa176c5c83ae9e8ab046cfde7d218d3ca Mon Sep 17 00:00:00 2001
From: Neal Gompa <neal(a)gompa.dev>
Date: Sat, 7 Jan 2023 23:15:13 -0500
Subject: [PATCH 101/103] UI: Consistently reference the software H264 encoder
@@ -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 9c3f38777..dd8f20f69 100644
+index b3303340c..095c2b4df 100644
--- a/UI/data/locale/en-US.ini
+++ b/UI/data/locale/en-US.ini
-@@ -997,7 +997,7 @@ Basic.Settings.Output.Simple.Warn.Encoder="Warning: Recording
with a software en
+@@ -1023,7 +1023,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. Replay buffer is
unavailable when using lossless quality."
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 9c3f38777..dd8f20f69 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)"
-@@ -1008,7 +1008,7 @@
Basic.Settings.Output.Simple.Encoder.Hardware.NVENC.AV1="Hardware (NVENC, AV1)"
+@@ -1034,7 +1034,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 9c3f38777..dd8f20f69 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 7d7c4278e..a8b5d884a 100644
+index 904875783..cecb5f9bf 100644
--- a/UI/window-basic-auto-config-test.cpp
+++ b/UI/window-basic-auto-config-test.cpp
-@@ -1010,7 +1010,7 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
+@@ -1047,7 +1047,7 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
}
#define ENCODER_TEXT(x) "Basic.Settings.Output.Simple.Encoder." x
@@ -49,7 +49,7 @@ index 7d7c4278e..a8b5d884a 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")
-@@ -1050,7 +1050,7 @@ void AutoConfigTestPage::FinalizeResults()
+@@ -1087,7 +1087,7 @@ void AutoConfigTestPage::FinalizeResults()
auto encName = [](AutoConfig::Encoder enc) -> QString {
switch (enc) {
case AutoConfig::Encoder::x264:
@@ -58,7 +58,7 @@ index 7d7c4278e..a8b5d884a 100644
case AutoConfig::Encoder::NVENC:
return QTStr(ENCODER_NVENC);
case AutoConfig::Encoder::QSV:
-@@ -1063,7 +1063,7 @@ void AutoConfigTestPage::FinalizeResults()
+@@ -1100,7 +1100,7 @@ void AutoConfigTestPage::FinalizeResults()
return QTStr(QUALITY_SAME);
}
@@ -68,10 +68,10 @@ index 7d7c4278e..a8b5d884a 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 e28c5b189..de306efa9 100644
+index 881e1d542..cd78d4c8a 100644
--- a/UI/window-basic-settings-stream.cpp
+++ b/UI/window-basic-settings-stream.cpp
-@@ -1704,7 +1704,7 @@ void OBSBasicSettings::ResetEncoders(bool streamOnly)
+@@ -1850,7 +1850,7 @@ void OBSBasicSettings::ResetEncoders(bool streamOnly)
#define ENCODER_STR(str) QTStr("Basic.Settings.Output.Simple.Encoder." str)
@@ -81,10 +81,10 @@ index e28c5b189..de306efa9 100644
#ifdef _WIN32
if (service_supports_encoder(vcodecs, "obs_qsv11"))
diff --git a/UI/window-basic-settings.cpp b/UI/window-basic-settings.cpp
-index bee2c86ed..efb98c4ef 100644
+index dfcd2dd65..2aa92203c 100644
--- a/UI/window-basic-settings.cpp
+++ b/UI/window-basic-settings.cpp
-@@ -5303,10 +5303,11 @@ void OBSBasicSettings::FillSimpleRecordingValues()
+@@ -5338,10 +5338,11 @@ void OBSBasicSettings::FillSimpleRecordingValues()
ADD_QUALITY("HQ");
ADD_QUALITY("Lossless");
@@ -100,5 +100,5 @@ index bee2c86ed..efb98c4ef 100644
ui->simpleOutRecEncoder->addItem(
ENCODER_STR("Hardware.QSV.H264"),
--
-2.44.0
+2.45.2
diff --git a/0102-obs-ffmpeg-Add-initial-support-for-the-OpenH264-H.26.patch
b/0102-obs-ffmpeg-Add-initial-support-for-the-OpenH264-H.26.patch
index 08bf185..39d4ab0 100644
--- a/0102-obs-ffmpeg-Add-initial-support-for-the-OpenH264-H.26.patch
+++ b/0102-obs-ffmpeg-Add-initial-support-for-the-OpenH264-H.26.patch
@@ -1,4 +1,4 @@
-From 7e13a4f5b407650b0eeacbc2322ec9fa7825828c Mon Sep 17 00:00:00 2001
+From 26c2915af0b4cd707d7dbbf7b579eca3c520852f Mon Sep 17 00:00:00 2001
From: Neal Gompa <neal(a)gompa.dev>
Date: Sun, 26 Mar 2023 06:06:31 -0400
Subject: [PATCH 102/103] obs-ffmpeg: Add initial support for the OpenH264
@@ -20,10 +20,10 @@ 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 77c5ad8e4..81b847889 100644
+index 4a928c82c..c4dcb17a5 100644
--- a/plugins/obs-ffmpeg/CMakeLists.txt
+++ b/plugins/obs-ffmpeg/CMakeLists.txt
-@@ -32,6 +32,7 @@ target_sources(
+@@ -33,6 +33,7 @@ target_sources(
obs-ffmpeg-av1.c
obs-ffmpeg-compat.h
obs-ffmpeg-formats.h
@@ -32,7 +32,7 @@ index 77c5ad8e4..81b847889 100644
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 0b3491a07..d22734264 100644
+index 558a34df6..2a3b9d29b 100644
--- a/plugins/obs-ffmpeg/cmake/legacy.cmake
+++ b/plugins/obs-ffmpeg/cmake/legacy.cmake
@@ -41,6 +41,7 @@ target_sources(
@@ -44,10 +44,10 @@ index 0b3491a07..d22734264 100644
obs-ffmpeg-output.c
obs-ffmpeg-output.h
diff --git a/plugins/obs-ffmpeg/data/locale/en-US.ini
b/plugins/obs-ffmpeg/data/locale/en-US.ini
-index 9652be160..e18e39f5a 100644
+index e8b73293c..c69d3475f 100644
--- a/plugins/obs-ffmpeg/data/locale/en-US.ini
+++ b/plugins/obs-ffmpeg/data/locale/en-US.ini
-@@ -120,4 +120,7 @@ NVENC.CheckDrivers="Try installing the latest <a
href=\"https://obsproject.com/g
+@@ -121,4 +121,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,7 +322,7 @@ 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 451b4f022..ee2e378bf 100644
+index c20281f63..118468c94 100644
--- a/plugins/obs-ffmpeg/obs-ffmpeg.c
+++ b/plugins/obs-ffmpeg/obs-ffmpeg.c
@@ -41,6 +41,7 @@ extern struct obs_encoder_info pcm24_encoder_info;
@@ -333,7 +333,7 @@ index 451b4f022..ee2e378bf 100644
extern struct obs_encoder_info h264_nvenc_encoder_info;
#ifdef ENABLE_HEVC
extern struct obs_encoder_info hevc_nvenc_encoder_info;
-@@ -364,6 +365,7 @@ bool obs_module_load(void)
+@@ -367,6 +368,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 451b4f022..ee2e378bf 100644
register_encoder_if_available(&aom_av1_encoder_info, "libaom-av1");
obs_register_encoder(&opus_encoder_info);
--
-2.44.0
+2.45.2
diff --git a/0103-UI-Add-support-for-OpenH264-as-the-worst-case-fallba.patch
b/0103-UI-Add-support-for-OpenH264-as-the-worst-case-fallba.patch
index e144ce8..196505f 100644
--- a/0103-UI-Add-support-for-OpenH264-as-the-worst-case-fallba.patch
+++ b/0103-UI-Add-support-for-OpenH264-as-the-worst-case-fallba.patch
@@ -1,4 +1,4 @@
-From d5d1837245fb9a2f0dfc863c27f8ac77ea9625cd Mon Sep 17 00:00:00 2001
+From fc24ed0b22ad1487df277af35d62f5b77b9fbfad Mon Sep 17 00:00:00 2001
From: Neal Gompa <neal(a)gompa.dev>
Date: Tue, 28 Mar 2023 05:08:49 -0400
Subject: [PATCH 103/103] UI: Add support for OpenH264 as the worst-case
@@ -21,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 dd8f20f69..6a8e4e1e7 100644
+index 095c2b4df..d47765b16 100644
--- a/UI/data/locale/en-US.ini
+++ b/UI/data/locale/en-US.ini
-@@ -997,6 +997,7 @@ Basic.Settings.Output.Simple.Warn.Encoder="Warning: Recording
with a software en
+@@ -1023,6 +1023,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. Replay buffer is
unavailable when using lossless quality."
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!"
@@ -33,7 +33,7 @@ index dd8f20f69..6a8e4e1e7 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 a8b5d884a..e68a33bb5 100644
+index cecb5f9bf..0d1e20d4f 100644
--- a/UI/window-basic-auto-config-test.cpp
+++ b/UI/window-basic-auto-config-test.cpp
@@ -199,7 +199,8 @@ void AutoConfigTestPage::TestBandwidthThread()
@@ -62,7 +62,7 @@ index a8b5d884a..e68a33bb5 100644
obs_data_set_int(aencoder_settings, "bitrate", 32);
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
-@@ -574,7 +576,8 @@ bool AutoConfigTestPage::TestSoftwareEncoding()
+@@ -607,7 +609,8 @@ bool AutoConfigTestPage::TestSoftwareEncoding()
/* create obs objects */
OBSEncoderAutoRelease vencoder = obs_video_encoder_create(
@@ -72,7 +72,7 @@ index a8b5d884a..e68a33bb5 100644
OBSEncoderAutoRelease aencoder = obs_audio_encoder_create(
"ffmpeg_aac", "test_aac", nullptr, 0, nullptr);
OBSOutputAutoRelease output =
-@@ -588,17 +591,25 @@ bool AutoConfigTestPage::TestSoftwareEncoding()
+@@ -621,17 +624,25 @@ bool AutoConfigTestPage::TestSoftwareEncoding()
obs_data_set_int(aencoder_settings, "bitrate", 32);
if (wiz->type != AutoConfig::Type::Recording) {
@@ -104,7 +104,7 @@ index a8b5d884a..e68a33bb5 100644
}
/* -----------------------------------*/
-@@ -951,7 +962,10 @@ void AutoConfigTestPage::TestStreamEncoderThread()
+@@ -988,7 +999,10 @@ void AutoConfigTestPage::TestStreamEncoderThread()
else
wiz->streamingEncoder = AutoConfig::Encoder::AMD;
} else {
@@ -116,7 +116,7 @@ index a8b5d884a..e68a33bb5 100644
}
#ifdef __linux__
-@@ -996,7 +1010,10 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
+@@ -1033,7 +1047,10 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
else
wiz->recordingEncoder = AutoConfig::Encoder::AMD;
} else {
@@ -128,7 +128,7 @@ index a8b5d884a..e68a33bb5 100644
}
if (wiz->recordingEncoder != AutoConfig::Encoder::NVENC) {
-@@ -1010,6 +1027,7 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
+@@ -1047,6 +1064,7 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
}
#define ENCODER_TEXT(x) "Basic.Settings.Output.Simple.Encoder." x
@@ -136,7 +136,7 @@ index a8b5d884a..e68a33bb5 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")
-@@ -1049,6 +1067,8 @@ void AutoConfigTestPage::FinalizeResults()
+@@ -1086,6 +1104,8 @@ void AutoConfigTestPage::FinalizeResults()
auto encName = [](AutoConfig::Encoder enc) -> QString {
switch (enc) {
@@ -145,7 +145,7 @@ index a8b5d884a..e68a33bb5 100644
case AutoConfig::Encoder::x264:
return QTStr(ENCODER_X264);
case AutoConfig::Encoder::NVENC:
-@@ -1063,7 +1083,7 @@ void AutoConfigTestPage::FinalizeResults()
+@@ -1100,7 +1120,7 @@ void AutoConfigTestPage::FinalizeResults()
return QTStr(QUALITY_SAME);
}
@@ -155,18 +155,18 @@ index a8b5d884a..e68a33bb5 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 f992c0719..d97a188f5 100644
+index 243dce972..22cb399f3 100644
--- a/UI/window-basic-auto-config.cpp
+++ b/UI/window-basic-auto-config.cpp
-@@ -982,6 +982,7 @@ AutoConfig::AutoConfig(QWidget *parent) : QWizard(parent)
- streamPage->ui->bitrate->setValue(bitrate);
- streamPage->ServiceChanged();
+@@ -1122,6 +1122,7 @@ AutoConfig::AutoConfig(QWidget *parent) : QWizard(parent)
+ streamPage->ui->key->setText(key.c_str());
-+ TestSoftwareEncoding();
TestHardwareEncoding();
- if (!hardwareEncodingAvailable) {
- delete streamPage->ui->preferHardware;
-@@ -1010,6 +1011,16 @@ AutoConfig::~AutoConfig()
++ TestSoftwareEncoding();
+
+ int bitrate =
+ config_get_int(main->Config(), "SimpleOutput", "VBitrate");
+@@ -1163,6 +1164,16 @@ AutoConfig::~AutoConfig()
EnableThreadedMessageBoxes(false);
}
@@ -183,7 +183,7 @@ index f992c0719..d97a188f5 100644
void AutoConfig::TestHardwareEncoding()
{
size_t idx = 0;
-@@ -1089,8 +1100,10 @@ inline const char *AutoConfig::GetEncoderId(Encoder enc)
+@@ -1242,8 +1253,10 @@ inline const char *AutoConfig::GetEncoderId(Encoder enc)
return SIMPLE_ENCODER_AMD;
case Encoder::Apple:
return SIMPLE_ENCODER_APPLE_H264;
@@ -196,10 +196,10 @@ index f992c0719..d97a188f5 100644
};
diff --git a/UI/window-basic-auto-config.hpp b/UI/window-basic-auto-config.hpp
-index 5d966c795..c17e32a85 100644
+index 2f93c540b..805c3836d 100644
--- a/UI/window-basic-auto-config.hpp
+++ b/UI/window-basic-auto-config.hpp
-@@ -43,6 +43,7 @@ class AutoConfig : public QWizard {
+@@ -44,6 +44,7 @@ class AutoConfig : public QWizard {
};
enum class Encoder {
@@ -207,7 +207,7 @@ index 5d966c795..c17e32a85 100644
x264,
NVENC,
QSV,
-@@ -91,6 +92,7 @@ class AutoConfig : public QWizard {
+@@ -103,6 +104,7 @@ class AutoConfig : public QWizard {
bool qsvAvailable = false;
bool vceAvailable = false;
bool appleAvailable = false;
@@ -215,7 +215,7 @@ index 5d966c795..c17e32a85 100644
int startingBitrate = 2500;
bool customServer = false;
-@@ -106,6 +108,7 @@ class AutoConfig : public QWizard {
+@@ -119,6 +121,7 @@ class AutoConfig : public QWizard {
int specificFPSNum = 0;
int specificFPSDen = 0;
@@ -224,10 +224,10 @@ index 5d966c795..c17e32a85 100644
bool CanTestServer(const char *server);
diff --git a/UI/window-basic-main-outputs.cpp b/UI/window-basic-main-outputs.cpp
-index f87e16dcd..0466cdff6 100644
+index 9e644e90a..2312da7dd 100644
--- a/UI/window-basic-main-outputs.cpp
+++ b/UI/window-basic-main-outputs.cpp
-@@ -552,7 +552,9 @@ void SimpleOutput::LoadStreamingPreset_Lossy(const char *encoderId)
+@@ -593,7 +593,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)
{
@@ -238,7 +238,7 @@ index f87e16dcd..0466cdff6 100644
return "obs_x264";
} else if (strcmp(encoder, SIMPLE_ENCODER_X264_LOWCPU) == 0) {
return "obs_x264";
-@@ -586,7 +588,7 @@ const char *get_simple_output_encoder(const char *encoder)
+@@ -627,7 +629,7 @@ const char *get_simple_output_encoder(const char *encoder)
#endif
}
@@ -371,11 +371,11 @@ index f9d3f4ea1..27899efc4 100644
}
#endif
diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp
-index 0621d039c..c39266e9f 100644
+index 5c05f4141..445c3e8b4 100644
--- a/UI/window-basic-main.cpp
+++ b/UI/window-basic-main.cpp
-@@ -1469,6 +1469,8 @@ extern void CheckExistingCookieId();
- #define DEFAULT_CONTAINER "fragmented_mp4"
+@@ -1550,6 +1550,8 @@ extern void CheckExistingCookieId();
+ #define DEFAULT_CONTAINER "hybrid_mp4"
#endif
+extern bool EncoderAvailable(const char *encoder);
@@ -383,7 +383,7 @@ index 0621d039c..c39266e9f 100644
bool OBSBasic::InitBasicConfigDefaults()
{
QList<QScreen *> screens = QGuiApplication::screens();
-@@ -1654,7 +1656,10 @@ bool OBSBasic::InitBasicConfigDefaults()
+@@ -1742,7 +1744,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);
@@ -395,7 +395,7 @@ index 0621d039c..c39266e9f 100644
config_set_default_string(basicConfig, "AdvOut", "RecType",
"Standard");
-@@ -1780,7 +1785,6 @@ bool OBSBasic::InitBasicConfigDefaults()
+@@ -1868,7 +1873,6 @@ bool OBSBasic::InitBasicConfigDefaults()
return true;
}
@@ -403,7 +403,7 @@ index 0621d039c..c39266e9f 100644
extern bool update_nvenc_presets(ConfigFile &config);
void OBSBasic::InitBasicConfigDefaults2()
-@@ -1789,12 +1793,14 @@ void OBSBasic::InitBasicConfigDefaults2()
+@@ -1877,12 +1881,14 @@ void OBSBasic::InitBasicConfigDefaults2()
"Pre23Defaults");
bool useNV = EncoderAvailable("ffmpeg_nvenc") && !oldEncDefaults;
@@ -422,20 +422,20 @@ index 0621d039c..c39266e9f 100644
const char *aac_default = "ffmpeg_aac";
if (EncoderAvailable("CoreAudio_AAC"))
-@@ -2076,7 +2082,7 @@ void OBSBasic::OBSInit()
+@@ -2190,7 +2196,7 @@ void OBSBasic::OBSInit()
InitBasicConfigDefaults2();
- CheckForSimpleModeX264Fallback();
+ CheckForSimpleModeH264Fallback();
- blog(LOG_INFO, STARTUP_SEPARATOR);
+ LogEncoders();
diff --git a/UI/window-basic-main.hpp b/UI/window-basic-main.hpp
-index 8c4104c11..2349d791a 100644
+index eb55d2f05..908093321 100644
--- a/UI/window-basic-main.hpp
+++ b/UI/window-basic-main.hpp
-@@ -69,6 +69,7 @@ class OBSBasicVCamConfig;
+@@ -70,6 +70,7 @@ class OBSBasicVCamConfig;
#define SIMPLE_ENCODER_X264 "x264"
#define SIMPLE_ENCODER_X264_LOWCPU "x264_lowcpu"
@@ -443,7 +443,7 @@ index 8c4104c11..2349d791a 100644
#define SIMPLE_ENCODER_QSV "qsv"
#define SIMPLE_ENCODER_QSV_AV1 "qsv_av1"
#define SIMPLE_ENCODER_NVENC "nvenc"
-@@ -448,7 +449,7 @@ private:
+@@ -445,7 +446,7 @@ private:
void DeleteProfile(const char *profile_name, const char *profile_dir);
void RefreshProfiles();
void ChangeProfile();
@@ -453,10 +453,10 @@ index 8c4104c11..2349d791a 100644
void SaveProjectNow();
diff --git a/UI/window-basic-settings-stream.cpp b/UI/window-basic-settings-stream.cpp
-index de306efa9..64e6c4b14 100644
+index cd78d4c8a..893059896 100644
--- a/UI/window-basic-settings-stream.cpp
+++ b/UI/window-basic-settings-stream.cpp
-@@ -1471,7 +1471,9 @@ static QString get_adv_fallback(const QString &enc)
+@@ -1617,7 +1617,9 @@ static QString get_adv_fallback(const QString &enc)
return "com.apple.videotoolbox.videoencoder.ave.avc";
if (enc == "obs_qsv11_av1")
return "obs_qsv11";
@@ -467,7 +467,7 @@ index de306efa9..64e6c4b14 100644
}
static QString get_adv_audio_fallback(const QString &enc)
-@@ -1500,7 +1502,9 @@ static QString get_simple_fallback(const QString &enc)
+@@ -1646,7 +1648,9 @@ static QString get_simple_fallback(const QString &enc)
return SIMPLE_ENCODER_APPLE_H264;
if (enc == SIMPLE_ENCODER_QSV_AV1)
return SIMPLE_ENCODER_QSV;
@@ -478,7 +478,7 @@ index de306efa9..64e6c4b14 100644
}
bool OBSBasicSettings::ServiceSupportsCodecCheck()
-@@ -1704,8 +1708,12 @@ void OBSBasicSettings::ResetEncoders(bool streamOnly)
+@@ -1850,8 +1854,12 @@ void OBSBasicSettings::ResetEncoders(bool streamOnly)
#define ENCODER_STR(str) QTStr("Basic.Settings.Output.Simple.Encoder." str)
@@ -494,10 +494,10 @@ index de306efa9..64e6c4b14 100644
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 efb98c4ef..65d173caf 100644
+index 2aa92203c..38e323479 100644
--- a/UI/window-basic-settings.cpp
+++ b/UI/window-basic-settings.cpp
-@@ -3843,6 +3843,11 @@ void OBSBasicSettings::SaveOutputSettings()
+@@ -3848,6 +3848,11 @@ void OBSBasicSettings::SaveOutputSettings()
do. This only exists to make sure that the x264 preset doesn't
get overwritten with empty data. */
presetType = "ApplePreset";
@@ -509,7 +509,7 @@ index efb98c4ef..65d173caf 100644
else
presetType = "Preset";
-@@ -5303,11 +5308,16 @@ void OBSBasicSettings::FillSimpleRecordingValues()
+@@ -5338,11 +5343,16 @@ void OBSBasicSettings::FillSimpleRecordingValues()
ADD_QUALITY("HQ");
ADD_QUALITY("Lossless");
@@ -531,7 +531,7 @@ index efb98c4ef..65d173caf 100644
if (EncoderAvailable("obs_qsv11"))
ui->simpleOutRecEncoder->addItem(
ENCODER_STR("Hardware.QSV.H264"),
-@@ -5480,6 +5490,9 @@ void OBSBasicSettings::SimpleStreamingEncoderChanged()
+@@ -5516,6 +5526,9 @@ void OBSBasicSettings::SimpleStreamingEncoderChanged()
defaultPreset = "balanced";
preset = curAMDAV1Preset;
@@ -542,5 +542,5 @@ index efb98c4ef..65d173caf 100644
#define PRESET_STR(val) \
--
-2.44.0
+2.45.2
diff --git a/obs-studio-freeworld.spec b/obs-studio-freeworld.spec
index e3c4730..62fccfc 100644
--- a/obs-studio-freeworld.spec
+++ b/obs-studio-freeworld.spec
@@ -14,7 +14,7 @@
%bcond_without x264
-%global obswebsocket_version 5.4.2
+%global obswebsocket_version 5.5.1
%global origname obs-studio
%if "%{__isa_bits}" == "64"
@@ -23,13 +23,13 @@
%global libvlc_soversion 5
Name: obs-studio-freeworld
-Version: 30.1.1
-Release: 2%{?dist}
+Version: 30.2.2
+Release: 1%{?dist}
Summary: Open Broadcaster Software Studio -- Freeworld plugins
# 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 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-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}/%{origname}-%{...
@@ -88,6 +88,7 @@ BuildRequires: libxkbcommon-devel
BuildRequires: luajit-devel
%endif
BuildRequires: mbedtls-devel
+BuildRequires: nv-codec-headers
%if %{with vpl}
BuildRequires: oneVPL-devel
%endif
@@ -104,6 +105,7 @@ BuildRequires: qt6-qtwayland-devel
BuildRequires: speexdsp-devel
BuildRequires: swig
BuildRequires: systemd-devel
+BuildRequires: uthash-devel
BuildRequires: wayland-devel
BuildRequires: websocketpp-devel
%if %{with x264}
@@ -129,8 +131,6 @@ Provides: bundled(blake2)
Provides: bundled(json11)
## License: MIT
Provides: bundled(libcaption)
-## License: BSD-1-Clause
-Provides: bundled(uthash)
## License: BSD-3-Clause
Provides: bundled(rnnoise)
## License: LGPL-2.1-or-later and LicenseRef-Fedora-Public-Domain
@@ -215,7 +215,6 @@ cp plugins/obs-outputs/librtmp/COPYING
.fedora-rpm/licenses/deps/librtmp-COPYING
cp deps/json11/LICENSE.txt .fedora-rpm/licenses/deps/json11-LICENSE.txt
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/media-playback/LICENSE.media-playback .fedora-rpm/licenses/deps/
cp libobs/graphics/libnsgif/LICENSE.libnsgif .fedora-rpm/licenses/deps/
@@ -258,6 +257,9 @@ mv preserve/%{_prefix} %{buildroot}
%changelog
+* Wed Aug 28 2024 Dominik Mierzejewski <dominik(a)greysector.net> - 30.2.2-1
+- Update to 30.2.2
+
* Fri Aug 02 2024 RPM Fusion Release Engineering <sergiomb(a)rpmfusion.org> -
30.1.1-2
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
diff --git a/sources b/sources
index 57cf76e..13a7b05 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (obs-websocket-5.4.2.tar.gz) =
639cdc3a53e4b6296c91b0105a36f37fb372526bdc218a4cadf3c790542a77046734a1941014f029785ebb3e39872e0083ad4bead34d838938b14f66e74fa8ae
-SHA512 (obs-studio-30.1.1.tar.gz) =
31aba14cf9db6b6c41d87ea0b814d38e1ba2794d07f1aff025c810e9dda32b0915d3f6d2679383755d0a4e47fc26c2aef981e26a80b792cf7fb893e672b6609a
+SHA512 (obs-studio-30.2.2.tar.gz) =
3e22be9cc3f09a03a6125b87ee134afe22241a786c5528a6166bd1706e52f7ea6259cfd5207afc8dc299c48851f4663179a698f87e8bde7fecea411764e39c93
+SHA512 (obs-websocket-5.5.1.tar.gz) =
a801ca747ccfb9d888e8b2e57c44e786e981a6ab4a83ef1d82ea396b732b9ddcfcdb8068bd65507e5fecc1b93c303611b5c23d0cff5bd36f09230651c534cab5