Update setHdrConversionStrategy to return the preferredHdrOutput type
Bug: 268336382
Test: atest libsurfaceflinger_unittest
Test: atest libgui_test
Change-Id: I35108601a1b675f62fc02894ffee4f4e46bb892f
diff --git a/services/surfaceflinger/DisplayHardware/AidlComposerHal.cpp b/services/surfaceflinger/DisplayHardware/AidlComposerHal.cpp
index ba9aed8..4194a7e 100644
--- a/services/surfaceflinger/DisplayHardware/AidlComposerHal.cpp
+++ b/services/surfaceflinger/DisplayHardware/AidlComposerHal.cpp
@@ -1417,8 +1417,10 @@
return Error::NONE;
}
-Error AidlComposer::setHdrConversionStrategy(AidlHdrConversionStrategy hdrConversionStrategy) {
- const auto status = mAidlComposerClient->setHdrConversionStrategy(hdrConversionStrategy);
+Error AidlComposer::setHdrConversionStrategy(AidlHdrConversionStrategy hdrConversionStrategy,
+ Hdr* outPreferredHdrOutputType) {
+ const auto status = mAidlComposerClient->setHdrConversionStrategy(hdrConversionStrategy,
+ outPreferredHdrOutputType);
if (!status.isOk()) {
ALOGE("setHdrConversionStrategy failed %s", status.getDescription().c_str());
return static_cast<Error>(status.getServiceSpecificError());
diff --git a/services/surfaceflinger/DisplayHardware/AidlComposerHal.h b/services/surfaceflinger/DisplayHardware/AidlComposerHal.h
index a5ddf74..d163ff2 100644
--- a/services/surfaceflinger/DisplayHardware/AidlComposerHal.h
+++ b/services/surfaceflinger/DisplayHardware/AidlComposerHal.h
@@ -238,7 +238,7 @@
void onHotplugConnect(Display) override;
void onHotplugDisconnect(Display) override;
Error getHdrConversionCapabilities(std::vector<HdrConversionCapability>*) override;
- Error setHdrConversionStrategy(HdrConversionStrategy) override;
+ Error setHdrConversionStrategy(HdrConversionStrategy, Hdr*) override;
private:
// Many public functions above simply write a command into the command
diff --git a/services/surfaceflinger/DisplayHardware/ComposerHal.h b/services/surfaceflinger/DisplayHardware/ComposerHal.h
index 82b677e..9b9b7fd 100644
--- a/services/surfaceflinger/DisplayHardware/ComposerHal.h
+++ b/services/surfaceflinger/DisplayHardware/ComposerHal.h
@@ -293,7 +293,7 @@
virtual Error getHdrConversionCapabilities(
std::vector<::aidl::android::hardware::graphics::common::HdrConversionCapability>*) = 0;
virtual Error setHdrConversionStrategy(
- ::aidl::android::hardware::graphics::common::HdrConversionStrategy) = 0;
+ ::aidl::android::hardware::graphics::common::HdrConversionStrategy, Hdr*) = 0;
};
} // namespace Hwc2
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
index 6d94079..470bf76 100644
--- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp
+++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
@@ -796,10 +796,14 @@
return mHdrConversionCapabilities;
}
-status_t HWComposer::setHdrConversionStrategy(HdrConversionStrategy hdrConversionStrategy) {
- const auto error = mComposer->setHdrConversionStrategy(hdrConversionStrategy);
+status_t HWComposer::setHdrConversionStrategy(
+ HdrConversionStrategy hdrConversionStrategy,
+ aidl::android::hardware::graphics::common::Hdr* outPreferredHdrOutputType) {
+ const auto error =
+ mComposer->setHdrConversionStrategy(hdrConversionStrategy, outPreferredHdrOutputType);
if (error != hal::Error::NONE) {
ALOGE("Error in setting HDR conversion strategy %s", to_string(error).c_str());
+ return INVALID_OPERATION;
}
return NO_ERROR;
}
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.h b/services/surfaceflinger/DisplayHardware/HWComposer.h
index acebfb2..95568eb 100644
--- a/services/surfaceflinger/DisplayHardware/HWComposer.h
+++ b/services/surfaceflinger/DisplayHardware/HWComposer.h
@@ -44,6 +44,7 @@
#include "Hal.h"
#include <aidl/android/hardware/graphics/common/DisplayDecorationSupport.h>
+#include <aidl/android/hardware/graphics/common/Hdr.h>
#include <aidl/android/hardware/graphics/common/HdrConversionCapability.h>
#include <aidl/android/hardware/graphics/common/HdrConversionStrategy.h>
#include <aidl/android/hardware/graphics/composer3/Capability.h>
@@ -294,7 +295,8 @@
virtual std::vector<aidl::android::hardware::graphics::common::HdrConversionCapability>
getHdrConversionCapabilities() const = 0;
virtual status_t setHdrConversionStrategy(
- aidl::android::hardware::graphics::common::HdrConversionStrategy) = 0;
+ aidl::android::hardware::graphics::common::HdrConversionStrategy,
+ aidl::android::hardware::graphics::common::Hdr*) = 0;
};
static inline bool operator==(const android::HWComposer::DeviceRequestedChanges& lhs,
@@ -449,7 +451,8 @@
std::vector<aidl::android::hardware::graphics::common::HdrConversionCapability>
getHdrConversionCapabilities() const override;
status_t setHdrConversionStrategy(
- aidl::android::hardware::graphics::common::HdrConversionStrategy) override;
+ aidl::android::hardware::graphics::common::HdrConversionStrategy,
+ aidl::android::hardware::graphics::common::Hdr*) override;
// for debugging ----------------------------------------------------------
void dump(std::string& out) const override;
diff --git a/services/surfaceflinger/DisplayHardware/HidlComposerHal.cpp b/services/surfaceflinger/DisplayHardware/HidlComposerHal.cpp
index 6fdb2d7..9bc62b6 100644
--- a/services/surfaceflinger/DisplayHardware/HidlComposerHal.cpp
+++ b/services/surfaceflinger/DisplayHardware/HidlComposerHal.cpp
@@ -1354,7 +1354,7 @@
return Error::UNSUPPORTED;
}
-Error HidlComposer::setHdrConversionStrategy(HdrConversionStrategy) {
+Error HidlComposer::setHdrConversionStrategy(HdrConversionStrategy, Hdr*) {
return Error::UNSUPPORTED;
}
diff --git a/services/surfaceflinger/DisplayHardware/HidlComposerHal.h b/services/surfaceflinger/DisplayHardware/HidlComposerHal.h
index 8280af2..2bab1fe 100644
--- a/services/surfaceflinger/DisplayHardware/HidlComposerHal.h
+++ b/services/surfaceflinger/DisplayHardware/HidlComposerHal.h
@@ -346,8 +346,8 @@
Error getHdrConversionCapabilities(
std::vector<aidl::android::hardware::graphics::common::HdrConversionCapability>*)
override;
- Error setHdrConversionStrategy(
- aidl::android::hardware::graphics::common::HdrConversionStrategy) override;
+ Error setHdrConversionStrategy(aidl::android::hardware::graphics::common::HdrConversionStrategy,
+ Hdr*) override;
private:
class CommandWriter : public CommandWriterBase {