[libcamera-devel] [PATCH 14/13] apps: qcam: Add option to configure sensor
Kieran Bingham
kieran.bingham at ideasonboard.com
Mon Sep 25 19:09:19 CEST 2023
Add a '-f|--sensor_format' option to qcam to allow forcing a sensor
configuration from the command line.
As an example:
qcam -f width=3840,height=2160,bitDepth=10
Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
---
Extending Jacopo's implementation for cam to qcam
Helpful for testing with visual display of the selected modes.
src/apps/qcam/main.cpp | 3 +++
src/apps/qcam/main_window.cpp | 7 +++++++
src/apps/qcam/main_window.h | 1 +
3 files changed, 11 insertions(+)
diff --git a/src/apps/qcam/main.cpp b/src/apps/qcam/main.cpp
index 36cb93a53701..7e3f252e9f09 100644
--- a/src/apps/qcam/main.cpp
+++ b/src/apps/qcam/main.cpp
@@ -30,6 +30,7 @@ void signalHandler([[maybe_unused]] int signal)
OptionsParser::Options parseOptions(int argc, char *argv[])
{
StreamKeyValueParser streamKeyValue;
+ SensorKeyValueParser sensorKeyValue;
OptionsParser parser;
parser.addOption(OptCamera, OptionString,
@@ -42,6 +43,8 @@ OptionsParser::Options parseOptions(int argc, char *argv[])
"renderer", ArgumentRequired, "renderer");
parser.addOption(OptStream, &streamKeyValue,
"Set configuration of a camera stream", "stream", true);
+ parser.addOption(OptSensorFmt, &sensorKeyValue,
+ "Apply a format to the sensor", "sensor_format", true);
parser.addOption(OptVerbose, OptionNone,
"Print verbose log messages", "verbose");
diff --git a/src/apps/qcam/main_window.cpp b/src/apps/qcam/main_window.cpp
index 0f16c038d516..e7511b4c7aa4 100644
--- a/src/apps/qcam/main_window.cpp
+++ b/src/apps/qcam/main_window.cpp
@@ -414,6 +414,13 @@ int MainWindow::startCapture()
return -EINVAL;
}
+ /* Apply a sensor configuration if requested. */
+ if (SensorKeyValueParser::updateConfiguration(config_.get(),
+ options_[OptSensorFmt])) {
+ qWarning() << "Failed to apply sensor configuration";
+ return -EINVAL;
+ }
+
CameraConfiguration::Status validation = config_->validate();
if (validation == CameraConfiguration::Invalid) {
qWarning() << "Failed to create valid camera configuration";
diff --git a/src/apps/qcam/main_window.h b/src/apps/qcam/main_window.h
index 2e3e1b5c83c2..44646a87cfbf 100644
--- a/src/apps/qcam/main_window.h
+++ b/src/apps/qcam/main_window.h
@@ -42,6 +42,7 @@ enum {
OptHelp = 'h',
OptRenderer = 'r',
OptStream = 's',
+ OptSensorFmt = 'f',
OptVerbose = 'v',
};
--
2.34.1
More information about the libcamera-devel
mailing list