android: camera_device: Report number of out streams
Report the number of supported output streams through the ANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS static metadata. The camera HAL currently supports: - 1 optional RAW stream - 2 YUV streams - 1 JPEG stream Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
parent
3535e0c104
commit
eec6c54134
1 changed files with 13 additions and 4 deletions
|
@ -675,10 +675,10 @@ std::tuple<uint32_t, uint32_t> CameraDevice::calculateStaticMetadataSize()
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* \todo Keep this in sync with the actual number of entries.
|
* \todo Keep this in sync with the actual number of entries.
|
||||||
* Currently: 52 entries, 698 bytes of static metadata
|
* Currently: 53 entries, 714 bytes of static metadata
|
||||||
*/
|
*/
|
||||||
uint32_t numEntries = 52;
|
uint32_t numEntries = 53;
|
||||||
uint32_t byteSize = 698;
|
uint32_t byteSize = 714;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Calculate space occupation in bytes for dynamically built metadata
|
* Calculate space occupation in bytes for dynamically built metadata
|
||||||
|
@ -1090,15 +1090,23 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Report if camera supports RAW. */
|
/* Report if camera supports RAW. */
|
||||||
|
bool rawStreamAvailable = false;
|
||||||
std::unique_ptr<CameraConfiguration> cameraConfig =
|
std::unique_ptr<CameraConfiguration> cameraConfig =
|
||||||
camera_->generateConfiguration({ StreamRole::Raw });
|
camera_->generateConfiguration({ StreamRole::Raw });
|
||||||
if (cameraConfig && !cameraConfig->empty()) {
|
if (cameraConfig && !cameraConfig->empty()) {
|
||||||
const PixelFormatInfo &info =
|
const PixelFormatInfo &info =
|
||||||
PixelFormatInfo::info(cameraConfig->at(0).pixelFormat);
|
PixelFormatInfo::info(cameraConfig->at(0).pixelFormat);
|
||||||
if (info.colourEncoding == PixelFormatInfo::ColourEncodingRAW)
|
if (info.colourEncoding == PixelFormatInfo::ColourEncodingRAW) {
|
||||||
|
rawStreamAvailable = true;
|
||||||
availableCapabilities.push_back(ANDROID_REQUEST_AVAILABLE_CAPABILITIES_RAW);
|
availableCapabilities.push_back(ANDROID_REQUEST_AVAILABLE_CAPABILITIES_RAW);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Number of { RAW, YUV, JPEG } supported output streams */
|
||||||
|
int32_t numOutStreams[] = { rawStreamAvailable, 2, 1 };
|
||||||
|
staticMetadata_->addEntry(ANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS,
|
||||||
|
&numOutStreams, 3);
|
||||||
|
|
||||||
staticMetadata_->addEntry(ANDROID_REQUEST_AVAILABLE_CAPABILITIES,
|
staticMetadata_->addEntry(ANDROID_REQUEST_AVAILABLE_CAPABILITIES,
|
||||||
availableCapabilities.data(),
|
availableCapabilities.data(),
|
||||||
availableCapabilities.size());
|
availableCapabilities.size());
|
||||||
|
@ -1150,6 +1158,7 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()
|
||||||
ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL,
|
ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL,
|
||||||
ANDROID_REQUEST_PARTIAL_RESULT_COUNT,
|
ANDROID_REQUEST_PARTIAL_RESULT_COUNT,
|
||||||
ANDROID_REQUEST_PIPELINE_MAX_DEPTH,
|
ANDROID_REQUEST_PIPELINE_MAX_DEPTH,
|
||||||
|
ANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS,
|
||||||
ANDROID_REQUEST_MAX_NUM_INPUT_STREAMS,
|
ANDROID_REQUEST_MAX_NUM_INPUT_STREAMS,
|
||||||
ANDROID_REQUEST_AVAILABLE_CAPABILITIES,
|
ANDROID_REQUEST_AVAILABLE_CAPABILITIES,
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue