[libcamera-devel] [PATCH] qcam: main: Cache lookup of role property
Kieran Bingham
kieran.bingham at ideasonboard.com
Mon Mar 23 12:00:47 CET 2020
Hi Laurent,
On 23/03/2020 10:40, Laurent Pinchart wrote:
> This should obviously have s/qcam/cam/ in the subject line.
>
> On Mon, Mar 23, 2020 at 12:39:38PM +0200, Laurent Pinchart wrote:
>> The code handling the stream role option retrieves the role property and
>> converts it to a string in every branch. Cache it and use the cached
>> value.
>>
Trivial suggestion, but otherwise LGTM.
Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
>> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
>> ---
>> src/cam/main.cpp | 16 ++++++++++------
>> 1 file changed, 10 insertions(+), 6 deletions(-)
>>
>> diff --git a/src/cam/main.cpp b/src/cam/main.cpp
>> index 2a0a830ff371..56059ab6c047 100644
>> --- a/src/cam/main.cpp
>> +++ b/src/cam/main.cpp
>> @@ -209,17 +209,21 @@ int CamApp::prepareConfig()
>> for (auto const &value : streamOptions) {
>> KeyValueParser::Options opt = value.toKeyValues();
>>
>> - if (!opt.isSet("role")) {
>> - roles.push_back(StreamRole::VideoRecording);
>> - } else if (opt["role"].toString() == "viewfinder") {
>> + std::string role;
>> + if (opt.isSet("role"))
>> + role = opt["role"].toString();
>> + else
>> + role = "viewfinder";
That almost looks worth a tertiary to make it a single line?
role = opt.isSet("role") ? opt["role"].toString() : "viewfinder";
?
>> +
>> + if (role == "viewfinder") {
>> roles.push_back(StreamRole::Viewfinder);
>> - } else if (opt["role"].toString() == "video") {
>> + } else if (role == "video") {
>> roles.push_back(StreamRole::VideoRecording);
>> - } else if (opt["role"].toString() == "still") {
>> + } else if (role == "still") {
>> roles.push_back(StreamRole::StillCapture);
>> } else {
>> std::cerr << "Unknown stream role "
>> - << opt["role"].toString() << std::endl;
>> + << role << std::endl;
>> return -EINVAL;
>> }
>> }
>
--
Regards
--
Kieran
More information about the libcamera-devel
mailing list