summaryrefslogtreecommitdiffstats
path: root/video/out/gpu/lcms.h
diff options
context:
space:
mode:
Diffstat (limited to 'video/out/gpu/lcms.h')
-rw-r--r--video/out/gpu/lcms.h28
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