diff options
author | dec05eba <dec05eba@protonmail.com> | 2025-04-21 23:14:09 +0200 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2025-04-21 23:16:04 +0200 |
commit | 990d6ce6bf4155790e2fbb413e7afea91e37b0cd (patch) | |
tree | 703ec3466b6e4b80de5de0da7a3972a31ef02e47 /src/main.cpp | |
parent | 81f155bf6306a2aa378b03920ed2b6f44e013016 (diff) |
Fix crash on exit when replay recording, increase SIGRTMIN replay save by keyint time
Diffstat (limited to 'src/main.cpp')
-rw-r--r-- | src/main.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/main.cpp b/src/main.cpp index 647dbc4..eca8db1 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3712,7 +3712,10 @@ int main(int argc, char **argv) { } if(save_replay_seconds != 0 && !save_replay_thread.valid() && is_replaying) { - const int current_save_replay_seconds = save_replay_seconds; + int current_save_replay_seconds = save_replay_seconds; + if(current_save_replay_seconds > 0) + current_save_replay_seconds += arg_parser.keyint; + save_replay_seconds = 0; save_replay_output_filepath.clear(); save_replay_async(video_codec_context, VIDEO_STREAM_INDEX, audio_tracks, &video_encoder->replay_buffer, arg_parser.filename, arg_parser.container_format, file_extension, arg_parser.date_folders, hdr, capture, current_save_replay_seconds); @@ -3764,6 +3767,11 @@ int main(int argc, char **argv) { } if(replay_recording_start_result.av_format_context) { + for(size_t id : replay_recording_items) { + gsr_video_encoder_remove_recording_destination(video_encoder, id); + } + replay_recording_items.clear(); + if(stop_recording_close_streams(replay_recording_start_result.av_format_context)) { fprintf(stderr, "Stopped recording\n"); puts(replay_recording_filepath.c_str()); |