From 15176579cb71224c529c1a35ac771cd13192737a Mon Sep 17 00:00:00 2001 From: dec05eba Date: Wed, 23 Apr 2025 19:11:58 +0200 Subject: Fix replay saving freeze, unable to save replay if audio is not provided --- include/replay_buffer.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/replay_buffer.h b/include/replay_buffer.h index e99b844..600b94b 100644 --- a/include/replay_buffer.h +++ b/include/replay_buffer.h @@ -5,6 +5,8 @@ #include #include +typedef struct gsr_replay_buffer gsr_replay_buffer; + typedef struct { AVPacket packet; int ref_counter; @@ -15,15 +17,15 @@ gsr_av_packet* gsr_av_packet_create(const AVPacket *av_packet, double timestamp) gsr_av_packet* gsr_av_packet_ref(gsr_av_packet *self); void gsr_av_packet_unref(gsr_av_packet *self); -typedef struct { +struct gsr_replay_buffer { gsr_av_packet **packets; size_t capacity_num_packets; size_t num_packets; size_t index; pthread_mutex_t mutex; bool mutex_initialized; - bool owns_mutex; -} gsr_replay_buffer; + gsr_replay_buffer *original_replay_buffer; +}; bool gsr_replay_buffer_init(gsr_replay_buffer *self, size_t replay_buffer_num_packets); void gsr_replay_buffer_deinit(gsr_replay_buffer *self); @@ -32,7 +34,7 @@ bool gsr_replay_buffer_append(gsr_replay_buffer *self, const AVPacket *av_packet void gsr_replay_buffer_clear(gsr_replay_buffer *self); gsr_av_packet* gsr_replay_buffer_get_packet_at_index(gsr_replay_buffer *self, size_t index); /* The clone has to be deinitialized before the replay buffer it clones */ -bool gsr_replay_buffer_clone(const gsr_replay_buffer *self, gsr_replay_buffer *destination); +bool gsr_replay_buffer_clone(gsr_replay_buffer *self, gsr_replay_buffer *destination); /* Returns 0 if replay buffer is empty */ size_t gsr_replay_buffer_find_packet_index_by_time_passed(gsr_replay_buffer *self, int seconds); /* Returns -1 if not found */ -- cgit v1.2.3-70-g09d2