summaryrefslogtreecommitdiffstats
path: root/video/out/opengl/lcms.h
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2016-06-04 17:52:10 +0200
committerwm4 <wm4@nowhere>2016-06-04 17:52:10 +0200
commit352904fd036c5d9dbe53e3726a0c4fdcfe408c24 (patch)
tree768bf670cbe649e9fee724eb6205490c4e928252 /video/out/opengl/lcms.h
parent2dfea67f3b23106148f48840d19f4ec44ad7eeb8 (diff)
downloadmpv-352904fd036c5d9dbe53e3726a0c4fdcfe408c24.tar.bz2
mpv-352904fd036c5d9dbe53e3726a0c4fdcfe408c24.tar.xz
vo_opengl: cleanup icc + runtime option changing behavior
Commit 026b75e7 actually enabled changing icc options at runtime (via vo_cmdline), but it didn't quite work. In particular, changing the icc- profile option just kept the old profile, because it was cached accordingly. As part of this, change gl_lcms.opts from a struct to a pointer to a struct. We properly copy it, instead of allowing possibly dangling strings, like it was done in a working but unclean way before. Also, reinit the whole rendering chain when the auto icc profile changes, just like it's done when icc options are changed.
Diffstat (limited to 'video/out/opengl/lcms.h')
-rw-r--r--video/out/opengl/lcms.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/video/out/opengl/lcms.h b/video/out/opengl/lcms.h
index 2c6543d953..094514ac9e 100644
--- a/video/out/opengl/lcms.h
+++ b/video/out/opengl/lcms.h
@@ -28,7 +28,8 @@ struct gl_lcms;
struct gl_lcms *gl_lcms_init(void *talloc_ctx, struct mp_log *log,
struct mpv_global *global);
void gl_lcms_set_options(struct gl_lcms *p, struct mp_icc_opts *opts);
-void gl_lcms_set_memory_profile(struct gl_lcms *p, bstr profile);
+bool gl_lcms_set_memory_profile(struct gl_lcms *p, bstr profile);
+bool gl_lcms_has_profile(struct gl_lcms *p);
bool gl_lcms_get_lut3d(struct gl_lcms *p, struct lut3d **,
enum mp_csp_prim prim, enum mp_csp_trc trc);
bool gl_lcms_has_changed(struct gl_lcms *p, enum mp_csp_prim prim,