diff options
author | Kacper Michajłow <kasper93@gmail.com> | 2024-04-09 20:55:46 +0200 |
---|---|---|
committer | Kacper Michajłow <kasper93@gmail.com> | 2024-04-10 18:35:47 +0200 |
commit | 89cc477ef1d26061861a8255740681e5b6fcedc4 (patch) | |
tree | 4b7cf9f85988fe6586337893d98b1ce0649fb1e5 /video/out/vo_gpu_next.c | |
parent | f167d18ec8333c0cbb41c8f588e9d9c861afa0d9 (diff) | |
download | mpv-89cc477ef1d26061861a8255740681e5b6fcedc4.tar.bz2 mpv-89cc477ef1d26061861a8255740681e5b6fcedc4.tar.xz |
vo_gpu_next: keep target params in priv instead of alocating it
Diffstat (limited to 'video/out/vo_gpu_next.c')
-rw-r--r-- | video/out/vo_gpu_next.c | 11 |
1 files 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; } |