mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-23 16:45:07 +03:00
android: Populate streams and duration in the same loop
The ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS and ANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS static metadata are populated by looping on the streamConfigurations_ vector. Unify them in a single loop to avoid repeating it. Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
parent
291857a46b
commit
c7bd730e1b
1 changed files with 9 additions and 13 deletions
|
@ -1277,7 +1277,9 @@ int CameraCapabilities::initializeStaticMetadata()
|
|||
maxZoom);
|
||||
|
||||
std::vector<uint32_t> availableStreamConfigurations;
|
||||
std::vector<int64_t> minFrameDurations;
|
||||
availableStreamConfigurations.reserve(streamConfigurations_.size() * 4);
|
||||
minFrameDurations.reserve(streamConfigurations_.size() * 4);
|
||||
for (const auto &entry : streamConfigurations_) {
|
||||
/*
|
||||
* Filter out YUV streams not capable of running at 30 FPS.
|
||||
|
@ -1296,12 +1298,19 @@ int CameraCapabilities::initializeStaticMetadata()
|
|||
if (entry.androidFormat != HAL_PIXEL_FORMAT_BLOB && fps < 30)
|
||||
continue;
|
||||
|
||||
/* Stream configuration map. */
|
||||
availableStreamConfigurations.push_back(entry.androidFormat);
|
||||
availableStreamConfigurations.push_back(entry.resolution.width);
|
||||
availableStreamConfigurations.push_back(entry.resolution.height);
|
||||
availableStreamConfigurations.push_back(
|
||||
ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT);
|
||||
|
||||
/* Per-stream durations. */
|
||||
minFrameDurations.push_back(entry.androidFormat);
|
||||
minFrameDurations.push_back(entry.resolution.width);
|
||||
minFrameDurations.push_back(entry.resolution.height);
|
||||
minFrameDurations.push_back(entry.minFrameDurationNsec);
|
||||
|
||||
LOG(HAL, Debug)
|
||||
<< "Output Stream: " << utils::hex(entry.androidFormat)
|
||||
<< " (" << entry.resolution.toString() << ")["
|
||||
|
@ -1311,19 +1320,6 @@ int CameraCapabilities::initializeStaticMetadata()
|
|||
staticMetadata_->addEntry(ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS,
|
||||
availableStreamConfigurations);
|
||||
|
||||
std::vector<int64_t> minFrameDurations;
|
||||
minFrameDurations.reserve(streamConfigurations_.size() * 4);
|
||||
for (const auto &entry : streamConfigurations_) {
|
||||
unsigned int fps = static_cast<unsigned int>
|
||||
(floor(1e9 / entry.minFrameDurationNsec + 0.05f));
|
||||
if (entry.androidFormat != HAL_PIXEL_FORMAT_BLOB && fps < 30)
|
||||
continue;
|
||||
|
||||
minFrameDurations.push_back(entry.androidFormat);
|
||||
minFrameDurations.push_back(entry.resolution.width);
|
||||
minFrameDurations.push_back(entry.resolution.height);
|
||||
minFrameDurations.push_back(entry.minFrameDurationNsec);
|
||||
}
|
||||
staticMetadata_->addEntry(ANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS,
|
||||
minFrameDurations);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue