Changes of Revision 58

obs-studio.changes Changed
x
 
1
@@ -1,4 +1,39 @@
2
 -------------------------------------------------------------------
3
+Fri Aug 31 15:39:49 UTC 2018 - jimmy@boombatower.com
4
+
5
+- Update to version 22.0.2:
6
+  * Revert "UI: Do not fire load events until program loaded"
7
+  * Revert "UI: Reset sources list manually on first load"
8
+  * UI: Always show filter preview if video source
9
+  * obs-browser: Update version to 2.1.5
10
+  * UI: Reset sources list manually on first load
11
+  * UI: Remove "Beta" from auto-config tools menu text
12
+  * libobs: Update version to 22.0.2
13
+  * obs-browser: Update version to 2.1.4
14
+  * UI: Make sure quick transition hotkey is not zeroed
15
+  * UI: Do not fire load events until program loaded
16
+  * UI: Use AlwaysOnTop option for windowed projectors
17
+  * UI: Fix a rare multiview crash when clicked
18
+  * UI: Fix macOS bug (scrollbar blocking lock icons)
19
+  * CI: Use Qt 5.10.1 instead of 5.11.1 for macOS
20
+  * UI: Remove beta warning from auto-config wizard
21
+  * libobs: Blacklist old obs-browser version on macOS
22
+  * UI: Fix filter layout issue
23
+  * UI/updater: Add missing header
24
+  * obs-outputs: Revert f1f49bc1 to fix RTMP authentication
25
+  * UI: Select item that user adds
26
+  * CI: Rename one more missed cef-bootstrap name
27
+  * CI: Rename cef-bootstrap to obs-browser-page
28
+  * obs-browser: Update browser version to 2.1.3
29
+  * UI: Set browser hwaccel def. to false if winver <=7
30
+  * rtmp-services: Only do URL check for Facebook
31
+  * UI: Close remux output before showing dialog
32
+  * rtmp-services: update Periscope settings
33
+  * CI: Use env variable for CEF cache on Windows
34
+  * CI: Build Browser Source on Windows
35
+  * UI: Use QT font picker on OSX
36
+
37
+-------------------------------------------------------------------
38
 Tue Aug 21 01:31:18 UTC 2018 - jimmy@boombatower.com
39
 
40
 - Update to version 22.0.1:
41
obs-studio.spec Changed
8
 
1
@@ -1,5 +1,5 @@
2
 Name:           obs-studio
3
-Version:        22.0.1
4
+Version:        22.0.2
5
 Release:        0
6
 Summary:        A recording/broadcasting program
7
 Group:          Productivity/Multimedia/Video/Editors and Convertors
8
_service Changed
10
 
1
@@ -1,7 +1,7 @@
2
 <services>
3
   <service name="tar_scm" mode="disabled">
4
     <param name="versionformat">@PARENT_TAG@</param>
5
-    <param name="revision">refs/tags/22.0.1</param>
6
+    <param name="revision">refs/tags/22.0.2</param>
7
     <param name="url">git://github.com/jp9000/obs-studio.git</param>
8
     <param name="scm">git</param>
9
     <param name="changesgenerate">enable</param>
10
_servicedata Changed
9
 
1
@@ -1,6 +1,6 @@
2
 <servicedata>
3
   <service name="tar_scm">
4
     <param name="url">git://github.com/jp9000/obs-studio.git</param>
5
-    <param name="changesrevision">92d7c81077ac0f1ab8f8d136f8aa6ebb0274813c</param>
6
+    <param name="changesrevision">62cd0e8759cdd7abb699fdf5fd122884ce0fbe42</param>
7
   </service>
8
 </servicedata>
9
obs-studio-22.0.1.tar.xz/plugins/obs-browser/cef-bootstrap Deleted
2
 
1
-(directory)
2
obs-studio-22.0.1.tar.xz/CI/before-deploy-osx.sh -> obs-studio-22.0.2.tar.xz/CI/before-deploy-osx.sh Changed
10
 
1
@@ -43,7 +43,7 @@
2
 sudo install_name_tool -change \
3
    @rpath/Frameworks/Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework \
4
    ../../Frameworks/Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework \
5
-   OBS.app/Contents/Resources/obs-plugins/cef-bootstrap
6
+   OBS.app/Contents/Resources/obs-plugins/obs-browser-page
7
 
8
 # Package app
9
 hr "Generating .pkg"
10
obs-studio-22.0.1.tar.xz/CI/before-script-osx.sh -> obs-studio-22.0.2.tar.xz/CI/before-script-osx.sh Changed
9
 
1
@@ -7,6 +7,7 @@
2
 cd build
3
 cmake -DENABLE_SPARKLE_UPDATER=ON \
4
 -DCMAKE_OSX_DEPLOYMENT_TARGET=10.11 \
5
+-DQTDIR=/usr/local/Cellar/qt/5.10.1 \
6
 -DDepsPath=/tmp/obsdeps \
