From 7f8f3ff3f90e2febd0e33c18159b09afba355595 Mon Sep 17 00:00:00 2001 From: JohannMG Date: Fri, 14 Aug 2020 17:18:18 -0700 Subject: [PATCH] UI:Show "Get Stream Key" to users of Facebook CDN Facebook provides CDN endpoints for users to optimize their bandwidth or latency using the speed test on facebook.com/live/ingests/. In this case streamers use a custom server endpoint that looks like "rtmps://edgetee-upload-fml.xx.fbcdn.net:443/rtmp/". This diff adds detection to users using the custom field for CDN endpoints so we can show the stream key link button. --- UI/window-basic-auto-config.cpp | 13 +++++++------ UI/window-basic-settings-stream.cpp | 13 +++++++------ 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/UI/window-basic-auto-config.cpp b/UI/window-basic-auto-config.cpp index e72b772e3..fae1b657e 100644 --- a/UI/window-basic-auto-config.cpp +++ b/UI/window-basic-auto-config.cpp @@ -273,6 +273,10 @@ AutoConfigStreamPage::AutoConfigStreamPage(QWidget *parent) SLOT(ServiceChanged())); connect(ui->customServer, SIGNAL(textChanged(const QString &)), this, SLOT(ServiceChanged())); + connect(ui->customServer, SIGNAL(textChanged(const QString &)), this, + SLOT(UpdateKeyLink())); + connect(ui->customServer, SIGNAL(editingFinished()), this, + SLOT(UpdateKeyLink())); connect(ui->doBandwidthTest, SIGNAL(toggled(bool)), this, SLOT(ServiceChanged())); @@ -573,12 +577,8 @@ void AutoConfigStreamPage::ServiceChanged() void AutoConfigStreamPage::UpdateKeyLink() { - if (IsCustomService()) { - ui->doBandwidthTest->setEnabled(true); - return; - } - QString serviceName = ui->service->currentText(); + QString customServer = ui->customServer->text(); bool isYoutube = false; QString streamKeyLink; @@ -591,7 +591,8 @@ void AutoConfigStreamPage::UpdateKeyLink() } else if (serviceName.startsWith("Restream.io")) { streamKeyLink = "https://restream.io/settings/streaming-setup?from=OBS"; - } else if (serviceName == "Facebook Live") { + } else if (serviceName == "Facebook Live" || + (customServer.contains("fbcdn.net") && IsCustomService())) { streamKeyLink = "https://www.facebook.com/live/producer?ref=OBS"; } else if (serviceName.startsWith("Twitter")) { diff --git a/UI/window-basic-settings-stream.cpp b/UI/window-basic-settings-stream.cpp index 77b0b192d..c66d927e5 100644 --- a/UI/window-basic-settings-stream.cpp +++ b/UI/window-basic-settings-stream.cpp @@ -71,6 +71,10 @@ void OBSBasicSettings::InitStreamPage() SLOT(UpdateServerList())); connect(ui->service, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateKeyLink())); + connect(ui->customServer, SIGNAL(textChanged(const QString &)), this, + SLOT(UpdateKeyLink())); + connect(ui->customServer, SIGNAL(editingFinished(const QString &)), + this, SLOT(UpdateKeyLink())); } void OBSBasicSettings::LoadStream1Settings() @@ -208,12 +212,8 @@ void OBSBasicSettings::SaveStream1Settings() void OBSBasicSettings::UpdateKeyLink() { - if (IsCustomService()) { - ui->getStreamKeyButton->hide(); - return; - } - QString serviceName = ui->service->currentText(); + QString customServer = ui->customServer->text(); QString streamKeyLink; if (serviceName == "Twitch") { streamKeyLink = @@ -223,7 +223,8 @@ void OBSBasicSettings::UpdateKeyLink() } else if (serviceName.startsWith("Restream.io")) { streamKeyLink = "https://restream.io/settings/streaming-setup?from=OBS"; - } else if (serviceName == "Facebook Live") { + } else if (serviceName == "Facebook Live" || + (customServer.contains("fbcdn.net") && IsCustomService())) { streamKeyLink = "https://www.facebook.com/live/producer?ref=OBS"; } else if (serviceName.startsWith("Twitter")) {