aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2024-03-11 01:09:35 +0100
committerdec05eba <dec05eba@protonmail.com>2024-03-11 01:09:35 +0100
commit0ba3acd25a360ad53c13d97db8e59412faae07ed (patch)
tree29b7bf368eb6e56a8f8a3ffdd0e44182ccd14861
parentcbfd7521786a563d85b9c70bfd3f8ac21388c5f2 (diff)
Do not create output directory when live streaming
-rw-r--r--src/main.cpp44
1 files changed, 26 insertions, 18 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 6d2f16d..2da5e19 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1921,28 +1921,37 @@ int main(int argc, char **argv) {
usage();
}
+ bool is_livestream = false;
const char *filename = args["-o"].value();
if(filename) {
- if(replay_buffer_size_secs == -1) {
- char directory_buf[PATH_MAX];
- strcpy(directory_buf, filename);
- char *directory = dirname(directory_buf);
- if(strcmp(directory, ".") != 0 && strcmp(directory, "/") != 0) {
- if(create_directory_recursive(directory) != 0) {
- fprintf(stderr, "Error: failed to create directory for output file: %s\n", filename);
- _exit(1);
- }
+ is_livestream = is_livestream_path(filename);
+ if(is_livestream) {
+ if(replay_buffer_size_secs != -1) {
+ fprintf(stderr, "Error: replay mode is not applicable to live streaming\n");
+ _exit(1);
}
} else {
- if(!container_format) {
- fprintf(stderr, "Error: option -c is required when using option -r\n");
- usage();
- }
+ if(replay_buffer_size_secs == -1) {
+ char directory_buf[PATH_MAX];
+ strcpy(directory_buf, filename);
+ char *directory = dirname(directory_buf);
+ if(strcmp(directory, ".") != 0 && strcmp(directory, "/") != 0) {
+ if(create_directory_recursive(directory) != 0) {
+ fprintf(stderr, "Error: failed to create directory for output file: %s\n", filename);
+ _exit(1);
+ }
+ }
+ } else {
+ if(!container_format) {
+ fprintf(stderr, "Error: option -c is required when using option -r\n");
+ usage();
+ }
- struct stat buf;
- if(stat(filename, &buf) != -1 && !S_ISDIR(buf.st_mode)) {
- fprintf(stderr, "Error: File \"%s\" exists but it's not a directory\n", filename);
- usage();
+ struct stat buf;
+ if(stat(filename, &buf) != -1 && !S_ISDIR(buf.st_mode)) {
+ fprintf(stderr, "Error: File \"%s\" exists but it's not a directory\n", filename);
+ usage();
+ }
}
}
} else {
@@ -2134,7 +2143,6 @@ int main(int argc, char **argv) {
gsr_capture *capture = create_capture_impl(window_str, screen_region, wayland, egl.gpu_info, egl, fps, overclock, video_codec, color_range);
- const bool is_livestream = is_livestream_path(filename);
// (Some?) livestreaming services require at least one audio track to work.
// If not audio is provided then create one silent audio track.
if(is_livestream && requested_audio_inputs.empty()) {