7
 -DVLCPath=$PWD/../../vlc-master \
8
 -DBUILD_BROWSER=ON \
9
obs-studio-22.0.1.tar.xz/CI/install-dependencies-osx.sh -> obs-studio-22.0.2.tar.xz/CI/install-dependencies-osx.sh Changed
11
 
1
@@ -24,7 +24,8 @@
2
 brew update
3
 
4
 #Base OBS Deps and ccache
5
-brew install qt@5.11 jack speexdsp ccache swig mbedtls
6
+brew install jack speexdsp ccache swig mbedtls
7
+brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/9a70413d137839de0054571e5f85fd07ee400955/Formula/qt.rb
8
 
9
 export PATH=/usr/local/opt/ccache/libexec:$PATH
10
 ccache -s || echo "CCache is not available."
11
obs-studio-22.0.1.tar.xz/CI/install/osx/CMakeLists.pkgproj -> obs-studio-22.0.2.tar.xz/CI/install/osx/CMakeLists.pkgproj Changed
10
 
1
@@ -86,7 +86,7 @@
2
                                                                            <key>GID</key>
3
                                                                            <integer>80</integer>
4
                                                                            <key>PATH</key>
5
-                                                                           <string>../../../build/plugins/obs-browser/cef-bootstrap</string>
6
+                                                                           <string>../../../build/plugins/obs-browser/obs-browser-page</string>
7
                                                                            <key>PATH_TYPE</key>
8
                                                                            <integer>3</integer>
9
                                                                            <key>PERMISSIONS</key>
10
obs-studio-22.0.1.tar.xz/UI/forms/OBSBasic.ui -> obs-studio-22.0.2.tar.xz/UI/forms/OBSBasic.ui Changed
10
 
1
@@ -1557,7 +1557,7 @@
2
   </action>
3
   <action name="autoConfigure">
4
    <property name="text">
5
-    <string>Basic.AutoConfig.Beta</string>
6
+    <string>Basic.AutoConfig</string>
7
    </property>
8
   </action>
9
   <action name="stats">
10
obs-studio-22.0.1.tar.xz/UI/forms/OBSBasicFilters.ui -> obs-studio-22.0.2.tar.xz/UI/forms/OBSBasicFilters.ui Changed
21
 
1
@@ -391,19 +391,6 @@
2
         </layout>
3
        </item>
4
        <item>
5
-        <spacer name="verticalSpacer">
6
-         <property name="orientation">
7
-          <enum>Qt::Vertical</enum>
8
-         </property>
9
-         <property name="sizeHint" stdset="0">
10
-          <size>
11
-           <width>20</width>
12
-           <height>40</height>
13
-          </size>
14
-         </property>
15
-        </spacer>
16
-       </item>
17
-       <item>
18
         <layout class="QHBoxLayout" name="horizontalLayout_2">
19
          <property name="spacing">
20
           <number>4</number>
21
obs-studio-22.0.1.tar.xz/UI/obs-app.cpp -> obs-studio-22.0.2.tar.xz/UI/obs-app.cpp Changed
15
 
1
@@ -435,9 +435,12 @@
2
            "MultiviewDrawAreas", true);
3
 
4
 #ifdef _WIN32
5
+   uint32_t winver = GetWindowsVersion();
6
+
7
    config_set_default_bool(globalConfig, "Audio", "DisableAudioDucking",
8
            true);
9
-   config_set_default_bool(globalConfig, "General", "BrowserHWAccel", true);
10
+   config_set_default_bool(globalConfig, "General", "BrowserHWAccel",
11
+           winver > 0x601);
12
 #endif
13
 
14
 #ifdef __APPLE__
15
obs-studio-22.0.1.tar.xz/UI/properties-view.cpp -> obs-studio-22.0.2.tar.xz/UI/properties-view.cpp Changed
22
 
1
@@ -1663,11 +1663,18 @@
2
    uint32_t   flags;
3
    QFont      font;
4
 
5
+   QFontDialog::FontDialogOptions options;
6
+
7
+#ifdef __APPLE__
8
+   options = QFontDialog::DontUseNativeDialog;
9
+#endif
10
+
11
    if (!font_obj) {
12
-       font = QFontDialog::getFont(&success, view);
13
+       QFont initial;
14
+       font = QFontDialog::getFont(&success, initial, view, "Pick a Font", options);
15
    } else {
16
        MakeQFont(font_obj, font);
17
-       font = QFontDialog::getFont(&success, font, view);
18
+       font = QFontDialog::getFont(&success, font, view, "Pick a Font", options);
19
        obs_data_release(font_obj);
20
    }
21
 
22
obs-studio-22.0.1.tar.xz/UI/source-tree.cpp -> obs-studio-22.0.2.tar.xz/UI/source-tree.cpp Changed
12
 
1
@@ -82,6 +82,10 @@
2
    boxLayout->addWidget(label);
