0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-19 20:32:15 +02:00

UI: Check low disk space only if recording to a file

The Custom FFmpeg Output allows the user to configure it to output to a
URL instead of a file. In OBSBasic::StartRecording(), we unconditionally
call LowDiskSpace() to check for low disk space because we assume that a
"recording" will always be to disk. When os_get_free_disk_space() is
called on a non-existent path, it returns 0, which causes OBS to emit a
low disk space warning. Instead, only call DiskSpaceMessage() if not
"recording" to a URL.
This commit is contained in:
Ryan Foster 2024-03-28 16:43:12 -04:00 committed by Lain
parent 4e18bb6e50
commit 11131682b1
2 changed files with 11 additions and 2 deletions

View File

@ -7652,7 +7652,7 @@ void OBSBasic::StartRecording()
return;
}
if (LowDiskSpace()) {
if (!IsFFmpegOutputToURL() && LowDiskSpace()) {
DiskSpaceMessage();
ui->recordButton->setChecked(false);
return;
@ -10887,7 +10887,7 @@ void OBSBasic::OutputPathInvalidMessage()
QTStr("Output.BadPath.Text"));
}
bool OBSBasic::OutputPathValid()
bool OBSBasic::IsFFmpegOutputToURL() const
{
const char *mode = config_get_string(Config(), "Output", "Mode");
if (strcmp(mode, "Advanced") == 0) {
@ -10901,6 +10901,14 @@ bool OBSBasic::OutputPathValid()
}
}
return false;
}
bool OBSBasic::OutputPathValid()
{
if (IsFFmpegOutputToURL())
return true;
const char *path = GetCurrentOutputPath();
return path && *path && QDir(path).exists();
}

View File

@ -881,6 +881,7 @@ private:
void UpdatePause(bool activate = true);
void UpdateReplayBuffer(bool activate = true);
bool IsFFmpegOutputToURL() const;
bool OutputPathValid();
void OutputPathInvalidMessage();