From 89cc477ef1d26061861a8255740681e5b6fcedc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kacper=20Michaj=C5=82ow?= Date: Tue, 9 Apr 2024 20:55:46 +0200 Subject: vo_gpu_next: keep target params in priv instead of alocating it --- video/out/vo_gpu_next.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/video/out/vo_gpu_next.c b/video/out/vo_gpu_next.c index 0faf811733..de33e6bc36 100644 --- a/video/out/vo_gpu_next.c +++ b/video/out/vo_gpu_next.c @@ -158,6 +158,8 @@ struct priv { // Performance data of last frame struct frame_info perf_fresh; struct frame_info perf_redraw; + + struct mp_image_params target_params; }; static void update_render_options(struct vo *vo); @@ -1129,9 +1131,7 @@ static void draw_frame(struct vo *vo, struct vo_frame *frame) pl_frames_infer_mix(p->rr, &mix, &target, &ref_frame); mp_mutex_lock(&vo->params_mutex); - if (!vo->target_params) - vo->target_params = talloc(vo, struct mp_image_params); - *vo->target_params = (struct mp_image_params){ + p->target_params = (struct mp_image_params){ .imgfmt_name = swframe.fbo->params.format ? swframe.fbo->params.format->name : NULL, .w = swframe.fbo->params.w, @@ -1140,6 +1140,7 @@ static void draw_frame(struct vo *vo, struct vo_frame *frame) .repr = target.repr, .rotate = target.rotation, }; + vo->target_params = &p->target_params; if (vo->params) { vo->params->color.hdr = ref_frame.color.hdr; @@ -1231,7 +1232,9 @@ static int reconfig(struct vo *vo, struct mp_image_params *params) return -1; resize(vo); - TA_FREEP(&vo->target_params); + mp_mutex_lock(&vo->params_mutex); + vo->target_params = NULL; + mp_mutex_unlock(&vo->params_mutex); return 0; } -- cgit v1.2.3