diff options
author | Niklas Haas <git@nand.wakku.to> | 2016-06-26 19:57:29 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2016-06-28 19:48:29 +0200 |
commit | 247ec0cb841c28b97a186675c0ef923a0ede2f40 (patch) | |
tree | c9fdd6787b1b6650a6f0c20504aeefcb83f040f5 | |
parent | 13a63331b67f489d547b566ea8b7b60de62192bd (diff) |
csputils: add Panasonic V-Gamut primaries
This is actually not entirely trivial since it involves negative Yxy
coordinates, so the CMM has to be capable of full floating point
operation. Fortunately, LittleCMS is, so we can just blindly implement
it.
-rw-r--r-- | DOCS/man/vf.rst | 1 | ||||
-rw-r--r-- | DOCS/man/vo.rst | 2 | ||||
-rw-r--r-- | video/csputils.c | 9 | ||||
-rw-r--r-- | video/csputils.h | 1 |
4 files changed, 13 insertions, 0 deletions
diff --git a/DOCS/man/vf.rst b/DOCS/man/vf.rst index 7f60da9385..2ae10d068a 100644 --- a/DOCS/man/vf.rst +++ b/DOCS/man/vf.rst @@ -288,6 +288,7 @@ Available filters are: :adobe: Adobe RGB (1998) :prophoto: ProPhoto RGB (ROMM) :cie1931: CIE 1931 RGB + :v-gamut: Panasonic V-Gamut primaries ``<gamma>`` Gamma function the source file was encoded with. Normally this should be set diff --git a/DOCS/man/vo.rst b/DOCS/man/vo.rst index 306b027561..db6fa1d0fc 100644 --- a/DOCS/man/vo.rst +++ b/DOCS/man/vo.rst @@ -979,6 +979,8 @@ Available video output drivers are: CIE 1931 RGB (not to be confused with CIE XYZ) dci-p3 DCI-P3 (Digital Cinema Colorspace), SMPTE RP431-2 + v-gamut + Panasonic V-Gamut (VARICAM) primaries ``target-trc=<value>`` Specifies the transfer characteristics (gamma) of the display. Video diff --git a/video/csputils.c b/video/csputils.c index e9e6772ac8..b85b1f28f2 100644 --- a/video/csputils.c +++ b/video/csputils.c @@ -65,6 +65,7 @@ const struct m_opt_choice_alternatives mp_csp_prim_names[] = { {"prophoto", MP_CSP_PRIM_PRO_PHOTO}, {"cie1931", MP_CSP_PRIM_CIE_1931}, {"dci-p3", MP_CSP_PRIM_DCI_P3}, + {"v-gamut", MP_CSP_PRIM_V_GAMUT}, {0} }; @@ -422,6 +423,14 @@ struct mp_csp_primaries mp_get_csp_primaries(enum mp_csp_prim spc) .blue = {0.150, 0.060}, .white = d65 }; + // From Panasonic VARICAM reference manual + case MP_CSP_PRIM_V_GAMUT: + return (struct mp_csp_primaries) { + .red = {0.730, 0.280}, + .green = {0.165, 0.840}, + .blue = {0.100, -0.03}, + .white = d65 + }; default: return (struct mp_csp_primaries) {{0}}; } diff --git a/video/csputils.h b/video/csputils.h index f64c42e6c8..100e3c13d9 100644 --- a/video/csputils.h +++ b/video/csputils.h @@ -64,6 +64,7 @@ enum mp_csp_prim { MP_CSP_PRIM_PRO_PHOTO, MP_CSP_PRIM_CIE_1931, MP_CSP_PRIM_DCI_P3, + MP_CSP_PRIM_V_GAMUT, MP_CSP_PRIM_COUNT }; |