[libcamera-devel] [PATCH] qcam: main: Cache lookup of role property

Niklas Söderlund niklas.soderlund at ragnatech.se
Mon Mar 23 13:52:25 CET 2020


Hi Laurent,

On 2020-03-23 12:40:25 +0200, Laurent Pinchart wrote:
> This should obviously have s/qcam/cam/ in the subject line.

With this fixed and regardless on how you choose to act on Kieran's 
suggestion,

Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>

> 
> 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.
> > 
> > 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";
> > +
> > +			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,
> 
> Laurent Pinchart
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel

-- 
Regards,
Niklas Söderlund


More information about the libcamera-devel mailing list