diff options
Diffstat (limited to 'src/buffer')
| -rw-r--r-- | src/buffer/video.c | 6 | ||||
| -rw-r--r-- | src/buffer/video.h | 2 | ||||
| -rw-r--r-- | src/buffer/video_null.h | 3 |
3 files changed, 6 insertions, 5 deletions
diff --git a/src/buffer/video.c b/src/buffer/video.c index 67b23f6..486a93d 100644 --- a/src/buffer/video.c +++ b/src/buffer/video.c @@ -210,10 +210,10 @@ void camu_video_buffer_flush(struct camu_video_buffer *buf) } // Not thread-safe, must be called while the buffer is not being read from or written to. -void camu_video_buffer_reset(struct camu_video_buffer *buf) +void camu_video_buffer_reset(struct camu_video_buffer *buf, f64 pts) { - buf->reset_pts = al_atomic_load(f64)(&buf->pts, AL_ATOMIC_ACQUIRE); - al_atomic_store(f64)(&buf->pts, -1.0, AL_ATOMIC_RELEASE); + buf->reset_pts = pts; + al_atomic_store(f64)(&buf->pts, -1.0, AL_ATOMIC_RELAXED); if (buf->queue) buf->queue->reset(buf->queue); buf->buffered = false; al_atomic_store(u8)(&buf->flow, FLOWING, AL_ATOMIC_RELAXED); diff --git a/src/buffer/video.h b/src/buffer/video.h index b3b03bb..834aaa4 100644 --- a/src/buffer/video.h +++ b/src/buffer/video.h @@ -55,6 +55,6 @@ void camu_video_buffer_set_latency(struct camu_video_buffer *buf, s32 frames); 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); -void camu_video_buffer_reset(struct camu_video_buffer *buf); +void camu_video_buffer_reset(struct camu_video_buffer *buf, f64 pts); bool camu_video_buffer_read(struct camu_video_buffer *buf, void *out, bool *weighted); void camu_video_buffer_free(struct camu_video_buffer *buf); diff --git a/src/buffer/video_null.h b/src/buffer/video_null.h index 11dc49b..3de0001 100644 --- a/src/buffer/video_null.h +++ b/src/buffer/video_null.h @@ -74,9 +74,10 @@ static void camu_video_buffer_flush(struct camu_video_buffer *buf) (void)buf; } -static void camu_video_buffer_reset(struct camu_video_buffer *buf) +static void camu_video_buffer_reset(struct camu_video_buffer *buf, f64 pts) { (void)buf; + (void)pts; } static bool camu_video_buffer_read(struct camu_video_buffer *buf, void *out, bool *weighted) |