From bf16ec5f2d012b866a2b38bd3043f4ab3bf82941 Mon Sep 17 00:00:00 2001 From: Richard Stanway Date: Sun, 27 Jan 2019 20:16:40 +0100 Subject: [PATCH] obs-ffmpeg: Show additional details in failed to write error A bit of a hack, but this is one of the more common errors that users are encountering, so showing useful information will help cut down on the number of support issues. --- plugins/obs-ffmpeg/data/locale/en-US.ini | 1 + plugins/obs-ffmpeg/obs-ffmpeg-mux.c | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/plugins/obs-ffmpeg/data/locale/en-US.ini b/plugins/obs-ffmpeg/data/locale/en-US.ini index 486aff15a..f4e90da52 100644 --- a/plugins/obs-ffmpeg/data/locale/en-US.ini +++ b/plugins/obs-ffmpeg/data/locale/en-US.ini @@ -49,3 +49,4 @@ ReplayBuffer.Save="Save Replay" HelperProcessFailed="Unable to start the recording helper process. Check that OBS files have not been blocked or removed by any 3rd party antivirus / security software." UnableToWritePath="Unable to write to %1. Make sure you're using a recording path which your user account is allowed to write to and that there is sufficient disk space." +WarnWindowsDefender="If Windows 10 Ransomware Protection is enabled it can also cause this error. Add OBS to the controlled folder access list in Windows Security / Virus & threat protection settings." \ No newline at end of file diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-mux.c b/plugins/obs-ffmpeg/obs-ffmpeg-mux.c index 9b65276c7..9025730f4 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-mux.c +++ b/plugins/obs-ffmpeg/obs-ffmpeg-mux.c @@ -26,6 +26,10 @@ #include #include "ffmpeg-mux/ffmpeg-mux.h" +#ifdef _WIN32 +#include "util/windows/win-version.h" +#endif + #include #define do_log(level, format, ...) \ @@ -290,6 +294,16 @@ static bool ffmpeg_mux_start(void *data) struct dstr error_message; dstr_init_copy(&error_message, obs_module_text("UnableToWritePath")); +#ifdef _WIN32 + // special warning for Windows 10 users about Defender + struct win_version_info ver; + get_win_ver(&ver); + if (ver.major >= 10) { + dstr_cat(&error_message, "\n\n"); + dstr_cat(&error_message, + obs_module_text("WarnWindowsDefender")); + } +#endif dstr_replace(&error_message, "%1", path); obs_output_set_last_error(stream->output, error_message.array);