From 3f6e15b181947a060a7810712d54af7bf14c0c0e Mon Sep 17 00:00:00 2001 From: ObsidianSnoo <66971815+ObsidianSnoo@users.noreply.github.com> Date: Fri, 17 Jul 2020 21:19:55 -0700 Subject: [PATCH] 25.0.7.7-rpan --- CI/install/windows/.gitignore | 4 + CI/install/windows/config/config.xml | 21 ++ CI/install/windows/config/rpan-studio.icns | Bin 0 -> 116548 bytes CI/install/windows/config/rpan-studio.ico | Bin 0 -> 140414 bytes .../com.reddit.rpanstudio/data/.keepme | Bin 0 -> 6 bytes .../meta/installscript.qs | 40 +++ .../com.reddit.rpanstudio/meta/package.xml | 10 + CI/linux/.gitignore | 6 + CI/linux/AppDir/.keep | 0 CI/linux/Dockerfile | 28 +++ CI/linux/build/.keep | 0 CI/linux/docker-compose.yml | 20 ++ CI/linux/scripts/AppRun | 4 + CI/linux/scripts/build.sh | 85 +++++++ CI/linux/scripts/rpan-studio.desktop | 8 + CI/linux/scripts/rpan-studio.png | Bin 0 -> 37452 bytes CI/linux/tmp/.keep | 0 UI/api-reddit.cpp | 2 +- UI/auth-reddit.cpp | 4 +- UI/data/locale/en-US.ini | 8 + UI/forms/RedditChatPanel.ui | 29 ++- UI/forms/RedditStartStreamDialog.ui | 100 -------- UI/forms/RedditStartStreamDialog2.ui | 165 ++++++++++++- UI/forms/RedditStatsPanel.ui | 95 ++++---- UI/forms/images/invalid.png | Bin 0 -> 848 bytes UI/forms/images/ok.png | Bin 0 -> 597 bytes UI/forms/obs.qrc | 2 + UI/panel-reddit-chat.cpp | 87 +++++-- UI/panel-reddit-chat.hpp | 4 + UI/panel-reddit-stats.cpp | 26 +- UI/window-basic-main.cpp | 31 ++- UI/window-basic-settings-stream.cpp | 4 +- UI/window-basic-settings.cpp | 5 + UI/window-reddit-login-dialog2.cpp | 14 +- UI/window-reddit-start-stream2.cpp | 227 ++++++++++++++---- UI/window-reddit-start-stream2.hpp | 15 ++ plugins/linux-capture/CMakeLists.txt | 5 + 37 files changed, 819 insertions(+), 230 deletions(-) create mode 100644 CI/install/windows/.gitignore create mode 100644 CI/install/windows/config/config.xml create mode 100644 CI/install/windows/config/rpan-studio.icns create mode 100644 CI/install/windows/config/rpan-studio.ico create mode 100644 CI/install/windows/packages/com.reddit.rpanstudio/data/.keepme create mode 100644 CI/install/windows/packages/com.reddit.rpanstudio/meta/installscript.qs create mode 100644 CI/install/windows/packages/com.reddit.rpanstudio/meta/package.xml create mode 100644 CI/linux/.gitignore create mode 100644 CI/linux/AppDir/.keep create mode 100644 CI/linux/Dockerfile create mode 100644 CI/linux/build/.keep create mode 100644 CI/linux/docker-compose.yml create mode 100755 CI/linux/scripts/AppRun create mode 100755 CI/linux/scripts/build.sh create mode 100644 CI/linux/scripts/rpan-studio.desktop create mode 100755 CI/linux/scripts/rpan-studio.png create mode 100644 CI/linux/tmp/.keep delete mode 100644 UI/forms/RedditStartStreamDialog.ui create mode 100644 UI/forms/images/invalid.png create mode 100644 UI/forms/images/ok.png diff --git a/CI/install/windows/.gitignore b/CI/install/windows/.gitignore new file mode 100644 index 0000000..498b17c --- /dev/null +++ b/CI/install/windows/.gitignore @@ -0,0 +1,4 @@ +packages/**/data/** +!packages/**/data/.keepme +!config/*.xml +!packages/**/meta/*.xml diff --git a/CI/install/windows/config/config.xml b/CI/install/windows/config/config.xml new file mode 100644 index 0000000..92d2f3c --- /dev/null +++ b/CI/install/windows/config/config.xml @@ -0,0 +1,21 @@ + + + RPAN Studio + 25.0.7.6 + RPAN Studio Installer + Reddit, Inc. + https://www.reddit.com/r/RPANStudio + RPAN Studio + @ApplicationsDirX64@/RPAN Studio + uninstall + uninstall + false + false + + + + rpan-studio + rpan-studio.png + rpan-studio.png + Modern + \ No newline at end of file diff --git a/CI/install/windows/config/rpan-studio.icns b/CI/install/windows/config/rpan-studio.icns new file mode 100644 index 0000000000000000000000000000000000000000..276e4a973f53d21f404a129664801f416dbea7ab GIT binary patch literal 116548 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 z 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®aSW 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 + + com.reddit.rpanstudio + RPAN Studio + RPAN Studio Application + 25.0.7.6 + 2020-07-01 + true + + \ No newline at end of file diff --git a/CI/linux/.gitignore b/CI/linux/.gitignore new file mode 100644 index 0000000..b4da627 --- /dev/null +++ b/CI/linux/.gitignore @@ -0,0 +1,6 @@ +AppDir/* +!AppDir/.keep +build/* +!build/.keep +tmp/* +!tmp/.keep diff --git a/CI/linux/AppDir/.keep b/CI/linux/AppDir/.keep new file mode 100644 index 0000000..e69de29 diff --git a/CI/linux/Dockerfile b/CI/linux/Dockerfile new file mode 100644 index 0000000..4c3c8f9 --- /dev/null +++ b/CI/linux/Dockerfile @@ -0,0 +1,28 @@ +FROM mardy/qt:xenial-qt512 + +RUN apt update && \ + apt install -y libavcodec-dev \ + libavdevice-dev \ + libavformat-dev \ + libcurl4-openssl-dev \ + zlib1g-dev \ + libx264-dev \ + libjack-dev \ + libpulse-dev \ + libasound-dev \ + libmbedtls-dev \ + libfdk-aac-dev \ + libvlc-dev \ + libv4l-dev \ + libudev-dev \ + libspeexdsp-dev \ + libfreetype6-dev \ + libfontconfig1-dev \ + swig \ + libpython3-dev \ + libluajit-5.1-dev \ + wget \ + freeglut3 \ + libegl1-mesa \ + libcups2 + diff --git a/CI/linux/build/.keep b/CI/linux/build/.keep new file mode 100644 index 0000000..e69de29 diff --git a/CI/linux/docker-compose.yml b/CI/linux/docker-compose.yml new file mode 100644 index 0000000..ee8cd11 --- /dev/null +++ b/CI/linux/docker-compose.yml @@ -0,0 +1,20 @@ +version: '3' +services: + builder: + build: . + volumes: + - '../..:/project/src' + - './scripts:/project/scripts' + - './build:/project/build' + - './AppDir:/project/AppDir' + - './tmp:/project/tmp' + environment: + - REDDIT_HASH=${REDDIT_HASH} + - REDDIT_CLIENTID=${REDDIT_CLIENTID} + - REDDIT_SECRET=${REDDIT_SECRET} + - REDDIT_HMAC_GLOBAL_VERSION=${REDDIT_HMAC_GLOBAL_VERSION} + - REDDIT_HMAC_PLATFORM=${REDDIT_HMAC_PLATFORM} + - REDDIT_HMAC_TOKEN_VERSION=${REDDIT_HMAC_TOKEN_VERSION} + - BUILD_THREADS=${BUILD_THREADS} + - CLEAN_BUILD=${CLEAN_BUILD} + command: /project/scripts/build.sh diff --git a/CI/linux/scripts/AppRun b/CI/linux/scripts/AppRun new file mode 100755 index 0000000..6e720ce --- /dev/null +++ b/CI/linux/scripts/AppRun @@ -0,0 +1,4 @@ +#!/bin/sh +HERE="$(dirname "$(readlink -f "${0}")")" +cd ${HERE}/usr +PYTHONHOME=${HERE}/usr/lib/python3.5 PYTHONPATH=${HERE}/usr/lib/python3.5 exec "${HERE}/usr/bin/obs" "$@" diff --git a/CI/linux/scripts/build.sh b/CI/linux/scripts/build.sh new file mode 100755 index 0000000..8047340 --- /dev/null +++ b/CI/linux/scripts/build.sh @@ -0,0 +1,85 @@ +#!/bin/bash + +if [ ! -f /project/tmp/linuxdeployqt ] ; then + wget https://github.com/probonopd/linuxdeployqt/releases/download/6/linuxdeployqt-6-x86_64.AppImage -O /project/tmp/linuxdeployqt + chmod +x /project/tmp/linuxdeployqt +fi +if [ ! -f /project/tmp/ldq/squashfs-root/AppRun ] ; then + mkdir -p /project/tmp/ldq + cd /project/tmp/ldq + ../linuxdeployqt --appimage-extract +fi + +if [ ! -f /project/tmp/appimagetool ] ; then + wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O /project/tmp/appimagetool + chmod +x /project/tmp/appimagetool +fi +if [ ! -f /project/tmp/ait/squashfs-root/AppRun ] ; then + mkdir -p /project/tmp/ait + cd /project/tmp/ait + ../appimagetool --appimage-extract +fi + +cd /project/build +if [ "${CLEAN_BUILD}" == "1" ] ; then + echo "CLEAN BUILD" + rm -rf /project/build/* +fi + +cmake ../src \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DREDDIT_HASH="${REDDIT_HASH}" \ + -DREDDIT_CLIENTID="${REDDIT_CLIENTID}" \ + -DREDDIT_SECRET="${REDDIT_SECRET}" \ + -DREDDIT_HMAC_GLOBAL_VERSION="${REDDIT_HMAC_GLOBAL_VERSION}" \ + -DREDDIT_HMAC_PLATFORM="${REDDIT_HMAC_PLATFORM}" \ + -DREDDIT_HMAC_TOKEN_VERSION="${REDDIT_HMAC_TOKEN_VERSION}" + +rm -rf /project/AppDir/* + +make -j${BUILD_THREADS:-1} +make DESTDIR=/project/AppDir -j${BUILD_THREADS:-1} install + +apt-get -y download libpython3.5-minimal libpython3.5-stdlib +( cd /project/AppDir ; dpkg -x /project/build/libpython3.5-minimal*deb . ) +( cd /project/AppDir ; dpkg -x /project/build/libpython3.5-stdlib*deb . ) +( cd /project/AppDir/usr ; ln -s lib/obs-scripting/* . ) +( cd /project/AppDir/usr/lib/python3.5 ; ln -s plat-x86_64-linux-gnu/_sysconfigdata_m.py . ) + +sed -i -e 's|../../obs-plugins/64bit|././././lib/obs-plugins|g' /project/AppDir/usr/lib/libobs.so.0 + +rm -rf /project/AppDir/usr/share/metainfo + +cp /project/scripts/{AppRun,rpan-studio.{desktop,png}} /project/AppDir/ + +/project/tmp/ldq/squashfs-root/AppRun \ + /project/AppDir/usr/bin/obs \ + -bundle-non-qt-libs \ + -verbose=1 \ + -executable=/project/AppDir/usr/bin/obs-ffmpeg-mux \ + -executable=/project/AppDir/usr/lib/obs-plugins/decklink-ouput-ui.so \ + -executable=/project/AppDir/usr/lib/obs-plugins/frontend-tools.so \ + -executable=/project/AppDir/usr/lib/obs-plugins/image-source.so \ + -executable=/project/AppDir/usr/lib/obs-plugins/linux-alsa.so \ + -executable=/project/AppDir/usr/lib/obs-plugins/linux-decklink.so \ + -executable=/project/AppDir/usr/lib/obs-plugins/linux-jack.so \ + -executable=/project/AppDir/usr/lib/obs-plugins/linux-pulseaudio.so \ + -executable=/project/AppDir/usr/lib/obs-plugins/linux-v4l2.so \ + -executable=/project/AppDir/usr/lib/obs-plugins/obs-ffmpeg.so \ + -executable=/project/AppDir/usr/lib/obs-plugins/obs-filters.so \ + -executable=/project/AppDir/usr/lib/obs-plugins/obs-libfdk.so \ + -executable=/project/AppDir/usr/lib/obs-plugins/obs-outputs.so \ + -executable=/project/AppDir/usr/lib/obs-plugins/obs-transitions.so \ + -executable=/project/AppDir/usr/lib/obs-plugins/obs-x264.so \ + -executable=/project/AppDir/usr/lib/obs-plugins/rtmp-services.so \ + -executable=/project/AppDir/usr/lib/obs-plugins/text-freetype2.so \ + -executable=/project/AppDir/usr/lib/obs-plugins/vlc-video.so \ + -executable=/project/AppDir/usr/lib/libobs-opengl.so.0 + +/project/tmp/ait/squashfs-root/AppRun \ + --comp=xz \ + -v \ + /project/AppDir \ + /project/build/rpan-studio.AppImage + + diff --git a/CI/linux/scripts/rpan-studio.desktop b/CI/linux/scripts/rpan-studio.desktop new file mode 100644 index 0000000..7ea3afe --- /dev/null +++ b/CI/linux/scripts/rpan-studio.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Name=RPAN Studio +Comment=OBS Studio with RPAN integration +Path=/usr +Exec=obs +Icon=rpan-studio +Categories=AudioVideo;Recorder; diff --git a/CI/linux/scripts/rpan-studio.png b/CI/linux/scripts/rpan-studio.png new file mode 100755 index 0000000000000000000000000000000000000000..9744f56ff9088f75067a66140690fad20ac00338 GIT binary patch literal 37452 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 literal 0 HcmV?d00001 diff --git a/CI/linux/tmp/.keep b/CI/linux/tmp/.keep new file mode 100644 index 0000000..e69de29 diff --git a/UI/api-reddit.cpp b/UI/api-reddit.cpp index 16ca679..d7146a3 100644 --- a/UI/api-reddit.cpp +++ b/UI/api-reddit.cpp @@ -101,7 +101,7 @@ vector LoginHeaders(const std::string &postData, REDDIT_HMAC_TOKEN_VERSION + ":" + nowStr + ":"; - memset(hmacSecret.data(), 0, hmacSecret.length()); + memset((void *)hmacSecret.data(), 0, hmacSecret.length()); headers.emplace_back("Client-Vendor-ID: " + string(REDDIT_VENDOR_ID)); headers.emplace_back("X-hmac-signed-body: " + diff --git a/UI/auth-reddit.cpp b/UI/auth-reddit.cpp index a525b54..be2702e 100644 --- a/UI/auth-reddit.cpp +++ b/UI/auth-reddit.cpp @@ -26,7 +26,7 @@ string RedditAuth::userAgent; std::shared_ptr RedditAuth::Login(QWidget *parent) { - auto dlg = RedditLoginDialog2(parent); + RedditLoginDialog2 dlg(parent); int result = dlg.exec(); if (!result) { @@ -142,6 +142,4 @@ void RegisterRedditAuth() CreateRedditAuth, RedditAuth::Login, DeleteCookies); - - blog(LOG_WARNING, "REDDIT AUTH"); } diff --git a/UI/data/locale/en-US.ini b/UI/data/locale/en-US.ini index eedf038..5a62ac1 100644 --- a/UI/data/locale/en-US.ini +++ b/UI/data/locale/en-US.ini @@ -1058,6 +1058,9 @@ Reddit.StartStream.Waiting.DialogTitle="Please Wait" Reddit.StartStream.Loading.Subreddits.Message="Loading subreddits..." Reddit.StartStream.Starting.Message="Starting broadcast..." Reddit.StartStream.Configuring="Configuring encoders..." +Reddit.StartStream.Configuring.Button.Accept="Update Settings" +Reddit.StartStream.Configuring.Error.Title="Incompatible encoder settings" +Reddit.StartStream.Configuring.Error.Message="Your video and audio encoder settings are incompatible with RPAN\nand will need to be reconfigured to continue:" Reddit.StartStream.Error.DialogTitle="Stream Error" Reddit.StartStream.Error.NoAccount="A Reddit account has not been configured." Reddit.StartStream.Error.Failure.Title="Something went wrong!" @@ -1066,11 +1069,16 @@ Reddit.EndStream.Title="Stream Ended" Reddit.Panel.Chat.Title="RPAN Chat" Reddit.Panel.Chat.Input.Hint="Send message (250 character limit)" Reddit.Panel.Chat.Offline="Start streaming to join chat" +Reddit.Panel.Chat.Connecting="Connecting to chat..." +Reddit.Panel.Chat.Reconnecting="Reconnecting to chat..." +Reddit.Panel.Chat.Disconnected="Connection Lost" Reddit.Panel.Stats.Title="RPAN Stats" Reddit.Panel.Stats.Offline="Start streaming to view stats" Reddit.Panel.Stats.Label.Upvotes="Score:" Reddit.Panel.Stats.Label.Watchers="Watchers:" Reddit.Panel.Stats.Label.TimeLeft="Airtime left:" +Reddit.Panel.Stats.Label.Awards="Award Count:" Reddit.Panel.Stats.Label.Link="Copy Link to Stream" Reddit.Panel.Stats.Tooltip.Link="Copy to clipboard" Reddit.Panel.Stats.Tooltip.Link.Copied="Link copied to clipboard!" +Reddit.Tools.DefaultResolution="Restore Default RPAN Resolution" \ No newline at end of file diff --git a/UI/forms/RedditChatPanel.ui b/UI/forms/RedditChatPanel.ui index 4ae703a..808df12 100644 --- a/UI/forms/RedditChatPanel.ui +++ b/UI/forms/RedditChatPanel.ui @@ -33,7 +33,7 @@ - 0 + 1 @@ -90,6 +90,33 @@ + + + + + + true + + + Reddit.Panel.Chat.Disconnected + + + Qt::AlignBottom|Qt::AlignHCenter + + + + + + + Reddit.Panel.Chat.Connecting + + + Qt::AlignHCenter|Qt::AlignTop + + + + + diff --git a/UI/forms/RedditStartStreamDialog.ui b/UI/forms/RedditStartStreamDialog.ui deleted file mode 100644 index f98640d..0000000 --- a/UI/forms/RedditStartStreamDialog.ui +++ /dev/null @@ -1,100 +0,0 @@ - - - RedditStartStreamDialog - - - - 0 - 0 - 385 - 162 - - - - Configure RPAN Stream - - - - - - Reddit.StartStream.Title - - - - - - - - - - - - - - Reddit.StartStream.Subreddit - - - - - - - true - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - Cancel - - - - - - - Reddit.StartStream.Button.StartStream - - - true - - - - - - - - - - - cancelButton - clicked() - RedditStartStreamDialog - close() - - - 104 - 117 - - - 201 - 69 - - - - - diff --git a/UI/forms/RedditStartStreamDialog2.ui b/UI/forms/RedditStartStreamDialog2.ui index ac49135..0f4fb74 100644 --- a/UI/forms/RedditStartStreamDialog2.ui +++ b/UI/forms/RedditStartStreamDialog2.ui @@ -220,6 +220,167 @@ + + + + + + Qt::Vertical + + + QSizePolicy::Minimum + + + + 20 + 40 + + + + + + + + Reddit.StartStream.Configuring.Error.Message + + + Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft + + + + + + + 0 + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + + + + + + + 25 + 0 + + + + + + + :/res/images/ok.png + + + + + + + Basic.Settings.Audio + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + 0 + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + + + + + + + 25 + 0 + + + + + + + :/res/images/ok.png + + + + + + + Basic.Settings.Video + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + @@ -297,7 +458,9 @@ - + + + cancelButton diff --git a/UI/forms/RedditStatsPanel.ui b/UI/forms/RedditStatsPanel.ui index d0ed95b..d14f6fd 100644 --- a/UI/forms/RedditStatsPanel.ui +++ b/UI/forms/RedditStatsPanel.ui @@ -7,7 +7,7 @@ 0 0 215 - 116 + 153 @@ -31,30 +31,57 @@ - - + + + + Qt::Vertical + + + + 20 + 40 + + + + + + - Reddit.Panel.Stats.Label.Watchers + 0:00 + + + + + + + N + + + + + + + Reddit.Panel.Stats.Label.Awards Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - + + - Reddit.Panel.Stats.Label.TimeLeft + Reddit.Panel.Stats.Label.Watchers Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - + + - 0:00 + N @@ -68,46 +95,27 @@ - - + + - N + Reddit.Panel.Stats.Label.TimeLeft + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - + + N - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - Reddit.Panel.Stats.Tooltip.Link - + + - [Stream URL] - - - Qt::AlignCenter - - - true + Reddit.Panel.Stats.Label.Link @@ -132,13 +140,6 @@ - - - ClickableLabel - QLabel -
clickable-label.hpp
-
-
diff --git a/UI/forms/images/invalid.png b/UI/forms/images/invalid.png new file mode 100644 index 0000000000000000000000000000000000000000..45f8949bfe3dd7cc4242bc26ba7564cc319bc834 GIT binary patch literal 848 zcmV-W1F!svP)AAe8-^261JTEa#6aNtPXBzm680^#gmX>3y!^2O4V`EXNpx`(y%OtY6I4_r$GOo(X zx)ZIf^GMR31Vi=p_g4G*8Z*w6^JyiekX$YhLZGazAuu_K^{FW}r@Ff1Y**LyWP@GU z*WcGv=LsEop8(Rc5V2!IIb7Su z-o6ka^s&ZR>@Gu5G0`UWq*PTnSV6{yZwWCi1}WdgCz#zUD?VQ~laY?44^yC{+MOmv zS?!jjEZJdy<2-+^fC)#T1$>wr9EN}46R6bGZDz-SQv7}?#?shY4?y6!&ID|?iQ}&F zlWxp^gQ)~DGcjf4ssv-M1o1M+X>eM)x!bL1Ve{znZ%QdVldg+3TwteK}VWR7-bM~3*G<_4PkUOXgDmm!89M~Hro|} zHX$+u2`0gACt!1O{2Tx+tU+fZG9QS7*jWsyh9PQ(=c)xikR(@Ds&GsH5dmfXW_FKQ zR8>{CrVFZ&&LO@W0qx|`uNfe5+(b&sNT=O?BQI0@%!M}{NaL_#2x@}aQ>2Ghk-SeI zHyv?uBr_NTY&60Y0~^C4oi;!PBUo{;m<(vnwpM={Z&rZbE}mLR!O|0qftqgODWn)vavCHprRtB*os}d@0tGl aoqqu?)kdoeH1-ex0000oc5!lIL8@MUQTpt6Hc~*BaQ29J1}sCcHRXtt1GHXmOGH)lM%P_}?T46j72hL`z}7OUIX7+O}{2xziz{THCiFfy5WZ;A{IDB&UcKSV;{RoH)Uf$$}Xeg zEh%MNlgsu*mLCYM+>uzlJFWgeM*RuXrem(nhrButRdw$5?mSlAbuhf^V07P+gudf0 z{U>84?9HBVFn{9F%!&8xCLb%9d?IVw;hY&)-Dh6tpLuD*tP>ftPFK%8nY-*l`L!VqTUG;r_P$YVDX-7H*P%?hDcmaPEcUoz-6%T!%dO3OC%>g6+NVstLmszmzt<>Qt7?C z&>Lmel#iLN65NIcr+@CUs@5)KU`=t-W%hANv3>KFDb&Kzily|<*}Xn@bJiRV-Knsw z^Od!vMbwO)D+&*u5x-n~!R%AWbGI8Bc`wA5oa}w0#u>{i7ZUz?lkj_IhPvbY2j=Pd RmjhkH;OXk;vd$@?2>>yI)$afR literal 0 HcmV?d00001 diff --git a/UI/forms/obs.qrc b/UI/forms/obs.qrc index 8e78431..2e86f61 100644 --- a/UI/forms/obs.qrc +++ b/UI/forms/obs.qrc @@ -43,6 +43,8 @@ images/reddit-login-sidebar.png images/reddit.png images/start-stream-sidebar-3.png + images/ok.png + images/invalid.png images/settings/output.svg diff --git a/UI/panel-reddit-chat.cpp b/UI/panel-reddit-chat.cpp index e3bee79..c2707ec 100644 --- a/UI/panel-reddit-chat.cpp +++ b/UI/panel-reddit-chat.cpp @@ -15,6 +15,7 @@ #define PAGE_CHAT 0 #define PAGE_OFFLINE 1 +#define PAGE_CONNECTING 2 using namespace std; using namespace json11; @@ -39,12 +40,16 @@ RedditChatPanel::RedditChatPanel(QWidget *parent) { ui->setupUi(this); + ui->disconnectedWarningLbl->setProperty("themeID", "error"); + connect(ui->sendButton, SIGNAL(clicked()), this, SLOT(PostComment())); connect(ui->chatInputEdit, SIGNAL(returnPressed()), this, SLOT(PostComment())); connect(&websocket, &QWebSocket::connected, this, &RedditChatPanel::WebsocketConnected); + connect(&websocket, &QWebSocket::disconnected, this, + &RedditChatPanel::WebsocketDisconnected); connect(&websocket, QOverload &>::of(&QWebSocket::sslErrors), this, &RedditChatPanel::WebsocketSSLError); @@ -52,7 +57,7 @@ RedditChatPanel::RedditChatPanel(QWidget *parent) QOverload::of(&QWebSocket::error), this, &RedditChatPanel::WebsocketError); connect(&websocket, &QWebSocket::textMessageReceived, this, - &RedditChatPanel::MessageReceived); + &RedditChatPanel::MessageReceived); imageDownloader = new ImageDownloader(ui->chatOutput->document(), this); @@ -94,6 +99,29 @@ void RedditChatPanel::SetPage(int page) switch (page) { case PAGE_CHAT: { + ui->chatOutput->setEnabled(true); + ui->chatInputEdit->setEnabled(true); + ui->sendButton->setEnabled(true); + break; + } + case PAGE_OFFLINE: + connected = false; + websocket.close(); + imageDownloader->Reset(); + break; + case PAGE_CONNECTING: + ui->chatOutput->clear(); + imageDownloader->Reset(); + ui->chatOutput->setEnabled(false); + ui->chatInputEdit->setEnabled(false); + ui->sendButton->setEnabled(false); + ui->connectingLabel->setText( + connected ? QTStr("Reddit.Panel.Chat.Reconnecting") + : QTStr("Reddit.Panel.Chat.Connecting")); + ui->disconnectedWarningLbl->setText( + connected ? QTStr("Reddit.Panel.Chat.Disconnected") + : ""); + auto *main = OBSBasic::Get(); auto *broadcastId = config_get_string(main->Config(), "Reddit", "BroadcastId"); @@ -105,15 +133,6 @@ void RedditChatPanel::SetPage(int page) apiThread->start(); break; } - case PAGE_OFFLINE: - websocket.close(); - ui->chatOutput->clear(); - ui->chatOutput->setEnabled(false); - ui->chatInputEdit->setEnabled(false); - ui->sendButton->setEnabled(false); - imageDownloader->Reset(); - break; - } } #define FORMAT_BOLD 1 @@ -225,9 +244,18 @@ void RedditChatPanel::ParseComment(const string &author, void RedditChatPanel::WebsocketConnected() { - ui->chatOutput->setEnabled(true); - ui->chatInputEdit->setEnabled(true); - ui->sendButton->setEnabled(true); + blog(LOG_INFO, "Reddit: Connected to chat"); + SetPage(PAGE_CHAT); + connected = true; +} + +void RedditChatPanel::WebsocketDisconnected() +{ + if (ui->stackedWidget->currentIndex() == PAGE_CHAT) { + blog(LOG_INFO, + "Reddit: Lost connection to chat. Reconnecting..."); + SetPage(PAGE_CONNECTING); + } } void RedditChatPanel::WebsocketSSLError(const QList &) @@ -284,10 +312,16 @@ void RedditChatPanel::PostComment() "Reddit", "BroadcastId"); - string comment = ui->chatInputEdit->text().trimmed().toStdString(); + QString comment = ui->chatInputEdit->text().trimmed(); ui->chatInputEdit->clear(); - auto *thread = RedditApi::PostComment(broadcastId, comment); + if (comment.startsWith("/")) { + ParseCommand(comment); + return; + } + + auto *thread = RedditApi::PostComment(broadcastId, + comment.toStdString()); connect(thread, &RemoteTextThread::Result, this, &RedditChatPanel::PostCommentDone); postCommentThread.reset(thread); @@ -372,15 +406,15 @@ void RedditChatPanel::OnLoadStream(const QString &text, Json streamData = output["data"]; Json postData = streamData["post"]; - string postId = postData["id"].string_value(); + postId = postData["id"].string_value(); + websocketUrl = postData["liveCommentsWebsocket"] + .string_value(); + auto *thread = RedditApi::FetchPostComments(postId); connect(thread, &RemoteTextThread::Result, this, &RedditChatPanel::PopulateComments); fetchCommentsThread.reset(thread); fetchCommentsThread->start(); - - websocketUrl = postData["liveCommentsWebsocket"] - .string_value(); } QString RedditChatPanel::GetAvatar(const string &authorId) @@ -402,6 +436,19 @@ QString RedditChatPanel::GetImage(const QString &url) return QString("img://%1").arg(imageDownloader->Download(url)); } +void RedditChatPanel::ParseCommand(const QString &comment) +{ + if (comment.mid(1).startsWith("disconnect")) { + websocket.close(); + } else { + QTextCursor cursor(ui->chatOutput->textCursor()); + cursor.movePosition(QTextCursor::End); + QTextTable *table = cursor.insertTable(1, 1, tableFormat); + table->cellAt(0, 0).firstCursorPosition().insertHtml( + QString("Invalid command: %1").arg(comment)); + } +} + namespace { void on_frontend_event(enum obs_frontend_event event, void *param) @@ -410,7 +457,7 @@ void on_frontend_event(enum obs_frontend_event event, void *param) switch (event) { case OBS_FRONTEND_EVENT_STREAMING_STARTED: - panel->SetPage(PAGE_CHAT); + panel->SetPage(PAGE_CONNECTING); break; case OBS_FRONTEND_EVENT_STREAMING_STOPPED: panel->SetPage(PAGE_OFFLINE); diff --git a/UI/panel-reddit-chat.hpp b/UI/panel-reddit-chat.hpp index 9cd819c..4ebc4fc 100644 --- a/UI/panel-reddit-chat.hpp +++ b/UI/panel-reddit-chat.hpp @@ -27,6 +27,7 @@ Q_OBJECT QString GetAvatar(const std::string &avatarId); QString GetImage(const QString &imageUrl); + void ParseCommand(const QString &comment); QWebSocket websocket; QScopedPointer apiThread; @@ -34,12 +35,15 @@ Q_OBJECT QScopedPointer postCommentThread; std::string websocketUrl; + std::string postId; + bool connected = false; QTextTableFormat tableFormat; ImageDownloader *imageDownloader; private slots: void WebsocketConnected(); + void WebsocketDisconnected(); void WebsocketSSLError(const QList &errors); void WebsocketError(QAbstractSocket::SocketError error); void MessageReceived(QString message); diff --git a/UI/panel-reddit-stats.cpp b/UI/panel-reddit-stats.cpp index 04f7a05..a42a55e 100644 --- a/UI/panel-reddit-stats.cpp +++ b/UI/panel-reddit-stats.cpp @@ -27,7 +27,7 @@ RedditStatsPanel::RedditStatsPanel(QWidget *parent) { ui->setupUi(this); - connect(ui->streamUrlLabel, SIGNAL(clicked()), this, + connect(ui->copyStreamLinkBtn, SIGNAL(clicked()), this, SLOT(CopyURLToClipboard())); timer.reset(new QTimer(this)); @@ -42,7 +42,8 @@ RedditStatsPanel::RedditStatsPanel(QWidget *parent) ui->upvotesLabel->setText(""); ui->watchersLabel->setText(""); ui->timeleftLabel->setText(""); - ui->streamUrlLabel->setText(""); + ui->awardsLabel->setText(""); + ui->copyStreamLinkBtn->setVisible(false); obs_frontend_add_event_callback(on_frontend_event, this); @@ -118,7 +119,9 @@ void RedditStatsPanel::CopyURLToClipboard() QToolTip::showText(QCursor::pos(), Str( "Reddit.Panel.Stats.Tooltip.Link.Copied"), - this); + this, + QRect(), + 2000); } } @@ -138,18 +141,25 @@ void RedditStatsPanel::OnLoadStream(const QString &text, Json streamData = output["data"]; Json postData = streamData["post"]; - url = postData["url"].string_value(); + string newUrl = postData["url"].string_value(); + if(url != newUrl) { + url = newUrl; + blog(LOG_INFO, "Reddit: Loaded stream stats for URL: %s", url.c_str()); + } int score = postData["score"].int_value(); int watchers = streamData["continuous_watchers"].int_value(); timeRemaining = static_cast(streamData["estimated_remaining_time"] .number_value()); + vector awards = postData["awardings"].array_items(); + int totalAwards = 0; + for(auto it = awards.begin(); it != awards.end(); ++it) { + totalAwards += (*it)["total"].int_value(); + } ui->upvotesLabel->setText(QString::number(score)); ui->watchersLabel->setText(QString::number(watchers)); - - QString streamUrl = QString("
%1") - .arg(Str("Reddit.Panel.Stats.Label.Link")); - ui->streamUrlLabel->setText(streamUrl); + ui->awardsLabel->setText(QString::number(totalAwards)); + ui->copyStreamLinkBtn->setVisible(true); } namespace { diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index be95104..cb1a290 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -103,6 +103,10 @@ template struct SignalContainer { OBSRef ref; vector> handlers; }; + +#if REDDIT_ENABLED +void RedditRestoreRPANResolution(); +#endif } extern volatile long insideEventLoop; @@ -416,6 +420,12 @@ OBSBasic::OBSBasic(QWidget *parent) this, SLOT(ScenesReordered(const QModelIndex &, int, int, const QModelIndex &, int))); + +#if REDDIT_ENABLED + auto *action = ui->menuTools->addAction( + QTStr("Reddit.Tools.DefaultResolution")); + connect(action, &QAction::triggered, RedditRestoreRPANResolution); +#endif } static void SaveAudioDevice(const char *name, int channel, obs_data_t *parent, @@ -6013,7 +6023,7 @@ void OBSBasic::on_streamButton_clicked() #if REDDIT_ENABLED if (strncmp(serviceName, "Reddit", 6) == 0) { isReddit = true; - auto dlg = RedditStartStreamDialog2(); + RedditStartStreamDialog2 dlg(this); if (!dlg.exec()) { return; } @@ -8005,4 +8015,23 @@ void OBSBasic::RedditCheckStreamStatus(const QString &output, const QString &err OBSMessageBox::information(this, Str("Reddit.EndStream.Title"), reason.c_str()); } } + +namespace { +void RedditRestoreRPANResolution() +{ + auto *main = OBSBasic::Get(); + if (main->StreamingActive()) { + return; + } + + auto *config = main->Config(); + config_set_int(config, "Video", "BaseCX", 480); + config_set_int(config, "Video", "BaseCY", 854); + config_set_int(config, "Video", "OutputCX", 480); + config_set_int(config, "Video", "OutputCY", 854); + main->ResetVideo(); + main->ResetOutputs(); + config_save_safe(config, "tmp", nullptr); +} +} #endif diff --git a/UI/window-basic-settings-stream.cpp b/UI/window-basic-settings-stream.cpp index 518564e..183e836 100644 --- a/UI/window-basic-settings-stream.cpp +++ b/UI/window-basic-settings-stream.cpp @@ -11,6 +11,8 @@ #ifdef BROWSER_AVAILABLE #include +#endif +#if defined(BROWSER_AVAILABLE) || REDDIT_ENABLED #include "auth-oauth.hpp" #endif @@ -543,7 +545,7 @@ void OBSBasicSettings::OnAuthConnected() void OBSBasicSettings::on_connectAccount_clicked() { -#if defined(BROWSER_AVAILABLE) || defined(REDDIT_ENABLED) +#if defined(BROWSER_AVAILABLE) || REDDIT_ENABLED std::string service = QT_TO_UTF8(ui->service->currentText()); OAuth::DeleteCookies(service); diff --git a/UI/window-basic-settings.cpp b/UI/window-basic-settings.cpp index 21da648..6bf0449 100644 --- a/UI/window-basic-settings.cpp +++ b/UI/window-basic-settings.cpp @@ -1436,6 +1436,11 @@ void OBSBasicSettings::LoadResolutionLists() ui->baseResolution->addItem(res); }; +#if REDDIT_ENABLED + // Default RPAN resolution: + addRes(480, 854); +#endif + for (QScreen *screen : QGuiApplication::screens()) { QSize as = screen->size(); addRes(as.width(), as.height()); diff --git a/UI/window-reddit-login-dialog2.cpp b/UI/window-reddit-login-dialog2.cpp index b033ed3..ee151af 100644 --- a/UI/window-reddit-login-dialog2.cpp +++ b/UI/window-reddit-login-dialog2.cpp @@ -68,19 +68,20 @@ void RedditLoginDialog2::SignIn() const string newUsername = ui->usernameEdit->text().toStdString(); const string password = ui->passwordEdit->text().toStdString(); - if(newUsername.empty()) { + if (newUsername.empty()) { ui->errorLabel->setText(Str("Reddit.Login.Error.Username")); return; } - if(password.empty()) { + if (password.empty()) { ui->errorLabel->setText(Str("Reddit.Login.Error.Password")); return; } string otpCode; if (needsOtp) { otpCode = ui->otpEdit->text().trimmed().toStdString(); - if(otpCode.empty() || otpCode.length() < 6) { - ui->otpErrorLabel->setText(Str("Reddit.Login.2FA.Error.Required")); + if (otpCode.empty() || otpCode.length() < 6) { + ui->otpErrorLabel->setText( + Str("Reddit.Login.2FA.Error.Required")); return; } } @@ -110,7 +111,7 @@ void RedditLoginDialog2::SignIn() } void RedditLoginDialog2::LoginResult(const QString &text, - const QString &, + const QString &errorText, const QStringList &responseHeaders) { string error; @@ -125,6 +126,8 @@ void RedditLoginDialog2::LoginResult(const QString &text, string msg = item.array_items()[1] .string_value(); + blog(LOG_INFO, "Reddit: Login failure: %s", text.toStdString().c_str()); + string err = Str( "Reddit.Login.Error.Generic.Message") + msg; @@ -148,6 +151,7 @@ void RedditLoginDialog2::LoginResult(const QString &text, if (details.is_string() && details.string_value() == "TWO_FA_REQUIRED") { needsOtp = true; + blog(LOG_INFO, "Reddit: Account has 2FA enabled"); SetPage(PAGE_OTP); return; } diff --git a/UI/window-reddit-start-stream2.cpp b/UI/window-reddit-start-stream2.cpp index dfc1613..38b2867 100644 --- a/UI/window-reddit-start-stream2.cpp +++ b/UI/window-reddit-start-stream2.cpp @@ -15,6 +15,7 @@ using namespace json11; #define PAGE_CONFIG 0 #define PAGE_WAITING 1 #define PAGE_FAILURE 2 +#define PAGE_INVALID_SETTINGS 3 namespace { const char *CONF_SECTION = "Reddit"; @@ -37,15 +38,15 @@ RedditStartStreamDialog2::RedditStartStreamDialog2(QWidget *parent) connect(ui->titleEdit, SIGNAL(textChanged(const QString&)), this, SLOT(UpdateButtons())); connect(ui->titleEdit, SIGNAL(returnPressed()), this, - SLOT(CreateStream())); + SLOT(ValidateConfig())); connect(ui->subredditCombo, SIGNAL(currentTextChanged(const QString &)), this, SLOT(UpdateButtons())); connect(ui->subredditCombo, SIGNAL(editTextChanged(const QString &)), this, SLOT(UpdateButtons())); connect(ui->subredditCombo->lineEdit(), SIGNAL(returnPressed()), this, - SLOT(CreateStream())); + SLOT(ValidateConfig())); connect(ui->startButton, SIGNAL(clicked()), this, - SLOT(CreateStream())); + SLOT(ValidateConfig())); LoadSubreddits(); } @@ -82,19 +83,9 @@ void RedditStartStreamDialog2::LoadSubreddits() void RedditStartStreamDialog2::CreateStream() { - if (!ui->startButton->isEnabled()) { - return; - } - QString title = ui->titleEdit->text().trimmed(); QString subreddit = ui->subredditCombo->currentText().trimmed(); - auto *main = OBSBasic::Get(); - config_set_string(main->Config(), CONF_SECTION, CONF_STREAM_TITLE, - title.toStdString().c_str()); - config_set_string(main->Config(), CONF_SECTION, CONF_LAST_SUBREDDIT, - subreddit.toStdString().c_str()); - title = QUrl::toPercentEncoding(title); auto *thread = RedditApi::CreateStream(title.toStdString(), subreddit.toStdString()); @@ -107,10 +98,29 @@ void RedditStartStreamDialog2::CreateStream() createStreamThread.reset(thread); createStreamThread->start(); - SetPage(PAGE_WAITING); ui->subtitle->setText(Str("Reddit.StartStream.Starting.Message")); } +void RedditStartStreamDialog2::ValidateConfig() +{ + if (ui->stackedWidget->currentIndex() == PAGE_INVALID_SETTINGS) { + ui->subtitle->setText(Str("Reddit.StartStream.Configuring")); + SetPage(PAGE_WAITING); + UpdateEncoderSettings(); + return; + } + + if (!ui->startButton->isEnabled()) { + return; + } + + SaveStreamSettings(); + LoadDynamicConfig(); + + SetPage(PAGE_WAITING); + ui->subtitle->setText(Str("Reddit.StartStream.Configuring")); +} + void RedditStartStreamDialog2::LoadDynamicConfig() { auto *thread = RedditApi::FetchConfig(); @@ -123,6 +133,7 @@ void RedditStartStreamDialog2::LoadDynamicConfig() void RedditStartStreamDialog2::SetPage(int page) { ui->stackedWidget->setCurrentIndex(page); + ui->startButton->setText(Str("Reddit.StartStream.Button.StartStream")); switch (page) { case PAGE_CONFIG: @@ -130,6 +141,34 @@ void RedditStartStreamDialog2::SetPage(int page) ui->titleEdit->setFocus(); UpdateButtons(); break; + case PAGE_INVALID_SETTINGS: { + ui->startButton->setEnabled(true); + + ui->subtitle->setText(Str("Reddit.StartStream.Configuring.Error.Title")); + ui->startButton->setText( + Str("Reddit.StartStream.Configuring.Button.Accept")); + QPixmap okIcon = QPixmap(QString::fromUtf8(":/res/images/ok.png")); + QPixmap invalidIcon = QPixmap(QString::fromUtf8(":/res/images/invalid.png")); + ui->invalidAudioIcon->setPixmap(fixAudioTracks ? invalidIcon : okIcon); + ui->invalidVideoIcon->setPixmap(fixVideoTracks ? invalidIcon : okIcon); + + QString audioText = QTStr("Basic.Settings.Audio"); + if (fixAudioTracks) { + audioText = audioText.append(": %1kbps -> %2kbps") + .arg(currentAudioBitrate) + .arg(maxAudioBitrate); + } + ui->invalidAudioLabel->setText(audioText); + + QString videoText = QTStr("Basic.Settings.Video"); + if (fixVideoTracks) { + videoText = videoText.append(": %1kbps -> %2kbps") + .arg(currentVideoBitrate) + .arg(maxVideoBitrate); + } + ui->invalidVideoLabel->setText(videoText); + break; + } case PAGE_WAITING: ui->startButton->setEnabled(false); break; @@ -255,8 +294,7 @@ void RedditStartStreamDialog2::OnCreateStream(const QString &text, CONF_BROADCAST_ID, broadcastId.c_str()); - LoadDynamicConfig(); - ui->subtitle->setText(Str("Reddit.StartStream.Configuring")); + accept(); } void RedditStartStreamDialog2::OnDynamicConfig(const QString &text, @@ -267,42 +305,134 @@ void RedditStartStreamDialog2::OnDynamicConfig(const QString &text, string parseError; Json json = Json::parse(result, parseError); + maxVideoBitrate = 2048; + maxAudioBitrate = 128; + + // Parse Dynamic Config Json globalConfig = json["global"]; - int fps = globalConfig["broadcast_fps"].number_value(); - int videoBitrate = - globalConfig["broadcast_max_video_bitrate"].number_value(); - int maxKeyframeInterval = - globalConfig["broadcast_max_keyframe_interval"].number_value(); - int audioBitrate = - globalConfig["broadcast_max_audio_bitrate"].number_value(); + if (globalConfig.is_object()) { + Json maxVideoBitrateJson = + globalConfig["broadcast_studio_max_video_bitrate"]; + Json maxAudioBitrateJson = + globalConfig["broadcast_max_audio_bitrate"]; + Json maxKeyframeIntervalJson = + globalConfig["broadcast_max_keyframe_interval"]; + + if (maxVideoBitrateJson.is_number()) { + maxVideoBitrate = maxVideoBitrateJson.int_value(); + } + if (maxAudioBitrateJson.is_number()) { + maxAudioBitrate = maxAudioBitrateJson.int_value(); + } + if (maxKeyframeIntervalJson.is_number()) { + maxKeyframeInterval = maxKeyframeIntervalJson.int_value(); + } + } + // Check existing audio config auto *main = OBSBasic::Get(); auto *config = main->Config(); - config_set_string(config, "Output", "Mode", "Advanced"); - config_set_default_int(config, "Video", "FPSType", 1); - config_set_int(config, "Video", "FPSInt", fps); + + char trackBitrateBuf[] = "TrackXBitrate"; + + for (int i = 1; i <= 6; ++i) { + sprintf(trackBitrateBuf, "Track%dBitrate", i); + currentAudioBitrate = config_get_int(config, "AdvOut", trackBitrateBuf); + if (currentAudioBitrate > maxAudioBitrate) { + fixAudioTracks = true; + break; + } + } + + // Check existing video config + Json currentEncoderConfigJson = LoadEncoderSettings(); + if (currentEncoderConfigJson.is_object()) { + Json bitrateJson = currentEncoderConfigJson["bitrate"]; + if (bitrateJson.is_number() && + bitrateJson.int_value() > maxVideoBitrate) { + fixVideoTracks = true; + currentVideoBitrate = bitrateJson.int_value(); + } + } + + if (fixAudioTracks || fixVideoTracks) { + SetPage(PAGE_INVALID_SETTINGS); + } else { + CreateStream(); + } +} + +void RedditStartStreamDialog2::UpdateEncoderSettings() +{ + auto *main = OBSBasic::Get(); + auto *config = main->Config(); + + config_set_string(config, "Output", "Mode", "Advanced"); + + // Update audio settings char track[] = "TrackXBitrate"; - for (int i = 1; i <= 6; i++) { + for (int i = 1; i <= 6; ++i) { sprintf(track, "Track%dBitrate", i); - config_set_int(config, "AdvOut", track, audioBitrate); + int bitrate = config_get_int(config, "AdvOut", track); + if(bitrate > maxAudioBitrate) { + config_set_int(config, "AdvOut", track, maxAudioBitrate); + } } - Json streamEncoder = Json::object{{"bitrate", videoBitrate}, - {"keyint_sec", maxKeyframeInterval}, - {"profile", "baseline"}, - {"rate_control", "ABR"}}; - string streamEncoderJson = streamEncoder.dump(); - char jsonPath[512]; - if (GetProfilePath(jsonPath, - sizeof(jsonPath), - "streamEncoder.json") > 0) { - os_quick_write_utf8_file_safe(jsonPath, - streamEncoderJson.c_str(), - streamEncoderJson.length(), false, - "tmp", "bak"); + // Update video settings + char jsonPath[512]; + string parseError; + if (GetProfilePath(jsonPath, + sizeof(jsonPath), + "streamEncoder.json") > 0) { + char *currentConfig = os_quick_read_utf8_file(jsonPath); + Json currentConfigJson = Json::parse(currentConfig, parseError); + } + + Json currentEncoderConfigJson = LoadEncoderSettings(); + Json newConfig; + if (currentEncoderConfigJson.is_object()) { + Json::object encoderConfig = + currentEncoderConfigJson.object_items(); + if (encoderConfig.find("bitrate") != encoderConfig.end()) { + encoderConfig.erase("bitrate"); + } + encoderConfig.emplace("bitrate", Json(maxVideoBitrate)); + newConfig = encoderConfig; + } else { + newConfig = Json::object{{"bitrate", maxVideoBitrate}, + {"keyint_sec", maxKeyframeInterval}, + {"profile", "baseline"}, + {"rate_control", "ABR"}}; } - accept(); + string streamEncoderJson = newConfig.dump(); + if (GetProfilePath(jsonPath, + sizeof(jsonPath), + "streamEncoder.json") > 0) { + os_quick_write_utf8_file_safe(jsonPath, + streamEncoderJson.c_str(), + streamEncoderJson.length(), false, + "tmp", "bak"); + } + + CreateStream(); +} + +Json RedditStartStreamDialog2::LoadEncoderSettings() +{ + string parseError; + char encoderJsonPath[512]; + Json currentEncoderConfigJson; + if (GetProfilePath(encoderJsonPath, + sizeof(encoderJsonPath), + "streamEncoder.json") > 0) { + char *encoderConfig = os_quick_read_utf8_file(encoderJsonPath); + currentEncoderConfigJson = Json::parse(encoderConfig, + parseError); + bfree(encoderConfig); + } + return currentEncoderConfigJson; } void RedditStartStreamDialog2::UpdateButtons() @@ -313,3 +443,16 @@ void RedditStartStreamDialog2::UpdateButtons() ui->startButton->setEnabled(hasTitle && hasSubreddit); } + +void RedditStartStreamDialog2::SaveStreamSettings() +{ + QString title = ui->titleEdit->text().trimmed(); + QString subreddit = ui->subredditCombo->currentText().trimmed(); + + auto *main = OBSBasic::Get(); + auto *config = main->Config(); + config_set_string(config, CONF_SECTION, CONF_STREAM_TITLE, + title.toStdString().c_str()); + config_set_string(config, CONF_SECTION, CONF_LAST_SUBREDDIT, + subreddit.toStdString().c_str()); +} diff --git a/UI/window-reddit-start-stream2.hpp b/UI/window-reddit-start-stream2.hpp index 5a5dfaf..29f6b0b 100644 --- a/UI/window-reddit-start-stream2.hpp +++ b/UI/window-reddit-start-stream2.hpp @@ -4,6 +4,10 @@ #include "ui_RedditStartStreamDialog2.h" +namespace json11 { +class Json; +} + class RedditStartStreamDialog2 : public QDialog { Q_OBJECT @@ -16,6 +20,9 @@ Q_OBJECT private: void SetPage(int page); + void UpdateEncoderSettings(); + json11::Json LoadEncoderSettings(); + void SaveStreamSettings(); void LoadSubreddits(); void LoadDynamicConfig(); @@ -25,9 +32,17 @@ Q_OBJECT QScopedPointer loadDynamicConfigThread; bool retried = false; + bool fixAudioTracks = false; + bool fixVideoTracks = false; + int maxAudioBitrate = 2048; + int maxVideoBitrate = 128; + int maxKeyframeInterval = 2; + int currentAudioBitrate = 0; + int currentVideoBitrate = 0; private slots: void CreateStream(); + void ValidateConfig(); void OnLoadSubreddits(const QString &text, const QString &error, const QStringList &responseHeaders); diff --git a/plugins/linux-capture/CMakeLists.txt b/plugins/linux-capture/CMakeLists.txt index 7080346..edae640 100644 --- a/plugins/linux-capture/CMakeLists.txt +++ b/plugins/linux-capture/CMakeLists.txt @@ -9,6 +9,11 @@ endif() find_package(XCB COMPONENTS XCB RANDR SHM XFIXES XINERAMA REQUIRED) find_package(X11_XCB REQUIRED) +if("${PKG_XCB_xcb_VERSION}" VERSION_LESS "1.12") + message(STATUS "libXCB too old. Version 1.12 or greater required") + return() +endif() + include_directories(SYSTEM "${CMAKE_SOURCE_DIR}/libobs" ${X11_Xcomposite_INCLUDE_PATH}