From 8ef744d1b7f64b3b7d814ee4d9376d6538befb73 Mon Sep 17 00:00:00 2001 From: Niklas Haas Date: Mon, 18 Jul 2022 21:49:36 +0200 Subject: vo_gpu_next: don't crash on !frame->current This path incorrectly assumes there is a current frame. --- video/out/vo_gpu_next.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/video/out/vo_gpu_next.c b/video/out/vo_gpu_next.c index 2bdda0275f..0c3ef76cbd 100644 --- a/video/out/vo_gpu_next.c +++ b/video/out/vo_gpu_next.c @@ -885,11 +885,13 @@ static void draw_frame(struct vo *vo, struct vo_frame *frame) double vsync_offset = opts->interpolation ? frame->vsync_offset : 0; bool should_draw = sw->fns->start_frame(sw, NULL); // for wayland logic if (!should_draw || !pl_swapchain_start_frame(p->sw, &swframe)) { - // Advance the queue state to the current PTS to discard unused frames - pl_queue_update(p->queue, NULL, pl_queue_params( - .pts = frame->current->pts + vsync_offset, - .radius = pl_frame_mix_radius(&p->params), - )); + if (frame->current) { + // Advance the queue state to the current PTS to discard unused frames + pl_queue_update(p->queue, NULL, pl_queue_params( + .pts = frame->current->pts + vsync_offset, + .radius = pl_frame_mix_radius(&p->params), + )); + } return; } -- cgit v1.2.3