From d432bb5f03c20b3439cdfce963038667fc9c2a26 Mon Sep 17 00:00:00 2001 From: Kriti Dang Date: Thu, 9 Feb 2023 18:21:04 +0100 Subject: Update setHdrConversionStrategy to return the preferredHdrOutput type Bug: 268336382 Test: atest libsurfaceflinger_unittest Test: atest libgui_test Change-Id: I35108601a1b675f62fc02894ffee4f4e46bb892f --- services/surfaceflinger/SurfaceFlinger.cpp | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to 'services/surfaceflinger/SurfaceFlinger.cpp') diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index d818b8e359..a8afe6c807 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -1580,7 +1580,8 @@ status_t SurfaceFlinger::getHdrConversionCapabilities( } status_t SurfaceFlinger::setHdrConversionStrategy( - const gui::HdrConversionStrategy& hdrConversionStrategy) { + const gui::HdrConversionStrategy& hdrConversionStrategy, + int32_t* outPreferredHdrOutputType) { bool hdrOutputConversionSupport; getHdrOutputConversionSupport(&hdrOutputConversionSupport); if (hdrOutputConversionSupport == false) { @@ -1592,11 +1593,16 @@ status_t SurfaceFlinger::setHdrConversionStrategy( aidl::android::hardware::graphics::common::HdrConversionStrategy; using GuiHdrConversionStrategyTag = gui::HdrConversionStrategy::Tag; AidlHdrConversionStrategy aidlConversionStrategy; + status_t status; + aidl::android::hardware::graphics::common::Hdr aidlPreferredHdrOutputType; switch (hdrConversionStrategy.getTag()) { case GuiHdrConversionStrategyTag::passthrough: { aidlConversionStrategy.set( hdrConversionStrategy.get()); - return getHwComposer().setHdrConversionStrategy(aidlConversionStrategy); + status = getHwComposer().setHdrConversionStrategy(aidlConversionStrategy, + &aidlPreferredHdrOutputType); + *outPreferredHdrOutputType = static_cast(aidlPreferredHdrOutputType); + return status; } case GuiHdrConversionStrategyTag::autoAllowedHdrTypes: { auto autoHdrTypes = @@ -1609,7 +1615,10 @@ status_t SurfaceFlinger::setHdrConversionStrategy( } aidlConversionStrategy.set( aidlAutoHdrTypes); - return getHwComposer().setHdrConversionStrategy(aidlConversionStrategy); + status = getHwComposer().setHdrConversionStrategy(aidlConversionStrategy, + &aidlPreferredHdrOutputType); + *outPreferredHdrOutputType = static_cast(aidlPreferredHdrOutputType); + return status; } case GuiHdrConversionStrategyTag::forceHdrConversion: { auto forceHdrConversion = @@ -1618,7 +1627,10 @@ status_t SurfaceFlinger::setHdrConversionStrategy( aidlConversionStrategy.set( static_cast( forceHdrConversion)); - return getHwComposer().setHdrConversionStrategy(aidlConversionStrategy); + status = getHwComposer().setHdrConversionStrategy(aidlConversionStrategy, + &aidlPreferredHdrOutputType); + *outPreferredHdrOutputType = static_cast(aidlPreferredHdrOutputType); + return status; } } }); @@ -8148,10 +8160,12 @@ binder::Status SurfaceComposerAIDL::getHdrConversionCapabilities( } binder::Status SurfaceComposerAIDL::setHdrConversionStrategy( - const gui::HdrConversionStrategy& hdrConversionStrategy) { + const gui::HdrConversionStrategy& hdrConversionStrategy, + int32_t* outPreferredHdrOutputType) { status_t status = checkAccessPermission(); if (status == OK) { - status = mFlinger->setHdrConversionStrategy(hdrConversionStrategy); + status = mFlinger->setHdrConversionStrategy(hdrConversionStrategy, + outPreferredHdrOutputType); } return binderStatusFromStatusT(status); } -- cgit v1.2.3-59-g8ed1b