[libcamera-devel] [PATCH v3 4/5] libcamera: properties: Provide a Devices camera property

Kieran Bingham kieran.bingham at ideasonboard.com
Mon Jun 12 18:28:19 CEST 2023


Quoting Barnabás Pőcze (2023-06-11 22:46:06)
> Hi
> 
> 
> 2023. május 15., hétfő 14:45 keltezéssel, Kieran Bingham via libcamera-devel <libcamera-devel at lists.libcamera.org> írta:
> 
> > Provide a new Camera property that allows pipeline handlers to list any
> > devices used to operate the device. This allows other frameworks and
> > daemons such as Pipewire to better understand the resources consumed by
> > a Camera and consider ignoring those resources when enumerating camera
> > devices on a system.
> > 
> > Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> > Reviewed-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>
> > ---
> >  src/libcamera/property_ids.yaml | 7 +++++++
> >  1 file changed, 7 insertions(+)
> > 
> > diff --git a/src/libcamera/property_ids.yaml b/src/libcamera/property_ids.yaml
> > index cb55e0ed2283..6141942969f9 100644
> > --- a/src/libcamera/property_ids.yaml
> > +++ b/src/libcamera/property_ids.yaml
> > @@ -690,6 +690,13 @@ controls:
> >          that is twice that of the full resolution mode. This value will be valid
> >          after the configure method has returned successfully.
> > 
> > +  - Devices:
> > +      type: int64_t
> 
> I am wondering why the type is `int64_t`. POSIX only says `dev_t` is an integer type[0].
> Both glibc[1] and musl[2] define it as an unsigned (64-bit) integer (at least as far as I checked).

Indeed every implementation I can see define it as a 64-bit, but the
kernel uses only 32 bits.

This is a libcamera control limitation ultimately, as we don't have
unsigned integer controls. I'm not sure yet if adding would be helpful
or difficult. It might be worth trying out.

--
Kieran



> > +      size: [n]
> > +      description: |
> > +        A list of integer values of type dev_t denoting major and minor device
> > +        number of the underlying devices used in the operation of this camera.
> > +
> >    # ----------------------------------------------------------------------------
> >    # Draft properties section
> > 
> > --
> > 2.34.1
> 
> 
> [0]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_types.h.html#tag_13_67
> [1]: https://sourceware.org/git/?p=glibc.git;a=blob;f=bits/typesizes.h;h=5dd1700649463583c573b95cc6df8ac677316ea9;hb=HEAD#l29
> [2]: https://git.musl-libc.org/cgit/musl/tree/include/alltypes.h.in?id=718f363bc2067b6487900eddc9180c84e7739f80#n31


More information about the libcamera-devel mailing list