From db37cc34d56b97ec44557b6646c1f1539cb20efa Mon Sep 17 00:00:00 2001 From: derrod Date: Mon, 22 Jun 2020 22:02:37 +0200 Subject: [PATCH 1/3] UI: Remove Mixer integration --- UI/CMakeLists.txt | 19 -- UI/auth-mixer.cpp | 313 --------------------------- UI/auth-mixer.hpp | 30 --- UI/data/locale/en-US.ini | 5 +- UI/forms/OBSBasicSettings.ui | 37 +--- UI/ui-config.h.in | 4 - UI/window-basic-auto-config-test.cpp | 4 +- UI/window-basic-main.cpp | 4 - UI/window-basic-settings-stream.cpp | 29 --- UI/window-basic-settings.cpp | 1 - 10 files changed, 15 insertions(+), 431 deletions(-) delete mode 100644 UI/auth-mixer.cpp delete mode 100644 UI/auth-mixer.hpp diff --git a/UI/CMakeLists.txt b/UI/CMakeLists.txt index bf1fc8e6d..907973ca2 100644 --- a/UI/CMakeLists.txt +++ b/UI/CMakeLists.txt @@ -29,16 +29,6 @@ else() set(TWITCH_ENABLED TRUE) endif() -if(NOT DEFINED MIXER_CLIENTID OR "${MIXER_CLIENTID}" STREQUAL "" OR - NOT DEFINED MIXER_HASH OR "${MIXER_HASH}" STREQUAL "" OR - NOT BROWSER_AVAILABLE_INTERNAL) - set(MIXER_ENABLED FALSE) - set(MIXER_CLIENTID "") - set(MIXER_HASH "0") -else() - set(MIXER_ENABLED TRUE) -endif() - if(NOT DEFINED RESTREAM_CLIENTID OR "${RESTREAM_CLIENTID}" STREQUAL "" OR NOT DEFINED RESTREAM_HASH OR "${RESTREAM_HASH}" STREQUAL "" OR NOT BROWSER_AVAILABLE_INTERNAL) @@ -166,15 +156,6 @@ if(BROWSER_AVAILABLE_INTERNAL) ) endif() - if(MIXER_ENABLED) - list(APPEND obs_PLATFORM_SOURCES - auth-mixer.cpp - ) - list(APPEND obs_PLATFORM_HEADERS - auth-mixer.hpp - ) - endif() - if(RESTREAM_ENABLED) list(APPEND obs_PLATFORM_SOURCES auth-restream.cpp diff --git a/UI/auth-mixer.cpp b/UI/auth-mixer.cpp deleted file mode 100644 index b379e14e9..000000000 --- a/UI/auth-mixer.cpp +++ /dev/null @@ -1,313 +0,0 @@ -#include "auth-mixer.hpp" - -#include -#include -#include - -#include -#include - -#include "window-dock-browser.hpp" -#include "window-basic-main.hpp" -#include "remote-text.hpp" - -#include - -#include - -#include "ui-config.h" -#include "obf.h" - -using namespace json11; - -/* ------------------------------------------------------------------------- */ - -#define MIXER_AUTH_URL "https://obsproject.com/app-auth/mixer?action=redirect" -#define MIXER_TOKEN_URL "https://obsproject.com/app-auth/mixer-token" - -#define MIXER_SCOPE_VERSION 1 - -static Auth::Def mixerDef = {"Mixer", Auth::Type::OAuth_StreamKey}; - -/* ------------------------------------------------------------------------- */ - -MixerAuth::MixerAuth(const Def &d) : OAuthStreamKey(d) {} - -bool MixerAuth::GetChannelInfo(bool allow_retry) -try { - std::string client_id = MIXER_CLIENTID; - deobfuscate_str(&client_id[0], MIXER_HASH); - - if (!GetToken(MIXER_TOKEN_URL, client_id, MIXER_SCOPE_VERSION)) - return false; - if (token.empty()) - return false; - if (!key_.empty()) - return true; - - std::string auth; - auth += "Authorization: Bearer "; - auth += token; - - std::vector headers; - headers.push_back(std::string("Client-ID: ") + client_id); - headers.push_back(std::move(auth)); - - std::string output; - std::string error; - Json json; - bool success; - - if (id.empty()) { - auto func = [&]() { - success = GetRemoteFile( - "https://mixer.com/api/v1/users/current", - output, error, nullptr, "application/json", - nullptr, headers, nullptr, 5); - }; - - ExecThreadedWithoutBlocking( - func, QTStr("Auth.LoadingChannel.Title"), - QTStr("Auth.LoadingChannel.Text").arg(service())); - if (!success || output.empty()) - throw ErrorInfo("Failed to get user info from remote", - error); - - Json json = Json::parse(output, error); - if (!error.empty()) - throw ErrorInfo("Failed to parse json", error); - - error = json["error"].string_value(); - if (!error.empty()) - throw ErrorInfo( - error, - json["error_description"].string_value()); - - id = std::to_string(json["channel"]["id"].int_value()); - name = json["channel"]["token"].string_value(); - } - - /* ------------------ */ - - std::string url; - url += "https://mixer.com/api/v1/channels/"; - url += id; - url += "/details"; - - output.clear(); - - auto func = [&]() { - success = GetRemoteFile(url.c_str(), output, error, nullptr, - "application/json", nullptr, headers, - nullptr, 5); - }; - - ExecThreadedWithoutBlocking( - func, QTStr("Auth.LoadingChannel.Title"), - QTStr("Auth.LoadingChannel.Text").arg(service())); - if (!success || output.empty()) - throw ErrorInfo("Failed to get stream key from remote", error); - - json = Json::parse(output, error); - if (!error.empty()) - throw ErrorInfo("Failed to parse json", error); - - error = json["error"].string_value(); - if (!error.empty()) - throw ErrorInfo(error, - json["error_description"].string_value()); - - std::string key_suffix = json["streamKey"].string_value(); - - /* Mixer does not throw an error; instead it gives you the channel data - * json without the data you normally have privileges for, which means - * it'll be an empty stream key usually. So treat empty stream key as - * an error. */ - if (key_suffix.empty()) { - if (allow_retry && RetryLogin()) { - return GetChannelInfo(false); - } - throw ErrorInfo("Auth Failure", "Could not get channel data"); - } - - key_ = id + "-" + key_suffix; - - return true; -} catch (ErrorInfo info) { - QString title = QTStr("Auth.ChannelFailure.Title"); - QString text = QTStr("Auth.ChannelFailure.Text") - .arg(service(), info.message.c_str(), - info.error.c_str()); - - QMessageBox::warning(OBSBasic::Get(), title, text); - - blog(LOG_WARNING, "%s: %s: %s", __FUNCTION__, info.message.c_str(), - info.error.c_str()); - return false; -} - -void MixerAuth::SaveInternal() -{ - OBSBasic *main = OBSBasic::Get(); - config_set_string(main->Config(), service(), "Name", name.c_str()); - config_set_string(main->Config(), service(), "Id", id.c_str()); - if (uiLoaded) { - config_set_string(main->Config(), service(), "DockState", - main->saveState().toBase64().constData()); - } - OAuthStreamKey::SaveInternal(); -} - -static inline std::string get_config_str(OBSBasic *main, const char *section, - const char *name) -{ - const char *val = config_get_string(main->Config(), section, name); - return val ? val : ""; -} - -bool MixerAuth::LoadInternal() -{ - if (!cef) - return false; - - OBSBasic *main = OBSBasic::Get(); - name = get_config_str(main, service(), "Name"); - id = get_config_str(main, service(), "Id"); - firstLoad = false; - return OAuthStreamKey::LoadInternal(); -} - -static const char *elixr_script = "\ -var elixr = document.createElement('script');\ -elixr.setAttribute('src','https://api.mixrelixr.com/scripts/elixr-emotes-embedded-chat.bundle.js');\ -document.head.appendChild(elixr);"; - -void MixerAuth::LoadUI() -{ - if (!cef) - return; - if (uiLoaded) - return; - if (!GetChannelInfo()) - return; - - OBSBasic::InitBrowserPanelSafeBlock(); - OBSBasic *main = OBSBasic::Get(); - - std::string script = ""; - std::string url; - url += "https://mixer.com/embed/chat/"; - url += id; - - QSize size = main->frameSize(); - QPoint pos = main->pos(); - - chat.reset(new BrowserDock()); - chat->setObjectName("mixerChat"); - chat->resize(300, 600); - chat->setMinimumSize(200, 300); - chat->setWindowTitle(QTStr("Auth.Chat")); - chat->setAllowedAreas(Qt::AllDockWidgetAreas); - - QCefWidget *browser = cef->create_widget(nullptr, url, panel_cookies); - chat->SetWidget(browser); - - const int mxAddonChoice = - config_get_int(main->Config(), service(), "AddonChoice"); - if (mxAddonChoice) { - if (mxAddonChoice & 0x1) - script += elixr_script; - } - - browser->setStartupScript(script); - - main->addDockWidget(Qt::RightDockWidgetArea, chat.data()); - chatMenu.reset(main->AddDockWidget(chat.data())); - - /* ----------------------------------- */ - - chat->setFloating(true); - chat->move(pos.x() + size.width() - chat->width() - 50, pos.y() + 50); - - if (firstLoad) { - chat->setVisible(true); - } else { - const char *dockStateStr = config_get_string( - main->Config(), service(), "DockState"); - QByteArray dockState = - QByteArray::fromBase64(QByteArray(dockStateStr)); - main->restoreState(dockState); - } - - uiLoaded = true; -} - -bool MixerAuth::RetryLogin() -{ - if (!cef) - return false; - - OAuthLogin login(OBSBasic::Get(), MIXER_AUTH_URL, false); - cef->add_popup_whitelist_url("about:blank", &login); - - if (login.exec() == QDialog::Rejected) { - return false; - } - - std::shared_ptr auth = std::make_shared(mixerDef); - std::string client_id = MIXER_CLIENTID; - deobfuscate_str(&client_id[0], MIXER_HASH); - - return GetToken(MIXER_TOKEN_URL, client_id, MIXER_SCOPE_VERSION, - QT_TO_UTF8(login.GetCode()), true); -} - -std::shared_ptr MixerAuth::Login(QWidget *parent) -{ - if (!cef) { - return nullptr; - } - - OAuthLogin login(parent, MIXER_AUTH_URL, false); - cef->add_popup_whitelist_url("about:blank", &login); - - if (login.exec() == QDialog::Rejected) { - return nullptr; - } - - std::shared_ptr auth = std::make_shared(mixerDef); - - std::string client_id = MIXER_CLIENTID; - deobfuscate_str(&client_id[0], MIXER_HASH); - - if (!auth->GetToken(MIXER_TOKEN_URL, client_id, MIXER_SCOPE_VERSION, - QT_TO_UTF8(login.GetCode()))) { - return nullptr; - } - - std::string error; - if (auth->GetChannelInfo(false)) { - return auth; - } - - return nullptr; -} - -static std::shared_ptr CreateMixerAuth() -{ - return std::make_shared(mixerDef); -} - -static void DeleteCookies() -{ - if (panel_cookies) { - panel_cookies->DeleteCookies("mixer.com", std::string()); - panel_cookies->DeleteCookies("microsoft.com", std::string()); - } -} - -void RegisterMixerAuth() -{ - OAuth::RegisterOAuth(mixerDef, CreateMixerAuth, MixerAuth::Login, - DeleteCookies); -} diff --git a/UI/auth-mixer.hpp b/UI/auth-mixer.hpp deleted file mode 100644 index 19f303734..000000000 --- a/UI/auth-mixer.hpp +++ /dev/null @@ -1,30 +0,0 @@ -#pragma once - -#include "auth-oauth.hpp" - -class BrowserDock; - -class MixerAuth : public OAuthStreamKey { - Q_OBJECT - - QSharedPointer chat; - QSharedPointer chatMenu; - bool uiLoaded = false; - - std::string name; - std::string id; - - virtual bool RetryLogin() override; - - virtual void SaveInternal() override; - virtual bool LoadInternal() override; - - bool GetChannelInfo(bool allow_retry = true); - - virtual void LoadUI() override; - -public: - MixerAuth(const Def &d); - - static std::shared_ptr Login(QWidget *parent); -}; diff --git a/UI/data/locale/en-US.ini b/UI/data/locale/en-US.ini index 6da26759c..8c23137bc 100644 --- a/UI/data/locale/en-US.ini +++ b/UI/data/locale/en-US.ini @@ -689,9 +689,6 @@ Basic.Settings.Stream.TTVAddon.None="None" Basic.Settings.Stream.TTVAddon.BTTV="BetterTTV" Basic.Settings.Stream.TTVAddon.FFZ="FrankerFaceZ" Basic.Settings.Stream.TTVAddon.Both="BetterTTV and FrankerFaceZ" -Basic.Settings.Stream.MixerAddon="Mixer Chat Add-Ons" -Basic.Settings.Stream.MixerAddon.None="None" -Basic.Settings.Stream.MixerAddon.MEE="MixrElixr Emotes" Basic.Settings.Stream.MissingSettingAlert="Missing Stream Setup" Basic.Settings.Stream.StreamSettingsWarning="Open Settings" Basic.Settings.Stream.MissingUrlAndApiKey="URL and Stream Key are missing.\n\nOpen settings to enter the URL and Stream Key in the 'stream' tab." @@ -833,7 +830,7 @@ Basic.Settings.Audio.PeakMeterType="Peak Meter Type" Basic.Settings.Audio.PeakMeterType.SamplePeak="Sample Peak" Basic.Settings.Audio.PeakMeterType.TruePeak="True Peak (Higher CPU usage)" Basic.Settings.Audio.MultiChannelWarning.Enabled="WARNING: Surround sound audio is enabled." -Basic.Settings.Audio.MultichannelWarning="If streaming, check to see if your streaming service supports both surround sound ingest and surround sound playback. Facebook 360 Live, Mixer RTMP, Smashcast are examples where surround sound is fully supported. Although Facebook Live and YouTube Live both accept surround ingest, Facebook Live downmixes to stereo, and YouTube Live plays only two channels.\n\nOBS audio filters are compatible with surround sound, though VST plugin support isn't guaranteed." +Basic.Settings.Audio.MultichannelWarning="If streaming, check to see if your streaming service supports both surround sound ingest and surround sound playback. Facebook 360 Live is one example where surround sound is fully supported. Although Facebook Live and YouTube Live both accept surround ingest, Facebook Live downmixes to stereo, and YouTube Live plays only two channels.\n\nOBS audio filters are compatible with surround sound, though VST plugin support isn't guaranteed." Basic.Settings.Audio.MultichannelWarning.Title="Enable surround sound audio?" Basic.Settings.Audio.MultichannelWarning.Confirm="Are you sure you want to enable surround sound audio?" Basic.Settings.Audio.Devices="Global Audio Devices" diff --git a/UI/forms/OBSBasicSettings.ui b/UI/forms/OBSBasicSettings.ui index 6fc4f718b..548e31e0c 100644 --- a/UI/forms/OBSBasicSettings.ui +++ b/UI/forms/OBSBasicSettings.ui @@ -151,8 +151,8 @@ 0 0 - 803 - 1026 + 806 + 1254 @@ -1146,7 +1146,7 @@ - + Basic.Settings.Stream.Custom.Username @@ -1156,10 +1156,10 @@ - + - + Basic.Settings.Stream.Custom.Password @@ -1169,7 +1169,7 @@ - + @@ -1214,19 +1214,6 @@ - - - - Basic.Settings.Stream.MixerAddon - - - mixerAddonDropdown - - - - - - @@ -1263,8 +1250,8 @@ 0 0 - 603 - 631 + 813 + 761 @@ -3758,8 +3745,8 @@ 0 0 - 555 - 469 + 767 + 582 @@ -4614,8 +4601,8 @@ 0 0 - 596 - 781 + 791 + 970 diff --git a/UI/ui-config.h.in b/UI/ui-config.h.in index fe31138bb..0fcc4845a 100644 --- a/UI/ui-config.h.in +++ b/UI/ui-config.h.in @@ -20,10 +20,6 @@ #define TWITCH_CLIENTID "@TWITCH_CLIENTID@" #define TWITCH_HASH 0x@TWITCH_HASH@ -#define MIXER_ENABLED @MIXER_ENABLED@ -#define MIXER_CLIENTID "@MIXER_CLIENTID@" -#define MIXER_HASH 0x@MIXER_HASH@ - #define RESTREAM_ENABLED @RESTREAM_ENABLED@ #define RESTREAM_CLIENTID "@RESTREAM_CLIENTID@" #define RESTREAM_HASH 0x@RESTREAM_HASH@ diff --git a/UI/window-basic-auto-config-test.cpp b/UI/window-basic-auto-config-test.cpp index 8f698cff1..8c7a82a03 100644 --- a/UI/window-basic-auto-config-test.cpp +++ b/UI/window-basic-auto-config-test.cpp @@ -250,8 +250,8 @@ void AutoConfigTestPage::TestBandwidthThread() GetServers(servers); /* just use the first server if it only has one alternate server, - * or if using Mixer or Restream due to their "auto" servers */ - if (servers.size() < 3 || wiz->serviceName == "Mixer.com - FTL" || + * or if using Restream due to their "auto" servers */ + if (servers.size() < 3 || wiz->serviceName.substr(0, 11) == "Restream.io") { servers.resize(1); diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index bb1231664..c514a4711 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -185,7 +185,6 @@ void assignDockToggle(QDockWidget *dock, QAction *action) } extern void RegisterTwitchAuth(); -extern void RegisterMixerAuth(); extern void RegisterRestreamAuth(); OBSBasic::OBSBasic(QWidget *parent) @@ -199,9 +198,6 @@ OBSBasic::OBSBasic(QWidget *parent) #if TWITCH_ENABLED RegisterTwitchAuth(); #endif -#if MIXER_ENABLED - RegisterMixerAuth(); -#endif #if RESTREAM_ENABLED RegisterRestreamAuth(); #endif diff --git a/UI/window-basic-settings-stream.cpp b/UI/window-basic-settings-stream.cpp index d22658aab..7b9131c39 100644 --- a/UI/window-basic-settings-stream.cpp +++ b/UI/window-basic-settings-stream.cpp @@ -41,8 +41,6 @@ void OBSBasicSettings::InitStreamPage() ui->bandwidthTestEnable->setVisible(false); ui->twitchAddonDropdown->setVisible(false); ui->twitchAddonLabel->setVisible(false); - ui->mixerAddonDropdown->setVisible(false); - ui->mixerAddonLabel->setVisible(false); int vertSpacing = ui->topStreamLayout->verticalSpacing(); @@ -69,11 +67,6 @@ void OBSBasicSettings::InitStreamPage() ui->twitchAddonDropdown->addItem( QTStr("Basic.Settings.Stream.TTVAddon.Both")); - ui->mixerAddonDropdown->addItem( - QTStr("Basic.Settings.Stream.MixerAddon.None")); - ui->mixerAddonDropdown->addItem( - QTStr("Basic.Settings.Stream.MixerAddon.MEE")); - connect(ui->service, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateServerList())); connect(ui->service, SIGNAL(currentIndexChanged(int)), this, @@ -119,9 +112,6 @@ void OBSBasicSettings::LoadStream1Settings() idx = config_get_int(main->Config(), "Twitch", "AddonChoice"); ui->twitchAddonDropdown->setCurrentIndex(idx); - - idx = config_get_int(main->Config(), "Mixer", "AddonChoice"); - ui->mixerAddonDropdown->setCurrentIndex(idx); } UpdateServerList(); @@ -199,19 +189,6 @@ void OBSBasicSettings::SaveStream1Settings() if (choiceExists && currentChoice != newChoice) forceAuthReload = true; } - if (!!auth && strcmp(auth->service(), "Mixer") == 0) { - bool choiceExists = config_has_user_value( - main->Config(), "Mixer", "AddonChoice"); - int currentChoice = - config_get_int(main->Config(), "Mixer", "AddonChoice"); - int newChoice = ui->mixerAddonDropdown->currentIndex(); - - config_set_int(main->Config(), "Mixer", "AddonChoice", - newChoice); - - if (choiceExists && currentChoice != newChoice) - forceAuthReload = true; - } obs_data_set_string(settings, "key", QT_TO_UTF8(ui->key->text())); @@ -335,8 +312,6 @@ void OBSBasicSettings::on_service_currentIndexChanged(int) ui->bandwidthTestEnable->setVisible(false); ui->twitchAddonDropdown->setVisible(false); ui->twitchAddonLabel->setVisible(false); - ui->mixerAddonDropdown->setVisible(false); - ui->mixerAddonLabel->setVisible(false); #ifdef BROWSER_AVAILABLE if (cef) { @@ -495,10 +470,6 @@ void OBSBasicSettings::OnOAuthStreamKeyConnected() ui->twitchAddonLabel->setVisible(true); ui->twitchAddonDropdown->setVisible(true); } - if (strcmp(a->service(), "Mixer") == 0) { - ui->mixerAddonLabel->setVisible(true); - ui->mixerAddonDropdown->setVisible(true); - } } ui->streamStackWidget->setCurrentIndex((int)Section::StreamKey); diff --git a/UI/window-basic-settings.cpp b/UI/window-basic-settings.cpp index 9ecedd368..13ed1962a 100644 --- a/UI/window-basic-settings.cpp +++ b/UI/window-basic-settings.cpp @@ -423,7 +423,6 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent) HookWidget(ui->key, EDIT_CHANGED, STREAM1_CHANGED); HookWidget(ui->bandwidthTestEnable, CHECK_CHANGED, STREAM1_CHANGED); HookWidget(ui->twitchAddonDropdown, COMBO_CHANGED, STREAM1_CHANGED); - HookWidget(ui->mixerAddonDropdown, COMBO_CHANGED, STREAM1_CHANGED); HookWidget(ui->useAuth, CHECK_CHANGED, STREAM1_CHANGED); HookWidget(ui->authUsername, EDIT_CHANGED, STREAM1_CHANGED); HookWidget(ui->authPw, EDIT_CHANGED, STREAM1_CHANGED); From b8f91cc4c3793d7009c2377626682f5c1e17e22a Mon Sep 17 00:00:00 2001 From: derrod Date: Mon, 22 Jun 2020 22:02:51 +0200 Subject: [PATCH 2/3] rtmp-services: Remove Mixer servers and checks --- plugins/rtmp-services/data/package.json | 4 +- plugins/rtmp-services/data/services.json | 172 ----------------------- plugins/rtmp-services/rtmp-common.c | 4 - 3 files changed, 2 insertions(+), 178 deletions(-) diff --git a/plugins/rtmp-services/data/package.json b/plugins/rtmp-services/data/package.json index 679cb1955..8a6b40075 100644 --- a/plugins/rtmp-services/data/package.json +++ b/plugins/rtmp-services/data/package.json @@ -1,10 +1,10 @@ { "url": "https://obsproject.com/obs2_update/rtmp-services", - "version": 143, + "version": 144, "files": [ { "name": "services.json", - "version": 143 + "version": 144 } ] } diff --git a/plugins/rtmp-services/data/services.json b/plugins/rtmp-services/data/services.json index 6ace2dc07..b595df794 100644 --- a/plugins/rtmp-services/data/services.json +++ b/plugins/rtmp-services/data/services.json @@ -290,178 +290,6 @@ "max audio bitrate": 320 } }, - { - "name": "Mixer.com - FTL", - "common": true, - "servers": [ - { - "name": "US: Dallas, TX", - "url": "ingest-dal.mixer.com" - }, - { - "name": "US: San Jose, CA", - "url": "ingest-sjc.mixer.com" - }, - { - "name": "US: Seattle, WA", - "url": "ingest-sea.mixer.com" - }, - { - "name": "US: Washington DC", - "url": "ingest-wdc.mixer.com" - }, - { - "name": "Canada: Toronto", - "url": "ingest-tor.mixer.com" - }, - { - "name": "EU: London", - "url": "ingest-lon.mixer.com" - }, - { - "name": "EU: Amsterdam", - "url": "ingest-ams.mixer.com" - }, - { - "name": "EU: Milan", - "url": "ingest-mil.mixer.com" - }, - { - "name": "EU: Paris", - "url": "ingest-par.mixer.com" - }, - { - "name": "EU: Frankfurt", - "url": "ingest-fra.mixer.com" - }, - { - "name": "Brazil: Sao Paulo", - "url": "ingest-sao.mixer.com" - }, - { - "name": "Australia: Melbourne", - "url": "ingest-mel.mixer.com" - }, - { - "name": "Australia: Sydney", - "url": "ingest-syd.mixer.com" - }, - { - "name": "Mexico: Mexico City", - "url": "ingest-mex.mixer.com" - }, - { - "name": "Asia: Hong Kong", - "url": "ingest-hkg.mixer.com" - }, - { - "name": "Asia: Tokyo", - "url": "ingest-tok.mixer.com" - }, - { - "name": "South Korea: Seoul", - "url": "ingest-seo.mixer.com" - }, - { - "name": "India: Chennai", - "url": "ingest-che.mixer.com" - } - ], - "recommended": { - "keyint": 2, - "output": "ftl_output", - "max audio bitrate": 160, - "max video bitrate": 10000, - "profile": "main", - "bframes": 0, - "x264opts": "scenecut=0" - } - }, - { - "name": "Mixer.com - RTMP", - "common": true, - "servers": [ - { - "name": "US: Dallas, TX", - "url": "rtmp://ingest-dal.mixer.com:1935/beam" - }, - { - "name": "US: San Jose, CA", - "url": "rtmp://ingest-sjc.mixer.com:1935/beam" - }, - { - "name": "US: Seattle, WA", - "url": "rtmp://ingest-sea.mixer.com:1935/beam" - }, - { - "name": "US: Washington DC", - "url": "rtmp://ingest-wdc.mixer.com:1935/beam" - }, - { - "name": "Canada: Toronto", - "url": "rtmp://ingest-tor.mixer.com:1935/beam" - }, - { - "name": "EU: London", - "url": "rtmp://ingest-lon.mixer.com:1935/beam" - }, - { - "name": "EU: Amsterdam", - "url": "rtmp://ingest-ams.mixer.com:1935/beam" - }, - { - "name": "EU: Milan", - "url": "rtmp://ingest-mil.mixer.com:1935/beam" - }, - { - "name": "EU: Paris", - "url": "rtmp://ingest-par.mixer.com:1935/beam" - }, - { - "name": "EU: Frankfurt", - "url": "rtmp://ingest-fra.mixer.com:1935/beam" - }, - { - "name": "Brazil: Sao Paulo", - "url": "rtmp://ingest-sao.mixer.com:1935/beam" - }, - { - "name": "Australia: Melbourne", - "url": "rtmp://ingest-mel.mixer.com:1935/beam" - }, - { - "name": "Australia: Sydney", - "url": "rtmp://ingest-syd.mixer.com:1935/beam" - }, - { - "name": "Mexico: Mexico City", - "url": "rtmp://ingest-mex.mixer.com:1935/beam" - }, - { - "name": "Asia: Hong Kong", - "url": "rtmp://ingest-hkg.mixer.com:1935/beam" - }, - { - "name": "Asia: Tokyo", - "url": "rtmp://ingest-tok.mixer.com:1935/beam" - }, - { - "name": "South Korea: Seoul", - "url": "rtmp://ingest-seo.mixer.com:1935/beam" - }, - { - "name": "India: Chennai", - "url": "rtmp://ingest-che.mixer.com:1935/beam" - } - ], - "recommended": { - "keyint": 2, - "max audio bitrate": 160, - "max video bitrate": 10000, - "profile": "main", - "x264opts": "scenecut=0" - } - }, { "name": "Mobcrush", "servers": [ diff --git a/plugins/rtmp-services/rtmp-common.c b/plugins/rtmp-services/rtmp-common.c index 5734716d3..fa3973fbd 100644 --- a/plugins/rtmp-services/rtmp-common.c +++ b/plugins/rtmp-services/rtmp-common.c @@ -340,10 +340,6 @@ static void fill_servers(obs_property_t *servers_prop, json_t *service, return; } - if (strcmp(name, "Mixer.com - FTL") == 0) { - obs_property_list_add_string( - servers_prop, obs_module_text("Server.Auto"), "auto"); - } if (strcmp(name, "Twitch") == 0) { if (fill_twitch_servers(servers_prop)) return; From b67a238b7c580debd1ed91aa796b7ecb54139435 Mon Sep 17 00:00:00 2001 From: derrod Date: Mon, 22 Jun 2020 22:03:35 +0200 Subject: [PATCH 3/3] CI: Remove Mixer cmake variables --- .github/workflows/main.yml | 4 ---- CI/install-script-win.cmd | 4 ++-- azure-pipelines.yml | 2 -- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index fd1d8a3d9..f55c32223 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -378,8 +378,6 @@ jobs: VLC_VERSION: '3.0.0-git' TWITCH-CLIENTID: ${{ secrets.TWITCH_CLIENTID }} TWITCH-HASH: ${{ secrets.TWITCH_HASH }} - MIXER-CLIENTID: ${{ secrets.MIXER_CLIENTID }} - MIXER-HASH: ${{ secrets.MIXER_HASH }} RESTREAM-CLIENTID: ${{ secrets.RESTREAM-CLIENTID }} RESTREAM-HASH: ${{ secrets.RESTREAM-HASH }} steps: @@ -492,8 +490,6 @@ jobs: WINDOWS_DEPS_VERSION: '2017' TWITCH-CLIENTID: ${{ secrets.TWITCH_CLIENTID }} TWITCH-HASH: ${{ secrets.TWITCH_HASH }} - MIXER-CLIENTID: ${{ secrets.MIXER_CLIENTID }} - MIXER-HASH: ${{ secrets.MIXER_HASH }} RESTREAM-CLIENTID: ${{ secrets.RESTREAM-CLIENTID }} RESTREAM-HASH: ${{ secrets.RESTREAM-HASH }} steps: diff --git a/CI/install-script-win.cmd b/CI/install-script-win.cmd index d5643eb2b..ff0641a61 100644 --- a/CI/install-script-win.cmd +++ b/CI/install-script-win.cmd @@ -22,8 +22,8 @@ cd ../build64 cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_SYSTEM_VERSION=10.0 -DCOPIED_DEPENDENCIES=false -DCOPY_DEPENDENCIES=true -DENABLE_VLC=ON -DBUILD_CAPTIONS=true -DCOMPILE_D3D12_HOOK=true -DBUILD_BROWSER=true -DCEF_ROOT_DIR=%CEF_64% .. ) else ( cd ./build32 -cmake -G "Visual Studio 16 2019" -A Win32 -DCMAKE_SYSTEM_VERSION=10.0 -DCOPIED_DEPENDENCIES=false -DCOPY_DEPENDENCIES=true -DENABLE_VLC=ON -DBUILD_CAPTIONS=true -DCOMPILE_D3D12_HOOK=true -DBUILD_BROWSER=true -DCEF_ROOT_DIR=%CEF_32% -DTWITCH_CLIENTID="%TWITCH-CLIENTID%" -DTWITCH_HASH="%TWITCH-HASH%" -DMIXER_CLIENTID="%MIXER-CLIENTID%" -DMIXER_HASH="%MIXER-HASH%" -DRESTREAM_CLIENTID="%RESTREAM-CLIENTID%" -DRESTREAM_HASH="%RESTREAM-HASH%" .. +cmake -G "Visual Studio 16 2019" -A Win32 -DCMAKE_SYSTEM_VERSION=10.0 -DCOPIED_DEPENDENCIES=false -DCOPY_DEPENDENCIES=true -DENABLE_VLC=ON -DBUILD_CAPTIONS=true -DCOMPILE_D3D12_HOOK=true -DBUILD_BROWSER=true -DCEF_ROOT_DIR=%CEF_32% -DTWITCH_CLIENTID="%TWITCH-CLIENTID%" -DTWITCH_HASH="%TWITCH-HASH%" -DRESTREAM_CLIENTID="%RESTREAM-CLIENTID%" -DRESTREAM_HASH="%RESTREAM-HASH%" .. cd ../build64 -cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_SYSTEM_VERSION=10.0 -DCOPIED_DEPENDENCIES=false -DCOPY_DEPENDENCIES=true -DENABLE_VLC=ON -DBUILD_CAPTIONS=true -DCOMPILE_D3D12_HOOK=true -DBUILD_BROWSER=true -DCEF_ROOT_DIR=%CEF_64% -DTWITCH_CLIENTID="%TWITCH-CLIENTID%" -DTWITCH_HASH="%TWITCH-HASH%" -DMIXER_CLIENTID="%MIXER-CLIENTID%" -DMIXER_HASH="%MIXER-HASH%" -DRESTREAM_CLIENTID="%RESTREAM-CLIENTID%" -DRESTREAM_HASH="%RESTREAM-HASH%" .. +cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_SYSTEM_VERSION=10.0 -DCOPIED_DEPENDENCIES=false -DCOPY_DEPENDENCIES=true -DENABLE_VLC=ON -DBUILD_CAPTIONS=true -DCOMPILE_D3D12_HOOK=true -DBUILD_BROWSER=true -DCEF_ROOT_DIR=%CEF_64% -DTWITCH_CLIENTID="%TWITCH-CLIENTID%" -DTWITCH_HASH="%TWITCH-HASH%" -DRESTREAM_CLIENTID="%RESTREAM-CLIENTID%" -DRESTREAM_HASH="%RESTREAM-HASH%" .. ) cd .. diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 251adff76..c0528db1a 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -6,8 +6,6 @@ variables: CEF_VERSION: 75.1.16+g16a67c4+chromium-75.0.3770.100 TWITCH-CLIENTID: $(twitch_clientid) TWITCH-HASH: $(twitch_hash) - MIXER-CLIENTID: $(mixer_clientid) - MIXER-HASH: $(mixer_hash) RESTREAM-CLIENTID: $(restream_clientid) RESTREAM-HASH: $(restream_hash)