mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-16 17:05:08 +03:00
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:
parent
5fc426fbfe
commit
88009711be
2 changed files with 9 additions and 4 deletions
|
@ -1271,13 +1271,12 @@ int CameraCapabilities::initializeStaticMetadata()
|
||||||
numOutStreams);
|
numOutStreams);
|
||||||
|
|
||||||
/* Check capabilities */
|
/* Check capabilities */
|
||||||
std::set<camera_metadata_enum_android_request_available_capabilities>
|
capabilities_ = computeCapabilities();
|
||||||
capabilities = computeCapabilities();
|
|
||||||
std::vector<camera_metadata_enum_android_request_available_capabilities>
|
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);
|
staticMetadata_->addEntry(ANDROID_REQUEST_AVAILABLE_CAPABILITIES, capsVec);
|
||||||
|
|
||||||
computeHwLevel(capabilities);
|
computeHwLevel(capabilities_);
|
||||||
staticMetadata_->addEntry(ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL, hwLevel_);
|
staticMetadata_->addEntry(ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL, hwLevel_);
|
||||||
|
|
||||||
LOG(HAL, Info)
|
LOG(HAL, Info)
|
||||||
|
@ -1326,6 +1325,11 @@ PixelFormat CameraCapabilities::toPixelFormat(int format) const
|
||||||
|
|
||||||
std::unique_ptr<CameraMetadata> CameraCapabilities::requestTemplateManual() 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();
|
std::unique_ptr<CameraMetadata> manualTemplate = requestTemplatePreview();
|
||||||
if (!manualTemplate)
|
if (!manualTemplate)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
|
@ -70,6 +70,7 @@ private:
|
||||||
int orientation_;
|
int orientation_;
|
||||||
bool rawStreamAvailable_;
|
bool rawStreamAvailable_;
|
||||||
camera_metadata_enum_android_info_supported_hardware_level hwLevel_;
|
camera_metadata_enum_android_info_supported_hardware_level hwLevel_;
|
||||||
|
std::set<camera_metadata_enum_android_request_available_capabilities> capabilities_;
|
||||||
|
|
||||||
std::vector<Camera3StreamConfiguration> streamConfigurations_;
|
std::vector<Camera3StreamConfiguration> streamConfigurations_;
|
||||||
std::map<int, libcamera::PixelFormat> formatsMap_;
|
std::map<int, libcamera::PixelFormat> formatsMap_;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue