diff options
author | dec05eba <dec05eba@protonmail.com> | 2025-05-05 01:44:13 +0200 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2025-05-05 01:44:27 +0200 |
commit | 5cda6c0bf03f8414656d4b87f22636b19a5aa567 (patch) | |
tree | 5c4a722b6625d511fb0cd32062caf3e71731ece5 /src/replay_buffer/replay_buffer_disk.c | |
parent | 3f18462af41df720fb21f8351114a21e1cacf239 (diff) |
Fix incorrect replay duration saved for disk replay5.5.1
Diffstat (limited to 'src/replay_buffer/replay_buffer_disk.c')
-rw-r--r-- | src/replay_buffer/replay_buffer_disk.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/replay_buffer/replay_buffer_disk.c b/src/replay_buffer/replay_buffer_disk.c index 12be089..3fff9f3 100644 --- a/src/replay_buffer/replay_buffer_disk.c +++ b/src/replay_buffer/replay_buffer_disk.c @@ -360,17 +360,20 @@ static gsr_replay_buffer_iterator gsr_replay_buffer_disk_find_keyframe(gsr_repla gsr_replay_buffer_disk *self = (gsr_replay_buffer_disk*)replay_buffer; gsr_replay_buffer_iterator keyframe_iterator = {(size_t)-1, 0}; gsr_replay_buffer_lock(&self->replay_buffer); + size_t packet_index = start_iterator.packet_index; for(size_t file_index = start_iterator.file_index; file_index < self->num_files; ++file_index) { const gsr_replay_buffer_file *file = self->files[file_index]; - for(size_t packet_index = start_iterator.packet_index; packet_index < file->num_packets; ++packet_index) { + for(; packet_index < file->num_packets; ++packet_index) { const gsr_av_packet_disk *packet = &file->packets[packet_index]; if((packet->packet.flags & AV_PKT_FLAG_KEY) && (invert_stream_index ? packet->packet.stream_index != stream_index : packet->packet.stream_index == stream_index)) { keyframe_iterator.packet_index = packet_index; keyframe_iterator.file_index = file_index; - break; + goto done; } } + packet_index = 0; } + done: gsr_replay_buffer_unlock(&self->replay_buffer); return keyframe_iterator; } |