qcam: Make use of StreamKeyValueParser

Use the StreamKeyValueParser helper to parse stream configuration from
the command line. This extends qcam to accept role hints and pixel
format in addition to a size.

Currently only one viewfinder stream is supported, add a check to keep
this behavior. Going forward this restriction will be lifted to support
more then one stream.

Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Niklas Söderlund
2020-05-01 12:24:07 +02:00
parent 18cfea19dc
commit d29c321357
4 changed files with 28 additions and 27 deletions
+5 -8
View File
@@ -13,8 +13,9 @@
#include <libcamera/camera_manager.h>
#include "main_window.h"
#include "../cam/options.h"
#include "../cam/stream_options.h"
#include "main_window.h"
void signalHandler(int signal)
{
@@ -24,11 +25,7 @@ void signalHandler(int signal)
OptionsParser::Options parseOptions(int argc, char *argv[])
{
KeyValueParser sizeParser;
sizeParser.addOption("width", OptionInteger, "Width in pixels",
ArgumentRequired);
sizeParser.addOption("height", OptionInteger, "Height in pixels",
ArgumentRequired);
StreamKeyValueParser streamKeyValue;
OptionsParser parser;
parser.addOption(OptCamera, OptionString,
@@ -36,8 +33,8 @@ OptionsParser::Options parseOptions(int argc, char *argv[])
ArgumentRequired, "camera");
parser.addOption(OptHelp, OptionNone, "Display this help message",
"help");
parser.addOption(OptSize, &sizeParser, "Set the stream size",
"size", true);
parser.addOption(OptStream, &streamKeyValue,
"Set configuration of a camera stream", "stream", true);
OptionsParser::Options options = parser.parse(argc, argv);
if (options.isSet(OptHelp))