3
    boxLayout->addWidget(vis);
4
    boxLayout->addWidget(lock);
5
+#ifdef __APPLE__
6
+   /* Hack: Fixes a bug where scrollbars would be above the lock icon */
7
+   boxLayout->addSpacing(16);
8
+#endif
9
 
10
    Update(false);
11
 
12
obs-studio-22.0.1.tar.xz/UI/win-update/win-update.cpp -> obs-studio-22.0.2.tar.xz/UI/win-update/win-update.cpp Changed
9
 
1
@@ -8,6 +8,7 @@
2
 #include <QMessageBox>
3
 
4
 #include <string>
5
+#include <mutex>
6
 
7
 #include <util/windows/WinHandle.hpp>
8
 #include <util/util.hpp>
9
obs-studio-22.0.1.tar.xz/UI/window-basic-auto-config.cpp -> obs-studio-22.0.2.tar.xz/UI/window-basic-auto-config.cpp Changed
10
 
1
@@ -578,7 +578,7 @@
2
    setPage(VideoPage, new AutoConfigVideoPage());
3
    setPage(StreamPage, streamPage);
4
    setPage(TestPage, new AutoConfigTestPage());
5
-   setWindowTitle(QTStr("Basic.AutoConfig.Beta"));
6
+   setWindowTitle(QTStr("Basic.AutoConfig"));
7
 
8
    obs_video_info ovi;
9
    obs_get_video_info(&ovi);
10
obs-studio-22.0.1.tar.xz/UI/window-basic-filters.cpp -> obs-studio-22.0.2.tar.xz/UI/window-basic-filters.cpp Changed
25
 
1
@@ -133,6 +133,7 @@
2
                    addDrawCallback);
3
    } else {
4
        ui->rightLayout->setContentsMargins(0, noPreviewMargin, 0, 0);
5
+       ui->rightContainerLayout->insertStretch(1);
6
        ui->preview->hide();
7
    }
8
 }
9
@@ -186,15 +187,6 @@
10
            OBSBasicFilters::UpdateProperties,
11
            this);
12
 
13
-   uint32_t caps = obs_source_get_output_flags(filter);
14
-   if ((caps & OBS_SOURCE_VIDEO)) {
15
-       ui->rightLayout->setContentsMargins(0, 0, 0, 0);
16
-       ui->preview->show();
17
-   } else {
18
-       ui->rightLayout->setContentsMargins(0, noPreviewMargin, 0, 0);
19
-       ui->preview->hide();
20
-   }
21
-
22
    obs_data_release(settings);
23
 
24
    view->setMaximumHeight(250);
25
obs-studio-22.0.1.tar.xz/UI/window-basic-main.cpp -> obs-studio-22.0.2.tar.xz/UI/window-basic-main.cpp Changed
39
 
1
@@ -1615,8 +1615,6 @@
2
    if (!first_run && !has_last_version && !Active()) {
3
        QString msg;
4
        msg = QTStr("Basic.FirstStartup.RunWizard");
5
-       msg += "\n\n";
6
-       msg += QTStr("Basic.FirstStartup.RunWizard.BetaWarning");
7
 
8
        QMessageBox::StandardButton button =
9
            OBSMessageBox::question(this, QTStr("Basic.AutoConfig"),
10
@@ -2388,6 +2386,19 @@
11
        api->on_event(OBS_FRONTEND_EVENT_SCENE_LIST_CHANGED);
12
 }
13
 
14
+static bool select_one(obs_scene_t *scene, obs_sceneitem_t *item, void *param)
15
+{
16
+   obs_sceneitem_t *selectedItem =
17
+       reinterpret_cast<obs_sceneitem_t*>(param);
18
+   if (obs_sceneitem_is_group(item))
19
+       obs_sceneitem_group_enum_items(item, select_one, param);
20
+
21
+   obs_sceneitem_select(item, (selectedItem == item));
22
+
23
+   UNUSED_PARAMETER(scene);
24
+   return true;
25
+}
26
+
27
 void OBSBasic::AddSceneItem(OBSSceneItem item)
28
 {
29
    obs_scene_t  *scene  = obs_sceneitem_get_scene(item);
30
@@ -2404,6 +2415,8 @@
31
                obs_source_get_name(itemSource),
32
                obs_source_get_id(itemSource),
33
                obs_source_get_name(sceneSource));
34
+       
35
+       obs_scene_enum_items(scene, select_one, (obs_sceneitem_t*)item);
36
    }
37
 }
38
 
39
obs-studio-22.0.1.tar.xz/UI/window-basic-main.hpp -> obs-studio-22.0.2.tar.xz/UI/window-basic-main.hpp Changed
10
 
