diff options
| author | 2026-08-26 15:08:16 -0400 | |
|---|---|---|
| committer | 2026-08-26 15:08:16 -0400 | |
| commit | 6094c907b26e21f13373bae6bf3306dbae40af3c (patch) | |
| tree | 981864ddb1ab9749d3e10a81edc782311826e101 /src/buffer | |
| parent | da9bddc70ff8544f3294b880d719c4605e87ad97 (diff) | |
| download | camu-6094c907b26e21f13373bae6bf3306dbae40af3c.tar.gz camu-6094c907b26e21f13373bae6bf3306dbae40af3c.tar.bz2 camu-6094c907b26e21f13373bae6bf3306dbae40af3c.zip | |
Update deps, small changes and cleanup
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/buffer')
| -rw-r--r-- | src/buffer/clock.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/buffer/clock.c b/src/buffer/clock.c index 86d6739..fbe7ec5 100644 --- a/src/buffer/clock.c +++ b/src/buffer/clock.c @@ -40,6 +40,7 @@ static inline void offset_tick(struct camu_clock *clock, f64 diff) void camu_clock_set(struct camu_clock *clock, f64 base) { clock->base = base; + clock->offset = 0.0; atomic_store(f64)(&clock->tick, SET, AL_ATOMIC_RELAXED); atomic_store(f64)(&clock->pause, PAUSED, AL_ATOMIC_RELAXED); atomic_store(bool)(&clock->external_pause, false, AL_ATOMIC_RELAXED); @@ -165,7 +166,7 @@ f64 camu_clock_get_pts(struct camu_clock *clock, f64 latency, bool allow_set, bo } } - f64 pts = (clock->base - clock->offset) + (current - tick); + f64 pts = clock->base + (current - tick); bool signal_pause = false; *armed_for_pause = pause != RUNNING || atomic_load(bool)(&clock->external_pause, AL_ATOMIC_RELAXED); @@ -182,7 +183,7 @@ f64 camu_clock_get_pts(struct camu_clock *clock, f64 latency, bool allow_set, bo atomic_store(f64)(&clock->last_pts, pts, AL_ATOMIC_RELAXED); } - return signal_pause ? CAMU_PTS_SIGNAL_PAUSE : pts + latency; + return signal_pause ? CAMU_PTS_SIGNAL_PAUSE : (pts - clock->offset) + latency; } f64 camu_clock_get_last_pts(struct camu_clock *clock) |