[libcamera-devel,v2,1/4] libcamera: pipeline: uvcvideo: Treat all UVC cameras as external

Message ID 20200810120406.52654-2-email@uajain.com
State Accepted
Headers show
Series
  • android: Camera hotplug support
Related show

Commit Message

Umang Jain Aug. 10, 2020, 12:04 p.m. UTC
Treat all UVC cameras as external for android framework to know that
they are external.

Signed-off-by: Umang Jain <email@uajain.com>
---
 src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Kieran Bingham Aug. 11, 2020, 2:19 p.m. UTC | #1
Hi Umang,

On 10/08/2020 13:04, Umang Jain wrote:
> Treat all UVC cameras as external for android framework to know that
> they are external.
> 
> Signed-off-by: Umang Jain <email@uajain.com>
> ---
>  src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
> index bc892ec..ed61d12 100644
> --- a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
> +++ b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
> @@ -14,6 +14,7 @@
>  #include <libcamera/camera.h>
>  #include <libcamera/control_ids.h>
>  #include <libcamera/controls.h>
> +#include <libcamera/property_ids.h>
>  #include <libcamera/request.h>
>  #include <libcamera/stream.h>
>  
> @@ -500,6 +501,9 @@ int UVCCameraData::init(MediaEntity *entity)
>  
>  	video_->bufferReady.connect(this, &UVCCameraData::bufferReady);
>  
> +	/* Initialise Camera Property. Treat all UVC cameras as external. */

Probably don't need to say "Initialise Camera Property", but either way.

Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

> +	properties_.set(properties::Location, properties::CameraLocationExternal);
> +
>  	/* Initialise the supported controls. */
>  	ControlInfoMap::Map ctrls;
>  
>
Laurent Pinchart Aug. 11, 2020, 2:42 p.m. UTC | #2
Hello,

On Tue, Aug 11, 2020 at 03:19:24PM +0100, Kieran Bingham wrote:
> On 10/08/2020 13:04, Umang Jain wrote:
> > Treat all UVC cameras as external for android framework to know that
> > they are external.
> > 
> > Signed-off-by: Umang Jain <email@uajain.com>
> > ---
> >  src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 4 ++++
> >  1 file changed, 4 insertions(+)
> > 
> > diff --git a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
> > index bc892ec..ed61d12 100644
> > --- a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
> > +++ b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
> > @@ -14,6 +14,7 @@
> >  #include <libcamera/camera.h>
> >  #include <libcamera/control_ids.h>
> >  #include <libcamera/controls.h>
> > +#include <libcamera/property_ids.h>
> >  #include <libcamera/request.h>
> >  #include <libcamera/stream.h>
> >  
> > @@ -500,6 +501,9 @@ int UVCCameraData::init(MediaEntity *entity)
> >  
> >  	video_->bufferReady.connect(this, &UVCCameraData::bufferReady);
> >  
> > +	/* Initialise Camera Property. Treat all UVC cameras as external. */
> 
> Probably don't need to say "Initialise Camera Property", but either way.

Best would be to add a todo item to explain what will need to change.

	/*
	 * \todo Find a way to tell internal and external UVC cameras apart.
	 * Until then, treat all UVC cameras as external.
	 */

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
> 
> > +	properties_.set(properties::Location, properties::CameraLocationExternal);
> > +
> >  	/* Initialise the supported controls. */
> >  	ControlInfoMap::Map ctrls;
> >
Niklas Söderlund Aug. 13, 2020, 10:31 a.m. UTC | #3
Hi Umang,

Thanks for your work.

On 2020-08-10 12:04:11 +0000, Umang Jain wrote:
> Treat all UVC cameras as external for android framework to know that
> they are external.

nit: I would rewrite this to describe that as we currently have no way 
to determine the location if a UVC camera mark it External to have a 
starting point for the property.

With or without this fixed but with the comments by Kieran and Laurent 
fixed,

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

> 
> Signed-off-by: Umang Jain <email@uajain.com>
> ---
>  src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
> index bc892ec..ed61d12 100644
> --- a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
> +++ b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
> @@ -14,6 +14,7 @@
>  #include <libcamera/camera.h>
>  #include <libcamera/control_ids.h>
>  #include <libcamera/controls.h>
> +#include <libcamera/property_ids.h>
>  #include <libcamera/request.h>
>  #include <libcamera/stream.h>
>  
> @@ -500,6 +501,9 @@ int UVCCameraData::init(MediaEntity *entity)
>  
>  	video_->bufferReady.connect(this, &UVCCameraData::bufferReady);
>  
> +	/* Initialise Camera Property. Treat all UVC cameras as external. */
> +	properties_.set(properties::Location, properties::CameraLocationExternal);
> +
>  	/* Initialise the supported controls. */
>  	ControlInfoMap::Map ctrls;
>  
> -- 
> 2.26.2
> 
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel@lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
Kieran Bingham Aug. 13, 2020, 7:11 p.m. UTC | #4
Hi Umang,

On 13/08/2020 11:31, Niklas Söderlund wrote:
> Hi Umang,
> 
> Thanks for your work.
> 
> On 2020-08-10 12:04:11 +0000, Umang Jain wrote:
>> Treat all UVC cameras as external for android framework to know that
>> they are external.
> 
> nit: I would rewrite this to describe that as we currently have no way 
> to determine the location if a UVC camera mark it External to have a 
> starting point for the property.
> 
> With or without this fixed but with the comments by Kieran and Laurent 
> fixed,
> 
> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>

So, having seen the conflict this might cause with camera naming, I
wonder if we should introduce a new property called "hotpluggable" or
"removable" or such in a separate patch, and then set that property here.

I'm not entirely sure yet, because I fear android expects the difference
to be 'internal/external' rather than 'hotpluggable/not-hotpluggable'.

What do you think ?

--
Kieran



>>
>> Signed-off-by: Umang Jain <email@uajain.com>
>> ---
>>  src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 4 ++++
>>  1 file changed, 4 insertions(+)
>>
>> diff --git a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
>> index bc892ec..ed61d12 100644
>> --- a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
>> +++ b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
>> @@ -14,6 +14,7 @@
>>  #include <libcamera/camera.h>
>>  #include <libcamera/control_ids.h>
>>  #include <libcamera/controls.h>
>> +#include <libcamera/property_ids.h>
>>  #include <libcamera/request.h>
>>  #include <libcamera/stream.h>
>>  
>> @@ -500,6 +501,9 @@ int UVCCameraData::init(MediaEntity *entity)
>>  
>>  	video_->bufferReady.connect(this, &UVCCameraData::bufferReady);
>>  
>> +	/* Initialise Camera Property. Treat all UVC cameras as external. */
>> +	properties_.set(properties::Location, properties::CameraLocationExternal);
>> +
>>  	/* Initialise the supported controls. */
>>  	ControlInfoMap::Map ctrls;
>>  
>> -- 
>> 2.26.2
>>
>> _______________________________________________
>> libcamera-devel mailing list
>> libcamera-devel@lists.libcamera.org
>> https://lists.libcamera.org/listinfo/libcamera-devel
>
Laurent Pinchart Aug. 13, 2020, 7:13 p.m. UTC | #5
Hi Kieran,

On Thu, Aug 13, 2020 at 08:11:18PM +0100, Kieran Bingham wrote:
> On 13/08/2020 11:31, Niklas Söderlund wrote:
> > On 2020-08-10 12:04:11 +0000, Umang Jain wrote:
> >> Treat all UVC cameras as external for android framework to know that
> >> they are external.
> > 
> > nit: I would rewrite this to describe that as we currently have no way 
> > to determine the location if a UVC camera mark it External to have a 
> > starting point for the property.
> > 
> > With or without this fixed but with the comments by Kieran and Laurent 
> > fixed,
> > 
> > Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
> 
> So, having seen the conflict this might cause with camera naming, I
> wonder if we should introduce a new property called "hotpluggable" or
> "removable" or such in a separate patch, and then set that property here.

I'm not sure to follow you, what's the conflict ?

> I'm not entirely sure yet, because I fear android expects the difference
> to be 'internal/external' rather than 'hotpluggable/not-hotpluggable'.

Android expects all internal cameras to not be hotpluggable, and all
external cameras to be hotpluggable.

