summaryrefslogtreecommitdiff
path: root/src/buffer
diff options
context:
space:
mode:
Diffstat (limited to 'src/buffer')
-rw-r--r--src/buffer/video.c6
-rw-r--r--src/buffer/video.h2
-rw-r--r--src/buffer/video_null.h3
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)