android: Refuse Manual template if not supported

If the camera devices does not support the MANUAL_SENSOR capabilities
there is no point in generating a request template for the Manual
capture use case.

This change fixes CTS tests
android.hardware.camera2.cts.CameraDeviceTest#testCameraDeviceManualTemplate
android.hardware.camera2.cts.NativeCameraDeviceTest#testCameraDeviceCreateCaptureRequest

For devices that do not support MANUAL_SENSOR capabilities.

Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Jacopo Mondi 2021-08-26 23:36:30 +02:00
parent 5fc426fbfe
commit 88009711be
2 changed files with 9 additions and 4 deletions

View file

@ -1271,13 +1271,12 @@ int CameraCapabilities::initializeStaticMetadata()
numOutStreams);
/* Check capabilities */
std::set<camera_metadata_enum_android_request_available_capabilities>
capabilities = computeCapabilities();
capabilities_ = computeCapabilities();
std::vector<camera_metadata_enum_android_request_available_capabilities>
capsVec(capabilities.begin(), capabilities.end());
capsVec(capabilities_.begin(), capabilities_.end());
staticMetadata_->addEntry(ANDROID_REQUEST_AVAILABLE_CAPABILITIES, capsVec);
computeHwLevel(capabilities);
computeHwLevel(capabilities_);
staticMetadata_->addEntry(ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL, hwLevel_);
LOG(HAL, Info)
@ -1326,6 +1325,11 @@ PixelFormat CameraCapabilities::toPixelFormat(int format) const
std::unique_ptr<CameraMetadata> CameraCapabilities::requestTemplateManual() const
{
if (!capabilities_.count(ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR)) {
LOG(HAL, Error) << "Manual template not supported";
return nullptr;
}
std::unique_ptr<CameraMetadata> manualTemplate = requestTemplatePreview();
if (!manualTemplate)
return nullptr;