Loading services/camera/libcameraservice/api2/CameraDeviceClient.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -957,7 +957,7 @@ binder::Status CameraDeviceClient::createStream( bool isHeicCompositeStream = camera3::HeicCompositeStream::isHeicCompositeStream(surfaces[0]); bool isJpegRCompositeStream = camera3::JpegRCompositeStream::isJpegRCompositeStream(surfaces[0]) && !mDevice->supportNativeJpegR(); !mDevice->isCompositeJpegRDisabled(); if (isDepthCompositeStream || isHeicCompositeStream || isJpegRCompositeStream) { sp<CompositeStream> compositeStream; if (isDepthCompositeStream) { Loading Loading @@ -1851,7 +1851,7 @@ binder::Status CameraDeviceClient::switchToOffline( isCompositeStream = camera3::DepthCompositeStream::isDepthCompositeStream(s) || camera3::HeicCompositeStream::isHeicCompositeStream(s) || (camera3::JpegRCompositeStream::isJpegRCompositeStream(s) && !mDevice->supportNativeJpegR()); !mDevice->isCompositeJpegRDisabled()); if (isCompositeStream) { auto compositeIdx = mCompositeStreamMap.indexOfKey(IInterface::asBinder(gbp)); if (compositeIdx == NAME_NOT_FOUND) { Loading services/camera/libcameraservice/common/CameraDeviceBase.h +1 −1 Original line number Diff line number Diff line Loading @@ -113,7 +113,7 @@ class CameraDeviceBase : public virtual FrameProducer { */ virtual const CameraMetadata& infoPhysical(const String8& physicalId) const = 0; virtual bool supportNativeJpegR() const { return false; }; virtual bool isCompositeJpegRDisabled() const { return false; }; struct PhysicalCameraSettings { std::string cameraId; Loading services/camera/libcameraservice/common/CameraProviderManager.cpp +17 −5 Original line number Diff line number Diff line Loading @@ -316,16 +316,16 @@ bool CameraProviderManager::supportNativeZoomRatio(const std::string &id) const return deviceInfo->supportNativeZoomRatio(); } bool CameraProviderManager::supportNativeJpegR(const std::string &id) const { bool CameraProviderManager::isCompositeJpegRDisabled(const std::string &id) const { std::lock_guard<std::mutex> lock(mInterfaceMutex); return supportNativeJpegRLocked(id); return isCompositeJpegRDisabledLocked(id); } bool CameraProviderManager::supportNativeJpegRLocked(const std::string &id) const { bool CameraProviderManager::isCompositeJpegRDisabledLocked(const std::string &id) const { auto deviceInfo = findDeviceInfoLocked(id); if (deviceInfo == nullptr) return false; return deviceInfo->supportNativeJpegR(); return deviceInfo->isCompositeJpegRDisabled(); } status_t CameraProviderManager::getResourceCost(const std::string &id, Loading Loading @@ -1120,7 +1120,7 @@ bool CameraProviderManager::isConcurrentDynamicRangeCaptureSupported( } status_t CameraProviderManager::ProviderInfo::DeviceInfo3::deriveJpegRTags(bool maxResolution) { if (kFrameworkJpegRDisabled || mSupportsNativeJpegR) { if (kFrameworkJpegRDisabled || mCompositeJpegRDisabled) { return OK; } Loading Loading @@ -1166,6 +1166,18 @@ status_t CameraProviderManager::ProviderInfo::DeviceInfo3::deriveJpegRTags(bool return OK; } if (!isConcurrentDynamicRangeCaptureSupported(c, ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_HLG10, ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_STANDARD) && !property_get_bool("ro.camera.enableCompositeAPI0JpegR", false)) { // API0, P010 only Jpeg/R support is meant to be used only as a reference due to possible // impact on quality and performance. // This data path will be turned off by default and individual device builds must enable // 'ro.camera.enableCompositeAPI0JpegR' in order to experiment using it. mCompositeJpegRDisabled = true; return OK; } getSupportedSizes(c, scalerSizesTag, static_cast<android_pixel_format_t>(HAL_PIXEL_FORMAT_BLOB), &supportedBlobSizes); getSupportedSizes(c, scalerSizesTag, Loading services/camera/libcameraservice/common/CameraProviderManager.h +6 −6 Original line number Diff line number Diff line Loading @@ -248,9 +248,9 @@ public: bool supportNativeZoomRatio(const std::string &id) const; /** * Return true if the camera device has native Jpeg/R support. * Return true if the camera device has no composite Jpeg/R support. */ bool supportNativeJpegR(const std::string &id) const; bool isCompositeJpegRDisabled(const std::string &id) const; /** * Return the resource cost of this camera device Loading Loading @@ -573,7 +573,7 @@ private: bool hasFlashUnit() const { return mHasFlashUnit; } bool supportNativeZoomRatio() const { return mSupportNativeZoomRatio; } bool supportNativeJpegR() const { return mSupportsNativeJpegR; } bool isCompositeJpegRDisabled() const { return mCompositeJpegRDisabled; } virtual status_t setTorchMode(bool enabled) = 0; virtual status_t turnOnTorchWithStrengthLevel(int32_t torchStrength) = 0; virtual status_t getTorchStrengthLevel(int32_t *torchStrength) = 0; Loading Loading @@ -615,14 +615,14 @@ private: mParentProvider(parentProvider), mTorchStrengthLevel(0), mTorchMaximumStrengthLevel(0), mTorchDefaultStrengthLevel(0), mHasFlashUnit(false), mSupportNativeZoomRatio(false), mPublicCameraIds(publicCameraIds), mSupportsNativeJpegR(false) {} mPublicCameraIds(publicCameraIds), mCompositeJpegRDisabled(false) {} virtual ~DeviceInfo() {} protected: bool mHasFlashUnit; // const after constructor bool mSupportNativeZoomRatio; // const after constructor const std::vector<std::string>& mPublicCameraIds; bool mSupportsNativeJpegR; bool mCompositeJpegRDisabled; }; std::vector<std::unique_ptr<DeviceInfo>> mDevices; std::unordered_set<std::string> mUniqueCameraIds; Loading Loading @@ -811,7 +811,7 @@ private: // No guarantees on the order of traversal ProviderInfo::DeviceInfo* findDeviceInfoLocked(const std::string& id) const; bool supportNativeJpegRLocked(const std::string &id) const; bool isCompositeJpegRDisabledLocked(const std::string &id) const; // Map external providers to USB devices in order to handle USB hotplug // events for lazy HALs Loading services/camera/libcameraservice/common/aidl/AidlProviderInfo.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -483,7 +483,7 @@ AidlProviderInfo::AidlDeviceInfo3::AidlDeviceInfo3( } } mSupportsNativeJpegR = mCameraCharacteristics.exists( mCompositeJpegRDisabled = mCameraCharacteristics.exists( ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS); mSystemCameraKind = getSystemCameraKind(); Loading Loading @@ -735,7 +735,7 @@ status_t AidlProviderInfo::AidlDeviceInfo3::isSessionConfigurationSupported( camera::device::StreamConfiguration streamConfiguration; bool earlyExit = false; auto bRes = SessionConfigurationUtils::convertToHALStreamCombination(configuration, String8(mId.c_str()), mCameraCharacteristics, mSupportsNativeJpegR, getMetadata, String8(mId.c_str()), mCameraCharacteristics, mCompositeJpegRDisabled, getMetadata, mPhysicalIds, streamConfiguration, overrideForPerfClass, &earlyExit); if (!bRes.isOk()) { Loading Loading @@ -802,7 +802,7 @@ status_t AidlProviderInfo::convertToAidlHALStreamCombinationAndCameraIdsLocked( SessionConfigurationUtils::convertToHALStreamCombination( cameraIdAndSessionConfig.mSessionConfiguration, String8(cameraId.c_str()), deviceInfo, mManager->supportNativeJpegRLocked(cameraId), getMetadata, mManager->isCompositeJpegRDisabledLocked(cameraId), getMetadata, physicalCameraIds, streamConfiguration, overrideForPerfClass, &shouldExit); if (!bStatus.isOk()) { Loading Loading
services/camera/libcameraservice/api2/CameraDeviceClient.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -957,7 +957,7 @@ binder::Status CameraDeviceClient::createStream( bool isHeicCompositeStream = camera3::HeicCompositeStream::isHeicCompositeStream(surfaces[0]); bool isJpegRCompositeStream = camera3::JpegRCompositeStream::isJpegRCompositeStream(surfaces[0]) && !mDevice->supportNativeJpegR(); !mDevice->isCompositeJpegRDisabled(); if (isDepthCompositeStream || isHeicCompositeStream || isJpegRCompositeStream) { sp<CompositeStream> compositeStream; if (isDepthCompositeStream) { Loading Loading @@ -1851,7 +1851,7 @@ binder::Status CameraDeviceClient::switchToOffline( isCompositeStream = camera3::DepthCompositeStream::isDepthCompositeStream(s) || camera3::HeicCompositeStream::isHeicCompositeStream(s) || (camera3::JpegRCompositeStream::isJpegRCompositeStream(s) && !mDevice->supportNativeJpegR()); !mDevice->isCompositeJpegRDisabled()); if (isCompositeStream) { auto compositeIdx = mCompositeStreamMap.indexOfKey(IInterface::asBinder(gbp)); if (compositeIdx == NAME_NOT_FOUND) { Loading
services/camera/libcameraservice/common/CameraDeviceBase.h +1 −1 Original line number Diff line number Diff line Loading @@ -113,7 +113,7 @@ class CameraDeviceBase : public virtual FrameProducer { */ virtual const CameraMetadata& infoPhysical(const String8& physicalId) const = 0; virtual bool supportNativeJpegR() const { return false; }; virtual bool isCompositeJpegRDisabled() const { return false; }; struct PhysicalCameraSettings { std::string cameraId; Loading
services/camera/libcameraservice/common/CameraProviderManager.cpp +17 −5 Original line number Diff line number Diff line Loading @@ -316,16 +316,16 @@ bool CameraProviderManager::supportNativeZoomRatio(const std::string &id) const return deviceInfo->supportNativeZoomRatio(); } bool CameraProviderManager::supportNativeJpegR(const std::string &id) const { bool CameraProviderManager::isCompositeJpegRDisabled(const std::string &id) const { std::lock_guard<std::mutex> lock(mInterfaceMutex); return supportNativeJpegRLocked(id); return isCompositeJpegRDisabledLocked(id); } bool CameraProviderManager::supportNativeJpegRLocked(const std::string &id) const { bool CameraProviderManager::isCompositeJpegRDisabledLocked(const std::string &id) const { auto deviceInfo = findDeviceInfoLocked(id); if (deviceInfo == nullptr) return false; return deviceInfo->supportNativeJpegR(); return deviceInfo->isCompositeJpegRDisabled(); } status_t CameraProviderManager::getResourceCost(const std::string &id, Loading Loading @@ -1120,7 +1120,7 @@ bool CameraProviderManager::isConcurrentDynamicRangeCaptureSupported( } status_t CameraProviderManager::ProviderInfo::DeviceInfo3::deriveJpegRTags(bool maxResolution) { if (kFrameworkJpegRDisabled || mSupportsNativeJpegR) { if (kFrameworkJpegRDisabled || mCompositeJpegRDisabled) { return OK; } Loading Loading @@ -1166,6 +1166,18 @@ status_t CameraProviderManager::ProviderInfo::DeviceInfo3::deriveJpegRTags(bool return OK; } if (!isConcurrentDynamicRangeCaptureSupported(c, ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_HLG10, ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_STANDARD) && !property_get_bool("ro.camera.enableCompositeAPI0JpegR", false)) { // API0, P010 only Jpeg/R support is meant to be used only as a reference due to possible // impact on quality and performance. // This data path will be turned off by default and individual device builds must enable // 'ro.camera.enableCompositeAPI0JpegR' in order to experiment using it. mCompositeJpegRDisabled = true; return OK; } getSupportedSizes(c, scalerSizesTag, static_cast<android_pixel_format_t>(HAL_PIXEL_FORMAT_BLOB), &supportedBlobSizes); getSupportedSizes(c, scalerSizesTag, Loading
services/camera/libcameraservice/common/CameraProviderManager.h +6 −6 Original line number Diff line number Diff line Loading @@ -248,9 +248,9 @@ public: bool supportNativeZoomRatio(const std::string &id) const; /** * Return true if the camera device has native Jpeg/R support. * Return true if the camera device has no composite Jpeg/R support. */ bool supportNativeJpegR(const std::string &id) const; bool isCompositeJpegRDisabled(const std::string &id) const; /** * Return the resource cost of this camera device Loading Loading @@ -573,7 +573,7 @@ private: bool hasFlashUnit() const { return mHasFlashUnit; } bool supportNativeZoomRatio() const { return mSupportNativeZoomRatio; } bool supportNativeJpegR() const { return mSupportsNativeJpegR; } bool isCompositeJpegRDisabled() const { return mCompositeJpegRDisabled; } virtual status_t setTorchMode(bool enabled) = 0; virtual status_t turnOnTorchWithStrengthLevel(int32_t torchStrength) = 0; virtual status_t getTorchStrengthLevel(int32_t *torchStrength) = 0; Loading Loading @@ -615,14 +615,14 @@ private: mParentProvider(parentProvider), mTorchStrengthLevel(0), mTorchMaximumStrengthLevel(0), mTorchDefaultStrengthLevel(0), mHasFlashUnit(false), mSupportNativeZoomRatio(false), mPublicCameraIds(publicCameraIds), mSupportsNativeJpegR(false) {} mPublicCameraIds(publicCameraIds), mCompositeJpegRDisabled(false) {} virtual ~DeviceInfo() {} protected: bool mHasFlashUnit; // const after constructor bool mSupportNativeZoomRatio; // const after constructor const std::vector<std::string>& mPublicCameraIds; bool mSupportsNativeJpegR; bool mCompositeJpegRDisabled; }; std::vector<std::unique_ptr<DeviceInfo>> mDevices; std::unordered_set<std::string> mUniqueCameraIds; Loading Loading @@ -811,7 +811,7 @@ private: // No guarantees on the order of traversal ProviderInfo::DeviceInfo* findDeviceInfoLocked(const std::string& id) const; bool supportNativeJpegRLocked(const std::string &id) const; bool isCompositeJpegRDisabledLocked(const std::string &id) const; // Map external providers to USB devices in order to handle USB hotplug // events for lazy HALs Loading
services/camera/libcameraservice/common/aidl/AidlProviderInfo.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -483,7 +483,7 @@ AidlProviderInfo::AidlDeviceInfo3::AidlDeviceInfo3( } } mSupportsNativeJpegR = mCameraCharacteristics.exists( mCompositeJpegRDisabled = mCameraCharacteristics.exists( ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS); mSystemCameraKind = getSystemCameraKind(); Loading Loading @@ -735,7 +735,7 @@ status_t AidlProviderInfo::AidlDeviceInfo3::isSessionConfigurationSupported( camera::device::StreamConfiguration streamConfiguration; bool earlyExit = false; auto bRes = SessionConfigurationUtils::convertToHALStreamCombination(configuration, String8(mId.c_str()), mCameraCharacteristics, mSupportsNativeJpegR, getMetadata, String8(mId.c_str()), mCameraCharacteristics, mCompositeJpegRDisabled, getMetadata, mPhysicalIds, streamConfiguration, overrideForPerfClass, &earlyExit); if (!bRes.isOk()) { Loading Loading @@ -802,7 +802,7 @@ status_t AidlProviderInfo::convertToAidlHALStreamCombinationAndCameraIdsLocked( SessionConfigurationUtils::convertToHALStreamCombination( cameraIdAndSessionConfig.mSessionConfiguration, String8(cameraId.c_str()), deviceInfo, mManager->supportNativeJpegRLocked(cameraId), getMetadata, mManager->isCompositeJpegRDisabledLocked(cameraId), getMetadata, physicalCameraIds, streamConfiguration, overrideForPerfClass, &shouldExit); if (!bStatus.isOk()) { Loading