android: camera_device: Replace hardcoded stream configuration
Replace the hardcoded stream configuration map with the information collected at CameraDevice initialization time. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
parent
a80d38109f
commit
bde7b98cac
1 changed files with 23 additions and 18 deletions
|
@ -654,23 +654,24 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()
|
||||||
staticMetadata_->addEntry(ANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM,
|
staticMetadata_->addEntry(ANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM,
|
||||||
&maxDigitalZoom, 1);
|
&maxDigitalZoom, 1);
|
||||||
|
|
||||||
std::vector<uint32_t> availableStreamFormats = {
|
std::vector<uint32_t> availableStreamFormats;
|
||||||
ANDROID_SCALER_AVAILABLE_FORMATS_BLOB,
|
availableStreamFormats.reserve(streamConfigurations_.size());
|
||||||
ANDROID_SCALER_AVAILABLE_FORMATS_YCbCr_420_888,
|
std::transform(streamConfigurations_.begin(), streamConfigurations_.end(),
|
||||||
ANDROID_SCALER_AVAILABLE_FORMATS_IMPLEMENTATION_DEFINED,
|
std::back_inserter(availableStreamFormats),
|
||||||
};
|
[](const auto &entry) { return entry.androidScalerCode; });
|
||||||
staticMetadata_->addEntry(ANDROID_SCALER_AVAILABLE_FORMATS,
|
staticMetadata_->addEntry(ANDROID_SCALER_AVAILABLE_FORMATS,
|
||||||
availableStreamFormats.data(),
|
availableStreamFormats.data(),
|
||||||
availableStreamFormats.size());
|
availableStreamFormats.size());
|
||||||
|
|
||||||
std::vector<uint32_t> availableStreamConfigurations = {
|
std::vector<uint32_t> availableStreamConfigurations;
|
||||||
ANDROID_SCALER_AVAILABLE_FORMATS_BLOB, 2560, 1920,
|
availableStreamConfigurations.reserve(streamConfigurations_.size() * 4);
|
||||||
ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT,
|
for (const auto &entry : streamConfigurations_) {
|
||||||
ANDROID_SCALER_AVAILABLE_FORMATS_YCbCr_420_888, 2560, 1920,
|
availableStreamConfigurations.push_back(entry.androidScalerCode);
|
||||||
ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT,
|
availableStreamConfigurations.push_back(entry.resolution.width);
|
||||||
ANDROID_SCALER_AVAILABLE_FORMATS_IMPLEMENTATION_DEFINED, 2560, 1920,
|
availableStreamConfigurations.push_back(entry.resolution.height);
|
||||||
ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT,
|
availableStreamConfigurations.push_back(
|
||||||
};
|
ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT);
|
||||||
|
}
|
||||||
staticMetadata_->addEntry(ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS,
|
staticMetadata_->addEntry(ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS,
|
||||||
availableStreamConfigurations.data(),
|
availableStreamConfigurations.data(),
|
||||||
availableStreamConfigurations.size());
|
availableStreamConfigurations.size());
|
||||||
|
@ -682,11 +683,15 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()
|
||||||
availableStallDurations.data(),
|
availableStallDurations.data(),
|
||||||
availableStallDurations.size());
|
availableStallDurations.size());
|
||||||
|
|
||||||
std::vector<int64_t> minFrameDurations = {
|
/* \todo Collect the minimum frame duration from the camera. */
|
||||||
ANDROID_SCALER_AVAILABLE_FORMATS_BLOB, 2560, 1920, 33333333,
|
std::vector<int64_t> minFrameDurations;
|
||||||
ANDROID_SCALER_AVAILABLE_FORMATS_IMPLEMENTATION_DEFINED, 2560, 1920, 33333333,
|
minFrameDurations.reserve(streamConfigurations_.size() * 4);
|
||||||
ANDROID_SCALER_AVAILABLE_FORMATS_YCbCr_420_888, 2560, 1920, 33333333,
|
for (const auto &entry : streamConfigurations_) {
|
||||||
};
|
minFrameDurations.push_back(entry.androidScalerCode);
|
||||||
|
minFrameDurations.push_back(entry.resolution.width);
|
||||||
|
minFrameDurations.push_back(entry.resolution.height);
|
||||||
|
minFrameDurations.push_back(33333333);
|
||||||
|
}
|
||||||
staticMetadata_->addEntry(ANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS,
|
staticMetadata_->addEntry(ANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS,
|
||||||
minFrameDurations.data(),
|
minFrameDurations.data(),
|
||||||
minFrameDurations.size());
|
minFrameDurations.size());
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue