diff options
| author | Carl Hetherington <cth@carlh.net> | 2025-05-04 22:29:50 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2025-10-14 20:50:53 +0200 |
| commit | 6ee5579ba47f120f731c11f47417d690d6ce1325 (patch) | |
| tree | d57eeaec70a95c8a3287aa32e227c38c38474363 /src/colour_conversion.cc | |
| parent | 27fb2ff0c187b3f514c291cb75ea5a193128cf45 (diff) | |
Add output gamma for going to MPEG2 DCP (2.4).
Diffstat (limited to 'src/colour_conversion.cc')
| -rw-r--r-- | src/colour_conversion.cc | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/src/colour_conversion.cc b/src/colour_conversion.cc index ef2f374a..3b98ccd0 100644 --- a/src/colour_conversion.cc +++ b/src/colour_conversion.cc @@ -65,7 +65,8 @@ ColourConversion::srgb_to_dcp() Chromaticity(0.15, 0.06), Chromaticity::D65(), optional<Chromaticity>(), - make_shared<GammaTransferFunction>(2.6) + make_shared<GammaTransferFunction>(2.6), + make_shared<GammaTransferFunction>(2.4) ); return *c; } @@ -81,7 +82,8 @@ ColourConversion::rec601_to_dcp() Chromaticity(0.15, 0.06), Chromaticity::D65(), optional<Chromaticity>(), - make_shared<GammaTransferFunction>(2.6) + make_shared<GammaTransferFunction>(2.6), + make_shared<GammaTransferFunction>(2.4) ); return *c; } @@ -97,7 +99,8 @@ ColourConversion::rec709_to_dcp() Chromaticity(0.15, 0.06), Chromaticity::D65(), optional<Chromaticity>(), - make_shared<GammaTransferFunction>(2.6) + make_shared<GammaTransferFunction>(2.6), + make_shared<GammaTransferFunction>(2.4) ); return *c; } @@ -113,7 +116,8 @@ ColourConversion::p3_to_dcp() Chromaticity(0.15, 0.06), Chromaticity(0.314, 0.351), optional<Chromaticity>(), - make_shared<GammaTransferFunction>(2.6) + make_shared<GammaTransferFunction>(2.6), + make_shared<GammaTransferFunction>(2.4) ); return *c; } @@ -132,7 +136,8 @@ ColourConversion::rec1886_to_dcp() Chromaticity(0.15, 0.06), Chromaticity::D65(), optional<Chromaticity>(), - make_shared<GammaTransferFunction>(2.6) + make_shared<GammaTransferFunction>(2.6), + make_shared<GammaTransferFunction>(2.4) ); return *c; } @@ -148,7 +153,8 @@ ColourConversion::rec2020_to_dcp() Chromaticity(0.131, 0.046), Chromaticity::D65(), optional<Chromaticity>(), - make_shared<GammaTransferFunction>(2.6) + make_shared<GammaTransferFunction>(2.6), + make_shared<GammaTransferFunction>(2.4) ); return *c; } @@ -165,7 +171,8 @@ ColourConversion::s_gamut3_to_dcp() Chromaticity(0.100, -0.050), Chromaticity::D65(), optional<Chromaticity>(), - make_shared<IdentityTransferFunction>() + make_shared<IdentityTransferFunction>(), + make_shared<GammaTransferFunction>(2.4) ); return *c; } @@ -180,7 +187,8 @@ ColourConversion::ColourConversion( Chromaticity blue, Chromaticity white, optional<Chromaticity> adjusted_white, - shared_ptr<const TransferFunction> out_j2k + shared_ptr<const TransferFunction> out_j2k, + shared_ptr<const TransferFunction> out_mpeg2 ) : _in(in) , _yuv_to_rgb(yuv_to_rgb) @@ -190,6 +198,7 @@ ColourConversion::ColourConversion( , _white(white) , _adjusted_white(adjusted_white) , _out_j2k(out_j2k) + , _out_mpeg2(out_mpeg2) { } @@ -206,7 +215,10 @@ ColourConversion::about_equal(ColourConversion const & other, float epsilon) con !_white.about_equal(other._white, epsilon) || (!_out_j2k && other._out_j2k) || (_out_j2k && !other._out_j2k) || - (_out_j2k && !_out_j2k->about_equal(other._out_j2k, epsilon))) { + (_out_j2k && !_out_j2k->about_equal(other._out_j2k, epsilon)) || + (!_out_mpeg2 && other._out_mpeg2) || + (_out_mpeg2 && !other._out_mpeg2) || + (_out_mpeg2 && !_out_mpeg2->about_equal(other._out_mpeg2, epsilon))) { return false; } |
