From ac3fd1a688202375612e905da9ee63bd6cd36a6f Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Mon, 8 Sep 2025 18:20:00 -0400 Subject: Sink fixes - Invalidate sink entry IDs on reconnect. - Fix A/V latency calculations. - Fix reconnect_timer behavior and log reconnect attempts. Signed-off-by: Andrew Opalach --- src/buffer/video.c | 8 ++++---- src/buffer/video.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'src/buffer') diff --git a/src/buffer/video.c b/src/buffer/video.c index 7874615..0e9ce28 100644 --- a/src/buffer/video.c +++ b/src/buffer/video.c @@ -15,8 +15,8 @@ // quite incompatible with very low frame rates. // MARK_LOW is considered directly after reading a frame, so in other words, // it will trigger at the point where there is about (LOW+1) frames left. Even at -// something like 240fps that's still ~(4*(LOW+1))ms to uncork and produce a new frame. -#define BUFFER_MARK_LOW 3 +// something like 240fps that's still ~(4.16*(LOW+1))ms to uncork and produce a new frame. +#define BUFFER_MARK_LOW 4 #define BUFFER_MARK_BUFFERED 6 // Must be >1. #define BUFFER_MARK_HIGH 8 #define BUFFER_MARK_RESET (BUFFER_MARK_HIGH * 2) @@ -112,9 +112,9 @@ bool camu_video_buffer_configure_subtitles(struct camu_video_buffer *buf, struct return buf->queue->configure_subtitles(buf->queue, fmt->width, fmt->height, stream); } -void camu_video_buffer_set_latency(struct camu_video_buffer *buf, s32 frames) +void camu_video_buffer_set_latency(struct camu_video_buffer *buf, f64 latency) { - buf->latency = frames * buf->avg_frame_duration; + buf->latency = latency; } static void after_push_internal(struct camu_video_buffer *buf) diff --git a/src/buffer/video.h b/src/buffer/video.h index d844d80..380943e 100644 --- a/src/buffer/video.h +++ b/src/buffer/video.h @@ -49,7 +49,7 @@ bool camu_video_buffer_init(struct camu_video_buffer *buf, struct camu_clock *cl bool camu_video_buffer_configure(struct camu_video_buffer *buf, struct camu_codec_stream *stream, struct camu_renderer *renderer); bool camu_video_buffer_configure_subtitles(struct camu_video_buffer *buf, struct camu_codec_stream *stream); -void camu_video_buffer_set_latency(struct camu_video_buffer *buf, s32 frames); +void camu_video_buffer_set_latency(struct camu_video_buffer *buf, f64 latency); void camu_video_buffer_push(struct camu_video_buffer *buf, struct camu_codec_frame *frame); void camu_video_buffer_push_subtitle(struct camu_video_buffer *buf, struct camu_codec_packet *packet); void camu_video_buffer_flush(struct camu_video_buffer *buf); -- cgit v1.2.3-101-g0448