Merge "Use HdrConversionMode FORCE with preferredHdrType INVALID for a casee when SDR FORCE conversion is chosen." into udc-dev

This commit is contained in:
Kriti Dang
2023-03-06 13:57:57 +00:00
committed by Android (Google) Code Review
2 changed files with 16 additions and 7 deletions

View File

@@ -1409,9 +1409,10 @@ public final class DisplayManager {
* @param hdrConversionMode The {@link HdrConversionMode} to set. * @param hdrConversionMode The {@link HdrConversionMode} to set.
* Note, {@code HdrConversionMode.preferredHdrOutputType} is only applicable when * Note, {@code HdrConversionMode.preferredHdrOutputType} is only applicable when
* {@code HdrConversionMode.conversionMode} is {@link HdrConversionMode#HDR_CONVERSION_FORCE}. * {@code HdrConversionMode.conversionMode} is {@link HdrConversionMode#HDR_CONVERSION_FORCE}.
* If {@code HdrConversionMode.preferredHdrOutputType} is not set in case when
* {@code HdrConversionMode.conversionMode} is {@link HdrConversionMode#HDR_CONVERSION_FORCE},
* it means that preferred output type is SDR.
* *
* @throws IllegalArgumentException if hdrConversionMode.preferredHdrOutputType is not set
* when hdrConversionMode.conversionMode is {@link HdrConversionMode#HDR_CONVERSION_FORCE}.
* @throws IllegalArgumentException if hdrConversionMode.preferredHdrOutputType is set but * @throws IllegalArgumentException if hdrConversionMode.preferredHdrOutputType is set but
* hdrConversionMode.conversionMode is not {@link HdrConversionMode#HDR_CONVERSION_FORCE}. * hdrConversionMode.conversionMode is not {@link HdrConversionMode#HDR_CONVERSION_FORCE}.
* *

View File

@@ -2126,16 +2126,24 @@ public final class DisplayManagerService extends SystemService {
autoHdrOutputTypes = getEnabledAutoHdrTypesLocked(); autoHdrOutputTypes = getEnabledAutoHdrTypesLocked();
} }
int conversionMode = hdrConversionMode.getConversionMode();
int preferredHdrType = hdrConversionMode.getPreferredHdrOutputType();
// If the HDR conversion is disabled by an app through WindowManager.LayoutParams, then // If the HDR conversion is disabled by an app through WindowManager.LayoutParams, then
// set HDR conversion mode to HDR_CONVERSION_PASSTHROUGH. // set HDR conversion mode to HDR_CONVERSION_PASSTHROUGH.
if (mOverrideHdrConversionMode == null) { if (mOverrideHdrConversionMode == null) {
mSystemPreferredHdrOutputType = // HDR_CONVERSION_FORCE with HDR_TYPE_INVALID is used to represent forcing SDR type.
mInjector.setHdrConversionMode(hdrConversionMode.getConversionMode(), // But, internally SDR is selected by using passthrough mode.
hdrConversionMode.getPreferredHdrOutputType(), autoHdrOutputTypes); if (conversionMode == HdrConversionMode.HDR_CONVERSION_FORCE
&& preferredHdrType == Display.HdrCapabilities.HDR_TYPE_INVALID) {
conversionMode = HdrConversionMode.HDR_CONVERSION_PASSTHROUGH;
}
} else { } else {
mInjector.setHdrConversionMode(mOverrideHdrConversionMode.getConversionMode(), conversionMode = mOverrideHdrConversionMode.getConversionMode();
mOverrideHdrConversionMode.getPreferredHdrOutputType(), null); preferredHdrType = mOverrideHdrConversionMode.getPreferredHdrOutputType();
autoHdrOutputTypes = null;
} }
mSystemPreferredHdrOutputType = mInjector.setHdrConversionMode(
conversionMode, preferredHdrType, autoHdrOutputTypes);
} }
} }