mirror of
https://repo.dec05eba.com/gpu-screen-recorder
synced 2026-03-31 09:07:13 +09:00
Fix incorrect replay duration saved for disk replay
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
project('gpu-screen-recorder', ['c', 'cpp'], version : '5.5.0', default_options : ['warning_level=2'])
|
project('gpu-screen-recorder', ['c', 'cpp'], version : '5.5.1', default_options : ['warning_level=2'])
|
||||||
|
|
||||||
add_project_arguments('-Wshadow', language : ['c', 'cpp'])
|
add_project_arguments('-Wshadow', language : ['c', 'cpp'])
|
||||||
if get_option('buildtype') == 'debug'
|
if get_option('buildtype') == 'debug'
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "gpu-screen-recorder"
|
name = "gpu-screen-recorder"
|
||||||
type = "executable"
|
type = "executable"
|
||||||
version = "5.5.0"
|
version = "5.5.1"
|
||||||
platforms = ["posix"]
|
platforms = ["posix"]
|
||||||
|
|
||||||
[config]
|
[config]
|
||||||
|
|||||||
@@ -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_disk *self = (gsr_replay_buffer_disk*)replay_buffer;
|
||||||
gsr_replay_buffer_iterator keyframe_iterator = {(size_t)-1, 0};
|
gsr_replay_buffer_iterator keyframe_iterator = {(size_t)-1, 0};
|
||||||
gsr_replay_buffer_lock(&self->replay_buffer);
|
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) {
|
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];
|
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];
|
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)) {
|
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.packet_index = packet_index;
|
||||||
keyframe_iterator.file_index = file_index;
|
keyframe_iterator.file_index = file_index;
|
||||||
break;
|
goto done;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
packet_index = 0;
|
||||||
}
|
}
|
||||||
|
done:
|
||||||
gsr_replay_buffer_unlock(&self->replay_buffer);
|
gsr_replay_buffer_unlock(&self->replay_buffer);
|
||||||
return keyframe_iterator;
|
return keyframe_iterator;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user