diff --git a/obs/obs-app.cpp b/obs/obs-app.cpp index b1f16d371..9644cf818 100644 --- a/obs/obs-app.cpp +++ b/obs/obs-app.cpp @@ -57,6 +57,8 @@ static string currentLogFile; static string lastLogFile; static bool portable_mode = false; +bool opt_start_streaming = false; +bool opt_start_recording = false; string opt_starting_scene; QObject *CreateShortcutFilter() @@ -1555,6 +1557,12 @@ int main(int argc, char *argv[]) if (arg_is(argv[i], "--portable", "-p")) { portable_mode = true; + } else if (arg_is(argv[i], "--startstreaming", nullptr)) { + opt_start_streaming = true; + + } else if (arg_is(argv[i], "--startrecording", nullptr)) { + opt_start_recording = true; + } else if (arg_is(argv[i], "--scene", nullptr)) { if (++i < argc) opt_starting_scene = argv[i]; } diff --git a/obs/obs-app.hpp b/obs/obs-app.hpp index 69f98a713..ae683cb19 100644 --- a/obs/obs-app.hpp +++ b/obs/obs-app.hpp @@ -154,4 +154,6 @@ static inline int GetProfilePath(char *path, size_t size, const char *file) return window->GetProfilePath(path, size, file); } +extern bool opt_start_streaming; +extern bool opt_start_recording; extern std::string opt_starting_scene; diff --git a/obs/window-basic-main.cpp b/obs/window-basic-main.cpp index 235f7d29e..b1bf17055 100644 --- a/obs/window-basic-main.cpp +++ b/obs/window-basic-main.cpp @@ -598,6 +598,18 @@ retryScene: if (!opt_starting_scene.empty()) opt_starting_scene.clear(); + if (opt_start_streaming) { + QMetaObject::invokeMethod(this, "StartStreaming", + Qt::QueuedConnection); + opt_start_streaming = false; + } + + if (opt_start_recording) { + QMetaObject::invokeMethod(this, "StartRecording", + Qt::QueuedConnection); + opt_start_recording = false; + } + disableSaving--; }