diff --git a/0001-UI-Consistently-reference-the-software-H264-encoder-.patch b/0101-UI-Consistently-reference-the-software-H264-encoder-.patch similarity index 84% rename from 0001-UI-Consistently-reference-the-software-H264-encoder-.patch rename to 0101-UI-Consistently-reference-the-software-H264-encoder-.patch index e976f5c..2d5992e 100644 --- a/0001-UI-Consistently-reference-the-software-H264-encoder-.patch +++ b/0101-UI-Consistently-reference-the-software-H264-encoder-.patch @@ -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 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 diff --git a/0002-obs-ffmpeg-Add-initial-support-for-the-OpenH264-H.26.patch b/0102-obs-ffmpeg-Add-initial-support-for-the-OpenH264-H.26.patch similarity index 94% rename from 0002-obs-ffmpeg-Add-initial-support-for-the-OpenH264-H.26.patch rename to 0102-obs-ffmpeg-Add-initial-support-for-the-OpenH264-H.26.patch index 0a80a79..519c5ea 100644 --- a/0002-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,8 +1,8 @@ -From 4517d8d8bb4c43af1f5b757773a5f9550bd23d37 Mon Sep 17 00:00:00 2001 +From 939db8edca8161f4518900e750551814c2c6088e Mon Sep 17 00:00:00 2001 From: Neal Gompa 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 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(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 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 diff --git a/0201-deps-Add-license-declaration-files.patch b/0201-deps-Add-license-declaration-files.patch new file mode 100644 index 0000000..1e5173c --- /dev/null +++ b/0201-deps-Add-license-declaration-files.patch @@ -0,0 +1,64 @@ +From 076024e724c4da11690735a0958b84650f449136 Mon Sep 17 00:00:00 2001 +From: Neal Gompa +Date: Tue, 29 Aug 2023 11:03:08 -0400 +Subject: [PATCH 201/204] deps: Add license declaration files + +--- + deps/blake2/LICENSE.blake2 | 19 +++++++++++++++++++ + deps/media-playback/LICENSE.media-playback | 18 ++++++++++++++++++ + 2 files changed, 37 insertions(+) + create mode 100644 deps/blake2/LICENSE.blake2 + create mode 100644 deps/media-playback/LICENSE.media-playback + +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 . 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/media-playback/LICENSE.media-playback b/deps/media-playback/LICENSE.media-playback +new file mode 100644 +index 000000000..592844ea1 +--- /dev/null ++++ b/deps/media-playback/LICENSE.media-playback +@@ -0,0 +1,18 @@ ++media-playback is licensed under the ISC license. The license terms are fully ++reproduced below: ++ ++/* ++ * Copyright (c) 2023 Lain Bailey ++ * ++ * 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. ++ */ +-- +2.41.0 + diff --git a/0202-libobs-Add-license-declaration-files.patch b/0202-libobs-Add-license-declaration-files.patch new file mode 100644 index 0000000..4c72f28 --- /dev/null +++ b/0202-libobs-Add-license-declaration-files.patch @@ -0,0 +1,100 @@ +From 2a7e284c1396c68d17286d549c4ff451a12f6b4e Mon Sep 17 00:00:00 2001 +From: Neal Gompa +Date: Tue, 29 Aug 2023 11:03:29 -0400 +Subject: [PATCH 202/204] libobs: Add license declaration files + +--- + libobs/graphics/libnsgif/LICENSE.libnsgif | 33 +++++++++++++++++++ + libobs/util/simde/LICENSE.simde | 40 +++++++++++++++++++++++ + 2 files changed, 73 insertions(+) + create mode 100644 libobs/graphics/libnsgif/LICENSE.libnsgif + create mode 100644 libobs/util/simde/LICENSE.simde + +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 ++ * Copyright 2004 John Tytgat ++ * Copyright 2004 Richard Wilson ++ * Copyright 2008 Sean Fox ++ * ++ * 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 ++ */ ++ ++/* Portable Snippets - https://gitub.com/nemequ/portable-snippets ++ * Created by Evan Nemerson ++ * ++ * 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 ++ */ +-- +2.41.0 + diff --git a/0203-decklink-Add-license-declaration-files.patch b/0203-decklink-Add-license-declaration-files.patch new file mode 100644 index 0000000..75a466b --- /dev/null +++ b/0203-decklink-Add-license-declaration-files.patch @@ -0,0 +1,49 @@ +From e044e6eb8f8f8a1ebde03f5d5da91c35eab9e2a2 Mon Sep 17 00:00:00 2001 +From: Neal Gompa +Date: Tue, 29 Aug 2023 11:07:53 -0400 +Subject: [PATCH 203/204] decklink: Add license declaration files + +--- + plugins/decklink/LICENSE.decklink-sdk | 30 +++++++++++++++++++++++++++ + 1 file changed, 30 insertions(+) + create mode 100644 plugins/decklink/LICENSE.decklink-sdk + +diff --git a/plugins/decklink/LICENSE.decklink-sdk b/plugins/decklink/LICENSE.decklink-sdk +new file mode 100644 +index 000000000..a5d1d156c +--- /dev/null ++++ b/plugins/decklink/LICENSE.decklink-sdk +@@ -0,0 +1,30 @@ ++decklink-sdk is licensed under the 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.41.0 + diff --git a/obs-studio-obs-qsv11-Add-license-declaration-file.patch b/0204-obs-qsv11-Add-license-declaration-file.patch similarity index 89% rename from obs-studio-obs-qsv11-Add-license-declaration-file.patch rename to 0204-obs-qsv11-Add-license-declaration-file.patch index 0504446..0adb40f 100644 --- a/obs-studio-obs-qsv11-Add-license-declaration-file.patch +++ b/0204-obs-qsv11-Add-license-declaration-file.patch @@ -1,19 +1,19 @@ -From fbfa25ade86c26088333b3c5e6c39d4a61fc748f Mon Sep 17 00:00:00 2001 +From 57920b4e6f972cecde91e1c55680511d631af5a8 Mon Sep 17 00:00:00 2001 From: Neal Gompa -Date: Wed, 26 Apr 2023 07:56:42 -0400 -Subject: [PATCH 2/2] obs-qsv11: Add license declaration file +Date: Tue, 29 Aug 2023 11:08:18 -0400 +Subject: [PATCH 204/204] obs-qsv11: Add license declaration file --- - plugins/obs-qsv11/obs-qsv11-LICENSE.txt | 60 +++++++++++++++++++++++++ - 1 file changed, 60 insertions(+) + plugins/obs-qsv11/obs-qsv11-LICENSE.txt | 59 +++++++++++++++++++++++++ + 1 file changed, 59 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 +index 000000000..fc8b0d7a8 --- /dev/null +++ b/plugins/obs-qsv11/obs-qsv11-LICENSE.txt -@@ -0,0 +1,60 @@ +@@ -0,0 +1,59 @@ +The OBS QSV plugin is licensed under either the BSD-3-Clause or GPL-2.0-only licenses. + +The license declaration is reproduced below: @@ -73,7 +73,6 @@ index 000000000..2e4f30941 +(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 +2.41.0 diff --git a/obs-studio-deps-Add-license-declaration-files.patch b/obs-studio-deps-Add-license-declaration-files.patch deleted file mode 100644 index d1e460c..0000000 --- a/obs-studio-deps-Add-license-declaration-files.patch +++ /dev/null @@ -1,218 +0,0 @@ -From b6be0b4bf5b0b2f26c8143641881cde23ac8ba9c Mon Sep 17 00:00:00 2001 -From: Neal Gompa -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 . 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 -+ * -+ * 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 -+ * -+ * 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 -+ * Copyright 2004 John Tytgat -+ * Copyright 2004 Richard Wilson -+ * Copyright 2008 Sean Fox -+ * -+ * 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 -+ */ -+ -+/* Portable Snippets - https://gitub.com/nemequ/portable-snippets -+ * Created by Evan Nemerson -+ * -+ * 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 - diff --git a/obs-studio.spec b/obs-studio.spec index c3a7ca1..9a0437b 100644 --- a/obs-studio.spec +++ b/obs-studio.spec @@ -16,20 +16,20 @@ %global openh264_soversion 7 -%global obswebsocket_version 5.2.3 +%global obswebsocket_version 5.3.0 #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~beta3 +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 # 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,20 +42,22 @@ 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 + +## From: https://github.com/obsproject/obs-studio/pull/8777 +Patch0201: 0201-deps-Add-license-declaration-files.patch +Patch0202: 0202-libobs-Add-license-declaration-files.patch +Patch0203: 0203-decklink-Add-license-declaration-files.patch +Patch0204: 0204-obs-qsv11-Add-license-declaration-file.patch # Downstream Fedora patches ## Use system qrcodegencpp -Patch1001: obs-studio-websocket-use-system-qrcodegencpp.patch +#Patch1001: obs-studio-websocket-use-system-qrcodegencpp.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 @@ -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,7 @@ BuildRequires: libxkbcommon-devel BuildRequires: luajit-devel %endif BuildRequires: mbedtls-devel +BuildRequires: oneVPL-devel BuildRequires: pciutils-devel BuildRequires: pipewire-devel BuildRequires: pipewire-jack-audio-connection-kit-devel @@ -141,8 +145,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 @@ -223,7 +225,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 +253,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 +299,9 @@ appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/*.appdata %changelog +* Mon Sep 11 2023 Neal Gompa - 30.0.0~beta3-1 +- Rebase to 30.0.0~beta3 + * Fri Sep 08 2023 Neal Gompa - 29.1.3-4 - Add obs-plugins libexecdir to libs subpackage diff --git a/sources b/sources index c635c9c..ce06999 100644 --- a/sources +++ b/sources @@ -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-beta3.tar.gz) = 623099dfe5ff031441d7b2b169c0712b61b0dd74c848eae231e8937cbaa991e5ad92bb8a0bfd1a7ba40e193319ea0612f3290fe507739d6cafd2fc7f42986fa4 +SHA512 (obs-websocket-5.3.0.tar.gz) = 814fa721dce2e96e0ced63d3aac3db29fb051244937deea8a708cf621903710fabeec92b78b7ce304e8e15d7ec9fb38ded11edf56f6aa8b23d416b0fb87b5994