1
@@ -78,7 +78,7 @@
2
 struct QuickTransition {
3
    QPushButton *button = nullptr;
4
    OBSSource source;
5
-   obs_hotkey_id hotkey = 0;
6
+   obs_hotkey_id hotkey = OBS_INVALID_HOTKEY_ID;
7
    int duration = 0;
8
    int id = 0;
9
 
10
obs-studio-22.0.1.tar.xz/UI/window-projector.cpp -> obs-studio-22.0.2.tar.xz/UI/window-projector.cpp Changed
51
 
1
@@ -36,6 +36,9 @@
2
        windowedProjectors.push_back(this);
3
 
4
        resize(480, 270);
5
+
6
+       SetAlwaysOnTop(this, config_get_bool(GetGlobalConfig(),
7
+               "BasicWindow", "ProjectorAlwaysOnTop"));
8
    } else {
9
        setWindowFlags(Qt::FramelessWindowHint |
10
                Qt::X11BypassWindowManagerHint);
11
@@ -48,6 +51,8 @@
12
        addAction(action);
13
        connect(action, SIGNAL(triggered()), this,
14
                SLOT(EscapeTriggered()));
15
+
16
+       SetAlwaysOnTop(this, true);
17
    }
18
 
19
    setAttribute(Qt::WA_DeleteOnClose, true);
20
@@ -68,11 +73,6 @@
21
 
22
    connect(this, &OBSQTDisplay::DisplayCreated, addDrawCallback);
23
 
24
-   bool alwaysOnTop = config_get_bool(GetGlobalConfig(), "BasicWindow",
25
-           "ProjectorAlwaysOnTop");
26
-   if (alwaysOnTop && !isWindow)
27
-       SetAlwaysOnTop(this, true);
28
-
29
    bool hideCursor = config_get_bool(GetGlobalConfig(),
30
            "BasicWindow", "HideProjectorCursor");
