vo_gpu_next: fix pl_queue refill on reset

On reset, we would ignore all the frames that were seen before. This is
incorrect and would drop valid frames that should be rendered.
This commit is contained in:
Kacper Michajłow authored and Dudemanguy committed 2023-11-18 22:54:29 +00:00
1 parent 88fc947552
commit faed191397
1 file changed
+4 -2
+4 -2
View File
@@ -883,17 +883,19 @@ static void draw_frame(struct vo *vo, struct vo_frame *frame)
// Push all incoming frames into the frame queue
for (int n = 0; n < frame->num_frames; n++) {
int id = frame->frame_id + n;
if (id <= p->last_id)
continue; // ignore already seen frames
if (p->want_reset) {
can_interpolate = false;
pl_renderer_flush_cache(p->rr);
pl_queue_reset(p->queue);
p->last_pts = 0.0;
p->last_id = 0;
p->want_reset = false;
}
if (id <= p->last_id)
continue; // ignore already seen frames
struct mp_image *mpi = mp_image_new_ref(frame->frames[n]);
struct frame_priv *fp = talloc_zero(mpi, struct frame_priv);
mpi->priv = fp;