Loading services/surfaceflinger/SurfaceFlinger_hwc1.cpp +45 −2 Original line number Diff line number Diff line Loading @@ -778,10 +778,53 @@ status_t SurfaceFlinger::getAnimationFrameStats(FrameStats* outStats) const { return NO_ERROR; } status_t SurfaceFlinger::getHdrCapabilities(const sp<IBinder>& /*display*/, status_t SurfaceFlinger::getHdrCapabilities(const sp<IBinder>& display, HdrCapabilities* outCapabilities) const { // HWC1 does not provide HDR capabilities if (!display.get()) return NAME_NOT_FOUND; int32_t type = NAME_NOT_FOUND; for (int i=0 ; i < DisplayDevice::NUM_BUILTIN_DISPLAY_TYPES ; i++) { if (display == mBuiltinDisplays[i]) { type = i; break; } } if (type < 0) { return type; } #ifdef QTI_BSP // Call into display.qservice Parcel reply; sp<IServiceManager> sm(defaultServiceManager()); sp<IBinder> binder = sm->getService(String16("display.qservice")); Parcel input; input.writeInterfaceToken(String16("android.display.IQService")); input.writeInt32(type); // GET_HDR_CAPABILITIES = 35 from IQService.h binder->transact(35, input, &reply); if (outCapabilities != nullptr) { outCapabilities->readFromParcel(&reply); if (outCapabilities->getSupportedHdrTypes().size() != 0) { ALOGD("HDR support on display: %d", type); for (auto hdrtype : outCapabilities->getSupportedHdrTypes()) { ALOGD(" HDR type: %d", hdrtype); } ALOGD(" HDR max luminance: %f", outCapabilities->getDesiredMaxLuminance()); ALOGD(" HDR max avg luminance: %f", outCapabilities->getDesiredMaxAverageLuminance()); ALOGD(" HDR min luminance: %f", outCapabilities->getDesiredMinLuminance()); } else { ALOGI("HDR is not supported on display: %d", type); } } #else *outCapabilities = HdrCapabilities(); #endif return NO_ERROR; } Loading Loading
services/surfaceflinger/SurfaceFlinger_hwc1.cpp +45 −2 Original line number Diff line number Diff line Loading @@ -778,10 +778,53 @@ status_t SurfaceFlinger::getAnimationFrameStats(FrameStats* outStats) const { return NO_ERROR; } status_t SurfaceFlinger::getHdrCapabilities(const sp<IBinder>& /*display*/, status_t SurfaceFlinger::getHdrCapabilities(const sp<IBinder>& display, HdrCapabilities* outCapabilities) const { // HWC1 does not provide HDR capabilities if (!display.get()) return NAME_NOT_FOUND; int32_t type = NAME_NOT_FOUND; for (int i=0 ; i < DisplayDevice::NUM_BUILTIN_DISPLAY_TYPES ; i++) { if (display == mBuiltinDisplays[i]) { type = i; break; } } if (type < 0) { return type; } #ifdef QTI_BSP // Call into display.qservice Parcel reply; sp<IServiceManager> sm(defaultServiceManager()); sp<IBinder> binder = sm->getService(String16("display.qservice")); Parcel input; input.writeInterfaceToken(String16("android.display.IQService")); input.writeInt32(type); // GET_HDR_CAPABILITIES = 35 from IQService.h binder->transact(35, input, &reply); if (outCapabilities != nullptr) { outCapabilities->readFromParcel(&reply); if (outCapabilities->getSupportedHdrTypes().size() != 0) { ALOGD("HDR support on display: %d", type); for (auto hdrtype : outCapabilities->getSupportedHdrTypes()) { ALOGD(" HDR type: %d", hdrtype); } ALOGD(" HDR max luminance: %f", outCapabilities->getDesiredMaxLuminance()); ALOGD(" HDR max avg luminance: %f", outCapabilities->getDesiredMaxAverageLuminance()); ALOGD(" HDR min luminance: %f", outCapabilities->getDesiredMinLuminance()); } else { ALOGI("HDR is not supported on display: %d", type); } } #else *outCapabilities = HdrCapabilities(); #endif return NO_ERROR; } Loading