mirror of
https://github.com/mpv-player/mpv
synced 2025-04-01 23:00:41 +00:00
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:
parent
88fc947552
commit
faed191397
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user