public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/obs-studio] f45: Update to 32.2.2
@ 2026-09-17 15:58 Diego Herrera
0 siblings, 0 replies; only message in thread
From: Diego Herrera @ 2026-09-17 15:58 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/obs-studio
Branch : f45
Commit : 811c6f3374887aa69d24f553c595ecbbfe53049b
Author : Diego Herrera <dherrera@redhat.com>
Date : 2026-09-04T13:19:48-04:00
Stats : +123/-197 in 9 file(s)
URL : https://src.fedoraproject.org/rpms/obs-studio/c/811c6f3374887aa69d24f553c595ecbbfe53049b?branch=f45
Log:
Update to 32.2.2
---
diff --git a/0101-frontend-Consider-settings-changed-if-an-output-sett.patch b/0101-frontend-Consider-settings-changed-if-an-output-sett.patch
index 3d1ef40..6811e06 100644
--- a/0101-frontend-Consider-settings-changed-if-an-output-sett.patch
+++ b/0101-frontend-Consider-settings-changed-if-an-output-sett.patch
@@ -12,48 +12,44 @@ value, since you can never trigger the "changed" status).
If the settings load process clamped any setting to the default, enable
the apply button and consider the setting changed.
---
- frontend/settings/OBSBasicSettings.cpp | 28 +++++++++++++++++++++++---
- 1 file changed, 25 insertions(+), 3 deletions(-)
+ frontend/settings/OBSBasicSettings.cpp | 19 +++++++++++++++++++
+ 1 file changed, 19 insertions(+)
diff --git a/frontend/settings/OBSBasicSettings.cpp b/frontend/settings/OBSBasicSettings.cpp
-index 6e47f93ac924..98998f3605cf 100644
+index cace1de59..0a5639359 100644
--- a/frontend/settings/OBSBasicSettings.cpp
+++ b/frontend/settings/OBSBasicSettings.cpp
-@@ -1753,19 +1753,30 @@ void OBSBasicSettings::LoadSimpleOutputSettings()
+@@ -1813,21 +1813,29 @@ void OBSBasicSettings::LoadSimpleOutputSettings()
ui->simpleOutAdvanced->setChecked(advanced);
ui->simpleOutCustom->setText(custom);
+ bool outputSettingReset = false;
+
idx = ui->simpleOutRecQuality->findData(QString(recQual));
-- if (idx == -1)
-+ if (idx == -1) {
+ if (idx == -1) {
+ ui->simpleOutRecQuality->setProperty("changed", QVariant(true));
idx = 0;
+ outputSettingReset = true;
-+ }
+ }
ui->simpleOutRecQuality->setCurrentIndex(idx);
idx = ui->simpleOutStrEncoder->findData(QString(streamEnc));
-- if (idx == -1)
-+ if (idx == -1) {
+ if (idx == -1) {
+ ui->simpleOutStrEncoder->setProperty("changed", QVariant(true));
idx = 0;
+ outputSettingReset = true;
-+ }
+ }
ui->simpleOutStrEncoder->setCurrentIndex(idx);
idx = ui->simpleOutStrAEncoder->findData(QString(streamAudioEnc));
-- if (idx == -1)
-+ if (idx == -1) {
+ if (idx == -1) {
+ ui->simpleOutStrAEncoder->setProperty("changed", QVariant(true));
idx = 0;
+ outputSettingReset = true;
-+ }
+ }
ui->simpleOutStrAEncoder->setCurrentIndex(idx);
- idx = ui->simpleOutRecEncoder->findData(QString(recEnc));
-@@ -1781,6 +1792,10 @@ void OBSBasicSettings::LoadSimpleOutputSettings()
+@@ -1844,6 +1852,10 @@ void OBSBasicSettings::LoadSimpleOutputSettings()
ui->simpleRBMegsMax->setValue(rbSize);
SimpleStreamingEncoderChanged();
@@ -64,7 +60,7 @@ index 6e47f93ac924..98998f3605cf 100644
}
static inline QString makeFormatToolTip()
-@@ -1921,6 +1936,10 @@ void OBSBasicSettings::LoadAdvOutputStreamingEncoderProperties()
+@@ -1986,6 +1998,10 @@ void OBSBasicSettings::LoadAdvOutputStreamingEncoderProperties()
ui->advOutEncoder->insertItem(0, encName, QT_UTF8(type));
SetComboByValue(ui->advOutEncoder, type);
@@ -75,7 +71,7 @@ index 6e47f93ac924..98998f3605cf 100644
}
}
-@@ -2027,6 +2046,9 @@ void OBSBasicSettings::LoadAdvOutputRecordingEncoderProperties()
+@@ -2095,6 +2111,9 @@ void OBSBasicSettings::LoadAdvOutputRecordingEncoderProperties()
SetComboByValue(ui->advOutRecEncoder, type);
} else {
ui->advOutRecEncoder->setCurrentIndex(-1);
@@ -86,5 +82,5 @@ index 6e47f93ac924..98998f3605cf 100644
}
}
--
-2.51.0
+2.55.0
diff --git a/0102-frontend-Allow-invalid-recording-encoder-if-quality-.patch b/0102-frontend-Allow-invalid-recording-encoder-if-quality-.patch
index 224dbde..17c4b4a 100644
--- a/0102-frontend-Allow-invalid-recording-encoder-if-quality-.patch
+++ b/0102-frontend-Allow-invalid-recording-encoder-if-quality-.patch
@@ -12,30 +12,30 @@ it's relevant.
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/frontend/settings/OBSBasicSettings.cpp b/frontend/settings/OBSBasicSettings.cpp
-index 98998f3605cf..fdda9282f511 100644
+index 0a5639359..cb102f4a9 100644
--- a/frontend/settings/OBSBasicSettings.cpp
+++ b/frontend/settings/OBSBasicSettings.cpp
-@@ -3739,8 +3739,7 @@ bool OBSBasicSettings::QueryAllowedToClose()
+@@ -3905,8 +3905,7 @@ bool OBSBasicSettings::QueryAllowedToClose()
bool invalidFormat = false;
bool invalidTracks = false;
if (simple) {
- if (ui->simpleOutRecEncoder->currentIndex() == -1 || ui->simpleOutStrEncoder->currentIndex() == -1 ||
-- ui->simpleOutRecAEncoder->currentIndex() == -1 || ui->simpleOutStrAEncoder->currentIndex() == -1)
-+ if (ui->simpleOutStrEncoder->currentIndex() == -1 || ui->simpleOutStrAEncoder->currentIndex() == -1)
+- ui->simpleOutRecAEncoder->currentIndex() == -1 || ui->simpleOutStrAEncoder->currentIndex() == -1) {
++ if (ui->simpleOutStrEncoder->currentIndex() == -1 || ui->simpleOutStrAEncoder->currentIndex() == -1) {
invalidEncoder = true;
-
- if (ui->simpleOutRecFormat->currentIndex() == -1)
-@@ -3750,6 +3749,10 @@ bool OBSBasicSettings::QueryAllowedToClose()
- QString format = ui->simpleOutRecFormat->currentData().toString();
- if (SimpleOutGetSelectedAudioTracks() == 0 && qual != "Stream" && format != "flv")
+ }
+
+@@ -3919,6 +3918,10 @@ bool OBSBasicSettings::QueryAllowedToClose()
+ if (SimpleOutGetSelectedAudioTracks() == 0 && qual != "Stream" && format != "flv") {
invalidTracks = true;
+ }
+
+ if (qual != "Stream" &&
+ (ui->simpleOutRecEncoder->currentIndex() == -1 || ui->simpleOutRecAEncoder->currentIndex() == -1))
+ invalidEncoder = true;
} else {
if (ui->advOutRecEncoder->currentIndex() == -1 || ui->advOutEncoder->currentIndex() == -1 ||
- ui->advOutRecAEncoder->currentIndex() == -1 || ui->advOutAEncoder->currentIndex() == -1)
+ ui->advOutRecAEncoder->currentIndex() == -1 || ui->advOutAEncoder->currentIndex() == -1) {
--
-2.51.0
+2.55.0
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 dd39748..37e2351 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
@@ -20,10 +20,10 @@ available.
10 files changed, 105 insertions(+), 40 deletions(-)
diff --git a/frontend/data/locale/en-US.ini b/frontend/data/locale/en-US.ini
-index 908af15890c5..73ce7b3762dc 100644
+index b5cc6384c..5f810c80a 100644
--- a/frontend/data/locale/en-US.ini
+++ b/frontend/data/locale/en-US.ini
-@@ -1065,6 +1065,7 @@ Basic.Settings.Output.Simple.Warn.Lossless="Warning: Lossless quality generates
+@@ -1086,6 +1086,7 @@ Basic.Settings.Output.Simple.Warn.Lossless="Warning: Lossless quality generates
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!"
Basic.Settings.Output.Simple.Encoder.Software="Software (x264)"
@@ -32,22 +32,22 @@ index 908af15890c5..73ce7b3762dc 100644
Basic.Settings.Output.Simple.Encoder.Hardware.QSV.AV1="Hardware (QSV, AV1)"
Basic.Settings.Output.Simple.Encoder.Hardware.AMD.H264="Hardware (AMD, H.264)"
diff --git a/frontend/settings/OBSBasicSettings.cpp b/frontend/settings/OBSBasicSettings.cpp
-index fdda9282f511..575912a439b5 100644
+index cb102f4a9..e048ec6e0 100644
--- a/frontend/settings/OBSBasicSettings.cpp
+++ b/frontend/settings/OBSBasicSettings.cpp
-@@ -3385,6 +3385,11 @@ void OBSBasicSettings::SaveOutputSettings()
+@@ -3520,6 +3520,11 @@ void OBSBasicSettings::SaveOutputSettings()
do. This only exists to make sure that the x264 preset doesn't
get overwritten with empty data. */
presetType = "ApplePreset";
+ else if (encoder == SIMPLE_ENCODER_OPENH264)
+ /* The OpenH264 encoder does not have presets like the other encoders
-+ do. This only exists to make sure that the x264 preset doesn't
-+ get overwritten with empty data. */
++ do. This only exists to make sure that the x264 preset doesn't
++ get overwritten with empty data. */
+ presetType = "OpenH264Preset";
- else
+ else {
presetType = "Preset";
-
-@@ -4759,8 +4764,11 @@ void OBSBasicSettings::FillSimpleRecordingValues()
+ }
+@@ -4973,8 +4978,11 @@ void OBSBasicSettings::FillSimpleRecordingValues()
ADD_QUALITY("HQ");
ADD_QUALITY("Lossless");
@@ -58,10 +58,10 @@ index fdda9282f511..575912a439b5 100644
+ ui->simpleOutRecEncoder->addItem(ENCODER_STR("Software"), QString(SIMPLE_ENCODER_X264));
+ ui->simpleOutRecEncoder->addItem(ENCODER_STR("SoftwareLowCPU"), QString(SIMPLE_ENCODER_X264_LOWCPU));
+ }
- if (EncoderAvailable("obs_qsv11"))
+ if (EncoderAvailable("obs_qsv11")) {
ui->simpleOutRecEncoder->addItem(ENCODER_STR("Hardware.QSV.H264"), QString(SIMPLE_ENCODER_QSV));
- if (EncoderAvailable("obs_qsv11_av1"))
-@@ -4909,6 +4917,9 @@ void OBSBasicSettings::SimpleStreamingEncoderChanged()
+ }
+@@ -5131,6 +5139,9 @@ void OBSBasicSettings::SimpleStreamingEncoderChanged()
defaultPreset = "balanced";
preset = curAMDAV1Preset;
@@ -72,13 +72,13 @@ index fdda9282f511..575912a439b5 100644
#define PRESET_STR(val) QString(Str("Basic.Settings.Output.EncoderPreset." val)).arg(val)
diff --git a/frontend/settings/OBSBasicSettings_Stream.cpp b/frontend/settings/OBSBasicSettings_Stream.cpp
-index ce74a1cb1bab..74bc9cbcccb2 100644
+index 2217ccdb5..198ea78de 100644
--- a/frontend/settings/OBSBasicSettings_Stream.cpp
+++ b/frontend/settings/OBSBasicSettings_Stream.cpp
-@@ -1471,7 +1471,9 @@ static QString get_adv_fallback(const QString &enc)
- return "com.apple.videotoolbox.videoencoder.ave.avc";
- if (enc == "obs_qsv11_av1")
+@@ -1529,7 +1529,9 @@ static QString get_adv_fallback(const QString &enc)
+ if (enc == "obs_qsv11_av1") {
return "obs_qsv11";
+ }
- return "obs_x264";
+ if (EncoderAvailable("obs_x264"))
+ return "obs_x264";
@@ -86,10 +86,10 @@ index ce74a1cb1bab..74bc9cbcccb2 100644
}
static QString get_adv_audio_fallback(const QString &enc)
-@@ -1500,7 +1502,9 @@ static QString get_simple_fallback(const QString &enc)
- return SIMPLE_ENCODER_APPLE_H264;
- if (enc == SIMPLE_ENCODER_QSV_AV1)
+@@ -1564,7 +1566,9 @@ static QString get_simple_fallback(const QString &enc)
+ if (enc == SIMPLE_ENCODER_QSV_AV1) {
return SIMPLE_ENCODER_QSV;
+ }
- return SIMPLE_ENCODER_X264;
+ if (EncoderAvailable("obs_x264"))
+ return SIMPLE_ENCODER_X264;
@@ -97,7 +97,7 @@ index ce74a1cb1bab..74bc9cbcccb2 100644
}
bool OBSBasicSettings::ServiceSupportsCodecCheck()
-@@ -1675,7 +1679,9 @@ void OBSBasicSettings::ResetEncoders(bool streamOnly)
+@@ -1748,7 +1752,9 @@ void OBSBasicSettings::ResetEncoders(bool streamOnly)
#define ENCODER_STR(str) QTStr("Basic.Settings.Output.Simple.Encoder." str)
@@ -106,13 +106,13 @@ index ce74a1cb1bab..74bc9cbcccb2 100644
+ if (service_supports_encoder(vcodecs, "obs_x264"))
+ ui->simpleOutStrEncoder->addItem(ENCODER_STR("Software"), QString(SIMPLE_ENCODER_X264));
#ifdef _WIN32
- if (service_supports_encoder(vcodecs, "obs_qsv11"))
+ if (service_supports_encoder(vcodecs, "obs_qsv11")) {
ui->simpleOutStrEncoder->addItem(ENCODER_STR("Hardware.QSV.H264"), QString(SIMPLE_ENCODER_QSV));
diff --git a/frontend/utility/SimpleOutput.cpp b/frontend/utility/SimpleOutput.cpp
-index d594b9987f4b..54ba20f89a8d 100644
+index 718a363c0..3a86b71e9 100644
--- a/frontend/utility/SimpleOutput.cpp
+++ b/frontend/utility/SimpleOutput.cpp
-@@ -80,7 +80,9 @@ void SimpleOutput::LoadStreamingPreset_Lossy(const char *encoderId)
+@@ -90,7 +90,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)
{
@@ -123,7 +123,7 @@ index d594b9987f4b..54ba20f89a8d 100644
return "obs_x264";
} else if (strcmp(encoder, SIMPLE_ENCODER_X264_LOWCPU) == 0) {
return "obs_x264";
-@@ -112,7 +114,7 @@ const char *get_simple_output_encoder(const char *encoder)
+@@ -122,7 +124,7 @@ const char *get_simple_output_encoder(const char *encoder)
#endif
}
@@ -133,10 +133,10 @@ index d594b9987f4b..54ba20f89a8d 100644
void SimpleOutput::LoadRecordingPreset()
diff --git a/frontend/widgets/OBSBasic.cpp b/frontend/widgets/OBSBasic.cpp
-index b0698b29b547..b18e0612a98c 100644
+index b6f544530..e5ce7eff8 100644
--- a/frontend/widgets/OBSBasic.cpp
+++ b/frontend/widgets/OBSBasic.cpp
-@@ -576,6 +576,8 @@ static const double scaled_vals[] = {1.0, 1.25, (1.0 / 0.75), 1.5, (1.0 / 0.6),
+@@ -604,6 +604,8 @@ static const double scaled_vals[] = {1.0, 1.25, (1.0 / 0.75), 1.5, (1.0 / 0.6),
#define DEFAULT_CONTAINER "hybrid_mp4"
#endif
@@ -145,7 +145,7 @@ index b0698b29b547..b18e0612a98c 100644
bool OBSBasic::InitBasicConfigDefaults()
{
QList<QScreen *> screens = QGuiApplication::screens();
-@@ -737,7 +739,9 @@ bool OBSBasic::InitBasicConfigDefaults()
+@@ -767,7 +769,9 @@ bool OBSBasic::InitBasicConfigDefaults()
config_set_default_bool(activeConfiguration, "AdvOut", "UseRescale", false);
config_set_default_uint(activeConfiguration, "AdvOut", "TrackIndex", 1);
config_set_default_uint(activeConfiguration, "AdvOut", "VodTrackIndex", 2);
@@ -156,7 +156,7 @@ index b0698b29b547..b18e0612a98c 100644
config_set_default_string(activeConfiguration, "AdvOut", "RecType", "Standard");
-@@ -853,10 +857,13 @@ void OBSBasic::InitBasicConfigDefaults2()
+@@ -883,10 +887,13 @@ void OBSBasic::InitBasicConfigDefaults2()
bool oldEncDefaults = config_get_bool(App()->GetUserConfig(), "General", "Pre23Defaults");
bool useNV = EncoderAvailable("ffmpeg_nvenc") && !oldEncDefaults;
@@ -171,12 +171,12 @@ index b0698b29b547..b18e0612a98c 100644
+ useNV ? SIMPLE_ENCODER_NVENC : h264_fallback);
const char *aac_default = "ffmpeg_aac";
- if (EncoderAvailable("CoreAudio_AAC"))
+ if (EncoderAvailable("CoreAudio_AAC")) {
diff --git a/frontend/widgets/OBSBasic.hpp b/frontend/widgets/OBSBasic.hpp
-index ca213433e0be..75b9207f3a2c 100644
+index 4343e1605..4011294e5 100644
--- a/frontend/widgets/OBSBasic.hpp
+++ b/frontend/widgets/OBSBasic.hpp
-@@ -76,6 +76,7 @@ enum class LogFileType;
+@@ -74,6 +74,7 @@ enum class ItemPasteType { Invalid, Reference, Duplicate, Both };
#define SIMPLE_ENCODER_X264 "x264"
#define SIMPLE_ENCODER_X264_LOWCPU "x264_lowcpu"
@@ -184,7 +184,7 @@ index ca213433e0be..75b9207f3a2c 100644
#define SIMPLE_ENCODER_QSV "qsv"
#define SIMPLE_ENCODER_QSV_AV1 "qsv_av1"
#define SIMPLE_ENCODER_NVENC "nvenc"
-@@ -894,7 +895,7 @@ private:
+@@ -916,7 +917,7 @@ private:
void UpdateProfileEncoders();
std::vector<std::string> GetRestartRequirements(const ConfigFile &config) const;
void ResetProfileData();
@@ -194,10 +194,10 @@ index ca213433e0be..75b9207f3a2c 100644
public:
inline const OBSProfileCache &GetProfileCache() const noexcept { return profiles; };
diff --git a/frontend/widgets/OBSBasic_Profiles.cpp b/frontend/widgets/OBSBasic_Profiles.cpp
-index 4c655915fe1e..381a8662ed49 100644
+index 836be77ac..786df5bd9 100644
--- a/frontend/widgets/OBSBasic_Profiles.cpp
+++ b/frontend/widgets/OBSBasic_Profiles.cpp
-@@ -734,7 +734,7 @@ void OBSBasic::ActivateProfile(const OBSProfile &profile, bool reset)
+@@ -736,7 +736,7 @@ void OBSBasic::ActivateProfile(const OBSProfile &profile, bool reset)
void OBSBasic::UpdateProfileEncoders()
{
InitBasicConfigDefaults2();
@@ -206,7 +206,7 @@ index 4c655915fe1e..381a8662ed49 100644
}
void OBSBasic::ResetProfileData()
-@@ -782,10 +782,11 @@ std::vector<std::string> OBSBasic::GetRestartRequirements(const ConfigFile &conf
+@@ -784,10 +784,11 @@ std::vector<std::string> OBSBasic::GetRestartRequirements(const ConfigFile &conf
return result;
}
@@ -219,19 +219,19 @@ index 4c655915fe1e..381a8662ed49 100644
bool qsv_supported = false;
bool qsv_av1_supported = false;
bool amd_supported = false;
-@@ -802,7 +803,9 @@ void OBSBasic::CheckForSimpleModeX264Fallback()
+@@ -804,7 +805,9 @@ void OBSBasic::CheckForSimpleModeX264Fallback()
const char *id;
while (obs_enum_encoder_types(idx++, &id)) {
-- if (strcmp(id, "h264_texture_amf") == 0)
-+ if (strcmp(id, "obs_x264") == 0)
+- if (strcmp(id, "h264_texture_amf") == 0) {
++ if (strcmp(id, "obs_x264") == 0) {
+ x264_supported = true;
-+ else if (strcmp(id, "h264_texture_amf") == 0)
++ } else if (strcmp(id, "h264_texture_amf") == 0) {
amd_supported = true;
- else if (strcmp(id, "obs_qsv11") == 0)
+ } else if (strcmp(id, "obs_qsv11") == 0) {
qsv_supported = true;
-@@ -825,69 +828,71 @@ void OBSBasic::CheckForSimpleModeX264Fallback()
- apple_hevc_supported = true;
+@@ -831,69 +834,71 @@ void OBSBasic::CheckForSimpleModeX264Fallback()
+ }
#endif
}
+ // Check to see whether x264 is available
@@ -313,18 +313,18 @@ index 4c655915fe1e..381a8662ed49 100644
}
#endif
diff --git a/frontend/wizards/AutoConfig.cpp b/frontend/wizards/AutoConfig.cpp
-index 86e6ccea875c..67f1497dce28 100644
+index 111c5bb6a..e4c419bf7 100644
--- a/frontend/wizards/AutoConfig.cpp
+++ b/frontend/wizards/AutoConfig.cpp
-@@ -176,6 +176,7 @@ AutoConfig::AutoConfig(QWidget *parent) : QWizard(parent)
- streamPage->ui->key->setText(key.c_str());
+@@ -174,6 +174,7 @@ AutoConfig::AutoConfig(QWidget *parent) : QWizard(parent)
+ }
TestHardwareEncoding();
+ TestSoftwareEncoding();
int bitrate = config_get_int(main->Config(), "SimpleOutput", "VBitrate");
bool multitrackVideoEnabled = config_has_user_value(main->Config(), "Stream1", "EnableMultitrackVideo")
-@@ -210,6 +211,16 @@ AutoConfig::~AutoConfig()
+@@ -208,6 +209,16 @@ AutoConfig::~AutoConfig()
EnableThreadedMessageBoxes(false);
}
@@ -341,7 +341,7 @@ index 86e6ccea875c..67f1497dce28 100644
void AutoConfig::TestHardwareEncoding()
{
size_t idx = 0;
-@@ -285,8 +296,10 @@ inline const char *AutoConfig::GetEncoderId(Encoder enc)
+@@ -287,8 +298,10 @@ inline const char *AutoConfig::GetEncoderId(Encoder enc)
return SIMPLE_ENCODER_AMD;
case Encoder::Apple:
return SIMPLE_ENCODER_APPLE_H264;
@@ -354,7 +354,7 @@ index 86e6ccea875c..67f1497dce28 100644
};
diff --git a/frontend/wizards/AutoConfig.hpp b/frontend/wizards/AutoConfig.hpp
-index 92fa568f98ac..65cabb8f6774 100644
+index 92fa568f9..65cabb8f6 100644
--- a/frontend/wizards/AutoConfig.hpp
+++ b/frontend/wizards/AutoConfig.hpp
@@ -27,6 +27,7 @@ class AutoConfig : public QWizard {
@@ -382,10 +382,10 @@ index 92fa568f98ac..65cabb8f6774 100644
virtual void done(int result) override;
diff --git a/frontend/wizards/AutoConfigTestPage.cpp b/frontend/wizards/AutoConfigTestPage.cpp
-index c6547ba1b149..3de259a5e15a 100644
+index a557346f5..46e7c7d32 100644
--- a/frontend/wizards/AutoConfigTestPage.cpp
+++ b/frontend/wizards/AutoConfigTestPage.cpp
-@@ -119,7 +119,8 @@ void AutoConfigTestPage::TestBandwidthThread()
+@@ -118,7 +118,8 @@ void AutoConfigTestPage::TestBandwidthThread()
const char *serverType = wiz->customServer ? "rtmp_custom" : "rtmp_common";
@@ -395,7 +395,7 @@ index c6547ba1b149..3de259a5e15a 100644
OBSEncoderAutoRelease aencoder = obs_audio_encoder_create("ffmpeg_aac", "test_aac", nullptr, 0, nullptr);
OBSServiceAutoRelease service = obs_service_create(serverType, "test_service", nullptr, nullptr);
-@@ -151,10 +152,11 @@ void AutoConfigTestPage::TestBandwidthThread()
+@@ -150,10 +151,11 @@ void AutoConfigTestPage::TestBandwidthThread()
obs_data_set_string(service_settings, "key", key.c_str());
obs_data_set_int(vencoder_settings, "bitrate", wiz->startingBitrate);
@@ -411,7 +411,7 @@ index c6547ba1b149..3de259a5e15a 100644
obs_data_set_int(aencoder_settings, "bitrate", 32);
OBSBasic *main = OBSBasic::Get();
-@@ -482,7 +484,8 @@ bool AutoConfigTestPage::TestSoftwareEncoding()
+@@ -490,7 +492,8 @@ bool AutoConfigTestPage::TestSoftwareEncoding()
/* -----------------------------------*/
/* create obs objects */
@@ -421,7 +421,7 @@ index c6547ba1b149..3de259a5e15a 100644
OBSEncoderAutoRelease aencoder = obs_audio_encoder_create("ffmpeg_aac", "test_aac", nullptr, 0, nullptr);
OBSOutputAutoRelease output = obs_output_create("null_output", "null", nullptr, nullptr);
-@@ -494,16 +497,20 @@ bool AutoConfigTestPage::TestSoftwareEncoding()
+@@ -502,16 +505,20 @@ bool AutoConfigTestPage::TestSoftwareEncoding()
obs_data_set_int(aencoder_settings, "bitrate", 32);
if (wiz->type != AutoConfig::Type::Recording) {
@@ -448,9 +448,9 @@ index c6547ba1b149..3de259a5e15a 100644
}
/* -----------------------------------*/
-@@ -850,7 +857,10 @@ void AutoConfigTestPage::TestStreamEncoderThread()
- else
+@@ -896,7 +903,10 @@ void AutoConfigTestPage::TestStreamEncoderThread()
wiz->streamingEncoder = AutoConfig::Encoder::AMD;
+ }
} else {
- wiz->streamingEncoder = AutoConfig::Encoder::x264;
+ if (wiz->x264Available)
@@ -460,9 +460,9 @@ index c6547ba1b149..3de259a5e15a 100644
}
#ifdef __linux__
-@@ -894,7 +904,10 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
- else
+@@ -943,7 +953,10 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
wiz->recordingEncoder = AutoConfig::Encoder::AMD;
+ }
} else {
- wiz->recordingEncoder = AutoConfig::Encoder::x264;
+ if (wiz->x264Available)
@@ -472,7 +472,7 @@ index c6547ba1b149..3de259a5e15a 100644
}
if (wiz->recordingEncoder != AutoConfig::Encoder::NVENC) {
-@@ -909,6 +922,7 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
+@@ -958,6 +971,7 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
#define ENCODER_TEXT(x) "Basic.Settings.Output.Simple.Encoder." x
#define ENCODER_SOFTWARE ENCODER_TEXT("Software")
@@ -480,7 +480,7 @@ index c6547ba1b149..3de259a5e15a 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")
-@@ -946,6 +960,8 @@ void AutoConfigTestPage::FinalizeResults()
+@@ -995,6 +1009,8 @@ void AutoConfigTestPage::FinalizeResults()
auto encName = [](AutoConfig::Encoder enc) -> QString {
switch (enc) {
@@ -489,7 +489,7 @@ index c6547ba1b149..3de259a5e15a 100644
case AutoConfig::Encoder::x264:
return QTStr(ENCODER_SOFTWARE);
case AutoConfig::Encoder::NVENC:
-@@ -960,7 +976,7 @@ void AutoConfigTestPage::FinalizeResults()
+@@ -1009,7 +1025,7 @@ void AutoConfigTestPage::FinalizeResults()
return QTStr(QUALITY_SAME);
}
@@ -499,5 +499,5 @@ index c6547ba1b149..3de259a5e15a 100644
auto newLabel = [this](const char *str) -> QLabel * {
--
-2.51.0
+2.55.0
diff --git a/0105-libobs-opengl-Reject-external-only-modifiers.patch b/0105-libobs-opengl-Reject-external-only-modifiers.patch
deleted file mode 100644
index 45d57ba..0000000
--- a/0105-libobs-opengl-Reject-external-only-modifiers.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 68d8ea90ce16d8ba2f82f096945378a46606f14b Mon Sep 17 00:00:00 2001
-From: Asahi Lina <lina@asahilina.net>
-Date: Fri, 15 Aug 2025 14:01:04 +0900
-Subject: [PATCH 5/5] libobs-opengl: Reject external-only modifiers
-
-These modifiers cannot be used with the standard texture sampling
-codepaths, so we need to reject them to avoid invalid GL operations.
-
-Closes obsproject/obs-studio#12498
----
- libobs-opengl/gl-egl-common.c | 21 ++++++++++++++++++++-
- 1 file changed, 20 insertions(+), 1 deletion(-)
-
-diff --git a/libobs-opengl/gl-egl-common.c b/libobs-opengl/gl-egl-common.c
-index b3ff73fcc80b..021efc1bc7ae 100644
---- a/libobs-opengl/gl-egl-common.c
-+++ b/libobs-opengl/gl-egl-common.c
-@@ -360,19 +360,38 @@ static inline bool query_dmabuf_modifiers(EGLDisplay egl_display, EGLint drm_for
-
- if (max_modifiers != 0) {
- EGLuint64KHR *modifier_list = bzalloc(max_modifiers * sizeof(EGLuint64KHR));
-- EGLBoolean *external_only = NULL;
- if (!modifier_list) {
- blog(LOG_ERROR, "Unable to allocate memory");
- return false;
- }
-
-+ EGLBoolean *external_only = bzalloc(max_modifiers * sizeof(EGLBoolean));
-+ if (!external_only) {
-+ blog(LOG_ERROR, "Unable to allocate memory");
-+ bfree(modifier_list);
-+ return false;
-+ }
-+
- if (!glad_eglQueryDmaBufModifiersEXT(egl_display, drm_format, max_modifiers, modifier_list,
- external_only, &max_modifiers)) {
- blog(LOG_ERROR, "Cannot query a list of modifiers: %s", gl_egl_error_to_string(eglGetError()));
-+ bfree(external_only);
- bfree(modifier_list);
- return false;
- }
-
-+ // Filter out external_only modifiers, since they require special handling.
-+ for (int i = 0, j = 0; j < max_modifiers; i++) {
-+ if (external_only[i]) {
-+ max_modifiers--;
-+ memmove(&modifier_list[j], &modifier_list[j + 1],
-+ sizeof(EGLuint64KHR) * (max_modifiers - j));
-+ } else {
-+ j++;
-+ }
-+ }
-+
-+ bfree(external_only);
- *modifiers = modifier_list;
- }
-
---
-2.51.0
-
diff --git a/0201-WIP-Lock-down-Chrome-Runtime-dummy-Browser-Client.patch b/0201-WIP-Lock-down-Chrome-Runtime-dummy-Browser-Client.patch
index 0355e34..27bbd00 100644
--- a/0201-WIP-Lock-down-Chrome-Runtime-dummy-Browser-Client.patch
+++ b/0201-WIP-Lock-down-Chrome-Runtime-dummy-Browser-Client.patch
@@ -29,7 +29,7 @@ TODO: Version gate BrowserDummyClient
create mode 100644 browser-dummy-client.hpp
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index a6c9952f73c9..597320c3d743 100644
+index 0853ac0..16abf4c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -25,6 +25,8 @@ target_sources(
@@ -42,7 +42,7 @@ index a6c9952f73c9..597320c3d743 100644
browser-scheme.hpp
browser-version.h
diff --git a/browser-app.cpp b/browser-app.cpp
-index 5d2c4dc7602a..9714824fea90 100644
+index 5d2c4dc..9714824 100644
--- a/browser-app.cpp
+++ b/browser-app.cpp
@@ -48,11 +48,53 @@ CefRefPtr<CefBrowserProcessHandler> BrowserApp::GetBrowserProcessHandler()
@@ -100,7 +100,7 @@ index 5d2c4dc7602a..9714824fea90 100644
{
#ifdef _WIN32
diff --git a/browser-app.hpp b/browser-app.hpp
-index b25d9accdec8..68e505cc4324 100644
+index b25d9ac..68e505c 100644
--- a/browser-app.hpp
+++ b/browser-app.hpp
@@ -22,6 +22,7 @@
@@ -132,7 +132,7 @@ index b25d9accdec8..68e505cc4324 100644
};
diff --git a/browser-dummy-client.cpp b/browser-dummy-client.cpp
new file mode 100644
-index 000000000000..923fbed0fb6d
+index 0000000..923fbed
--- /dev/null
+++ b/browser-dummy-client.cpp
@@ -0,0 +1,79 @@
@@ -217,7 +217,7 @@ index 000000000000..923fbed0fb6d
+}
diff --git a/browser-dummy-client.hpp b/browser-dummy-client.hpp
new file mode 100644
-index 000000000000..80c9280d60e5
+index 0000000..80c9280
--- /dev/null
+++ b/browser-dummy-client.hpp
@@ -0,0 +1,47 @@
@@ -269,7 +269,7 @@ index 000000000000..80c9280d60e5
+ IMPLEMENT_REFCOUNTING(BrowserDummyClient);
+};
diff --git a/cmake/os-linux.cmake b/cmake/os-linux.cmake
-index 98108066c26b..eb4e0068bfb5 100644
+index f74797a..9ef8671 100644
--- a/cmake/os-linux.cmake
+++ b/cmake/os-linux.cmake
@@ -14,7 +14,8 @@ add_executable(OBS::browser-helper ALIAS browser-helper)
@@ -283,7 +283,7 @@ index 98108066c26b..eb4e0068bfb5 100644
target_include_directories(browser-helper PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/deps"
"${CMAKE_CURRENT_SOURCE_DIR}/obs-browser-page")
diff --git a/cmake/os-macos.cmake b/cmake/os-macos.cmake
-index 56c2e3025971..e96019a25781 100644
+index 6d6dc51..4f7fe27 100644
--- a/cmake/os-macos.cmake
+++ b/cmake/os-macos.cmake
@@ -31,7 +31,8 @@ foreach(helper IN LISTS helper_suffixes)
@@ -297,10 +297,10 @@ index 56c2e3025971..e96019a25781 100644
target_compile_definitions(${target_name} PRIVATE ENABLE_BROWSER_SHARED_TEXTURE)
diff --git a/cmake/os-windows.cmake b/cmake/os-windows.cmake
-index db3c18760258..7f8615e02920 100644
+index 43f9d85..b025073 100644
--- a/cmake/os-windows.cmake
+++ b/cmake/os-windows.cmake
-@@ -10,8 +10,8 @@ add_executable(OBS::browser-helper ALIAS obs-browser-helper)
+@@ -13,8 +13,8 @@ add_executable(OBS::browser-helper ALIAS obs-browser-helper)
target_sources(
obs-browser-helper
PRIVATE # cmake-format: sortable
@@ -309,8 +309,8 @@ index db3c18760258..7f8615e02920 100644
+ browser-app.cpp browser-app.hpp browser-dummy-client.hpp browser-dummy-client.cpp
+ cef-headers.hpp obs-browser-page.manifest obs-browser-page/obs-browser-page-main.cpp)
- target_include_directories(obs-browser-helper PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/deps"
- "${CMAKE_CURRENT_SOURCE_DIR}/obs-browser-page")
+ configure_file(cmake/windows/obs-module-helper.rc.in obs-browser-page.rc)
+ target_sources(obs-browser-helper PRIVATE obs-browser-page.rc)
--
-2.51.0
+2.55.0
diff --git a/0250-Update-to-C-20.patch b/0250-Update-to-C-20.patch
index e5203c0..88ee249 100644
--- a/0250-Update-to-C-20.patch
+++ b/0250-Update-to-C-20.patch
@@ -5,16 +5,15 @@ Subject: [PATCH] Update to C++20
Current CEF requires compiling as C++20.
---
- CMakeLists.txt | 2 +-
- cmake/os-linux.cmake | 1 +
- obs-browser-source.cpp | 2 +-
- 3 files changed, 3 insertions(+), 2 deletions(-)
+ CMakeLists.txt | 2 +-
+ cmake/os-linux.cmake | 1 +
+ 2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 0853ac0c2d24..0139b4c1c828 100644
+index 16abf4c..ba56c5a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -42,7 +42,7 @@ target_sources(
+@@ -44,7 +44,7 @@ target_sources(
target_include_directories(obs-browser PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/deps")
@@ -24,10 +23,10 @@ index 0853ac0c2d24..0139b4c1c828 100644
if(OS_WINDOWS)
diff --git a/cmake/os-linux.cmake b/cmake/os-linux.cmake
-index f74797a62118..23443bf73f86 100644
+index 9ef8671..2dc1175 100644
--- a/cmake/os-linux.cmake
+++ b/cmake/os-linux.cmake
-@@ -20,6 +20,7 @@ target_include_directories(browser-helper PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/d
+@@ -21,6 +21,7 @@ target_include_directories(browser-helper PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/d
"${CMAKE_CURRENT_SOURCE_DIR}/obs-browser-page")
target_link_libraries(browser-helper PRIVATE CEF::Wrapper CEF::Library)
@@ -35,19 +34,6 @@ index f74797a62118..23443bf73f86 100644
target_sources(obs-browser PRIVATE deps/ip-string-posix.cpp)
-diff --git a/obs-browser-source.cpp b/obs-browser-source.cpp
-index 6e80fbce8180..86780113f63c 100644
---- a/obs-browser-source.cpp
-+++ b/obs-browser-source.cpp
-@@ -512,7 +512,7 @@ void BrowserSource::Update(obs_data_t *settings)
- width = n_width;
- height = n_height;
- ExecuteOnBrowser(
-- [=](CefRefPtr<CefBrowser> cefBrowser) {
-+ [=, this](CefRefPtr<CefBrowser> cefBrowser) {
- const CefSize cefSize(width, height);
- cefBrowser->GetHost()->GetClient()->GetDisplayHandler()->OnAutoResize(
- cefBrowser, cefSize);
--
-2.53.0
+2.55.0
diff --git a/obs-studio-UI-use-fdk-aac-by-default.patch b/obs-studio-UI-use-fdk-aac-by-default.patch
index 58f78f3..fc11efc 100644
--- a/obs-studio-UI-use-fdk-aac-by-default.patch
+++ b/obs-studio-UI-use-fdk-aac-by-default.patch
@@ -10,10 +10,10 @@ codec anyway.
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/frontend/wizards/AutoConfigTestPage.cpp b/frontend/wizards/AutoConfigTestPage.cpp
-index 5b5051919..9c4769e0a 100644
+index 46e7c7d32..e9562e9be 100644
--- a/frontend/wizards/AutoConfigTestPage.cpp
+++ b/frontend/wizards/AutoConfigTestPage.cpp
-@@ -194,7 +194,7 @@ void AutoConfigTestPage::TestBandwidthThread()
+@@ -120,7 +120,7 @@ void AutoConfigTestPage::TestBandwidthThread()
OBSEncoderAutoRelease vencoder = obs_video_encoder_create((wiz->x264Available ? "obs_x264" : "ffmpeg_openh264"),
"test_h264", nullptr, nullptr);
@@ -22,7 +22,7 @@ index 5b5051919..9c4769e0a 100644
OBSServiceAutoRelease service = obs_service_create(serverType, "test_service", nullptr, nullptr);
/* -----------------------------------*/
-@@ -559,7 +559,7 @@ bool AutoConfigTestPage::TestSoftwareEncoding()
+@@ -494,7 +494,7 @@ bool AutoConfigTestPage::TestSoftwareEncoding()
OBSEncoderAutoRelease vencoder = obs_video_encoder_create((wiz->x264Available ? "obs_x264" : "ffmpeg_openh264"),
"test_h264", nullptr, nullptr);
@@ -32,5 +32,5 @@ index 5b5051919..9c4769e0a 100644
/* -----------------------------------*/
--
-2.46.2
+2.55.0
diff --git a/obs-studio.spec b/obs-studio.spec
index 91d045e..c52500d 100644
--- a/obs-studio.spec
+++ b/obs-studio.spec
@@ -33,8 +33,8 @@
%global libvlc_soversion 5
-%global obswebsocket_version 5.7.3
-%global obsbrowser_commit ea04212e4bbadd077f9e6038758c4e4779c24fa3
+%global obswebsocket_version 5.7.4
+%global obsbrowser_commit 3f0a2cdf378939ebe3c6f9ab36d4ea100c25aac2
# Upstream does not declare this yet. Arbitrarily pick 137.0 since it works
# and it works around a CEF versioning teething issue:
@@ -46,8 +46,8 @@
#global shortcommit %%(c=%%{commit}; echo ${c:0:7})
Name: obs-studio
-Version: 32.1.1
-Release: 7%{?dist}
+Version: 32.2.2
+Release: 1%{?dist}
Summary: Open Broadcaster Software Studio
# OBS itself is GPL-2.0-or-later, while various plugin dependencies are of various other licenses
@@ -70,8 +70,6 @@ Patch0101: 0101-frontend-Consider-settings-changed-if-an-output-sett.patch
Patch0102: 0102-frontend-Allow-invalid-recording-encoder-if-quality-.patch
## From: https://github.com/obsproject/obs-studio/pull/8529
Patch0103: 0103-UI-Add-support-for-OpenH264-as-the-worst-case-fallba.patch
-## From: https://github.com/obsproject/obs-studio/pull/12507
-Patch0105: 0105-libobs-opengl-Reject-external-only-modifiers.patch
# WIP code to improve new CEF support (based on upstream dev tree)
## From: https://github.com/asahilina/obs-browser/tree/lockdown
@@ -402,6 +400,12 @@ appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/*.metainf
%changelog
+* Fri Sep 04 2026 Diego Herrera <dherrera@redhat.com> - 32.2.2-1
+- Update to 32.2.2
+- Fixed obs-studio patches 0101, 0102, 0103, 1001
+- Fixed obs-browser patches 0201, 0250
+- Removed merged patch 0105
+
* Thu Sep 03 2026 Dominik Mierzejewski <dominik@greysector.net> - 32.1.1-7
- Rebuilt for FFmpeg 9
diff --git a/sources b/sources
index 8eefd60..af0d637 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (obs-studio-32.1.1.tar.gz) = 9b2ce82634a09e180f643bb56d37c34c2651de6a2fcd61b533af37234415f564e11bd4880d3500d1426be6e09c03fc7b8f9f990ab4537f925d3f7ee48adbf100
-SHA512 (obs-websocket-5.7.3.tar.gz) = 4b473a1f48128dd829285fbeac88144ea6a32b3350c0acf67e69f4180ebb43468007be991bbbc77c0fd0b2c5a5b8202d2ec5705ae0a6b3350678bc9a0d04d818
-SHA512 (obs-browser-ea04212e4bbadd077f9e6038758c4e4779c24fa3.tar.gz) = 2b8ffb22a78b3ac89d5742fac420d762fbf9a8631d97cfbe6001d9506206bc5ee0ba49c9dbf566c4d45955fcbb1ea9f90f7b9b6b228da9a05b62f04306684150
+SHA512 (obs-studio-32.2.2.tar.gz) = 3ea88c32f8c0564295cb15ab6d93376d878c26b4dc27d36872905d940f8855bb6ce36fcf71a3980382ab186c8325d31147b444f30761b92831ef9e50453cc6eb
+SHA512 (obs-websocket-5.7.4.tar.gz) = da350b6c0a0db2270a021a0f3e359f7127c6a300d972c34073dc03310eba4b53316bf9be16f48db4c1d40ebdbc9f5d0d6e01facb7b2d803b7e1a44ee6f8f3cce
+SHA512 (obs-browser-3f0a2cdf378939ebe3c6f9ab36d4ea100c25aac2.tar.gz) = 37aa5311c1a7c9c788f0c931f9ee03288477feeb52e643e2fde55b4f063a62feafba75f97287d196d7bb03e893018b730d2b91a3eff7809a9df3f61304a1eb58
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-09-17 15:58 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-17 15:58 [rpms/obs-studio] f45: Update to 32.2.2 Diego Herrera
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox