Overview
Request 4595 (accepted)
- Update to version 24.0.3:
* obs-browser: Remove "monitor by default" flag
* Revert "libobs/audio-monitoring: Don't init until used"
* libobs-d3d11: Fix code styling
* libobs: Update version to 24.0.3
* libobs-d3d11: Fix calling convention of loaded func
* obs-browser: Only disable NetworkService on macOS
* libobs-d3d11: Use unordered_map for duplicator collection
* win-capture: Fix extra duplicator refs
* UI: Fix issue where multiview doesn't update
* libobs: Update version to 24.0.2
* libobs-d3d11: Don't set GPU priority on Intel adapters
* libobs/audio-monitoring: Add error logging
* libobs/audio-monitoring: Don't init until used
* obs-browser: Use older chromium network implementation
* libobs-d3d11: Set maximum GPU priority
* Exclude build dir from clang format
* UI, libobs: Fix compiler warnings
* Revert "UI: Remove FFZ from twitch integration"
* UI: Remove FFZ from twitch integration
* libobs-d3d11: Disable NV12 format support for WARP
* obs-ffmpeg: Remove unbuffered mode from media source
* obs-transitions: Fix stingers sometimes getting cut off
* obs-browser: Update version to 2.7.12
* obs-ffmpeg: Fix deadlock with nvenc lookahead
* UI: Fix path calculation for disk space check
* obs-ffmpeg: Do not enable hardware decoding by default
- Created by boombatower over 5 years ago
- In state accepted
-
Package maintainers:
boombatower,
darix, and
frispete
obs-studio.changes
Changed
-------------------------------------------------------------------
+Tue Oct 15 14:33:53 UTC 2019 - jimmy@boombatower.com
+
+- Update to version 24.0.3:
+ * obs-browser: Remove "monitor by default" flag
+ * Revert "libobs/audio-monitoring: Don't init until used"
+ * libobs-d3d11: Fix code styling
+ * libobs: Update version to 24.0.3
+ * libobs-d3d11: Fix calling convention of loaded func
+ * obs-browser: Only disable NetworkService on macOS
+ * libobs-d3d11: Use unordered_map for duplicator collection
+ * win-capture: Fix extra duplicator refs
+ * UI: Fix issue where multiview doesn't update
+ * libobs: Update version to 24.0.2
+ * libobs-d3d11: Don't set GPU priority on Intel adapters
+ * libobs/audio-monitoring: Add error logging
+ * libobs/audio-monitoring: Don't init until used
+ * obs-browser: Use older chromium network implementation
+ * libobs-d3d11: Set maximum GPU priority
+ * Exclude build dir from clang format
+ * UI, libobs: Fix compiler warnings
+ * Revert "UI: Remove FFZ from twitch integration"
+ * UI: Remove FFZ from twitch integration
+ * libobs-d3d11: Disable NV12 format support for WARP
+ * obs-ffmpeg: Remove unbuffered mode from media source
+ * obs-transitions: Fix stingers sometimes getting cut off
+ * obs-browser: Update version to 2.7.12
+ * obs-ffmpeg: Fix deadlock with nvenc lookahead
+ * UI: Fix path calculation for disk space check
+ * obs-ffmpeg: Do not enable hardware decoding by default
+
+-------------------------------------------------------------------
Sun Sep 22 21:04:42 UTC 2019 - jimmy@boombatower.com
- Update to version 24.0.1:
obs-studio.spec
Changed
Name: obs-studio
-Version: 24.0.1
+Version: 24.0.3
Release: 0
Summary: A recording/broadcasting program
Group: Productivity/Multimedia/Video/Editors and Convertors
_service
Changed
<services>
<service name="tar_scm" mode="disabled">
<param name="versionformat">@PARENT_TAG@</param>
- <param name="revision">refs/tags/24.0.1</param>
+ <param name="revision">refs/tags/24.0.3</param>
<param name="url">git://github.com/jp9000/obs-studio.git</param>
<param name="scm">git</param>
<param name="changesgenerate">enable</param>
_servicedata
Changed
<servicedata>
<service name="tar_scm">
<param name="url">git://github.com/jp9000/obs-studio.git</param>
- <param name="changesrevision">94570478b7d1f8c097a0bf8d8dabfb5613e4ab92</param>
+ <param name="changesrevision">d88a5a5a60bcdcbdde6d5dc54dc352ae8d431070</param>
</service>
</servicedata>
obs-studio-24.0.1.tar.xz/UI/obs-app.cpp -> obs-studio-24.0.3.tar.xz/UI/obs-app.cpp
Changed
NULL);
}
+ if (!!LookupPrivilegeValue(NULL, SE_INC_BASE_PRIORITY_NAME, &val)) {
+ tp.PrivilegeCount = 1;
+ tp.Privileges[0].Luid = val;
+ tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
+
+ if (!AdjustTokenPrivileges(token, false, &tp, sizeof(tp), NULL,
+ NULL)) {
+ blog(LOG_INFO, "Could not set privilege to "
+ "increase GPU priority");
+ }
+ }
+
CloseHandle(token);
}
#endif
obs-studio-24.0.1.tar.xz/UI/window-basic-main.cpp -> obs-studio-24.0.3.tar.xz/UI/window-basic-main.cpp
Changed
SLOT(PreviewDisabledMenu(const QPoint &)));
connect(ui->enablePreviewButton, SIGNAL(clicked()), this,
SLOT(TogglePreview()));
+
+ connect(ui->scenes->model(),
+ SIGNAL(rowsMoved(QModelIndex, int, int, QModelIndex, int)),
+ this,
+ SLOT(ScenesReordered(const QModelIndex &, int, int,
+ const QModelIndex &, int)));
}
static void SaveAudioDevice(const char *name, int channel, obs_data_t *parent,
#define MBYTES_LEFT_STOP_REC 50ULL
#define MAX_BYTES_LEFT (MBYTES_LEFT_STOP_REC * MBYTE)
+const char *OBSBasic::GetCurrentOutputPath()
+{
+ const char *path = nullptr;
+ const char *mode = config_get_string(Config(), "Output", "Mode");
+
+ if (strcmp(mode, "Advanced") == 0) {
+ const char *advanced_mode =
+ config_get_string(Config(), "AdvOut", "RecType");
+
+ if (strcmp(advanced_mode, "FFmpeg") == 0) {
+ path = config_get_string(Config(), "AdvOut",
+ "FFFilePath");
+ } else {
+ path = config_get_string(Config(), "AdvOut",
+ "RecFilePath");
+ }
+ } else {
+ path = config_get_string(Config(), "SimpleOutput", "FilePath");
+ }
+
+ return path;
+}
+
void OBSBasic::DiskSpaceMessage()
{
blog(LOG_ERROR, "Recording stopped because of low disk space");
bool OBSBasic::LowDiskSpace()
{
- const char *mode = config_get_string(Config(), "Output", "Mode");
- const char *path =
- strcmp(mode, "Advanced")
- ? config_get_string(Config(), "SimpleOutput",
- "FilePath")
- : config_get_string(Config(), "AdvOut", "RecFilePath");
+ const char *path;
+
+ path = GetCurrentOutputPath();
+ if (!path)
+ return false;
uint64_t num_bytes = os_get_free_disk_space(path);
DiskSpaceMessage();
}
}
+
+void OBSBasic::ScenesReordered(const QModelIndex &parent, int start, int end,
+ const QModelIndex &destination, int row)
+{
+ UNUSED_PARAMETER(parent);
+ UNUSED_PARAMETER(start);
+ UNUSED_PARAMETER(end);
+ UNUSED_PARAMETER(destination);
+ UNUSED_PARAMETER(row);
+
+ OBSProjector::UpdateMultiviewProjectors();
+}
obs-studio-24.0.1.tar.xz/UI/window-basic-main.hpp -> obs-studio-24.0.3.tar.xz/UI/window-basic-main.hpp
Changed
void CheckDiskSpaceRemaining();
+ void ScenesReordered(const QModelIndex &parent, int start, int end,
+ const QModelIndex &destination, int row);
+
private:
/* OBS Callbacks */
static void SceneReordered(void *data, calldata_t *params);
static OBSBasic *Get();
+ const char *GetCurrentOutputPath();
+
protected:
virtual void closeEvent(QCloseEvent *event) override;
virtual void changeEvent(QEvent *event) override;
obs-studio-24.0.1.tar.xz/UI/window-basic-preview.cpp -> obs-studio-24.0.3.tar.xz/UI/window-basic-preview.cpp
Changed
std::lock_guard<std::mutex> lock(selectMutex);
if (altDown || ctrlDown || shiftDown) {
- for (int i = 0; i < selectedItems.size(); i++) {
+ for (size_t i = 0; i < selectedItems.size();
+ i++) {
obs_sceneitem_select(selectedItems[i],
true);
}
}
- for (int i = 0; i < hoveredPreviewItems.size(); i++) {
+ for (size_t i = 0; i < hoveredPreviewItems.size();
+ i++) {
bool select = true;
obs_sceneitem_t *item = hoveredPreviewItems[i];
bool hovered = false;
{
std::lock_guard<std::mutex> lock(prev->selectMutex);
- for (int i = 0; i < prev->hoveredPreviewItems.size(); i++) {
+ for (size_t i = 0; i < prev->hoveredPreviewItems.size(); i++) {
if (prev->hoveredPreviewItems[i] == item) {
hovered = true;
break;
obs-studio-24.0.1.tar.xz/UI/window-basic-stats.cpp -> obs-studio-24.0.3.tar.xz/UI/window-basic-stats.cpp
Changed
/* ------------------ */
- const char *mode = config_get_string(main->Config(), "Output", "Mode");
- const char *path = strcmp(mode, "Advanced")
- ? config_get_string(main->Config(),
- "SimpleOutput",
- "FilePath")
- : config_get_string(main->Config(), "AdvOut",
- "RecFilePath");
+ const char *path = main->GetCurrentOutputPath();
#define MBYTE (1024ULL * 1024ULL)
#define GBYTE (1024ULL * 1024ULL * 1024ULL)
obs-studio-24.0.1.tar.xz/formatcode.sh -> obs-studio-24.0.3.tar.xz/formatcode.sh
Changed
CLANG_FORMAT=clang-format
fi
-find . -type d \( -path ./deps -o -path ./cmake -o -path ./plugins/decklink/win -o -path ./plugins/decklink/mac -o -path ./plugins/decklink/linux \) -prune -type f -o -name '*.h' -or -name '*.hpp' -or -name '*.m' -or -name '*.mm' -or -name '*.c' -or -name '*.cpp' \
-| xargs -I{} -P ${NPROC} ${CLANG_FORMAT} -i -style=file -fallback-style=none {}
\ No newline at end of file
+find . -type d \( -path ./deps -o -path ./cmake -o -path ./plugins/decklink/win -o -path ./plugins/decklink/mac -o -path ./plugins/decklink/linux -o -path ./build \) -prune -type f -o -name '*.h' -or -name '*.hpp' -or -name '*.m' -or -name '*.mm' -or -name '*.c' -or -name '*.cpp' \
+| xargs -I{} -P ${NPROC} ${CLANG_FORMAT} -i -style=file -fallback-style=none {}
obs-studio-24.0.1.tar.xz/libobs-d3d11/CMakeLists.txt -> obs-studio-24.0.3.tar.xz/libobs-d3d11/CMakeLists.txt
Changed
add_definitions(-DLIBOBS_EXPORTS)
+if(NOT DEFINED GPU_PRIORITY_VAL OR "${GPU_PRIORITY_VAL}" STREQUAL "" OR
+ "${GPU_PRIORITY_VAL}" STREQUAL "0")
+ set(USE_GPU_PRIORITY FALSE)
+ set(GPU_PRIORITY_VAL "0")
+else()
+ set(USE_GPU_PRIORITY TRUE)
+endif()
+
+configure_file(
+ "${CMAKE_CURRENT_SOURCE_DIR}/d3d11-config.h.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/d3d11-config.h")
+
+include_directories(${CMAKE_CURRENT_BINARY_DIR})
+
set(libobs-d3d11_SOURCES
d3d11-indexbuffer.cpp
d3d11-samplerstate.cpp
d3d11-zstencilbuffer.cpp)
set(libobs-d3d11_HEADERS
+ ${CMAKE_CURRENT_BINARY_DIR}/d3d11-config.h
d3d11-shaderprocessor.hpp
d3d11-subsystem.hpp)
obs-studio-24.0.3.tar.xz/libobs-d3d11/d3d11-config.h.in
Added
+#pragma once
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef ON
+#define ON 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#ifndef OFF
+#define OFF 0
+#endif
+
+#define USE_GPU_PRIORITY @USE_GPU_PRIORITY@
+#define GPU_PRIORITY_VAL @GPU_PRIORITY_VAL@
obs-studio-24.0.1.tar.xz/libobs-d3d11/d3d11-duplicator.cpp -> obs-studio-24.0.3.tar.xz/libobs-d3d11/d3d11-duplicator.cpp
Changed
******************************************************************************/
#include "d3d11-subsystem.hpp"
-#include <map>
+#include <unordered_map>
static inline bool get_monitor(gs_device_t *device, int monitor_idx,
IDXGIOutput **dxgiOutput)
return true;
}
-static std::map<int, gs_duplicator *> instances;
+static std::unordered_map<int, gs_duplicator *> instances;
void reset_duplicators(void)
{
- for (auto &pair : instances) {
+ for (std::pair<const int, gs_duplicator *> &pair : instances) {
pair.second->updated = false;
}
}
{
gs_duplicator *duplicator = nullptr;
- auto it = instances.find(monitor_idx);
+ const auto it = instances.find(monitor_idx);
if (it != instances.end()) {
duplicator = it->second;
duplicator->refs++;
obs-studio-24.0.1.tar.xz/libobs-d3d11/d3d11-subsystem.cpp -> obs-studio-24.0.3.tar.xz/libobs-d3d11/d3d11-subsystem.cpp
Changed
#include <util/dstr.h>
#include <util/util.hpp>
#include <graphics/matrix3.h>
+#include <winternl.h>
#include <d3d9.h>
#include "d3d11-subsystem.hpp"
+#include "d3d11-config.h"
struct UnsupportedHWError : HRError {
inline UnsupportedHWError(const char *str, HRESULT hr)
return false;
}
+#if USE_GPU_PRIORITY
+static bool set_priority(ID3D11Device *device)
+{
+ typedef enum _D3DKMT_SCHEDULINGPRIORITYCLASS {
+ D3DKMT_SCHEDULINGPRIORITYCLASS_IDLE,
+ D3DKMT_SCHEDULINGPRIORITYCLASS_BELOW_NORMAL,
+ D3DKMT_SCHEDULINGPRIORITYCLASS_NORMAL,
+ D3DKMT_SCHEDULINGPRIORITYCLASS_ABOVE_NORMAL,
+ D3DKMT_SCHEDULINGPRIORITYCLASS_HIGH,
+ D3DKMT_SCHEDULINGPRIORITYCLASS_REALTIME
+ } D3DKMT_SCHEDULINGPRIORITYCLASS;
+
+ ComQIPtr<IDXGIDevice> dxgiDevice(device);
+ if (!dxgiDevice) {
+ blog(LOG_DEBUG, "%s: Failed to get IDXGIDevice", __FUNCTION__);
+ return false;
+ }
+
+ HMODULE gdi32 = GetModuleHandleW(L"GDI32");
+ if (!gdi32) {
+ blog(LOG_DEBUG, "%s: Failed to get GDI32", __FUNCTION__);
+ return false;
+ }
+
+ NTSTATUS(WINAPI * d3dkmt_spspc)(HANDLE, D3DKMT_SCHEDULINGPRIORITYCLASS);
+ d3dkmt_spspc = (decltype(d3dkmt_spspc))GetProcAddress(
+ gdi32, "D3DKMTSetProcessSchedulingPriorityClass");
+ if (!d3dkmt_spspc) {
+ blog(LOG_DEBUG, "%s: Failed to get d3dkmt_spspc", __FUNCTION__);
+ return false;
+ }
+
+ NTSTATUS status = d3dkmt_spspc(GetCurrentProcess(),
+ D3DKMT_SCHEDULINGPRIORITYCLASS_REALTIME);
+ if (status != 0) {
+ blog(LOG_DEBUG, "%s: Failed to set process priority class: %d",
+ __FUNCTION__, (int)status);
+ return false;
+ }
+
+ HRESULT hr = dxgiDevice->SetGPUThreadPriority(GPU_PRIORITY_VAL);
+ if (FAILED(hr)) {
+ blog(LOG_DEBUG, "%s: SetGPUThreadPriority failed",
+ __FUNCTION__);
+ return false;
+ }
+
+ blog(LOG_INFO, "D3D11 GPU priority setup success");
+ return true;
+}
+
+static bool is_intel(const wstring &name)
+{
+ return wstrstri(name.c_str(), L"intel") != nullptr;
+}
+#endif
+
void gs_device::InitDevice(uint32_t adapterIdx)
{
wstring adapterName;
blog(LOG_INFO, "D3D11 loaded successfully, feature level used: %x",
(unsigned int)levelUsed);
+ /* adjust gpu thread priority */
+#if USE_GPU_PRIORITY
+ if (!is_intel(adapterName) && !set_priority(device)) {
+ blog(LOG_INFO, "D3D11 GPU priority setup "
+ "failed (not admin?)");
+ }
+#endif
+
/* ---------------------------------------- */
/* check for nv12 texture output support */
nv12Supported = false;
+ /* WARP NV12 support is suspected to be buggy on older Windows */
+ if (desc.VendorId == 0x1414 && desc.DeviceId == 0x8c) {
+ return;
+ }
+
/* Intel CopyResource is very slow with NV12 */
if (desc.VendorId == 0x8086) {
return;
obs-studio-24.0.1.tar.xz/libobs/audio-monitoring/win32/wasapi-output.c -> obs-studio-24.0.3.tar.xz/libobs/audio-monitoring/win32/wasapi-output.c
Changed
EXTERN_C const GUID DECLSPEC_SELECTANY name = { \
l, w1, w2, {b1, b2, b3, b4, b5, b6, b7, b8}}
+#define do_log(level, format, ...) \
+ blog(level, "[audio monitoring: '%s'] " format, \
+ obs_source_get_name(monitor->source), ##__VA_ARGS__)
+
+#define warn(format, ...) do_log(LOG_WARNING, format, ##__VA_ARGS__)
+#define info(format, ...) do_log(LOG_INFO, format, ##__VA_ARGS__)
+#define debug(format, ...) do_log(LOG_DEBUG, format, ##__VA_ARGS__)
+
ACTUALLY_DEFINE_GUID(CLSID_MMDeviceEnumerator, 0xBCDE0395, 0xE52F, 0x467C, 0x8E,
0x3D, 0xC4, 0x57, 0x92, 0x91, 0x69, 0x2E);
ACTUALLY_DEFINE_GUID(IID_IMMDeviceEnumerator, 0xA95664D2, 0x9614, 0x4F35, 0xA7,
const char *id = obs->audio.monitoring_device_id;
if (!id) {
+ warn("%s: No device ID set", __FUNCTION__);
return false;
}
hr = CoCreateInstance(&CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL,
&IID_IMMDeviceEnumerator, (void **)&immde);
if (FAILED(hr)) {
+ warn("%s: Failed to create IMMDeviceEnumerator: %08lX",
+ __FUNCTION__, hr);
return false;
}
}
if (FAILED(hr)) {
+ warn("%s: Failed to get device: %08lX", __FUNCTION__, hr);
goto fail;
}
&IID_IAudioClient, CLSCTX_ALL,
NULL, (void **)&monitor->client);
if (FAILED(hr)) {
+ warn("%s: Failed to activate device: %08lX", __FUNCTION__, hr);
goto fail;
}
hr = monitor->client->lpVtbl->GetMixFormat(monitor->client, &wfex);
if (FAILED(hr)) {
+ warn("%s: Failed to get mix format: %08lX", __FUNCTION__, hr);
goto fail;
}
AUDCLNT_SHAREMODE_SHARED, 0,
10000000, 0, wfex, NULL);
if (FAILED(hr)) {
+ warn("%s: Failed to initialize: %08lX", __FUNCTION__, hr);
goto fail;
}
hr = monitor->client->lpVtbl->GetBufferSize(monitor->client, &frames);
if (FAILED(hr)) {
+ warn("%s: Failed to get buffer size: %08lX", __FUNCTION__, hr);
goto fail;
}
&IID_IAudioRenderClient,
(void **)&monitor->render);
if (FAILED(hr)) {
+ warn("%s: Failed to get IAudioRenderClient: %08lX",
+ __FUNCTION__, hr);
goto fail;
}
if (pthread_mutex_init(&monitor->playback_mutex, NULL) != 0) {
+ warn("%s: Failed to initialize mutex", __FUNCTION__);
goto fail;
}
hr = monitor->client->lpVtbl->Start(monitor->client);
if (FAILED(hr)) {
+ warn("%s: Failed to start audio: %08lX", __FUNCTION__, hr);
goto fail;
}
obs-studio-24.0.1.tar.xz/libobs/obs-config.h -> obs-studio-24.0.3.tar.xz/libobs/obs-config.h
Changed
*
* Reset to zero each major or minor version
*/
-#define LIBOBS_API_PATCH_VER 1
+#define LIBOBS_API_PATCH_VER 3
#define MAKE_SEMANTIC_VERSION(major, minor, patch) \
((major << 24) | (minor << 16) | patch)
obs-studio-24.0.1.tar.xz/libobs/obs.c -> obs-studio-24.0.3.tar.xz/libobs/obs.c
Changed
if (!video->convert_textures[2])
return false;
break;
+ default:
+ break;
}
#ifdef _WIN32
}
if (!video->copy_surfaces[i][2])
return false;
break;
+ default:
+ break;
}
return true;
obs-studio-24.0.1.tar.xz/plugins/obs-browser/README.md -> obs-studio-24.0.3.tar.xz/plugins/obs-browser/README.md
Changed
/**
* onVisibilityChange gets callbacks when the visibility of the browser source changes in OBS
*
- * @param {bool} visiblity - True -> visible, False -> hidden
+ * @param {bool} visibility - True -> visible, False -> hidden
*/
-window.obsstudio.onVisibilityChange = function(visiblity) {
+window.obsstudio.onVisibilityChange = function(visibility) {
};
```
* Open cef.sln from the 'build' subdirectory
#### Building
-* Build atleast libcef_dll_wrapper (as Release), the rest is optional and are just clients to test with
+* Build at least libcef_dll_wrapper (as Release), the rest is optional and are just clients to test with
### Building OBS and obs-browser
#### Follow the OBS build instructions
obs-studio-24.0.1.tar.xz/plugins/obs-browser/browser-app.cpp -> obs-studio-24.0.3.tar.xz/plugins/obs-browser/browser-app.cpp
Changed
command_line->AppendSwitch("enable-system-flash");
+ if (command_line->HasSwitch("disable-features")) {
+ // Don't override existing, as this can break OSR
+ std::string disableFeatures =
+ command_line->GetSwitchValue("disable-features");
+ disableFeatures += ",HardwareMediaKeyHandling"
+#ifdef __APPLE__
+ ",NetworkService"
+#endif
+ ;
+ command_line->AppendSwitchWithValue("disable-features",
+ disableFeatures);
+ } else {
+ command_line->AppendSwitchWithValue("disable-features",
+ "HardwareMediaKeyHandling"
+#ifdef __APPLE__
+ ",NetworkService"
+#endif
+ );
+ }
+
command_line->AppendSwitchWithValue("autoplay-policy",
"no-user-gesture-required");
}
obs-studio-24.0.1.tar.xz/plugins/obs-browser/browser-version.h -> obs-studio-24.0.3.tar.xz/plugins/obs-browser/browser-version.h
Changed
#define OBS_BROWSER_VERSION_MAJOR 2
#define OBS_BROWSER_VERSION_MINOR 7
-#define OBS_BROWSER_VERSION_PATCH 11
+#define OBS_BROWSER_VERSION_PATCH 15
#ifndef MAKE_SEMANTIC_VERSION
#define MAKE_SEMANTIC_VERSION(major, minor, patch) \
obs-studio-24.0.1.tar.xz/plugins/obs-browser/obs-browser-plugin.cpp -> obs-studio-24.0.3.tar.xz/plugins/obs-browser/obs-browser-plugin.cpp
Changed
OBS_SOURCE_AUDIO |
#endif
OBS_SOURCE_CUSTOM_DRAW | OBS_SOURCE_INTERACTION |
- OBS_SOURCE_DO_NOT_DUPLICATE |
- OBS_SOURCE_MONITOR_BY_DEFAULT;
+ OBS_SOURCE_DO_NOT_DUPLICATE;
info.get_properties = browser_source_get_properties;
info.get_defaults = browser_source_get_defaults;
obs-studio-24.0.1.tar.xz/plugins/obs-browser/obs-browser-source-audio.cpp -> obs-studio-24.0.3.tar.xz/plugins/obs-browser/obs-browser-source-audio.cpp
Changed
}
}
-static inline void mix_audio(float *p_out, float *p_in, size_t pos,
+static inline void mix_audio(float *__restrict p_out,
+ const float *__restrict p_in, size_t pos,
size_t count)
{
- register float *out = p_out;
- register float *in = p_in + pos;
- register float *end = in + count;
+ float *__restrict out = p_out;
+ const float *__restrict in = p_in + pos;
+ const float *__restrict end = in + count;
while (in < end)
- *(out++) += *(in++);
+ *out++ += *in++;
}
bool BrowserSource::AudioMix(uint64_t *ts_out,
obs-studio-24.0.1.tar.xz/plugins/obs-ffmpeg/jim-nvenc.c -> obs-studio-24.0.3.tar.xz/plugins/obs-ffmpeg/jim-nvenc.c
Changed
if (lookahead && nv_get_cap(enc, NV_ENC_CAPS_SUPPORT_LOOKAHEAD)) {
config->rcParams.lookaheadDepth = 8;
config->rcParams.enableLookahead = 1;
+ } else {
+ lookahead = false;
}
/* psycho aq */
/* rate control */
enc->can_change_bitrate =
- nv_get_cap(enc, NV_ENC_CAPS_SUPPORT_DYN_BITRATE_CHANGE);
+ nv_get_cap(enc, NV_ENC_CAPS_SUPPORT_DYN_BITRATE_CHANGE) &&
+ !lookahead;
config->rcParams.rateControlMode = twopass ? NV_ENC_PARAMS_RC_VBR_HQ
: NV_ENC_PARAMS_RC_VBR;
obs-studio-24.0.1.tar.xz/plugins/obs-ffmpeg/obs-ffmpeg-source.c -> obs-studio-24.0.3.tar.xz/plugins/obs-ffmpeg/obs-ffmpeg-source.c
Changed
obs_data_set_default_bool(settings, "looping", false);
obs_data_set_default_bool(settings, "clear_on_media_end", true);
obs_data_set_default_bool(settings, "restart_on_activate", true);
-#if defined(_WIN32)
- obs_data_set_default_bool(settings, "hw_decode", true);
-#endif
obs_data_set_default_int(settings, "buffering_mb", 2);
obs_data_set_default_int(settings, "speed_percent", 100);
}
s->is_looping = obs_data_get_bool(settings, "looping");
s->close_when_inactive =
obs_data_get_bool(settings, "close_when_inactive");
-
- obs_source_set_async_unbuffered(s->source, true);
} else {
input = (char *)obs_data_get_string(settings, "input");
input_format =
(char *)obs_data_get_string(settings, "input_format");
s->is_looping = false;
s->close_when_inactive = true;
-
- obs_source_set_async_unbuffered(s->source, false);
}
s->input = input ? bstrdup(input) : NULL;
obs-studio-24.0.1.tar.xz/plugins/obs-transitions/transition-stinger.c -> obs-studio-24.0.3.tar.xz/plugins/obs-transitions/transition-stinger.c
Changed
proc_handler_call(ph, "get_duration", &cd);
proc_handler_call(ph, "get_nb_frames", &cd);
- s->duration_ns = (uint64_t)calldata_int(&cd, "duration");
+ s->duration_ns =
+ (uint64_t)calldata_int(&cd, "duration") + 500000000ULL;
s->duration_frames = (uint64_t)calldata_int(&cd, "num_frames");
if (s->transition_point_is_frame)
obs-studio-24.0.1.tar.xz/plugins/win-capture/duplicator-monitor-capture.c -> obs-studio-24.0.3.tar.xz/plugins/win-capture/duplicator-monitor-capture.c
Changed
obs_enter_graphics();
gs_duplicator_destroy(capture->duplicator);
- capture->duplicator = gs_duplicator_create(capture->monitor);
+ capture->duplicator = NULL;
capture->width = 0;
capture->height = 0;
capture->x = 0;
No build results available
No rpmlint results available
Request History
boombatower created request over 5 years ago
- Update to version 24.0.3:
* obs-browser: Remove "monitor by default" flag
* Revert "libobs/audio-monitoring: Don't init until used"
* libobs-d3d11: Fix code styling
* libobs: Update version to 24.0.3
* libobs-d3d11: Fix calling convention of loaded func
* obs-browser: Only disable NetworkService on macOS
* libobs-d3d11: Use unordered_map for duplicator collection
* win-capture: Fix extra duplicator refs
* UI: Fix issue where multiview doesn't update
* libobs: Update version to 24.0.2
* libobs-d3d11: Don't set GPU priority on Intel adapters
* libobs/audio-monitoring: Add error logging
* libobs/audio-monitoring: Don't init until used
* obs-browser: Use older chromium network implementation
* libobs-d3d11: Set maximum GPU priority
* Exclude build dir from clang format
* UI, libobs: Fix compiler warnings
* Revert "UI: Remove FFZ from twitch integration"
* UI: Remove FFZ from twitch integration
* libobs-d3d11: Disable NV12 format support for WARP
* obs-ffmpeg: Remove unbuffered mode from media source
* obs-transitions: Fix stingers sometimes getting cut off
* obs-browser: Update version to 2.7.12
* obs-ffmpeg: Fix deadlock with nvenc lookahead
* UI: Fix path calculation for disk space check
* obs-ffmpeg: Do not enable hardware decoding by default
boombatower accepted request over 5 years ago
ok