[libcamera-devel] [PATCH] libcamera: pipeline: uvcvideo: add warning if no default video device is found

Laurent Pinchart laurent.pinchart at ideasonboard.com
Sun Jan 27 21:21:59 CET 2019


Hi Niklas,

On Sun, Jan 27, 2019 at 05:14:52PM +0100, Niklas Söderlund wrote:
> On 2019-01-27 18:04:26 +0200, Laurent Pinchart wrote:
> > On Sun, Jan 27, 2019 at 01:52:06AM +0100, Niklas Söderlund wrote:
> >> If for any reason a default video device is not found in the media graph
> >> the creation of the UVC pipeline silently failed. This is not optimal
> >> when debugging problems with the pipeline, add a warning to notify the
> >> user of the issue.
> >> 
> >> Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> >> ---
> >>  src/libcamera/pipeline/uvcvideo.cpp | 6 ++++++
> >>  1 file changed, 6 insertions(+)
> >> 
> >> diff --git a/src/libcamera/pipeline/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo.cpp
> >> index c51e8bc1f2c2bf25..4ae179d24709c856 100644
> >> --- a/src/libcamera/pipeline/uvcvideo.cpp
> >> +++ b/src/libcamera/pipeline/uvcvideo.cpp
> >> @@ -8,12 +8,15 @@
> >>  #include <libcamera/camera.h>
> >>  
> >>  #include "device_enumerator.h"
> >> +#include "log.h"
> >>  #include "media_device.h"
> >>  #include "pipeline_handler.h"
> >>  #include "v4l2_device.h"
> >>  
> >>  namespace libcamera {
> >>  
> >> +LOG_DEFINE_CATEGORY(UVC)
> >> +
> >>  class PipelineHandlerUVC : public PipelineHandler
> >>  {
> >>  public:
> >> @@ -60,6 +63,9 @@ bool PipelineHandlerUVC::match(DeviceEnumerator *enumerator)
> >>  	}
> >>  
> >>  	if (!video_ || video_->open()) {
> >> +		if (!video_)
> >> +			LOG(UVC, Warning) << "Could not find a default video device";
> > 
> > I'd make it an error, as it's quite fatal. I think we should also log a
> > message in the video_->open() failure case, as that's equally fatal (the
> > permissions denied case is especially important).
> 
> I will make it an error.
> 
> Regarding logging the failure of video_->open() this already happens in 
> V4L2Device::open(). I'm open to a discussion of adding logging in each 
> pipeline handler for the open call, my initial position is however that 
> it would add little of value as such an error is already logged. What is 
> the rest of the groups view?

I agree with you, it's best to handle as much as possible in the
libcamera core to minimize the potential issues in the pipeline
handlers.

> >> +
> >>  		media_->release();
> >>  		return false;
> >>  	}

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list