diff options
Diffstat (limited to 'video/out/gpu/lcms.h')
-rw-r--r-- | video/out/gpu/lcms.h | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/video/out/gpu/lcms.h b/video/out/gpu/lcms.h index 35bbd61fe0..d0b0fe5b89 100644 --- a/video/out/gpu/lcms.h +++ b/video/out/gpu/lcms.h @@ -10,13 +10,15 @@ extern const struct m_sub_options mp_icc_conf; struct mp_icc_opts { - int use_embedded; + bool use_embedded; char *profile; - int profile_auto; + bool profile_auto; + bool cache; char *cache_dir; char *size_str; int intent; int contrast; + bool icc_use_luma; }; struct lut3d { @@ -35,9 +37,25 @@ void gl_lcms_update_options(struct gl_lcms *p); 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, + enum pl_color_primaries prim, enum pl_color_transfer trc, struct AVBufferRef *vid_profile); -bool gl_lcms_has_changed(struct gl_lcms *p, enum mp_csp_prim prim, - enum mp_csp_trc trc, struct AVBufferRef *vid_profile); +bool gl_lcms_has_changed(struct gl_lcms *p, enum pl_color_primaries prim, + enum pl_color_transfer trc, struct AVBufferRef *vid_profile); + +static inline bool gl_parse_3dlut_size(const char *arg, int *p1, int *p2, int *p3) +{ + if (!strcmp(arg, "auto")) { + *p1 = *p2 = *p3 = 0; + return true; + } + if (sscanf(arg, "%dx%dx%d", p1, p2, p3) != 3) + return false; + for (int n = 0; n < 3; n++) { + int s = ((int[]) { *p1, *p2, *p3 })[n]; + if (s < 2 || s > 512) + return false; + } + return true; +} #endif |