> What do you think ?
> 
> >> Signed-off-by: Umang Jain <email@uajain.com>
> >> ---
> >>  src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 4 ++++
> >>  1 file changed, 4 insertions(+)
> >>
> >> diff --git a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
> >> index bc892ec..ed61d12 100644
> >> --- a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
> >> +++ b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
> >> @@ -14,6 +14,7 @@
> >>  #include <libcamera/camera.h>
> >>  #include <libcamera/control_ids.h>
> >>  #include <libcamera/controls.h>
> >> +#include <libcamera/property_ids.h>
> >>  #include <libcamera/request.h>
> >>  #include <libcamera/stream.h>
> >>  
> >> @@ -500,6 +501,9 @@ int UVCCameraData::init(MediaEntity *entity)
> >>  
> >>  	video_->bufferReady.connect(this, &UVCCameraData::bufferReady);
> >>  
> >> +	/* Initialise Camera Property. Treat all UVC cameras as external. */
> >> +	properties_.set(properties::Location, properties::CameraLocationExternal);
> >> +
> >>  	/* Initialise the supported controls. */
> >>  	ControlInfoMap::Map ctrls;
> >>
Kieran Bingham Aug. 13, 2020, 7:19 p.m. UTC | #6
On 13/08/2020 20:13, Laurent Pinchart wrote:
> Hi Kieran,
> 
> On Thu, Aug 13, 2020 at 08:11:18PM +0100, Kieran Bingham wrote:
>> On 13/08/2020 11:31, Niklas Söderlund wrote:
>>> On 2020-08-10 12:04:11 +0000, Umang Jain wrote:
>>>> Treat all UVC cameras as external for android framework to know that
>>>> they are external.
>>>
>>> nit: I would rewrite this to describe that as we currently have no way 
>>> to determine the location if a UVC camera mark it External to have a 
>>> starting point for the property.
>>>
>>> With or without this fixed but with the comments by Kieran and Laurent 
>>> fixed,
>>>
>>> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
>>
>> So, having seen the conflict this might cause with camera naming, I
>> wonder if we should introduce a new property called "hotpluggable" or
>> "removable" or such in a separate patch, and then set that property here.
> 
> I'm not sure to follow you, what's the conflict ?
> 
>> I'm not entirely sure yet, because I fear android expects the difference
>> to be 'internal/external' rather than 'hotpluggable/not-hotpluggable'.
> 
> Android expects all internal cameras to not be hotpluggable, and all
> external cameras to be hotpluggable.

You're right, it's not a 'conflict' as such, just very ambiguous naming
in cam: - this is the output I get with this change, and Niklas' naming
series:

./build/src/cam/cam -l

Available cameras:
1: External camera (\_SB_.PCI0.XHC_.RHUB.HS01-1:1.0-041e:406c)
2: External camera (\_SB_.PCI0.XHC_.RHUB.HS05-5:1.0-0408:5251)
3: External camera (\_SB_.PCI0.XHC_.RHUB.HS05-5:1.2-0408:5251)

However this is just the output rendered by cam, which is application
side, so I'm conflating the issue.

Perhaps it really means I think cam should also always display the model
when available ;-)

--
Kieran


> 
>> What do you think ?
>>
>>>> Signed-off-by: Umang Jain <email@uajain.com>
>>>> ---
>>>>  src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 4 ++++
>>>>  1 file changed, 4 insertions(+)
>>>>
>>>> diff --git a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
>>>> index bc892ec..ed61d12 100644
>>>> --- a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
>>>> +++ b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
>>>> @@ -14,6 +14,7 @@
>>>>  #include <libcamera/camera.h>
>>>>  #include <libcamera/control_ids.h>
>>>>  #include <libcamera/controls.h>
>>>> +#include <libcamera/property_ids.h>
>>>>  #include <libcamera/request.h>
>>>>  #include <libcamera/stream.h>
>>>>  
>>>> @@ -500,6 +501,9 @@ int UVCCameraData::init(MediaEntity *entity)
>>>>  
>>>>  	video_->bufferReady.connect(this, &UVCCameraData::bufferReady);
>>>>  
>>>> +	/* Initialise Camera Property. Treat all UVC cameras as external. */
>>>> +	properties_.set(properties::Location, properties::CameraLocationExternal);
>>>> +
>>>>  	/* Initialise the supported controls. */
>>>>  	ControlInfoMap::Map ctrls;
>>>>  
>
Niklas Söderlund Aug. 13, 2020, 7:56 p.m. UTC | #7
Hi Kieran,

