summaryrefslogtreecommitdiffstats
path: root/video/out/opengl/lcms.h
diff options
context:
space:
mode:
authorNiklas Haas <git@haasn.xyz>2017-07-25 23:17:04 +0200
committerNiklas Haas <git@haasn.xyz>2017-08-03 21:48:25 +0200
commitfee6b287a559084062d179974816fd922dc93a4f (patch)
tree954fe93c54730fcf73afcdc3610b9f51ffdf9778 /video/out/opengl/lcms.h
parent1aab0376014ff7fc278a81847c989b3970aa0736 (diff)
downloadmpv-fee6b287a559084062d179974816fd922dc93a4f.tar.bz2
mpv-fee6b287a559084062d179974816fd922dc93a4f.tar.xz
vo_opengl: support embedded ICC profiles
This currently only works when using lcms-based color management (--icc-profile-*). In principle, we could also support using lcms even when the user has not specified an ICC profile, by generating the profile against a fixed reference (--target-prim/--target-trc) instead. I still might do that some day, simply because 3dlut provides a higher quality conversion than our simple gamut mapping does for stuff like BT.2020, and also because it's now needed to enable embedded ICC profiles. But that would be a separate change, so preserve the status quo for now. (Besides, my opinion is still that you should be using an ICC profile if you care about colors being accurate _at all_)
Diffstat (limited to 'video/out/opengl/lcms.h')
-rw-r--r--video/out/opengl/lcms.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/video/out/opengl/lcms.h b/video/out/opengl/lcms.h
index 0c0a959e82..20faa8dd5e 100644
--- a/video/out/opengl/lcms.h
+++ b/video/out/opengl/lcms.h
@@ -4,10 +4,12 @@
#include <stddef.h>
#include <stdbool.h>
#include "misc/bstr.h"
+#include <libavutil/buffer.h>
extern const struct m_sub_options mp_icc_conf;
struct mp_icc_opts {
+ int use_embedded;
char *profile;
int profile_auto;
char *cache_dir;
@@ -32,8 +34,9 @@ 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 mp_csp_prim prim, enum mp_csp_trc trc,
+ struct AVBufferRef *vid_profile);
bool gl_lcms_has_changed(struct gl_lcms *p, enum mp_csp_prim prim,
- enum mp_csp_trc trc);
+ enum mp_csp_trc trc, struct AVBufferRef *vid_profile);
#endif