diff options
author | Kacper Michajłow <kasper93@gmail.com> | 2024-02-10 23:46:04 +0100 |
---|---|---|
committer | Dudemanguy <random342@airmail.cc> | 2024-03-09 05:58:52 +0000 |
commit | 391261f7576ff2abc738cf8d566bdc8aad267f1f (patch) | |
tree | aeee31dab84ead2dd19370668e5d924fe1820e9f /video/out | |
parent | 120b0ac4125859fc5bfb555e73ffd4f8905fe881 (diff) | |
download | mpv-391261f7576ff2abc738cf8d566bdc8aad267f1f.tar.bz2 mpv-391261f7576ff2abc738cf8d566bdc8aad267f1f.tar.xz |
mp_image: add mp_image_params_static_equal for finer comparision
In case of dynamic HDR metadata is present.
Diffstat (limited to 'video/out')
-rw-r--r-- | video/out/gpu/video.c | 4 | ||||
-rw-r--r-- | video/out/vo_gpu_next.c | 6 |
2 files changed, 7 insertions, 3 deletions
diff --git a/video/out/gpu/video.c b/video/out/gpu/video.c index 1de9ae8cd5..fe6ec1cdde 100644 --- a/video/out/gpu/video.c +++ b/video/out/gpu/video.c @@ -3193,7 +3193,7 @@ static void gl_video_interpolate_frame(struct gl_video *p, struct vo_frame *t, struct mp_image *f = t->frames[i]; uint64_t f_id = t->frame_id + i; - if (!mp_image_params_equal(&f->params, &p->real_image_params)) + if (!mp_image_params_static_equal(&f->params, &p->real_image_params)) continue; if (f_id > p->surfaces[p->surface_idx].id) { @@ -4016,7 +4016,7 @@ void gl_video_config(struct gl_video *p, struct mp_image_params *params) unmap_overlay(p); unref_current_image(p); - if (!mp_image_params_equal(&p->real_image_params, params)) { + if (!mp_image_params_static_equal(&p->real_image_params, params)) { uninit_video(p); p->real_image_params = *params; p->image_params = *params; diff --git a/video/out/vo_gpu_next.c b/video/out/vo_gpu_next.c index 8fb24c39b1..0139cfd3e1 100644 --- a/video/out/vo_gpu_next.c +++ b/video/out/vo_gpu_next.c @@ -494,7 +494,11 @@ static bool hwdec_reconfig(struct priv *p, struct ra_hwdec *hwdec, const struct mp_image_params *par) { if (p->hwdec_mapper) { - if (mp_image_params_equal(par, &p->hwdec_mapper->src_params)) { + if (mp_image_params_static_equal(par, &p->hwdec_mapper->src_params)) { + p->hwdec_mapper->src_params.repr.dovi = par->repr.dovi; + p->hwdec_mapper->dst_params.repr.dovi = par->repr.dovi; + p->hwdec_mapper->src_params.color.hdr = par->color.hdr; + p->hwdec_mapper->dst_params.color.hdr = par->color.hdr; return p->hwdec_mapper; } else { ra_hwdec_mapper_free(&p->hwdec_mapper); |