@@ -104,6 +104,7 @@ void Ccm::prepare(IPAContext &context, const uint32_t frame,
if (saturation)
applySaturation(ccm, saturation.value());
+ context.activeState.combinedMatrix = ccm;
context.activeState.ccm = ccm;
frameContext.saturation = saturation;
context.activeState.matrixChanged = true;
@@ -129,7 +129,7 @@ void Lut::prepare(IPAContext &context,
Matrix<float, 3, 3> gainMatrix = { { gains.r(), 0, 0,
0, gains.g(), 0,
0, 0, gains.b() } };
- auto matrix = context.activeState.ccm * gainMatrix;
+ auto matrix = context.activeState.combinedMatrix * gainMatrix;
auto &red = params->redCcm;
auto &green = params->greenCcm;
auto &blue = params->blueCcm;
@@ -61,6 +61,7 @@ struct IPAActiveState {
} gamma;
Matrix<float, 3, 3> ccm;
+ Matrix<float, 3, 3> combinedMatrix;
bool matrixChanged = false;
struct {