summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJacopo Mondi <jacopo@jmondi.org>2021-06-30 13:52:14 +0200
committerJacopo Mondi <jacopo@jmondi.org>2021-07-27 12:57:34 +0200
commite1d43481b9fee7675b117952e331e20c7bfbf248 (patch)
treecaba73597bd1e198859b29187284a174513618dd /src
parent9c2f6b973c2c09327c39fee99451286b09be2a99 (diff)
android: capabilities: Use a throw-away config for YUV stream building
When building the list of supported YUV streams in getYUVResolutions() the CameraConfiguration provided by the caller as first parameters is used. As the CameraConfiguration will be later actually applied to the Camera, avoid any possible overlap of the configuration parameters by using a throw-away CameraConfiguration generated for the Viewfinder stream role in getYUVResolutions(). It's also nicer to avoid having two functions with a similar purpose such as getYUVResolutions() and getRawResolutions() with different parameter lists, as the presence of a CameraConfiguration as first parameter might be confusing to the reader. Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
Diffstat (limited to 'src')
-rw-r--r--src/android/camera_capabilities.cpp10
-rw-r--r--src/android/camera_capabilities.h3
2 files changed, 6 insertions, 7 deletions
diff --git a/src/android/camera_capabilities.cpp b/src/android/camera_capabilities.cpp
index 6b5edb66..6543c2bb 100644
--- a/src/android/camera_capabilities.cpp
+++ b/src/android/camera_capabilities.cpp
@@ -138,13 +138,14 @@ int CameraCapabilities::initialize(std::shared_ptr<libcamera::Camera> camera,
return initializeStaticMetadata();
}
-std::vector<Size> CameraCapabilities::getYUVResolutions(CameraConfiguration *cameraConfig,
- const PixelFormat &pixelFormat,
+std::vector<Size> CameraCapabilities::getYUVResolutions(const PixelFormat &pixelFormat,
const std::vector<Size> &resolutions)
{
std::vector<Size> supportedResolutions;
-
+ std::unique_ptr<CameraConfiguration> cameraConfig =
+ camera_->generateConfiguration({ StreamRole::Viewfinder });
StreamConfiguration &cfg = cameraConfig->at(0);
+
for (const Size &res : resolutions) {
cfg.pixelFormat = pixelFormat;
cfg.size = res;
@@ -324,8 +325,7 @@ int CameraCapabilities::initializeStreamConfigurations()
if (info.colourEncoding == PixelFormatInfo::ColourEncodingRAW)
resolutions = getRawResolutions(mappedFormat);
else
- resolutions = getYUVResolutions(cameraConfig.get(),
- mappedFormat,
+ resolutions = getYUVResolutions(mappedFormat,
cameraResolutions);
for (const Size &res : resolutions) {
diff --git a/src/android/camera_capabilities.h b/src/android/camera_capabilities.h
index 4f5be825..e72bf084 100644
--- a/src/android/camera_capabilities.h
+++ b/src/android/camera_capabilities.h
@@ -43,8 +43,7 @@ private:
};
std::vector<libcamera::Size>
- getYUVResolutions(libcamera::CameraConfiguration *cameraConfig,
- const libcamera::PixelFormat &pixelFormat,
+ getYUVResolutions(const libcamera::PixelFormat &pixelFormat,
const std::vector<libcamera::Size> &resolutions);
std::vector<libcamera::Size>
getRawResolutions(const libcamera::PixelFormat &pixelFormat);