On 2020-08-13 20:19:13 +0100, Kieran Bingham wrote:
> 
> 
> On 13/08/2020 20:13, Laurent Pinchart wrote:
> > Hi Kieran,
> > 
> > On Thu, Aug 13, 2020 at 08:11:18PM +0100, Kieran Bingham wrote:
> >> On 13/08/2020 11:31, Niklas Söderlund wrote:
> >>> On 2020-08-10 12:04:11 +0000, Umang Jain wrote:
> >>>> Treat all UVC cameras as external for android framework to know that
> >>>> they are external.
> >>>
> >>> nit: I would rewrite this to describe that as we currently have no way 
> >>> to determine the location if a UVC camera mark it External to have a 
> >>> starting point for the property.
> >>>
> >>> With or without this fixed but with the comments by Kieran and Laurent 
> >>> fixed,
> >>>
> >>> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
> >>
> >> So, having seen the conflict this might cause with camera naming, I
> >> wonder if we should introduce a new property called "hotpluggable" or
> >> "removable" or such in a separate patch, and then set that property here.
> > 
> > I'm not sure to follow you, what's the conflict ?
> > 
> >> I'm not entirely sure yet, because I fear android expects the difference
> >> to be 'internal/external' rather than 'hotpluggable/not-hotpluggable'.
> > 
> > Android expects all internal cameras to not be hotpluggable, and all
> > external cameras to be hotpluggable.
> 
> You're right, it's not a 'conflict' as such, just very ambiguous naming
> in cam: - this is the output I get with this change, and Niklas' naming
> series:
> 
> ./build/src/cam/cam -l
> 
> Available cameras:
> 1: External camera (\_SB_.PCI0.XHC_.RHUB.HS01-1:1.0-041e:406c)
> 2: External camera (\_SB_.PCI0.XHC_.RHUB.HS05-5:1.0-0408:5251)
> 3: External camera (\_SB_.PCI0.XHC_.RHUB.HS05-5:1.2-0408:5251)
> 
> However this is just the output rendered by cam, which is application
> side, so I'm conflating the issue.
> 
> Perhaps it really means I think cam should also always display the model
> when available ;-)

I agree with you, camera names printed with both these series are 
unsuitable for UVC cameras that are hot-pluggable. I think the name for 
UVC cameras that are hot-pluggable should be the model name.

As the exact requirements for how the HAL should select if a camera is 
hot-pluggable are still under debate I think we should merge the series 
as soon as they become ready. The fix for the name generation rule 
change introduce in this series is small and easy to squash in or fix 
on-top, depending on the order the series are ready.

> 
> --
> Kieran
> 
> 
> > 
> >> What do you think ?
> >>
> >>>> Signed-off-by: Umang Jain <email@uajain.com>
> >>>> ---
> >>>>  src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 4 ++++
> >>>>  1 file changed, 4 insertions(+)
> >>>>
> >>>> diff --git a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
> >>>> index bc892ec..ed61d12 100644
> >>>> --- a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
> >>>> +++ b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
> >>>> @@ -14,6 +14,7 @@
> >>>>  #include <libcamera/camera.h>
> >>>>  #include <libcamera/control_ids.h>
> >>>>  #include <libcamera/controls.h>
> >>>> +#include <libcamera/property_ids.h>
> >>>>  #include <libcamera/request.h>
> >>>>  #include <libcamera/stream.h>
> >>>>  
> >>>> @@ -500,6 +501,9 @@ int UVCCameraData::init(MediaEntity *entity)
> >>>>  
> >>>>  	video_->bufferReady.connect(this, &UVCCameraData::bufferReady);
> >>>>  
> >>>> +	/* Initialise Camera Property. Treat all UVC cameras as external. */
> >>>> +	properties_.set(properties::Location, properties::CameraLocationExternal);
> >>>> +
> >>>>  	/* Initialise the supported controls. */
> >>>>  	ControlInfoMap::Map ctrls;
> >>>>  
> > 
> 
> -- 
> Regards
> --
> Kieran
Kieran Bingham Aug. 13, 2020, 8:02 p.m. UTC | #8
Hi Niklas,

