diff options
| author | 2025-03-03 12:53:14 -0500 | |
|---|---|---|
| committer | 2025-03-03 12:53:14 -0500 | |
| commit | 1224a43bbde9ef2297c7ee638b1928a07488cc3d (patch) | |
| tree | 8cfb0ffe2f35c9c12bc20ab65185f08946eda243 /src/buffer | |
| parent | 000ce1f671d1f05b76202fd128e272e4ac9da683 (diff) | |
| download | camu-1224a43bbde9ef2297c7ee638b1928a07488cc3d.tar.gz camu-1224a43bbde9ef2297c7ee638b1928a07488cc3d.tar.bz2 camu-1224a43bbde9ef2297c7ee638b1928a07488cc3d.zip | |
Fix vcr memory leak, subtitle upload/render sync
- Some sink behavior fixes.
- Fix clock sync when seeking.
- Add relative seek bind.
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/buffer')
| -rw-r--r-- | src/buffer/clock.c | 3 | ||||
| -rw-r--r-- | src/buffer/video.c | 6 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/buffer/clock.c b/src/buffer/clock.c index b0b4ac9..1ca2a49 100644 --- a/src/buffer/clock.c +++ b/src/buffer/clock.c @@ -44,7 +44,8 @@ void camu_clock_seek(struct camu_clock *clock, f64 base, u64 target) al_atomic_store(f64)(&clock->tick, tick, AL_ATOMIC_RELAXED); } } else { - al_atomic_store(f64)(&clock->pause, PAUSED, AL_ATOMIC_RELAXED); + // The value of clock->pause cannot be touched here. A reconnecting entry + // may still be relying on a clock paused callback for sync. clock->paused_at = 0.0; } } diff --git a/src/buffer/video.c b/src/buffer/video.c index 1f2aa3c..ab1503a 100644 --- a/src/buffer/video.c +++ b/src/buffer/video.c @@ -12,9 +12,9 @@ #include "../codec/ffmpeg/scaler.h" #endif -#define BUFFER_MARK_LOW ((1.0 / 30.0) * 4) -#define BUFFER_MARK_BUFFERED ((1.0 / 30.0) * 6) // Must be >1. -#define BUFFER_MARK_HIGH ((1.0 / 30.0) * 8) +#define BUFFER_MARK_LOW ((1.0 / 24.0) * 3) +#define BUFFER_MARK_BUFFERED ((1.0 / 24.0) * 4) // Must be >1. +#define BUFFER_MARK_HIGH ((1.0 / 24.0) * 6) #define BUFFER_MARK_RESET (BUFFER_MARK_HIGH * 2.0) bool camu_video_buffer_init(struct camu_video_buffer *buf, struct camu_clock *clock) |