summaryrefslogtreecommitdiffstats
path: root/video/out
diff options
context:
space:
mode:
authorKacper Michajłow <kasper93@gmail.com>2024-04-09 20:55:46 +0200
committerKacper Michajłow <kasper93@gmail.com>2024-04-10 18:35:47 +0200
commit89cc477ef1d26061861a8255740681e5b6fcedc4 (patch)
tree4b7cf9f85988fe6586337893d98b1ce0649fb1e5 /video/out
parentf167d18ec8333c0cbb41c8f588e9d9c861afa0d9 (diff)
downloadmpv-89cc477ef1d26061861a8255740681e5b6fcedc4.tar.bz2
mpv-89cc477ef1d26061861a8255740681e5b6fcedc4.tar.xz
vo_gpu_next: keep target params in priv instead of alocating it
Diffstat (limited to 'video/out')
-rw-r--r--video/out/vo_gpu_next.c11
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;
}