diff options
Diffstat (limited to 'src/gallium/auxiliary/vl/vl_csc.c')
-rw-r--r-- | src/gallium/auxiliary/vl/vl_csc.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/vl/vl_csc.c b/src/gallium/auxiliary/vl/vl_csc.c index 21da95f3ceb..56e662157ef 100644 --- a/src/gallium/auxiliary/vl/vl_csc.c +++ b/src/gallium/auxiliary/vl/vl_csc.c @@ -147,6 +147,22 @@ static const float bt_709_full[16] = 0.0f, 0.0f, 0.0f, 1.0f }; +static const float smpte240m[16] = +{ + 1.0f, 0.0f, 1.582f, 0.0f, + 1.0f, -0.228f, -0.478f, 0.0f, + 1.0f, 1.833f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f +}; + +static const float smpte240m_full[16] = +{ + 1.164f, 0.0f, 1.794f, 0.0f, + 1.164f, -0.258f, -0.543f, 0.0f, + 1.164f, 2.079f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f +}; + static const float identity[16] = { 1.0f, 0.0f, 0.0f, 0.0f, @@ -188,6 +204,9 @@ void vl_csc_get_matrix(enum VL_CSC_COLOR_STANDARD cs, case VL_CSC_COLOR_STANDARD_BT_709: cstd = full_range ? &bt_709_full[0] : &bt_709[0]; break; + case VL_CSC_COLOR_STANDARD_SMPTE_240M: + cstd = full_range ? &smpte240m_full[0] : &smpte240m[0]; + break; case VL_CSC_COLOR_STANDARD_IDENTITY: default: assert(cs == VL_CSC_COLOR_STANDARD_IDENTITY); |