diff options
| author | 2025-09-08 18:20:00 -0400 | |
|---|---|---|
| committer | 2025-09-08 18:20:00 -0400 | |
| commit | ac3fd1a688202375612e905da9ee63bd6cd36a6f (patch) | |
| tree | 765f200b7a18a7483698751ea5227647656a4e56 /src/buffer | |
| parent | 38c371d1fa82101d59eb202d2f4aa1b2b99c0e42 (diff) | |
| download | camu-ac3fd1a688202375612e905da9ee63bd6cd36a6f.tar.gz camu-ac3fd1a688202375612e905da9ee63bd6cd36a6f.tar.bz2 camu-ac3fd1a688202375612e905da9ee63bd6cd36a6f.zip | |
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 <andrew@akon.city>
Diffstat (limited to 'src/buffer')
| -rw-r--r-- | src/buffer/video.c | 8 | ||||
| -rw-r--r-- | src/buffer/video.h | 2 |
2 files changed, 5 insertions, 5 deletions
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); |