Projects
home:darix:branches:Multimedia
obs-studio
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 8
View file
obs-studio.changes
Changed
@@ -1,4 +1,26 @@ ------------------------------------------------------------------- +Sat Oct 03 01:13:14 UTC 2026 - darix <packman@nordisch.org> + +- Update to version 33.0.0~beta6: + * obs-websocket: Update version to 5.7.5 + * shared: Remove Qt<6.10 code + * frontend: Remove Qt<6.10 code + * linux-v4l2: Remove support for FFmpeg<8.0 + * obs-ffmpeg: Remove support for FFmpeg<8.0 + * win-dshow Set minimum FFmpeg version to 8.0 + * frontend: Set minimum FFmpeg version to 8.0 + * media-playback: Set minimum FFmpeg version to 8.0 + * libobs: Increase minimum FFmpeg version to 8.0 + * decklink: Include previously implicit header for Linux + * frontend: Include previously implicit headers for non-Windows + * frontend: Restore OBS wrappers in callbacks + * docs: Update graphics/image-file.h docs + * frontend-tools: Update clock Lua script for new gs_image_file_ex + * win-capture: Fix data directory path + * cmake: Fix bundling of scripting files on macOS + * cmake: Make obs-core-modules header public + +------------------------------------------------------------------- Thu Oct 01 00:15:18 UTC 2026 - darix <packman@nordisch.org> - Update to version 33.0.0~beta5:
View file
obs-studio.spec
Changed
@@ -50,7 +50,7 @@ %endif Name: obs-studio -Version: 33.0.0~beta5 +Version: 33.0.0~beta6 Release: 0 Summary: A recording/broadcasting program Group: Productivity/Multimedia/Video/Editors and Convertors
View file
_service
Changed
@@ -1,7 +1,7 @@ <services> <service name="tar_scm" mode="manual"> <param name="versionformat">@PARENT_TAG@</param> - <param name="revision">33.0.0-beta5</param> + <param name="revision">33.0.0-beta6</param> <param name="url">https://github.com/obsproject/obs-studio.git</param> <param name="versionrewrite-pattern">(\.\d+)-(a-z.*)</param> <param name="versionrewrite-replacement">\1~\2</param>
View file
_servicedata
Changed
@@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/obsproject/obs-studio.git</param> - <param name="changesrevision">a8b04ac5e15115591d8a184701e1670fb5dc00af</param> + <param name="changesrevision">cffa83ba552f1ef6a0a05851c3aa07b3811d7e58</param> </service> </servicedata> \ No newline at end of file
View file
obs-studio-33.0.0~beta5.tar.xz/cmake/macos/helpers.cmake -> obs-studio-33.0.0~beta6.tar.xz/cmake/macos/helpers.cmake
Changed
@@ -169,6 +169,11 @@ "$<TARGET_BUNDLE_CONTENT_DIR:${target}>/Resources" COMMENT "Add OBS::python import module" ) + set_property(TARGET ${target} APPEND PROPERTY XCODE_EMBED_PLUGINS obspython) + endif() + + if(TARGET obslua) + set_property(TARGET ${target} APPEND PROPERTY XCODE_EMBED_PLUGINS obslua) endif() if(
View file
obs-studio-33.0.0~beta5.tar.xz/docs/sphinx/reference-libobs-graphics-image-file.rst -> obs-studio-33.0.0~beta6.tar.xz/docs/sphinx/reference-libobs-graphics-image-file.rst
Changed
@@ -10,24 +10,24 @@ #include <graphics/image-file.h> -.. struct:: gs_image_file +.. struct:: gs_image_file_ex Image file structure -.. type:: gs_texture_t *gs_image_file.texture +.. type:: gs_texture_t *gs_image_file_ex.texture Texture -.. type:: struct gs_image_file gs_image_file_t +.. type:: struct gs_image_file_ex gs_image_file_ex_t Image file type --------------------- -.. function:: void gs_image_file_init(gs_image_file_t *image, const char *file) +.. function:: void gs_image_file_ex_init(gs_image_file_ex_t *image, const char *file, enum gs_image_alpha_mode alpha_mode) Loads an initializes an image file helper. Does not initialize the - texture; call :c:func:`gs_image_file_init_texture()` to initialize + texture; call :c:func:`gs_image_file_ex_init_texture()` to initialize the texture. :param image: Image file helper to initialize @@ -35,7 +35,7 @@ --------------------- -.. function:: void gs_image_file_free(gs_image_file_t *image) +.. function:: void gs_image_file_ex_free(gs_image_file_ex_t *image) Frees an image file helper @@ -43,28 +43,28 @@ --------------------- -.. function:: void gs_image_file_init_texture(gs_image_file_t *image) +.. function:: void gs_image_file_ex_init_texture(gs_image_file_ex_t *image) Initializes the texture of an image file helper. This is separate - from :c:func:`gs_image_file_init()` because it allows deferring the + from :c:func:`gs_image_file_ex_init()` because it allows deferring the graphics initialization if needed. :param image: Image file helper --------------------- -.. function:: bool gs_image_file_tick(gs_image_file_t *image, uint64_t elapsed_time_ns) +.. function:: bool gs_image_file_ex_tick(gs_image_file_ex_t *image, uint64_t elapsed_time_ns) Performs a tick operation on the image file helper (used primarily for animated file). Does not update the texture until - :c:func:`gs_image_file_update_texture()` is called. + :c:func:`gs_image_file_ex_update_texture()` is called. :param image: Image file helper :param elapsed_time_ns: Elapsed time in nanoseconds --------------------- -.. function:: void gs_image_file_update_texture(gs_image_file_t *image) +.. function:: void gs_image_file_ex_update_texture(gs_image_file_ex_t *image) Updates the texture (used primarily for animated files)
View file
obs-studio-33.0.0~beta5.tar.xz/frontend/CMakeLists.txt -> obs-studio-33.0.0~beta6.tar.xz/frontend/CMakeLists.txt
Changed
@@ -9,7 +9,7 @@ target_enable_feature(obs "User Interface") endif() -find_package(FFmpeg REQUIRED COMPONENTS avcodec avutil avformat) +find_package(FFmpeg 8.0 REQUIRED COMPONENTS avcodec avutil avformat) find_package(CURL REQUIRED) if(NOT TARGET OBS::json11)
View file
obs-studio-33.0.0~beta5.tar.xz/frontend/OBSApp.cpp -> obs-studio-33.0.0~beta6.tar.xz/frontend/OBSApp.cpp
Changed
@@ -30,9 +30,6 @@ #if !defined(_WIN32) && !defined(__APPLE__) #include <obs-nix-platform.h> -#if QT_VERSION < QT_VERSION_CHECK(6, 5, 0) -#include <qpa/qplatformnativeinterface.h> -#endif #endif #include <qt-wrappers.hpp> @@ -48,9 +45,9 @@ #endif #include <chrono> +#include <sstream> #ifdef _WIN32 -#include <sstream> #define WIN32_LEAN_AND_MEAN #include <windows.h> #else @@ -128,9 +125,7 @@ QMessageBox crashWarning; crashWarning.setIcon(QMessageBox::Warning); -#if QT_VERSION >= QT_VERSION_CHECK(6, 6, 0) crashWarning.setOption(QMessageBox::Option::DontUseNativeDialog); -#endif crashWarning.setWindowTitle(QTStr("CrashHandling.Dialog.Title")); crashWarning.setText(QTStr("CrashHandling.Labels.Text")); @@ -1284,11 +1279,9 @@ #if !defined(_WIN32) && !defined(__APPLE__) if (QApplication::platformName() == "xcb") { -#if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) auto native = qGuiApp->nativeInterface<QNativeInterface::QX11Application>(); obs_set_nix_platform_display(native->display()); -#endif obs_set_nix_platform(OBS_NIX_PLATFORM_X11_EGL); @@ -1297,11 +1290,9 @@ #ifdef ENABLE_WAYLAND if (QApplication::platformName().contains("wayland")) { -#if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) auto native = qGuiApp->nativeInterface<QNativeInterface::QWaylandApplication>(); obs_set_nix_platform_display(native->display()); -#endif obs_set_nix_platform(OBS_NIX_PLATFORM_WAYLAND); setAttribute(Qt::AA_DontCreateNativeWidgetSiblings); @@ -1310,10 +1301,6 @@ } #endif -#if QT_VERSION < QT_VERSION_CHECK(6, 5, 0) - QPlatformNativeInterface *native = QGuiApplication::platformNativeInterface(); - obs_set_nix_platform_display(native->nativeResourceForIntegration("display")); -#endif #endif #ifdef __APPLE__
View file
obs-studio-33.0.0~beta5.tar.xz/frontend/OBSStudioAPI.cpp -> obs-studio-33.0.0~beta6.tar.xz/frontend/OBSStudioAPI.cpp
Changed
@@ -67,10 +67,11 @@ void OBSStudioAPI::obs_frontend_set_current_scene(obs_source_t *scene) { if (main->IsPreviewProgramMode()) { - QMetaObject::invokeMethod(main, this, scene() { main->TransitionToScene(scene); }, WaitConnection()); + QMetaObject::invokeMethod( + main, this, scene = OBSSource(scene)() { main->TransitionToScene(scene); }, WaitConnection()); } else { QMetaObject::invokeMethod(main, qOverload<OBSSource, bool>(&OBSBasic::SetCurrentScene), - WaitConnection(), scene, false); + WaitConnection(), OBSSource(scene), false); } }
View file
obs-studio-33.0.0~beta5.tar.xz/frontend/cmake/os-freebsd.cmake -> obs-studio-33.0.0~beta6.tar.xz/frontend/cmake/os-freebsd.cmake
Changed
@@ -9,10 +9,6 @@ target_compile_definitions(obs-studio PRIVATE OBS_INSTALL_PREFIX="${OBS_INSTALL_PREFIX}") target_link_libraries(obs-studio PRIVATE Qt::DBus procstat) -if(Qt6_VERSION AND Qt6_VERSION VERSION_LESS "6.9.0") - target_link_libraries(obs-studio PRIVATE Qt::GuiPrivate) -endif() - find_package(Libpci REQUIRED) target_link_libraries(obs-studio PRIVATE Libpci::pci)
View file
obs-studio-33.0.0~beta5.tar.xz/frontend/cmake/os-linux.cmake -> obs-studio-33.0.0~beta6.tar.xz/frontend/cmake/os-linux.cmake
Changed
@@ -12,10 +12,6 @@ ) target_link_libraries(obs-studio PRIVATE Qt::DBus) -if(Qt6_VERSION AND Qt6_VERSION VERSION_LESS "6.9.0") - target_link_libraries(obs-studio PRIVATE Qt::GuiPrivate) -endif() - find_package(Libpci REQUIRED) target_link_libraries(obs-studio PRIVATE Libpci::pci)
View file
obs-studio-33.0.0~beta5.tar.xz/frontend/components/SceneTree.cpp -> obs-studio-33.0.0~beta6.tar.xz/frontend/components/SceneTree.cpp
Changed
@@ -235,13 +235,3 @@ QListWidget::rowsInserted(parent, start, end); } - -#if QT_VERSION < QT_VERSION_CHECK(6, 4, 3) -// Workaround for QTBUG-105870. Remove once that is solved upstream. -void SceneTree::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) -{ - if (selected.count() == 0 && deselected.count() > 0 && !property("clearing").toBool()) { - setCurrentRow(deselected.indexes().front().row()); - } -} -#endif
View file
obs-studio-33.0.0~beta5.tar.xz/frontend/components/SceneTree.hpp -> obs-studio-33.0.0~beta6.tar.xz/frontend/components/SceneTree.hpp
Changed
@@ -36,9 +36,6 @@ virtual void dragMoveEvent(QDragMoveEvent *event) override; virtual void dragLeaveEvent(QDragLeaveEvent *event) override; virtual void rowsInserted(const QModelIndex &parent, int start, int end) override; -#if QT_VERSION < QT_VERSION_CHECK(6, 4, 3) - virtual void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) override; -#endif signals: void scenesReordered();
View file
obs-studio-33.0.0~beta5.tar.xz/frontend/components/SourceTreeItem.cpp -> obs-studio-33.0.0~beta6.tar.xz/frontend/components/SourceTreeItem.cpp
Changed
@@ -208,8 +208,8 @@ auto removeItem = (void *data, calldata_t *cd) { SourceTreeItem *this_ = static_cast<SourceTreeItem *>(data); - obs_sceneitem_t *curItem = (obs_sceneitem_t *)calldata_ptr(cd, "item"); - obs_scene_t *curScene = (obs_scene_t *)calldata_ptr(cd, "scene"); + OBSSceneItem curItem = (obs_sceneitem_t *)calldata_ptr(cd, "item"); + OBSScene curScene = (obs_scene_t *)calldata_ptr(cd, "scene"); if (curItem == this_->sceneitem) { QMetaObject::invokeMethod(this_->tree, &SourceTree::Remove, curItem, curScene);
View file
obs-studio-33.0.0~beta5.tar.xz/frontend/dialogs/OBSBasicFilters.cpp -> obs-studio-33.0.0~beta6.tar.xz/frontend/dialogs/OBSBasicFilters.cpp
Changed
@@ -638,7 +638,7 @@ void OBSBasicFilters::OBSSourceFilterAdded(void *param, calldata_t *data) { OBSBasicFilters *window = static_cast<OBSBasicFilters *>(param); - obs_source_t *filter = (obs_source_t *)calldata_ptr(data, "filter"); + OBSSource filter = (obs_source_t *)calldata_ptr(data, "filter"); QMetaObject::invokeMethod(window, &OBSBasicFilters::AddFilter, filter, true); } @@ -646,7 +646,7 @@ void OBSBasicFilters::OBSSourceFilterRemoved(void *param, calldata_t *data) { OBSBasicFilters *window = static_cast<OBSBasicFilters *>(param); - obs_source_t *filter = (obs_source_t *)calldata_ptr(data, "filter"); + OBSSource filter = (obs_source_t *)calldata_ptr(data, "filter"); QMetaObject::invokeMethod(window, &OBSBasicFilters::RemoveFilter, filter); }
View file
obs-studio-33.0.0~beta5.tar.xz/frontend/dialogs/OBSBasicTransform.cpp -> obs-studio-33.0.0~beta6.tar.xz/frontend/dialogs/OBSBasicTransform.cpp
Changed
@@ -92,11 +92,7 @@ hookWidget(ui->cropRight, ISCROLL_CHANGED, &OBSBasicTransform::onCropChanged); hookWidget(ui->cropTop, ISCROLL_CHANGED, &OBSBasicTransform::onCropChanged); hookWidget(ui->cropBottom, ISCROLL_CHANGED, &OBSBasicTransform::onCropChanged); -#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0) hookWidget(ui->cropToBounds, &QCheckBox::checkStateChanged, &OBSBasicTransform::onControlChanged); -#else - hookWidget(ui->cropToBounds, &QCheckBox::stateChanged, &OBSBasicTransform::onControlChanged); -#endif ui->buttonBox->button(QDialogButtonBox::Close)->setDefault(true); connect(ui->buttonBox->button(QDialogButtonBox::Reset), &QPushButton::clicked, main,
View file
obs-studio-33.0.0~beta5.tar.xz/frontend/dialogs/OBSYoutubeActions.cpp -> obs-studio-33.0.0~beta6.tar.xz/frontend/dialogs/OBSYoutubeActions.cpp
Changed
@@ -53,33 +53,26 @@ (const QString &link) { QDesktopServices::openUrl(QUrl(link)); }); ui->scheduledTime->setVisible(false); -#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0) - connect(ui->checkScheduledLater, &QCheckBox::checkStateChanged, this, - &(Qt::CheckState state) -#else - connect(ui->checkScheduledLater, &QCheckBox::stateChanged, this, - &(int state) -#endif - { - const bool checked = (state == Qt::Checked); - ui->scheduledTime->setVisible(checked); - if (checked) { - ui->checkAutoStart->setVisible(true); - ui->checkAutoStop->setVisible(true); - ui->helpAutoStartStop->setVisible(true); - - ui->checkAutoStart->setChecked(false); - ui->checkAutoStop->setChecked(false); - } else { - ui->checkAutoStart->setVisible(false); - ui->checkAutoStop->setVisible(false); - ui->helpAutoStartStop->setVisible(false); + connect(ui->checkScheduledLater, &QCheckBox::checkStateChanged, this, &(Qt::CheckState state) { + const bool checked = (state == Qt::Checked); + ui->scheduledTime->setVisible(checked); + if (checked) { + ui->checkAutoStart->setVisible(true); + ui->checkAutoStop->setVisible(true); + ui->helpAutoStartStop->setVisible(true); + + ui->checkAutoStart->setChecked(false); + ui->checkAutoStop->setChecked(false); + } else { + ui->checkAutoStart->setVisible(false); + ui->checkAutoStop->setVisible(false); + ui->helpAutoStartStop->setVisible(false); - ui->checkAutoStart->setChecked(true); - ui->checkAutoStop->setChecked(true); - } - UpdateOkButtonStatus(); - }); + ui->checkAutoStart->setChecked(true); + ui->checkAutoStop->setChecked(true); + } + UpdateOkButtonStatus(); + }); ui->checkAutoStart->setVisible(false); ui->checkAutoStop->setVisible(false);
View file
obs-studio-33.0.0~beta5.tar.xz/frontend/oauth/YoutubeAuth.cpp -> obs-studio-33.0.0~beta6.tar.xz/frontend/oauth/YoutubeAuth.cpp
Changed
@@ -245,7 +245,7 @@ dlg.setText(text); dlg.setTextFormat(Qt::RichText); dlg.setStandardButtons(QMessageBox::StandardButton::Cancel); -#if defined(__APPLE__) && QT_VERSION >= QT_VERSION_CHECK(6, 6, 0) +#if defined(__APPLE__) /* We can't show clickable links with the native NSAlert, so let's * force the old non-native dialog instead. */ dlg.setOption(QMessageBox::Option::DontUseNativeDialog); @@ -280,14 +280,7 @@ QScopedPointer<QThread> thread(CreateQThread(open_external_browser)); thread->start(); -#if defined(__APPLE__) && QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) && QT_VERSION < QT_VERSION_CHECK(6, 6, 0) - const bool nativeDialogs = qApp->testAttribute(Qt::AA_DontUseNativeDialogs); - App()->setAttribute(Qt::AA_DontUseNativeDialogs, true); dlg.exec(); - App()->setAttribute(Qt::AA_DontUseNativeDialogs, nativeDialogs); -#else - dlg.exec(); -#endif if (dlg.result() == QMessageBox::Cancel || dlg.result() == QDialog::Rejected) { return nullptr;
View file
obs-studio-33.0.0~beta5.tar.xz/frontend/settings/OBSBasicSettings.cpp -> obs-studio-33.0.0~beta6.tar.xz/frontend/settings/OBSBasicSettings.cpp
Changed
@@ -776,11 +776,7 @@ connect(ui->simpleOutputABitrate, &QComboBox::currentIndexChanged, this, &OBSBasicSettings::SimpleReplayBufferChanged); connect(ui->simpleRBSecMax, &QSpinBox::valueChanged, this, &OBSBasicSettings::SimpleReplayBufferChanged); -#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0) connect(ui->advOutSplitFile, &QCheckBox::checkStateChanged, this, &OBSBasicSettings::AdvOutSplitFileChanged); -#else - connect(ui->advOutSplitFile, &QCheckBox::stateChanged, this, &OBSBasicSettings::AdvOutSplitFileChanged); -#endif connect(ui->advOutSplitFileType, &QComboBox::currentIndexChanged, this, &OBSBasicSettings::AdvOutSplitFileChanged); connect(ui->advReplayBuf, &QCheckBox::toggled, this, &OBSBasicSettings::AdvReplayBufferChanged); @@ -1298,13 +1294,8 @@ config_get_bool(App()->GetUserConfig(), "BasicWindow", "HideOBSWindowsFromCapture"); ui->hideOBSFromCapture->setChecked(hideWindowFromCapture); -#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0) connect(ui->hideOBSFromCapture, &QCheckBox::checkStateChanged, this, &OBSBasicSettings::HideOBSWindowWarning); -#else - connect(ui->hideOBSFromCapture, &QCheckBox::stateChanged, this, - &OBSBasicSettings::HideOBSWindowWarning); -#endif } #endif @@ -4396,11 +4387,7 @@ UpdateAudioWarnings(); } -#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0) void OBSBasicSettings::HideOBSWindowWarning(Qt::CheckState state) -#else -void OBSBasicSettings::HideOBSWindowWarning(int state) -#endif { if (loading || state == Qt::Unchecked) { return; @@ -4768,29 +4755,6 @@ } } -#if defined(__APPLE__) && QT_VERSION < QT_VERSION_CHECK(6, 5, 1) -// Workaround for QTBUG-56064 on macOS -static void ResetInvalidSelection(QComboBox *cbox) -{ - int idx = cbox->currentIndex(); - if (idx < 0) { - return; - } - - QStandardItemModel *model = dynamic_cast<QStandardItemModel *>(cbox->model()); - QStandardItem *item = model->item(idx); - - if (item->isEnabled()) { - return; - } - - // Reset to "invalid" state if item was disabled - cbox->blockSignals(true); - cbox->setCurrentIndex(-1); - cbox->blockSignals(false); -} -#endif - void OBSBasicSettings::AdvOutRecCheckWarnings() { auto Checked = (QCheckBox *box) { @@ -4834,12 +4798,6 @@ ui->autoRemux->setText(QTStr("Basic.Settings.Advanced.AutoRemux").arg("mp4")); } -#if defined(__APPLE__) && QT_VERSION < QT_VERSION_CHECK(6, 5, 1) - // Workaround for QTBUG-56064 on macOS - ResetInvalidSelection(ui->advOutRecEncoder); - ResetInvalidSelection(ui->advOutRecAEncoder); -#endif - // Show warning if codec selection was reset to an invalid state if (ui->advOutRecEncoder->currentIndex() == -1 || ui->advOutRecAEncoder->currentIndex() == -1) { if (!warningMsg.isEmpty()) {
View file
obs-studio-33.0.0~beta5.tar.xz/frontend/settings/OBSBasicSettings.hpp -> obs-studio-33.0.0~beta6.tar.xz/frontend/settings/OBSBasicSettings.hpp
Changed
@@ -388,11 +388,7 @@ void GeneralChanged(); -#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0) void HideOBSWindowWarning(Qt::CheckState state); -#else - void HideOBSWindowWarning(int state); -#endif void AudioChanged(); void AudioChangedRestart(); void ReloadAudioSources();
View file
obs-studio-33.0.0~beta5.tar.xz/frontend/utility/RemoteTextThread.cpp -> obs-studio-33.0.0~beta6.tar.xz/frontend/utility/RemoteTextThread.cpp
Changed
@@ -22,6 +22,8 @@ #include <qt-wrappers.hpp> #include <util/curl/curl-helper.h> +#include <iterator> + #include "moc_RemoteTextThread.cpp" using namespace std;
View file
obs-studio-33.0.0~beta5.tar.xz/frontend/utility/WhatsNewInfoThread.cpp -> obs-studio-33.0.0~beta6.tar.xz/frontend/utility/WhatsNewInfoThread.cpp
Changed
@@ -10,6 +10,7 @@ #include <blake2.h> #include <fstream> +#include <mutex> #include "moc_WhatsNewInfoThread.cpp"
View file
obs-studio-33.0.0~beta5.tar.xz/frontend/utility/item-widget-helpers.cpp -> obs-studio-33.0.0~beta6.tar.xz/frontend/utility/item-widget-helpers.cpp
Changed
@@ -40,11 +40,6 @@ void ClearListItems(QListWidget *widget) { -#if QT_VERSION < QT_VERSION_CHECK(6, 4, 3) - // Workaround for the SceneTree workaround for QTBUG-105870 - widget->setProperty("clearing", true); -#endif - widget->setCurrentItem(nullptr, QItemSelectionModel::Clear); for (int i = 0; i < widget->count(); i++) { @@ -52,8 +47,4 @@ } widget->clear(); -#if QT_VERSION < QT_VERSION_CHECK(6, 4, 3) - // Workaround for the SceneTree workaround for QTBUG-105870 - widget->setProperty("clearing", false); -#endif }
View file
obs-studio-33.0.0~beta5.tar.xz/frontend/widgets/OBSBasic.cpp -> obs-studio-33.0.0~beta6.tar.xz/frontend/widgets/OBSBasic.cpp
Changed
@@ -62,9 +62,7 @@ #include <QWidgetAction> #include <mutex> -#ifdef _WIN32 #include <sstream> -#endif #include <string> #ifdef _WIN32
View file
obs-studio-33.0.0~beta5.tar.xz/frontend/widgets/OBSBasic_Canvases.cpp -> obs-studio-33.0.0~beta6.tar.xz/frontend/widgets/OBSBasic_Canvases.cpp
Changed
@@ -19,7 +19,7 @@ void OBSBasic::CanvasRemoved(void *data, calldata_t *params) { - obs_canvas_t *canvas = static_cast<obs_canvas_t *>(calldata_ptr(params, "canvas")); + OBSCanvas canvas = static_cast<obs_canvas_t *>(calldata_ptr(params, "canvas")); QMetaObject::invokeMethod(static_cast<OBSBasic *>(data), &OBSBasic::RemoveCanvas, canvas); }
View file
obs-studio-33.0.0~beta5.tar.xz/frontend/widgets/OBSBasic_MainControls.cpp -> obs-studio-33.0.0~beta6.tar.xz/frontend/widgets/OBSBasic_MainControls.cpp
Changed
@@ -50,9 +50,7 @@ #include <nlohmann/json.hpp> #include <QDesktopServices> -#ifdef _WIN32 #include <sstream> -#endif extern bool restart; extern bool restart_safe;
View file
obs-studio-33.0.0~beta5.tar.xz/frontend/widgets/OBSBasic_SceneItems.cpp -> obs-studio-33.0.0~beta6.tar.xz/frontend/widgets/OBSBasic_SceneItems.cpp
Changed
@@ -199,7 +199,7 @@ void OBSBasic::SourceCreated(void *data, calldata_t *params) { - obs_source_t *source = (obs_source_t *)calldata_ptr(params, "source"); + OBSSource source = (obs_source_t *)calldata_ptr(params, "source"); if (obs_scene_from_source(source) != NULL) { QMetaObject::invokeMethod(static_cast<OBSBasic *>(data), &OBSBasic::AddScene, WaitConnection(), source); @@ -208,7 +208,7 @@ void OBSBasic::SourceRemoved(void *data, calldata_t *params) { - obs_source_t *source = (obs_source_t *)calldata_ptr(params, "source"); + OBSSource source = (obs_source_t *)calldata_ptr(params, "source"); if (obs_scene_from_source(source) != NULL) { QMetaObject::invokeMethod(static_cast<OBSBasic *>(data), &OBSBasic::RemoveScene, source); @@ -217,7 +217,7 @@ void OBSBasic::SourceRenamed(void *data, calldata_t *params) { - obs_source_t *source = (obs_source_t *)calldata_ptr(params, "source"); + OBSSource source = (obs_source_t *)calldata_ptr(params, "source"); const char *newName = calldata_string(params, "new_name"); const char *prevName = calldata_string(params, "prev_name");
View file
obs-studio-33.0.0~beta5.tar.xz/frontend/widgets/OBSQTDisplay.cpp -> obs-studio-33.0.0~beta6.tar.xz/frontend/widgets/OBSQTDisplay.cpp
Changed
@@ -10,9 +10,6 @@ #include <QWindow> #ifdef ENABLE_WAYLAND #include <QApplication> -#if QT_VERSION < QT_VERSION_CHECK(6, 9, 0) -#include <qpa/qplatformnativeinterface.h> -#endif #endif #ifdef _WIN32 @@ -52,12 +49,7 @@ break; #ifdef ENABLE_WAYLAND case OBS_NIX_PLATFORM_WAYLAND: { -#if QT_VERSION < QT_VERSION_CHECK(6, 9, 0) - QPlatformNativeInterface *native = QGuiApplication::platformNativeInterface(); - gswindow.display = native->nativeResourceForWindow("surface", window); -#else gswindow.display = (void *)window->winId(); -#endif success = gswindow.display != nullptr; break; }
View file
obs-studio-33.0.0~beta5.tar.xz/libobs/CMakeLists.txt -> obs-studio-33.0.0~beta6.tar.xz/libobs/CMakeLists.txt
Changed
@@ -12,7 +12,7 @@ find_package(SIMDe REQUIRED) find_package(Threads REQUIRED) -find_package(FFmpeg 6.1 REQUIRED avformat avutil swscale swresample OPTIONAL_COMPONENTS avcodec) +find_package(FFmpeg 8.0 REQUIRED avformat avutil swscale swresample OPTIONAL_COMPONENTS avcodec) find_package(ZLIB REQUIRED) find_package(Uthash REQUIRED)
View file
obs-studio-33.0.0~beta5.tar.xz/libobs/cmake/obs-core-modules.cmake -> obs-studio-33.0.0~beta6.tar.xz/libobs/cmake/obs-core-modules.cmake
Changed
@@ -1,7 +1,7 @@ add_library(libobs-core-modules OBJECT) add_library(OBS::libobs-core-modules ALIAS libobs-core-modules) -target_sources(libobs-core-modules PRIVATE obs-core-modules.c obs-core-modules.h) +target_sources(libobs-core-modules PRIVATE obs-core-modules.c PUBLIC obs-core-modules.h) target_include_directories(libobs-core-modules PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>")
View file
obs-studio-33.0.0~beta5.tar.xz/plugins/decklink/linux/platform.cpp -> obs-studio-33.0.0~beta6.tar.xz/plugins/decklink/linux/platform.cpp
Changed
@@ -1,5 +1,7 @@ #include "../platform.hpp" +#include <cstdlib> + bool DeckLinkStringToStdString(decklink_string_t input, std::string &output) { if (input == nullptr) {
View file
obs-studio-33.0.0~beta5.tar.xz/plugins/frontend-tools/data/scripts/clock-source.lua -> obs-studio-33.0.0~beta6.tar.xz/plugins/frontend-tools/data/scripts/clock-source.lua
Changed
@@ -7,13 +7,13 @@ function image_source_load(image, file) obs.obs_enter_graphics(); - obs.gs_image_file_free(image); + obs.gs_image_file_ex_free(image); obs.obs_leave_graphics(); - obs.gs_image_file_init(image, file); + obs.gs_image_file_ex_init(image, file, obs.GS_IMAGE_ALPHA_STRAIGHT); obs.obs_enter_graphics(); - obs.gs_image_file_init_texture(image); + obs.gs_image_file_ex_init_texture(image); obs.obs_leave_graphics(); if not image.loaded then @@ -27,10 +27,10 @@ source_def.create = function(source, settings) local data = {} - data.image = obs.gs_image_file() - data.hour_image = obs.gs_image_file() - data.minute_image = obs.gs_image_file() - data.second_image = obs.gs_image_file() + data.image = obs.gs_image_file_ex() + data.hour_image = obs.gs_image_file_ex() + data.minute_image = obs.gs_image_file_ex() + data.second_image = obs.gs_image_file_ex() image_source_load(data.image, script_path() .. "clock-source/dial.png") image_source_load(data.hour_image, script_path() .. "clock-source/hour.png") @@ -42,10 +42,10 @@ source_def.destroy = function(data) obs.obs_enter_graphics(); - obs.gs_image_file_free(data.image); - obs.gs_image_file_free(data.hour_image); - obs.gs_image_file_free(data.minute_image); - obs.gs_image_file_free(data.second_image); + obs.gs_image_file_ex_free(data.image); + obs.gs_image_file_ex_free(data.hour_image); + obs.gs_image_file_ex_free(data.minute_image); + obs.gs_image_file_ex_free(data.second_image); obs.obs_leave_graphics(); end
View file
obs-studio-33.0.0~beta5.tar.xz/plugins/linux-v4l2/CMakeLists.txt -> obs-studio-33.0.0~beta6.tar.xz/plugins/linux-v4l2/CMakeLists.txt
Changed
@@ -8,7 +8,7 @@ endif() find_package(Libv4l2 REQUIRED) -find_package(FFmpeg REQUIRED COMPONENTS avcodec avutil avformat) +find_package(FFmpeg 8.0 REQUIRED COMPONENTS avcodec avutil avformat) if(OS_FREEBSD OR OS_OPENBSD) set(CMAKE_REQUIRED_INCLUDES "/usr/local/include")
View file
obs-studio-33.0.0~beta5.tar.xz/plugins/linux-v4l2/v4l2-decoder.c -> obs-studio-33.0.0~beta6.tar.xz/plugins/linux-v4l2/v4l2-decoder.c
Changed
@@ -78,9 +78,6 @@ } if (decoder->context) { -#if LIBAVCODEC_VERSION_MAJOR < 61 - avcodec_close(decoder->context); -#endif avcodec_free_context(&decoder->context); } }
View file
obs-studio-33.0.0~beta5.tar.xz/plugins/obs-ffmpeg/ffmpeg-mux/CMakeLists.txt -> obs-studio-33.0.0~beta6.tar.xz/plugins/obs-ffmpeg/ffmpeg-mux/CMakeLists.txt
Changed
@@ -2,7 +2,7 @@ option(ENABLE_FFMPEG_MUX_DEBUG "Enable FFmpeg-mux debugging" OFF) -find_package(FFmpeg REQUIRED COMPONENTS avcodec avutil avformat) +find_package(FFmpeg 8.0 REQUIRED COMPONENTS avcodec avutil avformat) add_executable(obs-ffmpeg-mux) add_executable(OBS::ffmpeg-mux ALIAS obs-ffmpeg-mux)
View file
obs-studio-33.0.0~beta5.tar.xz/plugins/obs-ffmpeg/ffmpeg-mux/ffmpeg-mux.c -> obs-studio-33.0.0~beta6.tar.xz/plugins/obs-ffmpeg/ffmpeg-mux/ffmpeg-mux.c
Changed
@@ -817,11 +817,7 @@ return 0; } -#if LIBAVFORMAT_VERSION_MAJOR >= 61 static int ffmpeg_mux_write_av_buffer(void *opaque, const uint8_t *buf, int buf_size) -#else -static int ffmpeg_mux_write_av_buffer(void *opaque, uint8_t *buf, int buf_size) -#endif { struct ffmpeg_mux *ffm = opaque;
View file
obs-studio-33.0.0~beta5.tar.xz/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c -> obs-studio-33.0.0~beta6.tar.xz/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c
Changed
@@ -239,15 +239,10 @@ const enum AVSampleFormat *sample_fmts = NULL; const int *supported_samplerates = NULL; -#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(61, 13, 100) - sample_fmts = enc->codec->sample_fmts; - supported_samplerates = enc->codec->supported_samplerates; -#else avcodec_get_supported_config(enc->context, enc->codec, AV_CODEC_CONFIG_SAMPLE_FORMAT, 0, (const void **)&sample_fmts, NULL); avcodec_get_supported_config(enc->context, enc->codec, AV_CODEC_CONFIG_SAMPLE_RATE, 0, (const void **)&supported_samplerates, NULL); -#endif if (sample_fmts) { /* Check if the requested format is actually available for the specified
View file
obs-studio-33.0.0~beta5.tar.xz/plugins/obs-ffmpeg/obs-ffmpeg-mpegts.c -> obs-studio-33.0.0~beta6.tar.xz/plugins/obs-ffmpeg/obs-ffmpeg-mpegts.c
Changed
@@ -371,11 +371,7 @@ return err; } -#if LIBAVFORMAT_VERSION_MAJOR >= 61 typedef int (*write_packet_cb)(void *, const uint8_t *, int); -#else -typedef int (*write_packet_cb)(void *, uint8_t *, int); -#endif static inline int allocate_custom_aviocontext(struct ffmpeg_output *stream, bool is_rist) {
View file
obs-studio-33.0.0~beta5.tar.xz/plugins/obs-ffmpeg/obs-ffmpeg-output.c -> obs-studio-33.0.0~beta6.tar.xz/plugins/obs-ffmpeg/obs-ffmpeg-output.c
Changed
@@ -194,12 +194,8 @@ context->colorspace = data->config.colorspace; context->thread_count = 0; -#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(61, 13, 100) - pix_fmts = data->vcodec->pix_fmts; -#else avcodec_get_supported_config(context, data->vcodec, AV_CODEC_CONFIG_PIX_FORMAT, 0, (const void **)&pix_fmts, NULL); -#endif closest_format = data->config.format; if (pix_fmts) { @@ -333,12 +329,8 @@ if (aoi.speakers == SPEAKERS_4POINT1) context->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_4POINT1; -#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(61, 13, 100) - sample_fmts = data->acodec->sample_fmts; -#else avcodec_get_supported_config(context, data->acodec, AV_CODEC_CONFIG_SAMPLE_FORMAT, 0, (const void **)&sample_fmts, NULL); -#endif context->sample_fmt = sample_fmts ? sample_fmts0 : AV_SAMPLE_FMT_FLTP;
View file
obs-studio-33.0.0~beta5.tar.xz/plugins/obs-websocket/.github/workflows/crowdin_upload.yml -> obs-studio-33.0.0~beta6.tar.xz/plugins/obs-websocket/.github/workflows/crowdin_upload.yml
Changed
@@ -9,13 +9,13 @@ upload-language-files: name: Upload Language Files π if: github.repository_owner == 'obsproject' - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 100 - name: Upload US English Language Files πΊπΈ - uses: obsproject/obs-crowdin-sync/upload@30b5446e3b5eb19595aa68a81ddf896a857302cf + uses: obsproject/obs-crowdin-sync/upload@4b488c7ced03aa109d9f12529bd91c26c54b3e89 env: CROWDIN_PAT: ${{ secrets.CROWDIN_SYNC_CROWDIN_PAT }} GITHUB_EVENT_BEFORE: ${{ github.event.before }}
View file
obs-studio-33.0.0~beta5.tar.xz/plugins/obs-websocket/.github/workflows/generate_docs.yml -> obs-studio-33.0.0~beta6.tar.xz/plugins/obs-websocket/.github/workflows/generate_docs.yml
Changed
@@ -18,7 +18,7 @@ IS_CI: "true" steps: - name: 'Checkout' - uses: actions/checkout@v4 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: path: ${{ github.workspace }}/obs-websocket - name: 'Generate docs'
View file
obs-studio-33.0.0~beta5.tar.xz/plugins/obs-websocket/.github/workflows/lint.yml -> obs-studio-33.0.0~beta6.tar.xz/plugins/obs-websocket/.github/workflows/lint.yml
Changed
@@ -15,10 +15,11 @@ if: contains(github.event.head_commit.message, 'skip ci') != true steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Generate docs run: cd docs && ./build_docs.sh - name: Run markdownlint-cli - uses: nosborn/github-action-markdown-cli@v3.0.1 + uses: nosborn/github-action-markdown-cli@508d6cefd8f0cc99eab5d2d4685b1d5f470042c1 # v3.5.0 with: files: . + ignore_files: docs/docs/partials/introduction.md
View file
obs-studio-33.0.0~beta5.tar.xz/plugins/obs-websocket/CMakeLists.txt -> obs-studio-33.0.0~beta6.tar.xz/plugins/obs-websocket/CMakeLists.txt
Changed
@@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.28...3.30) -set(obs-websocket_VERSION 5.7.4) +set(obs-websocket_VERSION 5.7.5) set(OBS_WEBSOCKET_RPC_VERSION 1) include(cmake/obs-websocket-api.cmake)
View file
obs-studio-33.0.0~beta5.tar.xz/plugins/obs-websocket/README.md -> obs-studio-33.0.0~beta6.tar.xz/plugins/obs-websocket/README.md
Changed
@@ -3,7 +3,7 @@ # obs-websocket <p align="center"> - <img src="/.github/images/obsws_logo.png" width=150 align="center"> + <img src="/.github/images/obsws_logo.png" alt="OBS WebSocket logo" width=150 align="center"> </p> WebSocket API for OBS Studio. @@ -75,19 +75,19 @@ #### Individuals -<a href="https://opencollective.com/obs-websocket-dev"><img src="https://opencollective.com/obs-websocket-dev/individuals.svg?width=890"></a> +<a href="https://opencollective.com/obs-websocket-dev"><img src="https://opencollective.com/obs-websocket-dev/individuals.svg?width=890" alt="Individual contributors to obs-websocket-dev on Open Collective"></a> #### Organizations Support this project with your organization. Your logo will show up here with a link to your website. Contribute(https://opencollective.com/obs-websocket-dev/contribute) -<a href="https://opencollective.com/obs-websocket-dev/organization/0/website"><img src="https://opencollective.com/obs-websocket-dev/organization/0/avatar.svg"></a> -<a href="https://opencollective.com/obs-websocket-dev/organization/1/website"><img src="https://opencollective.com/obs-websocket-dev/organization/1/avatar.svg"></a> -<a href="https://opencollective.com/obs-websocket-dev/organization/2/website"><img src="https://opencollective.com/obs-websocket-dev/organization/2/avatar.svg"></a> -<a href="https://opencollective.com/obs-websocket-dev/organization/3/website"><img src="https://opencollective.com/obs-websocket-dev/organization/3/avatar.svg"></a> -<a href="https://opencollective.com/obs-websocket-dev/organization/4/website"><img src="https://opencollective.com/obs-websocket-dev/organization/4/avatar.svg"></a> -<a href="https://opencollective.com/obs-websocket-dev/organization/5/website"><img src="https://opencollective.com/obs-websocket-dev/organization/5/avatar.svg"></a> -<a href="https://opencollective.com/obs-websocket-dev/organization/6/website"><img src="https://opencollective.com/obs-websocket-dev/organization/6/avatar.svg"></a> -<a href="https://opencollective.com/obs-websocket-dev/organization/7/website"><img src="https://opencollective.com/obs-websocket-dev/organization/7/avatar.svg"></a> -<a href="https://opencollective.com/obs-websocket-dev/organization/8/website"><img src="https://opencollective.com/obs-websocket-dev/organization/8/avatar.svg"></a> -<a href="https://opencollective.com/obs-websocket-dev/organization/9/website"><img src="https://opencollective.com/obs-websocket-dev/organization/9/avatar.svg"></a> +<a href="https://opencollective.com/obs-websocket-dev/organization/0/website"><img src="https://opencollective.com/obs-websocket-dev/organization/0/avatar.svg" alt="OBS WebSocket supporting organization 0"></a> +<a href="https://opencollective.com/obs-websocket-dev/organization/1/website"><img src="https://opencollective.com/obs-websocket-dev/organization/1/avatar.svg" alt="OBS WebSocket supporting organization 1"></a> +<a href="https://opencollective.com/obs-websocket-dev/organization/2/website"><img src="https://opencollective.com/obs-websocket-dev/organization/2/avatar.svg" alt="OBS WebSocket supporting organization 2"></a> +<a href="https://opencollective.com/obs-websocket-dev/organization/3/website"><img src="https://opencollective.com/obs-websocket-dev/organization/3/avatar.svg" alt="OBS WebSocket supporting organization 3"></a> +<a href="https://opencollective.com/obs-websocket-dev/organization/4/website"><img src="https://opencollective.com/obs-websocket-dev/organization/4/avatar.svg" alt="OBS WebSocket supporting organization 4"></a> +<a href="https://opencollective.com/obs-websocket-dev/organization/5/website"><img src="https://opencollective.com/obs-websocket-dev/organization/5/avatar.svg" alt="OBS WebSocket supporting organization 5"></a> +<a href="https://opencollective.com/obs-websocket-dev/organization/6/website"><img src="https://opencollective.com/obs-websocket-dev/organization/6/avatar.svg" alt="OBS WebSocket supporting organization 6"></a> +<a href="https://opencollective.com/obs-websocket-dev/organization/7/website"><img src="https://opencollective.com/obs-websocket-dev/organization/7/avatar.svg" alt="OBS WebSocket supporting organization 7"></a> +<a href="https://opencollective.com/obs-websocket-dev/organization/8/website"><img src="https://opencollective.com/obs-websocket-dev/organization/8/avatar.svg" alt="OBS WebSocket supporting organization 8"></a> +<a href="https://opencollective.com/obs-websocket-dev/organization/9/website"><img src="https://opencollective.com/obs-websocket-dev/organization/9/avatar.svg" alt="OBS WebSocket supporting organization 9"></a>
View file
obs-studio-33.0.0~beta5.tar.xz/plugins/obs-websocket/data/locale/en-US.ini -> obs-studio-33.0.0~beta6.tar.xz/plugins/obs-websocket/data/locale/en-US.ini
Changed
@@ -22,6 +22,7 @@ OBSWebSocket.Settings.Save.UserPasswordWarningInfoText="Are you sure you want to use your own password?" OBSWebSocket.Settings.Save.PasswordInvalidErrorTitle="Error: Invalid Configuration" OBSWebSocket.Settings.Save.PasswordInvalidErrorMessage="You must use a password that is 6 or more characters." +OBSWebSocket.Settings.SafeModeWarning="Server is not started automatically when Safe Mode is enabled." OBSWebSocket.SessionTable.Title="Connected WebSocket Sessions" OBSWebSocket.SessionTable.RemoteAddressColumnTitle="Remote Address"
View file
obs-studio-33.0.0~beta5.tar.xz/plugins/obs-websocket/docs/docs/generate_md.py -> obs-studio-33.0.0~beta6.tar.xz/plugins/obs-websocket/docs/docs/generate_md.py
Changed
@@ -162,7 +162,7 @@ requestsOut.append(request) if not len(requestsOut): continue - categoryFragment = get_fragment(category) + categoryFragment = get_fragment(category, False) ret += '## {} Requests\n\n'.format(category) for request in requestsOut: requestType = request'requestType' @@ -227,7 +227,7 @@ eventsOut.append(event) if not len(eventsOut): continue - categoryFragment = get_fragment(category) + categoryFragment = get_fragment(category, False) ret += '## {} Events\n\n'.format(category) for event in eventsOut: eventType = event'eventType'
View file
obs-studio-33.0.0~beta5.tar.xz/plugins/obs-websocket/docs/generated/protocol.md -> obs-studio-33.0.0~beta6.tar.xz/plugins/obs-websocket/docs/generated/protocol.md
Changed
@@ -2663,7 +2663,7 @@ ## Requests Table of Contents -- General Requests(#general-1-requests) +- General Requests(#general-requests) - GetVersion(#getversion) - GetStats(#getstats) - BroadcastCustomEvent(#broadcastcustomevent) @@ -2672,7 +2672,7 @@ - TriggerHotkeyByName(#triggerhotkeybyname) - TriggerHotkeyByKeySequence(#triggerhotkeybykeysequence) - Sleep(#sleep) -- Config Requests(#config-1-requests) +- Config Requests(#config-requests) - GetPersistentData(#getpersistentdata) - SetPersistentData(#setpersistentdata) - GetSceneCollectionList(#getscenecollectionlist) @@ -2694,9 +2694,9 @@ - GetSourceActive(#getsourceactive) - GetSourceScreenshot(#getsourcescreenshot) - SaveSourceScreenshot(#savesourcescreenshot) -- Canvases Requests(#canvases-1-requests) +- Canvases Requests(#canvases-requests) - GetCanvasList(#getcanvaslist) -- Scenes Requests(#scenes-1-requests) +- Scenes Requests(#scenes-requests) - GetSceneList(#getscenelist) - GetGroupList(#getgrouplist) - GetCurrentProgramScene(#getcurrentprogramscene) @@ -2708,7 +2708,7 @@ - SetSceneName(#setscenename) - GetSceneSceneTransitionOverride(#getscenescenetransitionoverride) - SetSceneSceneTransitionOverride(#setscenescenetransitionoverride) -- Inputs Requests(#inputs-1-requests) +- Inputs Requests(#inputs-requests) - GetInputList(#getinputlist) - GetInputKindList(#getinputkindlist) - GetSpecialInputs(#getspecialinputs) @@ -2737,7 +2737,7 @@ - SetInputDeinterlaceFieldOrder(#setinputdeinterlacefieldorder) - GetInputPropertiesListPropertyItems(#getinputpropertieslistpropertyitems) - PressInputPropertiesButton(#pressinputpropertiesbutton) -- Transitions Requests(#transitions-1-requests) +- Transitions Requests(#transitions-requests) - GetTransitionKindList(#gettransitionkindlist) - GetSceneTransitionList(#getscenetransitionlist) - GetCurrentSceneTransition(#getcurrentscenetransition) @@ -2747,7 +2747,7 @@ - GetCurrentSceneTransitionCursor(#getcurrentscenetransitioncursor) - TriggerStudioModeTransition(#triggerstudiomodetransition) - SetTBarPosition(#settbarposition) -- Filters Requests(#filters-1-requests) +- Filters Requests(#filters-requests) - GetSourceFilterKindList(#getsourcefilterkindlist) - GetSourceFilterList(#getsourcefilterlist) - GetSourceFilterDefaultSettings(#getsourcefilterdefaultsettings) @@ -2758,7 +2758,7 @@ - SetSourceFilterIndex(#setsourcefilterindex) - SetSourceFilterSettings(#setsourcefiltersettings) - SetSourceFilterEnabled(#setsourcefilterenabled) -- Scene Items Requests(#scene-items-1-requests) +- Scene Items Requests(#scene-items-requests) - GetSceneItemList(#getsceneitemlist) - GetGroupSceneItemList(#getgroupsceneitemlist) - GetSceneItemId(#getsceneitemid) @@ -2776,7 +2776,7 @@ - SetSceneItemIndex(#setsceneitemindex) - GetSceneItemBlendMode(#getsceneitemblendmode) - SetSceneItemBlendMode(#setsceneitemblendmode) -- Outputs Requests(#outputs-1-requests) +- Outputs Requests(#outputs-requests) - GetVirtualCamStatus(#getvirtualcamstatus) - ToggleVirtualCam(#togglevirtualcam) - StartVirtualCam(#startvirtualcam) @@ -2810,12 +2810,12 @@ - ResumeRecord(#resumerecord) - SplitRecordFile(#splitrecordfile) - CreateRecordChapter(#createrecordchapter) -- Media Inputs Requests(#media-inputs-1-requests) +- Media Inputs Requests(#media-inputs-requests) - GetMediaInputStatus(#getmediainputstatus) - SetMediaInputCursor(#setmediainputcursor) - OffsetMediaInputCursor(#offsetmediainputcursor) - TriggerMediaInputAction(#triggermediainputaction) -- Ui Requests(#ui-1-requests) +- Ui Requests(#ui-requests) - GetStudioModeEnabled(#getstudiomodeenabled) - SetStudioModeEnabled(#setstudiomodeenabled) - OpenInputPropertiesDialog(#openinputpropertiesdialog)
View file
obs-studio-33.0.0~beta5.tar.xz/plugins/obs-websocket/src/forms/SettingsDialog.cpp -> obs-studio-33.0.0~beta6.tar.xz/plugins/obs-websocket/src/forms/SettingsDialog.cpp
Changed
@@ -48,6 +48,18 @@ ui->websocketSessionTable->horizontalHeader()->resizeSection(3, 100); // Resize Session Table column widths ui->websocketSessionTable->horizontalHeader()->resizeSection(4, 100); + if (obs_frontend_is_safe_mode_enabled()) { + QFrame *safeModeFrame = new QFrame(this); + safeModeFrame->setProperty("class", "frame-notice"); + + safeModeFrame->setLayout(new QHBoxLayout); + safeModeFrame->layout()->setContentsMargins(0, 0, 0, 0); + QLabel *safeModeText = new QLabel(obs_module_text("OBSWebSocket.Settings.SafeModeWarning"), safeModeFrame); + safeModeText->setWordWrap(true); + safeModeFrame->layout()->addWidget(safeModeText); + ui->verticalLayout->insertWidget(0, safeModeFrame); + } + // Remove the ? button on dialogs on Windows setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); @@ -56,13 +68,8 @@ connect(sessionTableTimer, &QTimer::timeout, this, &SettingsDialog::FillSessionTable); connect(ui->buttonBox, &QDialogButtonBox::clicked, this, &SettingsDialog::DialogButtonClicked); -#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0) connect(ui->enableAuthenticationCheckBox, &QCheckBox::checkStateChanged, this, &SettingsDialog::EnableAuthenticationCheckBoxChanged); -#else - connect(ui->enableAuthenticationCheckBox, &QCheckBox::stateChanged, this, - &SettingsDialog::EnableAuthenticationCheckBoxChanged); -#endif connect(ui->generatePasswordButton, &QPushButton::clicked, this, &SettingsDialog::GeneratePasswordButtonClicked); connect(ui->showConnectInfoButton, &QPushButton::clicked, this, &SettingsDialog::ShowConnectInfoButtonClicked); connect(ui->serverPasswordLineEdit, &QLineEdit::textEdited, this, &SettingsDialog::PasswordEdited); @@ -123,7 +130,11 @@ return; } - ui->enableWebSocketServerCheckBox->setChecked(conf->ServerEnabled); + if (IsServerOffBySafeMode()) { + ui->enableWebSocketServerCheckBox->setChecked(false); + } else { + ui->enableWebSocketServerCheckBox->setChecked(conf->ServerEnabled); + } ui->enableSystemTrayAlertsCheckBox->setChecked(conf->AlertsEnabled); ui->enableDebugLoggingCheckBox->setChecked(conf->DebugEnabled); ui->serverPortSpinBox->setValue(conf->ServerPort); @@ -182,6 +193,8 @@ } } + ClearServerOffBySafeMode(); + bool needsRestart = (conf->ServerEnabled != ui->enableWebSocketServerCheckBox->isChecked()) || (conf->ServerPort != ui->serverPortSpinBox->value()) || (ui->enableAuthenticationCheckBox->isChecked() &&
View file
obs-studio-33.0.0~beta5.tar.xz/plugins/obs-websocket/src/obs-websocket.cpp -> obs-studio-33.0.0~beta6.tar.xz/plugins/obs-websocket/src/obs-websocket.cpp
Changed
@@ -47,6 +47,7 @@ WebSocketApiPtr _webSocketApi; WebSocketServerPtr _webSocketServer; SettingsDialog *_settingsDialog = nullptr; +static bool _serverOffBySafeMode = false; void OnWebSocketApiVendorEvent(std::string vendorName, std::string eventType, obs_data_t *obsEventData); void OnEvent(uint64_t requiredIntent, std::string eventType, json eventData, uint8_t rpcVersion); @@ -116,6 +117,13 @@ test_register_vendor(); #endif + if (obs_frontend_is_safe_mode_enabled()) { + _serverOffBySafeMode = true; + if (_config->ServerEnabled) + blog(LOG_INFO, "obs_module_post_load OBS is in Safe Mode. WebSocket server will not be started."); + return; + } + // Server will accept clients, but requests and events will not be served until FINISHED_LOADING occurs if (_config->ServerEnabled) { blog(LOG_INFO, "obs_module_post_load WebSocket server is enabled, starting..."); @@ -184,6 +192,16 @@ return !_config || _config->DebugEnabled; } +bool IsServerOffBySafeMode() +{ + return _serverOffBySafeMode; +} + +void ClearServerOffBySafeMode() +{ + _serverOffBySafeMode = false; +} + /** * An event has been emitted from a vendor. *
View file
obs-studio-33.0.0~beta5.tar.xz/plugins/obs-websocket/src/obs-websocket.h -> obs-studio-33.0.0~beta6.tar.xz/plugins/obs-websocket/src/obs-websocket.h
Changed
@@ -51,3 +51,6 @@ WebSocketServerPtr GetWebSocketServer(); bool IsDebugEnabled(); + +bool IsServerOffBySafeMode(); +void ClearServerOffBySafeMode();
View file
obs-studio-33.0.0~beta5.tar.xz/plugins/win-capture/game-capture-file-init.c -> obs-studio-33.0.0~beta6.tar.xz/plugins/win-capture/game-capture-file-init.c
Changed
@@ -179,9 +179,7 @@ wchar_t src_jsonMAX_PATH; wchar_t dst_jsonMAX_PATH; - StringCbCopyW(temp, sizeof(temp), - L"..\\..\\data\\core\\" - L"win-capture\\"); + StringCbCopyW(temp, sizeof(temp), L"..\\..\\core\\win-capture\\data\\"); make_filename(temp, L"obs-vulkan", L".json"); if (_wfullpath(src_json, temp, MAX_PATH) == NULL) { @@ -189,9 +187,7 @@ return false; } - StringCbCopyW(temp, sizeof(temp), - L"..\\..\\data\\obs-plugins\\" - L"win-capture\\"); + StringCbCopyW(temp, sizeof(temp), L"..\\..\\core\\win-capture\\data\\"); make_filename(temp, L"graphics-hook", L".dll"); if (_wfullpath(src, temp, MAX_PATH) == NULL) {
View file
obs-studio-33.0.0~beta5.tar.xz/plugins/win-dshow/CMakeLists.txt -> obs-studio-33.0.0~beta6.tar.xz/plugins/win-dshow/CMakeLists.txt
Changed
@@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.28...3.30) -find_package(FFmpeg REQUIRED avcodec avutil) +find_package(FFmpeg 8.0 REQUIRED avcodec avutil) add_library(win-dshow MODULE) add_library(OBS::dshow ALIAS win-dshow)
View file
obs-studio-33.0.0~beta5.tar.xz/shared/media-playback/CMakeLists.txt -> obs-studio-33.0.0~beta6.tar.xz/shared/media-playback/CMakeLists.txt
Changed
@@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.28...3.30) -find_package(FFmpeg REQUIRED avcodec avdevice avutil avformat) +find_package(FFmpeg 8.0 REQUIRED avcodec avdevice avutil avformat) add_library(media-playback INTERFACE) add_library(OBS::media-playback ALIAS media-playback)
View file
obs-studio-33.0.0~beta5.tar.xz/shared/properties-view/properties-view.cpp -> obs-studio-33.0.0~beta6.tar.xz/shared/properties-view/properties-view.cpp
Changed
@@ -275,11 +275,7 @@ QCheckBox *checkbox = new QCheckBox(QT_UTF8(desc)); checkbox->setCheckState(val ? Qt::Checked : Qt::Unchecked); -#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0) QWidget *widget = NewWidget(prop, checkbox, &QCheckBox::checkStateChanged); -#else - QWidget *widget = NewWidget(prop, checkbox, &QCheckBox::stateChanged); -#endif if (!long_desc) { return widget;
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.