diff --git a/UI/forms/OBSYoutubeActions.ui b/UI/forms/OBSYoutubeActions.ui
index 2495c9ce494fe9..d6261312eaf814 100644
--- a/UI/forms/OBSYoutubeActions.ui
+++ b/UI/forms/OBSYoutubeActions.ui
@@ -16,18 +16,6 @@
0
-
-
- 0
- 0
-
-
-
-
- 720
- 880
-
-
YouTube.Actions.WindowTitle
diff --git a/UI/obs-app.cpp b/UI/obs-app.cpp
index 4ba4e10f0b8870..707f07227913b9 100644
--- a/UI/obs-app.cpp
+++ b/UI/obs-app.cpp
@@ -389,21 +389,24 @@ static void do_log(int log_level, const char *msg, va_list args, void *param)
OutputDebugStringW(wide_buf.c_str());
}
}
-#else
- def_log_handler(log_level, msg, args2, nullptr);
- va_end(args2);
#endif
if (log_level <= LOG_INFO || log_verbose) {
- if (too_many_repeated_entries(logFile, msg, str))
- return;
- LogStringChunk(logFile, str, log_level);
+#ifndef _WIN32
+ def_log_handler(log_level, msg, args2, nullptr);
+#endif
+ if (!too_many_repeated_entries(logFile, msg, str))
+ LogStringChunk(logFile, str, log_level);
}
#if defined(_WIN32) && defined(OBS_DEBUGBREAK_ON_ERROR)
if (log_level <= LOG_ERROR && IsDebuggerPresent())
__debugbreak();
#endif
+
+#ifndef _WIN32
+ va_end(args2);
+#endif
}
#define DEFAULT_LANG "en-US"
diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp
index a1ffc621fa48a0..293c8c21e4923f 100644
--- a/UI/window-basic-main.cpp
+++ b/UI/window-basic-main.cpp
@@ -4695,6 +4695,7 @@ void OBSBasic::changeEvent(QEvent *event)
if (trayIcon && trayIcon->isVisible() &&
sysTrayMinimizeToTray()) {
ToggleShowHide();
+ return;
}
if (previewEnabled)
@@ -8881,9 +8882,10 @@ void OBSBasic::SetShowing(bool showing)
if (showHide)
showHide->setText(QTStr("Basic.SystemTray.Show"));
- QTimer::singleShot(250, this, SLOT(hide()));
+ QTimer::singleShot(0, this, SLOT(hide()));
- setVisible(false);
+ if (previewEnabled)
+ EnablePreviewDisplay(false);
#ifdef __APPLE__
EnableOSXDockIcon(false);
@@ -8892,9 +8894,10 @@ void OBSBasic::SetShowing(bool showing)
} else if (showing && !isVisible()) {
if (showHide)
showHide->setText(QTStr("Basic.SystemTray.Hide"));
- QTimer::singleShot(250, this, SLOT(show()));
+ QTimer::singleShot(0, this, SLOT(show()));
- setVisible(true);
+ if (previewEnabled)
+ EnablePreviewDisplay(true);
#ifdef __APPLE__
EnableOSXDockIcon(true);
@@ -9974,7 +9977,7 @@ void OBSBasic::SetDisplayAffinity(QWindow *window)
if (GetWindowDisplayAffinity(hwnd, &curAffinity)) {
if (hideFromCapture && curAffinity != WDA_EXCLUDEFROMCAPTURE)
SetWindowDisplayAffinity(hwnd, WDA_EXCLUDEFROMCAPTURE);
- else if (curAffinity != WDA_NONE)
+ else if (!hideFromCapture && curAffinity != WDA_NONE)
SetWindowDisplayAffinity(hwnd, WDA_NONE);
}
diff --git a/UI/window-remux.cpp b/UI/window-remux.cpp
index a0dbcc543520a5..81c00fc5d9c3f4 100644
--- a/UI/window-remux.cpp
+++ b/UI/window-remux.cpp
@@ -672,6 +672,8 @@ OBSRemux::OBSRemux(const char *path, QWidget *parent, bool autoRemux_)
RemuxEntryColumn::State, QHeaderView::ResizeMode::Fixed);
ui->tableView->setEditTriggers(
QAbstractItemView::EditTrigger::CurrentChanged);
+ ui->tableView->setTextElideMode(Qt::ElideMiddle);
+ ui->tableView->setWordWrap(false);
installEventFilter(CreateShortcutFilter());
diff --git a/libobs/graphics/image-file.c b/libobs/graphics/image-file.c
index b7c39d4dc7335d..5babb1f708feb0 100644
--- a/libobs/graphics/image-file.c
+++ b/libobs/graphics/image-file.c
@@ -18,6 +18,7 @@
#include "image-file.h"
#include "../util/base.h"
#include "../util/platform.h"
+#include "../util/dstr.h"
#include "vec4.h"
#define blog(level, format, ...) \
@@ -206,7 +207,7 @@ static void gs_image_file_init_internal(gs_image_file_t *image,
len = strlen(file);
- if (len > 4 && strcmp(file + len - 4, ".gif") == 0) {
+ if (len > 4 && astrcmpi(file + len - 4, ".gif") == 0) {
if (init_animated_gif(image, file, mem_usage, alpha_mode)) {
return;
}
diff --git a/libobs/util/base.c b/libobs/util/base.c
index 8d1f15c60e4ff3..0aabf12c1b0b72 100644
--- a/libobs/util/base.c
+++ b/libobs/util/base.c
@@ -20,12 +20,6 @@
#include "c99defs.h"
#include "base.h"
-#ifdef _DEBUG
-static int log_output_level = LOG_DEBUG;
-#else
-static int log_output_level = LOG_INFO;
-#endif
-
static int crashing = 0;
static void *log_param = NULL;
static void *crash_param = NULL;
@@ -36,27 +30,25 @@ static void def_log_handler(int log_level, const char *format, va_list args,
char out[4096];
vsnprintf(out, sizeof(out), format, args);
- if (log_level <= log_output_level) {
- switch (log_level) {
- case LOG_DEBUG:
- fprintf(stdout, "debug: %s\n", out);
- fflush(stdout);
- break;
-
- case LOG_INFO:
- fprintf(stdout, "info: %s\n", out);
- fflush(stdout);
- break;
-
- case LOG_WARNING:
- fprintf(stdout, "warning: %s\n", out);
- fflush(stdout);
- break;
-
- case LOG_ERROR:
- fprintf(stderr, "error: %s\n", out);
- fflush(stderr);
- }
+ switch (log_level) {
+ case LOG_DEBUG:
+ fprintf(stdout, "debug: %s\n", out);
+ fflush(stdout);
+ break;
+
+ case LOG_INFO:
+ fprintf(stdout, "info: %s\n", out);
+ fflush(stdout);
+ break;
+
+ case LOG_WARNING:
+ fprintf(stdout, "warning: %s\n", out);
+ fflush(stdout);
+ break;
+
+ case LOG_ERROR:
+ fprintf(stderr, "error: %s\n", out);
+ fflush(stderr);
}
UNUSED_PARAMETER(param);
diff --git a/plugins/linux-capture/pipewire.c b/plugins/linux-capture/pipewire.c
index 07b94d43968aee..f365d0723f35de 100644
--- a/plugins/linux-capture/pipewire.c
+++ b/plugins/linux-capture/pipewire.c
@@ -1434,8 +1434,10 @@ void *obs_pipewire_create(enum obs_pw_capture_type capture_type,
obs_pw->restore_token =
bstrdup(obs_data_get_string(settings, "RestoreToken"));
- if (!init_obs_pipewire(obs_pw))
+ if (!init_obs_pipewire(obs_pw)) {
g_clear_pointer(&obs_pw, bfree);
+ return NULL;
+ }
init_format_info(obs_pw);
diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-source.c b/plugins/obs-ffmpeg/obs-ffmpeg-source.c
index 73b7bf62e13118..c76061b3b1b574 100644
--- a/plugins/obs-ffmpeg/obs-ffmpeg-source.c
+++ b/plugins/obs-ffmpeg/obs-ffmpeg-source.c
@@ -117,9 +117,9 @@ static void ffmpeg_source_defaults(obs_data_t *settings)
}
static const char *media_filter =
- " (*.mp4 *.ts *.mov *.flv *.mkv *.avi *.mp3 *.ogg *.aac *.wav *.gif *.webm);;";
+ " (*.mp4 *.ts *.mov *.mxf *.flv *.mkv *.avi *.mp3 *.ogg *.aac *.wav *.gif *.webm);;";
static const char *video_filter =
- " (*.mp4 *.ts *.mov *.flv *.mkv *.avi *.gif *.webm);;";
+ " (*.mp4 *.ts *.mov *.mxf *.flv *.mkv *.avi *.gif *.webm);;";
static const char *audio_filter = " (*.mp3 *.aac *.ogg *.wav);;";
static obs_properties_t *ffmpeg_source_getproperties(void *data)