On 13/08/2020 20:56, Niklas Söderlund wrote:
> Hi Kieran,
> 
> On 2020-08-13 20:19:13 +0100, Kieran Bingham wrote:
>>
>>
>> On 13/08/2020 20:13, Laurent Pinchart wrote:
>>> Hi Kieran,
>>>
>>> On Thu, Aug 13, 2020 at 08:11:18PM +0100, Kieran Bingham wrote:
>>>> On 13/08/2020 11:31, Niklas Söderlund wrote:
>>>>> On 2020-08-10 12:04:11 +0000, Umang Jain wrote:
>>>>>> Treat all UVC cameras as external for android framework to know that
>>>>>> they are external.
>>>>>
>>>>> nit: I would rewrite this to describe that as we currently have no way 
>>>>> to determine the location if a UVC camera mark it External to have a 
>>>>> starting point for the property.
>>>>>
>>>>> With or without this fixed but with the comments by Kieran and Laurent 
>>>>> fixed,
>>>>>
>>>>> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
>>>>
>>>> So, having seen the conflict this might cause with camera naming, I
>>>> wonder if we should introduce a new property called "hotpluggable" or
>>>> "removable" or such in a separate patch, and then set that property here.
>>>
>>> I'm not sure to follow you, what's the conflict ?
>>>
>>>> I'm not entirely sure yet, because I fear android expects the difference
>>>> to be 'internal/external' rather than 'hotpluggable/not-hotpluggable'.
>>>
>>> Android expects all internal cameras to not be hotpluggable, and all
>>> external cameras to be hotpluggable.
>>
>> You're right, it's not a 'conflict' as such, just very ambiguous naming
>> in cam: - this is the output I get with this change, and Niklas' naming
>> series:
>>
>> ./build/src/cam/cam -l
>>
>> Available cameras:
>> 1: External camera (\_SB_.PCI0.XHC_.RHUB.HS01-1:1.0-041e:406c)
>> 2: External camera (\_SB_.PCI0.XHC_.RHUB.HS05-5:1.0-0408:5251)
>> 3: External camera (\_SB_.PCI0.XHC_.RHUB.HS05-5:1.2-0408:5251)
>>
>> However this is just the output rendered by cam, which is application
>> side, so I'm conflating the issue.
>>
>> Perhaps it really means I think cam should also always display the model
>> when available ;-)
> 
> I agree with you, camera names printed with both these series are 
> unsuitable for UVC cameras that are hot-pluggable. I think the name for 
> UVC cameras that are hot-pluggable should be the model name.
> 
> As the exact requirements for how the HAL should select if a camera is 
> hot-pluggable are still under debate I think we should merge the series 
> as soon as they become ready. The fix for the name generation rule 
> change introduce in this series is small and easy to squash in or fix 
> on-top, depending on the order the series are ready.

Indeed, I think the camera name improvement series is good to go
personally, and is an improvement on what we have right now.

We can reconvene when we work out how this series goes in, or if you
want to predict it and display the model for external camera's that's
fine for me too.

I think that's a good distinction though. For an internal camera, the
location is more important than the model which is not obvious, or clear
to the user.

For external cameras, that's different because the location is less
meaningful, and the model is more meaningful (and visible).


>> --
>> Kieran
>>
>>
>>>
>>>> What do you think ?
>>>>
>>>>>> Signed-off-by: Umang Jain <email@uajain.com>
>>>>>> ---
>>>>>>  src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 4 ++++
>>>>>>  1 file changed, 4 insertions(+)
>>>>>>
>>>>>> diff --git a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
>>>>>> index bc892ec..ed61d12 100644
>>>>>> --- a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
>>>>>> +++ b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
>>>>>> @@ -14,6 +14,7 @@
>>>>>>  #include <libcamera/camera.h>
>>>>>>  #include <libcamera/control_ids.h>
>>>>>>  #include <libcamera/controls.h>
>>>>>> +#include <libcamera/property_ids.h>
>>>>>>  #include <libcamera/request.h>
>>>>>>  #include <libcamera/stream.h>
>>>>>>  
>>>>>> @@ -500,6 +501,9 @@ int UVCCameraData::init(MediaEntity *entity)
>>>>>>  
>>>>>>  	video_->bufferReady.connect(this, &UVCCameraData::bufferReady);
>>>>>>  
>>>>>> +	/* Initialise Camera Property. Treat all UVC cameras as external. */
>>>>>> +	properties_.set(properties::Location, properties::CameraLocationExternal);
>>>>>> +
>>>>>>  	/* Initialise the supported controls. */
>>>>>>  	ControlInfoMap::Map ctrls;
>>>>>>  
>>>
>>
>> -- 
>> Regards
>> --
>> Kieran
>

Patch

diff --git a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
index bc892ec..ed61d12 100644
--- a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
+++ b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
@@ -14,6 +14,7 @@ 
 #include <libcamera/camera.h>
 #include <libcamera/control_ids.h>
 #include <libcamera/controls.h>
+#include <libcamera/property_ids.h>
 #include <libcamera/request.h>
 #include <libcamera/stream.h>
 
@@ -500,6 +501,9 @@  int UVCCameraData::init(MediaEntity *entity)
 
 	video_->bufferReady.connect(this, &UVCCameraData::bufferReady);
 
+	/* Initialise Camera Property. Treat all UVC cameras as external. */
+	properties_.set(properties::Location, properties::CameraLocationExternal);
+
 	/* Initialise the supported controls. */
 	ControlInfoMap::Map ctrls;