31
    if (hideCursor && !isWindow) {
32
@@ -695,14 +695,16 @@
33
 
34
 static int getSourceByPosition(int x, int y, float ratio)
35
 {
36
-   QWidget *rec  = QApplication::activeWindow();
37
+   int pos = -1;
38
+   QWidget *rec = QApplication::activeWindow();
39
+   if (!rec)
40
+       return pos;
41
    int     cx    = rec->width();
42
    int     cy    = rec->height();
43
    int     minX  = 0;
44
    int     minY  = 0;
45
    int     maxX  = cx;
46
    int     maxY  = cy;
47
-   int     pos   = -1;
48
 
49
    switch (multiviewLayout) {
50
    case MultiviewLayout::HORIZONTAL_TOP_24_SCENES:
51
obs-studio-22.0.1.tar.xz/UI/window-remux.cpp -> obs-studio-22.0.2.tar.xz/UI/window-remux.cpp Changed
15
 
1
@@ -200,11 +200,12 @@
2
 
3
 void OBSRemux::remuxFinished(bool success)
4
 {
5
+   worker->job.reset();
6
+
7
    OBSMessageBox::information(this, QTStr("Remux.FinishedTitle"),
8
            success ?
9
            QTStr("Remux.Finished") : QTStr("Remux.FinishedError"));
10
 
11
-   worker->job.reset();
12
    ui->progressBar->setVisible(false);
13
    ui->buttonBox->button(QDialogButtonBox::Ok)->
14
            setEnabled(true);
15
obs-studio-22.0.1.tar.xz/appveyor.yml -> obs-studio-22.0.2.tar.xz/appveyor.yml Changed
44
 
1
@@ -1,24 +1,31 @@
2
 image: Visual Studio 2017
3
 environment:
4
   CURL_VERSION: 7.56.1
5
+  CEF_VERSION: 3.3440.1805.gbe070f9
6
 
7
 install:
8
   - git submodule update --init --recursive
9
   - if exist dependencies2017.zip (curl -kLO https://obsproject.com/downloads/dependencies2017.zip -f --retry 5 -z dependencies2017.zip) else (curl -kLO https://obsproject.com/downloads/dependencies2017.zip -f --retry 5 -C -)
10
   - if exist vlc.zip (curl -kLO https://obsproject.com/downloads/vlc.zip -f --retry 5 -z vlc.zip) else (curl -kLO https://obsproject.com/downloads/vlc.zip -f --retry 5 -C -)
11
+  - if exist cef_binary_%CEF_VERSION%_windows32.zip (curl -kLO https://obsproject.com/downloads/cef_binary_%CEF_VERSION%_windows32.zip -f --retry 5 -z cef_binary_%CEF_VERSION%_windows32.zip) else (curl -kLO https://obsproject.com/downloads/cef_binary_%CEF_VERSION%_windows32.zip -f --retry 5 -C -)
12
+  - if exist cef_binary_%CEF_VERSION%_windows64.zip (curl -kLO https://obsproject.com/downloads/cef_binary_%CEF_VERSION%_windows64.zip -f --retry 5 -z cef_binary_%CEF_VERSION%_windows64.zip) else (curl -kLO https://obsproject.com/downloads/cef_binary_%CEF_VERSION%_windows64.zip -f --retry 5 -C -)
13
   - 7z x dependencies2017.zip -odependencies2017
14
   - 7z x vlc.zip -ovlc
15
+  - 7z x cef_binary_%CEF_VERSION%_windows32.zip -oCEF_32
16
+  - 7z x cef_binary_%CEF_VERSION%_windows64.zip -oCEF_64
17
   - set DepsPath32=%CD%\dependencies2017\win32
18
   - set DepsPath64=%CD%\dependencies2017\win64
19
   - set VLCPath=%CD%\vlc
20
   - set QTDIR32=C:\Qt\5.11.1\msvc2015
21
   - set QTDIR64=C:\Qt\5.11.1\msvc2017_64
22
+  - set CEF_32=%CD%\CEF_32\cef_binary_%CEF_VERSION%_windows32
23
+  - set CEF_64=%CD%\CEF_64\cef_binary_%CEF_VERSION%_windows64
24
   - set build_config=RelWithDebInfo
25
   - mkdir build build32 build64
26
   - cd ./build32
27
-  - cmake -G "Visual Studio 15 2017" -DCOPIED_DEPENDENCIES=false -DCOPY_DEPENDENCIES=true -DBUILD_CAPTIONS=true -DCOMPILE_D3D12_HOOK=true ..
28
+  - cmake -G "Visual Studio 15 2017" -DCOPIED_DEPENDENCIES=false -DCOPY_DEPENDENCIES=true -DBUILD_CAPTIONS=true -DCOMPILE_D3D12_HOOK=true -DBUILD_BROWSER=true -DCEF_ROOT_DIR=%CEF_32% ..
29
   - cd ../build64
30
-  - cmake -G "Visual Studio 15 2017 Win64" -DCOPIED_DEPENDENCIES=false -DCOPY_DEPENDENCIES=true -DBUILD_CAPTIONS=true -DCOMPILE_D3D12_HOOK=true ..
31
+  - cmake -G "Visual Studio 15 2017 Win64" -DCOPIED_DEPENDENCIES=false -DCOPY_DEPENDENCIES=true -DBUILD_CAPTIONS=true -DCOMPILE_D3D12_HOOK=true -DBUILD_BROWSER=true -DCEF_ROOT_DIR=%CEF_64% ..
32
 
33
 build_script:
34
   - call msbuild /m /p:Configuration=%build_config% C:\projects\obs-studio\build32\obs-studio.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
35
@@ -35,6 +42,8 @@
36
 cache:
37
   - dependencies2017.zip
38
   - vlc.zip
39
+  - 'cef_binary_%CEF_VERSION%_windows32.zip'
40
+  - 'cef_binary_%CEF_VERSION%_windows64.zip'
41
 
42
 notifications:
43
   - provider: Webhook
44
obs-studio-22.0.1.tar.xz/libobs/obs-config.h -> obs-studio-22.0.2.tar.xz/libobs/obs-config.h Changed
10
 
1
@@ -41,7 +41,7 @@
2
  *
3
  * Reset to zero each major or minor version
4
  */
5
-#define LIBOBS_API_PATCH_VER  1
6
+#define LIBOBS_API_PATCH_VER  2
7
 
8
 #define MAKE_SEMANTIC_VERSION(major, minor, patch) \
9
                              ((major << 24) | \
10
obs-studio-22.0.1.tar.xz/libobs/obs-module.c -> obs-studio-22.0.2.tar.xz/libobs/obs-module.c Changed
19
 
1
@@ -85,6 +85,17 @@
2
    if (!module || !path || !obs)
3
        return MODULE_ERROR;
4
 
5
+#ifdef __APPLE__
6
+   /* HACK: Do not load obsolete obs-browser build on macOS; the
7
+    * obs-browser plugin used to live in the Application Support
8
+    * directory. */
9
+   if (astrstri(path, "Library/Application Support") != NULL &&
10
+       astrstri(path, "obs-browser") != NULL) {
11
+       blog(LOG_WARNING, "Ignoring old obs-browser.so version");
12
+       return MODULE_ERROR;
13
+   }
14
+#endif
15
+
16
    blog(LOG_DEBUG, "---------------------------------");
17
 
18
    mod.module = os_dlopen(path);
19
obs-studio-22.0.1.tar.xz/plugins/obs-browser/CMakeLists.txt -> obs-studio-22.0.2.tar.xz/plugins/obs-browser/CMakeLists.txt Changed
56
 
1
@@ -123,37 +123,37 @@
2
 
3
 # ----------------------------------------------------------------------------
4
 
5
-set(cef-bootstrap_SOURCES
6
-   cef-bootstrap/cef-bootstrap-main.cpp
7
+set(obs-browser-page_SOURCES
8
+   obs-browser-page/obs-browser-page-main.cpp
9
    browser-app.cpp
10
    deps/json11/json11.cpp
11
    )
12
-set(cef-bootstrap_HEADERS
13
-   cef-bootstrap/cef-bootstrap-main.cpp
14
+set(obs-browser-page_HEADERS
15
+   obs-browser-page/obs-browser-page-main.cpp
16
    browser-app.hpp
17
    deps/json11/json11.hpp
18
    cef-headers.hpp
19
    )
20
 
21
-add_executable(cef-bootstrap
22
-   ${cef-bootstrap_SOURCES}
23
-   ${cef-bootstrap_HEADERS}
24
+add_executable(obs-browser-page
25
+   ${obs-browser-page_SOURCES}
26
+   ${obs-browser-page_HEADERS}
27
    )
28
-target_link_libraries(cef-bootstrap
29
+target_link_libraries(obs-browser-page
30
    ${CEF_LIBRARIES}
31
    )
32
 
33
 if (APPLE)
34
-   set_target_properties(cef-bootstrap PROPERTIES
35
+   set_target_properties(obs-browser-page PROPERTIES
36
        COMPILE_FLAGS "-mmacosx-version-min=10.8")
37
 endif(APPLE)
38
 
39
 if (WIN32)
40
-   set_target_properties(cef-bootstrap PROPERTIES LINK_FLAGS "/SUBSYSTEM:WINDOWS")
41
+   set_target_properties(obs-browser-page PROPERTIES LINK_FLAGS "/SUBSYSTEM:WINDOWS")
42
 endif(WIN32)
43
 
44
 if (APPLE AND XCODE)
45
-   set_xcode_property(cef-bootstrap CLANG_CXX_LIBRARY "libc++")
46
+   set_xcode_property(obs-browser-page CLANG_CXX_LIBRARY "libc++")
47
 endif(APPLE AND XCODE)
48
 
49
 # ----------------------------------------------------------------------------
50
@@ -192,4 +192,4 @@
51
 endif()
52
 
53
 install_obs_plugin_with_data(obs-browser data)
54
-install_obs_plugin(cef-bootstrap)
55
+install_obs_plugin(obs-browser-page)
56
obs-studio-22.0.1.tar.xz/plugins/obs-browser/browser-client.cpp -> obs-studio-22.0.2.tar.xz/plugins/obs-browser/browser-client.cpp Changed
79
 
1
@@ -21,12 +21,13 @@
2
 #include "base64/base64.hpp"
3
 #include "json11/json11.hpp"
4
 #include <obs-frontend-api.h>
5
+#include <obs.hpp>
6
 
7
 using namespace json11;
8
 
9
 BrowserClient::~BrowserClient()
10
 {
11
-#if EXPERIMENTAL_SHARED_TEXTURE_SUPPORT_ENABLED
12
+#if EXPERIMENTAL_SHARED_TEXTURE_SUPPORT_ENABLED && USE_TEXTURE_COPY
13
    if (sharing_available) {
14
        obs_enter_graphics();
15
        gs_texture_destroy(texture);
16
@@ -100,10 +101,20 @@
17
    }
18
 
19
    if (name == "getCurrentScene") {
20
+       OBSSource current_scene = obs_frontend_get_current_scene();
21
+       obs_source_release(current_scene);
22
+
23
+       if (!current_scene)
24
+           return false;
25
+
26
+       const char *name = obs_source_get_name(current_scene);
27
+       if (!name)
28
+           return false;
29
+
30
        json = Json::object {
31
-           {"name", obs_source_get_name(bs->source)},
32
-           {"width", (int)obs_source_get_width(bs->source)},
33
-           {"height", (int)obs_source_get_height(bs->source)}
34
+           {"name", name},
35
+           {"width", (int)obs_source_get_width(current_scene)},
36
+           {"height", (int)obs_source_get_height(current_scene)}
37
        };
38
 
39
    } else if (name == "getStatus") {
40
@@ -200,11 +211,14 @@
41
 
42
    if (shared_handle != last_handle) {
43
        obs_enter_graphics();
44
+#if USE_TEXTURE_COPY
45
        gs_texture_destroy(texture);
46
+       texture = nullptr;
47
+#endif
48
        gs_texture_destroy(bs->texture);
49
        bs->texture = nullptr;
50
-       texture = nullptr;
51
 
52
+#if USE_TEXTURE_COPY
53
        texture = gs_texture_open_shared(
54
                (uint32_t)(uintptr_t)shared_handle);
55
 
56
@@ -213,16 +227,22 @@
57
        gs_color_format format = gs_texture_get_color_format(texture);
58
 
59
        bs->texture = gs_texture_create(cx, cy, format, 1, nullptr, 0);
60
+#else
61
+       bs->texture = gs_texture_open_shared(
62
+               (uint32_t)(uintptr_t)shared_handle);
63
+#endif
64
        obs_leave_graphics();
65
 
66
        last_handle = shared_handle;
67
    }
68
 
69
+#if USE_TEXTURE_COPY
70
    if (texture && bs->texture) {
71
        obs_enter_graphics();
72
        gs_copy_texture(bs->texture, texture);
73
        obs_leave_graphics();
74
    }
75
+#endif
76
 }
77
 #endif
78
 
79
obs-studio-22.0.1.tar.xz/plugins/obs-browser/browser-client.hpp -> obs-studio-22.0.2.tar.xz/plugins/obs-browser/browser-client.hpp Changed
20
 
1
@@ -22,6 +22,8 @@
2
 #include "cef-headers.hpp"
3
 #include "browser-config.h"
4
 
5
+#define USE_TEXTURE_COPY 0
6
+
7
 struct BrowserSource;
8
 
9
 class BrowserClient : public CefClient,
10
@@ -32,7 +34,9 @@
11
                       public CefLoadHandler {
12
 
13
 #if EXPERIMENTAL_SHARED_TEXTURE_SUPPORT_ENABLED
14
+#if USE_TEXTURE_COPY
15
    gs_texture_t *texture = nullptr;
16
+#endif
17
    void *last_handle = INVALID_HANDLE_VALUE;
18
 #endif
19
    bool sharing_available = false;
20
obs-studio-22.0.1.tar.xz/plugins/obs-browser/browser-version.h -> obs-studio-22.0.2.tar.xz/plugins/obs-browser/browser-version.h Changed
10
 
1
@@ -2,7 +2,7 @@
2
 
3
 #define OBS_BROWSER_VERSION_MAJOR 2
4
 #define OBS_BROWSER_VERSION_MINOR 1
5
-#define OBS_BROWSER_VERSION_PATCH 2
6
+#define OBS_BROWSER_VERSION_PATCH 5
7
 
8
 #ifndef MAKE_SEMANTIC_VERSION
9
 #define MAKE_SEMANTIC_VERSION(major, minor, patch) \
10
obs-studio-22.0.1.tar.xz/plugins/obs-browser/deps/wide-string.cpp -> obs-studio-22.0.2.tar.xz/plugins/obs-browser/deps/wide-string.cpp Changed
9
 
1
@@ -16,6 +16,7 @@
2
  ******************************************************************************/
3
 
4
 #include "wide-string.hpp"
5
+#include <string.h>
6
 #include <util/platform.h>
7
 
8
 using namespace std;
9
obs-studio-22.0.2.tar.xz/plugins/obs-browser/obs-browser-page Added
2
 
1
+(directory)
2
obs-studio-22.0.2.tar.xz/plugins/obs-browser/obs-browser-page/obs-browser-page-main.cpp Changed
2
 
1
(renamed from plugins/obs-browser/cef-bootstrap/cef-bootstrap-main.cpp)
2
obs-studio-22.0.1.tar.xz/plugins/obs-browser/obs-browser-plugin.cpp -> obs-studio-22.0.2.tar.xz/plugins/obs-browser/obs-browser-plugin.cpp Changed
110
 
1
@@ -22,6 +22,7 @@
2
 #include <util/util.hpp>
3
 #include <util/dstr.hpp>
4
 #include <obs-module.h>
5
+#include <obs.hpp>
6
 #include <thread>
7
 #include <mutex>
8
 
9
@@ -159,7 +160,7 @@
10
 {
11
    string path = obs_get_module_binary_path(obs_current_module());
12
    path = path.substr(0, path.find_last_of('/') + 1);
13
-   path += "//cef-bootstrap";
14
+   path += "//obs-browser-page";
15
 #ifdef _WIN32
16
    path += ".exe";
17
 #endif
18
@@ -176,7 +177,8 @@
19
 #endif
20
 
21
    BPtr<char> conf_path = obs_module_config_path("");
22
-   CefString(&settings.cache_path) = conf_path;
23
+   BPtr<char> conf_path_abs = os_get_abs_path_ptr(conf_path);
24
+   CefString(&settings.cache_path) = conf_path_abs;
25
    CefString(&settings.browser_subprocess_path) = path;
26
 
27
    bool tex_sharing_avail = false;
28
@@ -184,7 +186,7 @@
29
 #if EXPERIMENTAL_SHARED_TEXTURE_SUPPORT_ENABLED
30
    if (hwaccel) {
31
        obs_enter_graphics();
32
-       tex_sharing_avail = gs_shared_texture_available();
33
+       hwaccel = tex_sharing_avail = gs_shared_texture_available();
34
        obs_leave_graphics();
35
    }
36
 #endif
37
@@ -345,16 +347,22 @@
38
        break;
39
    case OBS_FRONTEND_EVENT_SCENE_CHANGED:
40
        {
41
-           obs_source_t *source = obs_frontend_get_current_scene();
42
+           OBSSource source = obs_frontend_get_current_scene();
43
+           obs_source_release(source);
44
+
45
+           if (!source)
46
+               break;
47
+
48
+           const char *name = obs_source_get_name(source);
49
+           if (!name)
50
+               break;
51
 
52
            Json json = Json::object {
53
-               {"name", obs_source_get_name(source)},
54
+               {"name", name},
55
                {"width", (int)obs_source_get_width(source)},
56
                {"height", (int)obs_source_get_height(source)}
57
            };
58
 
59
-           obs_source_release(source);
60
-
61
            DispatchJSEvent("obsSceneChanged", json.dump().c_str());
62
            break;
63
        }
64
@@ -398,7 +406,8 @@
65
 
66
 #if EXPERIMENTAL_SHARED_TEXTURE_SUPPORT_ENABLED
67
 static const wchar_t *blacklisted_devices[] = {
68
-   L"Intel(R) HD Graphics",
69
+   L"Intel",
70
+   L"Microsoft",
71
    nullptr
72
 };
73
 #endif
74
@@ -420,23 +429,19 @@
75
    if (hwaccel) {
76
        /* do not use hardware acceleration if a blacklisted device is
77
         * the default and on 2 or more adapters */
78
-       if (adapterCount >= 2) {
79
-           const wchar_t **device = blacklisted_devices;
80
-           while (*device) {
81
-               if (!!wstrstri(deviceId.c_str(), *device)) {
82
-                   hwaccel = false;
83
-                   blog(LOG_INFO, "[obs-browser]: "
84
-                           "Blacklisted device "
85
-                           "detected on a "
86
-                           "computer with more "
87
-                           "than one adapter, "
88
-                           "disabling browser "
89
-                           "source hardware "
90
-                           "acceleration.");
91
-                   break;
92
-               }
93
-               device++;
94
+       const wchar_t **device = blacklisted_devices;
95
+       while (*device) {
96
+           if (!!wstrstri(deviceId.c_str(), *device)) {
97
+               hwaccel = false;
98
+               blog(LOG_INFO, "[obs-browser]: "
99
+                       "Blacklisted device "
100
+                       "detected, "
101
+                       "disabling browser "
102
+                       "source hardware "
103
+                       "acceleration.");
104
+               break;
105
            }
106
+           device++;
107
        }
108
    }
109
    obs_data_release(private_data);
110
obs-studio-22.0.1.tar.xz/plugins/obs-outputs/librtmp/rtmp.c -> obs-studio-22.0.2.tar.xz/plugins/obs-outputs/librtmp/rtmp.c Changed
22
 
1
@@ -4519,14 +4519,14 @@
2
     r->m_customSendParam = NULL;
3
 
4
 #if defined(CRYPTO) || defined(USE_ONLY_MD5)
5
-    for (int idx = 0; idx < r->Link.nStreams; idx++)
6
-    {
7
-        free(r->Link.streams[idx].playpath.av_val);
8
-        r->Link.streams[idx].playpath.av_val = NULL;
9
-    }
10
-
11
     if (!(r->Link.protocol & RTMP_FEATURE_WRITE) || (r->Link.pFlags & RTMP_PUB_CLEAN))
12
     {
13
+        for (int idx = 0; idx < r->Link.nStreams; idx++)
14
+        {
15
+            free(r->Link.streams[idx].playpath.av_val);
16
+            r->Link.streams[idx].playpath.av_val = NULL;
17
+        }
18
+
19
         r->Link.curStreamIdx = 0;
20
         r->Link.nStreams = 0;
21
     }
22
obs-studio-22.0.1.tar.xz/plugins/rtmp-services/data/package.json -> obs-studio-22.0.2.tar.xz/plugins/rtmp-services/data/package.json Changed
14
 
1
@@ -1,10 +1,10 @@
2
 {
3
    "url": "https://obsproject.com/obs2_update/rtmp-services",
4
-   "version": 87,
5
+   "version": 88,
6
    "files": [
7
        {
8
            "name": "services.json",
9
-           "version": 87
10
+           "version": 88
11
        }
12
    ]
13
 }
14
obs-studio-22.0.1.tar.xz/plugins/rtmp-services/data/services.json -> obs-studio-22.0.2.tar.xz/plugins/rtmp-services/data/services.json Changed
14
 
1
@@ -1140,9 +1140,9 @@
2
                 }
3
             ],
4
             "recommended": {
5
-                "keyint": 2,
6
-                "max video bitrate": 800,
7
-                "max audio bitrate": 96
8
+                "keyint": 3,
9
+                "max video bitrate": 4000,
10
+                "max audio bitrate": 128
11
             }
12
         },
13
         {
14
obs-studio-22.0.1.tar.xz/plugins/rtmp-services/rtmp-common.c -> obs-studio-22.0.2.tar.xz/plugins/rtmp-services/rtmp-common.c Changed
10
 
1
@@ -36,7 +36,7 @@
2
 
3
    if (!service->server || !servers || !json_is_array(servers))
4
        return;
5
-   if (astrcmpi(service->server, "auto") == 0)
6
+   if (astrstri(service->service, "Facebook") == NULL)
7
        return;
8
 
9
    json_array_foreach (servers, index, server) {
10