From e91f76515cf0c10b40880eb8b9bc4e5287ec5d01 Mon Sep 17 00:00:00 2001 From: Niklas Haas <git@haasn.dev> Date: Tue, 20 Jun 2023 15:58:53 +0200 Subject: [PATCH] utils/frame_queue: delay first frame until start PTS Return an empty frame mix until the first frame's PTS value has been reached. --- src/utils/frame_queue.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/utils/frame_queue.c b/src/utils/frame_queue.c index 57b95f9ff..6ada433a0 100644 --- a/src/utils/frame_queue.c +++ b/src/utils/frame_queue.c @@ -642,6 +642,11 @@ static inline enum pl_queue_status point(pl_queue p, struct pl_frame_mix *mix, // Find closest frame (nearest neighbour semantics) pl_assert(p->queue.num); struct entry *entry = p->queue.elem[0]; + if (entry->pts > params->pts) { // first frame not visible yet + *mix = (struct pl_frame_mix) {0}; + return PL_QUEUE_OK; + } + double best = fabs(entry->pts - params->pts); for (int i = 1; i < p->queue.num; i++) { double dist = fabs(p->queue.elem[i]->pts - params->pts); -- GitLab