Loading core/java/android/view/SurfaceControlHdrLayerInfoListener.java +5 −2 Original line number Diff line number Diff line Loading @@ -42,10 +42,13 @@ public abstract class SurfaceControlHdrLayerInfoListener { * @param maxH The height of the HDR layer with the largest area * @param flags Additional metadata flags, currently always 0 * TODO(b/182312559): Add some flags * @param maxDesiredHdrSdrRatio The max desired HDR/SDR ratio. Unbounded if the ratio is * positive infinity. * * @hide */ * @hide */ public abstract void onHdrInfoChanged(IBinder displayToken, int numberOfHdrLayers, int maxW, int maxH, int flags); int maxW, int maxH, int flags, float maxDesiredHdrSdrRatio); /** * Registers this as an HDR info listener on the provided display Loading core/jni/android_view_SurfaceControlHdrLayerInfoListener.cpp +4 −4 Original line number Diff line number Diff line Loading @@ -42,12 +42,12 @@ struct SurfaceControlHdrLayerInfoListener : public gui::BnHdrLayerInfoListener { LOG_ALWAYS_FATAL_IF(env->GetJavaVM(&mVm) != JNI_OK, "Failed to GetJavaVm"); } binder::Status onHdrLayerInfoChanged(int numberOfHdrLayers, int maxW, int maxH, int flags) override { binder::Status onHdrLayerInfoChanged(int numberOfHdrLayers, int maxW, int maxH, int flags, float maxDesiredHdrSdrRatio) override { JNIEnv* env = requireEnv(); env->CallVoidMethod(mListener, gListenerClassInfo.mOnHdrInfoChanged, mDisplayToken, numberOfHdrLayers, maxW, maxH, flags); numberOfHdrLayers, maxW, maxH, flags, maxDesiredHdrSdrRatio); if (env->ExceptionCheck()) { ALOGE("SurfaceControlHdrLayerInfoListener.onHdrInfoChanged() failed."); Loading Loading @@ -129,7 +129,7 @@ int register_android_view_SurfaceControlHdrLayerInfoListener(JNIEnv* env) { jclass clazz = env->FindClass("android/view/SurfaceControlHdrLayerInfoListener"); gListenerClassInfo.mClass = MakeGlobalRefOrDie(env, clazz); gListenerClassInfo.mOnHdrInfoChanged = env->GetMethodID(clazz, "onHdrInfoChanged", "(Landroid/os/IBinder;IIII)V"); env->GetMethodID(clazz, "onHdrInfoChanged", "(Landroid/os/IBinder;IIIIF)V"); return 0; } Loading services/core/java/com/android/server/display/DisplayDeviceConfig.java +4 −3 Original line number Diff line number Diff line Loading @@ -889,11 +889,12 @@ public class DisplayDeviceConfig { } /** * Calculate the HDR brightness for the specified SDR brightenss. * Calculate the HDR brightness for the specified SDR brightenss, restricted by the * maxDesiredHdrSdrRatio (the ratio between the HDR luminance and SDR luminance) * * @return the HDR brightness or BRIGHTNESS_INVALID when no mapping exists. */ public float getHdrBrightnessFromSdr(float brightness) { public float getHdrBrightnessFromSdr(float brightness, float maxDesiredHdrSdrRatio) { if (mSdrToHdrRatioSpline == null) { return PowerManager.BRIGHTNESS_INVALID; } Loading @@ -904,7 +905,7 @@ public class DisplayDeviceConfig { return PowerManager.BRIGHTNESS_INVALID; } float ratio = mSdrToHdrRatioSpline.interpolate(nits); float ratio = Math.min(mSdrToHdrRatioSpline.interpolate(nits), maxDesiredHdrSdrRatio); float hdrNits = nits * ratio; if (mNitsToBacklightSpline == null) { return PowerManager.BRIGHTNESS_INVALID; Loading services/core/java/com/android/server/display/DisplayPowerController.java +8 −4 Original line number Diff line number Diff line Loading @@ -975,8 +975,10 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call mDisplayDeviceConfig.getHighBrightnessModeData(), new HighBrightnessModeController.HdrBrightnessDeviceConfig() { @Override public float getHdrBrightnessFromSdr(float sdrBrightness) { return mDisplayDeviceConfig.getHdrBrightnessFromSdr(sdrBrightness); public float getHdrBrightnessFromSdr( float sdrBrightness, float maxDesiredHdrSdrRatio) { return mDisplayDeviceConfig.getHdrBrightnessFromSdr( sdrBrightness, maxDesiredHdrSdrRatio); } }); mBrightnessThrottler.resetThrottlingData( Loading Loading @@ -2088,8 +2090,10 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call displayUniqueId, PowerManager.BRIGHTNESS_MIN, PowerManager.BRIGHTNESS_MAX, hbmData, new HighBrightnessModeController.HdrBrightnessDeviceConfig() { @Override public float getHdrBrightnessFromSdr(float sdrBrightness) { return mDisplayDeviceConfig.getHdrBrightnessFromSdr(sdrBrightness); public float getHdrBrightnessFromSdr( float sdrBrightness, float maxDesiredHdrSdrRatio) { return mDisplayDeviceConfig.getHdrBrightnessFromSdr( sdrBrightness, maxDesiredHdrSdrRatio); } }, () -> { Loading services/core/java/com/android/server/display/DisplayPowerController2.java +8 −4 Original line number Diff line number Diff line Loading @@ -809,8 +809,10 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal mDisplayDeviceConfig.getHighBrightnessModeData(), new HighBrightnessModeController.HdrBrightnessDeviceConfig() { @Override public float getHdrBrightnessFromSdr(float sdrBrightness) { return mDisplayDeviceConfig.getHdrBrightnessFromSdr(sdrBrightness); public float getHdrBrightnessFromSdr( float sdrBrightness, float maxDesiredHdrSdrRatio) { return mDisplayDeviceConfig.getHdrBrightnessFromSdr( sdrBrightness, maxDesiredHdrSdrRatio); } }); mBrightnessThrottler.resetThrottlingData( Loading Loading @@ -1796,8 +1798,10 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal displayUniqueId, PowerManager.BRIGHTNESS_MIN, PowerManager.BRIGHTNESS_MAX, hbmData, new HighBrightnessModeController.HdrBrightnessDeviceConfig() { @Override public float getHdrBrightnessFromSdr(float sdrBrightness) { return mDisplayDeviceConfig.getHdrBrightnessFromSdr(sdrBrightness); public float getHdrBrightnessFromSdr( float sdrBrightness, float maxDesiredHdrSdrRatio) { return mDisplayDeviceConfig.getHdrBrightnessFromSdr( sdrBrightness, maxDesiredHdrSdrRatio); } }, () -> { Loading Loading
core/java/android/view/SurfaceControlHdrLayerInfoListener.java +5 −2 Original line number Diff line number Diff line Loading @@ -42,10 +42,13 @@ public abstract class SurfaceControlHdrLayerInfoListener { * @param maxH The height of the HDR layer with the largest area * @param flags Additional metadata flags, currently always 0 * TODO(b/182312559): Add some flags * @param maxDesiredHdrSdrRatio The max desired HDR/SDR ratio. Unbounded if the ratio is * positive infinity. * * @hide */ * @hide */ public abstract void onHdrInfoChanged(IBinder displayToken, int numberOfHdrLayers, int maxW, int maxH, int flags); int maxW, int maxH, int flags, float maxDesiredHdrSdrRatio); /** * Registers this as an HDR info listener on the provided display Loading
core/jni/android_view_SurfaceControlHdrLayerInfoListener.cpp +4 −4 Original line number Diff line number Diff line Loading @@ -42,12 +42,12 @@ struct SurfaceControlHdrLayerInfoListener : public gui::BnHdrLayerInfoListener { LOG_ALWAYS_FATAL_IF(env->GetJavaVM(&mVm) != JNI_OK, "Failed to GetJavaVm"); } binder::Status onHdrLayerInfoChanged(int numberOfHdrLayers, int maxW, int maxH, int flags) override { binder::Status onHdrLayerInfoChanged(int numberOfHdrLayers, int maxW, int maxH, int flags, float maxDesiredHdrSdrRatio) override { JNIEnv* env = requireEnv(); env->CallVoidMethod(mListener, gListenerClassInfo.mOnHdrInfoChanged, mDisplayToken, numberOfHdrLayers, maxW, maxH, flags); numberOfHdrLayers, maxW, maxH, flags, maxDesiredHdrSdrRatio); if (env->ExceptionCheck()) { ALOGE("SurfaceControlHdrLayerInfoListener.onHdrInfoChanged() failed."); Loading Loading @@ -129,7 +129,7 @@ int register_android_view_SurfaceControlHdrLayerInfoListener(JNIEnv* env) { jclass clazz = env->FindClass("android/view/SurfaceControlHdrLayerInfoListener"); gListenerClassInfo.mClass = MakeGlobalRefOrDie(env, clazz); gListenerClassInfo.mOnHdrInfoChanged = env->GetMethodID(clazz, "onHdrInfoChanged", "(Landroid/os/IBinder;IIII)V"); env->GetMethodID(clazz, "onHdrInfoChanged", "(Landroid/os/IBinder;IIIIF)V"); return 0; } Loading
services/core/java/com/android/server/display/DisplayDeviceConfig.java +4 −3 Original line number Diff line number Diff line Loading @@ -889,11 +889,12 @@ public class DisplayDeviceConfig { } /** * Calculate the HDR brightness for the specified SDR brightenss. * Calculate the HDR brightness for the specified SDR brightenss, restricted by the * maxDesiredHdrSdrRatio (the ratio between the HDR luminance and SDR luminance) * * @return the HDR brightness or BRIGHTNESS_INVALID when no mapping exists. */ public float getHdrBrightnessFromSdr(float brightness) { public float getHdrBrightnessFromSdr(float brightness, float maxDesiredHdrSdrRatio) { if (mSdrToHdrRatioSpline == null) { return PowerManager.BRIGHTNESS_INVALID; } Loading @@ -904,7 +905,7 @@ public class DisplayDeviceConfig { return PowerManager.BRIGHTNESS_INVALID; } float ratio = mSdrToHdrRatioSpline.interpolate(nits); float ratio = Math.min(mSdrToHdrRatioSpline.interpolate(nits), maxDesiredHdrSdrRatio); float hdrNits = nits * ratio; if (mNitsToBacklightSpline == null) { return PowerManager.BRIGHTNESS_INVALID; Loading
services/core/java/com/android/server/display/DisplayPowerController.java +8 −4 Original line number Diff line number Diff line Loading @@ -975,8 +975,10 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call mDisplayDeviceConfig.getHighBrightnessModeData(), new HighBrightnessModeController.HdrBrightnessDeviceConfig() { @Override public float getHdrBrightnessFromSdr(float sdrBrightness) { return mDisplayDeviceConfig.getHdrBrightnessFromSdr(sdrBrightness); public float getHdrBrightnessFromSdr( float sdrBrightness, float maxDesiredHdrSdrRatio) { return mDisplayDeviceConfig.getHdrBrightnessFromSdr( sdrBrightness, maxDesiredHdrSdrRatio); } }); mBrightnessThrottler.resetThrottlingData( Loading Loading @@ -2088,8 +2090,10 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call displayUniqueId, PowerManager.BRIGHTNESS_MIN, PowerManager.BRIGHTNESS_MAX, hbmData, new HighBrightnessModeController.HdrBrightnessDeviceConfig() { @Override public float getHdrBrightnessFromSdr(float sdrBrightness) { return mDisplayDeviceConfig.getHdrBrightnessFromSdr(sdrBrightness); public float getHdrBrightnessFromSdr( float sdrBrightness, float maxDesiredHdrSdrRatio) { return mDisplayDeviceConfig.getHdrBrightnessFromSdr( sdrBrightness, maxDesiredHdrSdrRatio); } }, () -> { Loading
services/core/java/com/android/server/display/DisplayPowerController2.java +8 −4 Original line number Diff line number Diff line Loading @@ -809,8 +809,10 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal mDisplayDeviceConfig.getHighBrightnessModeData(), new HighBrightnessModeController.HdrBrightnessDeviceConfig() { @Override public float getHdrBrightnessFromSdr(float sdrBrightness) { return mDisplayDeviceConfig.getHdrBrightnessFromSdr(sdrBrightness); public float getHdrBrightnessFromSdr( float sdrBrightness, float maxDesiredHdrSdrRatio) { return mDisplayDeviceConfig.getHdrBrightnessFromSdr( sdrBrightness, maxDesiredHdrSdrRatio); } }); mBrightnessThrottler.resetThrottlingData( Loading Loading @@ -1796,8 +1798,10 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal displayUniqueId, PowerManager.BRIGHTNESS_MIN, PowerManager.BRIGHTNESS_MAX, hbmData, new HighBrightnessModeController.HdrBrightnessDeviceConfig() { @Override public float getHdrBrightnessFromSdr(float sdrBrightness) { return mDisplayDeviceConfig.getHdrBrightnessFromSdr(sdrBrightness); public float getHdrBrightnessFromSdr( float sdrBrightness, float maxDesiredHdrSdrRatio) { return mDisplayDeviceConfig.getHdrBrightnessFromSdr( sdrBrightness, maxDesiredHdrSdrRatio); } }, () -> { Loading