Changes of Revision 58
obs-studio.changes
Changed
x
1
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
2
addDrawCallback);
3
} else {
4
ui->rightLayout->setContentsMargins(0, noPreviewMargin, 0, 0);
5
+ ui->rightContainerLayout->insertStretch(1);
6
ui->preview->hide();
7
}
8
}
9
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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