[libcamera-devel] [PATCH v3 1/4] libcamera: controls: Define size of array controls as a shape vector
Jacopo Mondi
jacopo at jmondi.org
Tue Apr 26 16:46:08 CEST 2022
Hi Christian
On Tue, Apr 26, 2022 at 12:50:17AM +0100, Christian Rauch via libcamera-devel wrote:
> Hi Paul,
>
> Am 20.04.22 um 03:07 schrieb paul.elder at ideasonboard.com:
> > Hi Christian,
> >
> > On Fri, Apr 08, 2022 at 02:42:28AM +0100, Christian Rauch via libcamera-devel wrote:
> >> This follows the convention in other Tensor APIs. Since all tensors are
> >> represented as a Span with a single dimension, values provided in 'size'
> >> are interpreted as fixed-size Spans, while an empty array ("[]") will be
> >> interpreted as variable-sized Span.
> >
> > I see, so you can just chain comma-separated values to add more
> > dimensions, neat.
> >
> > So if you have a variable-length array of objects of size 3 then you'll
> > have [3,] ? I suppose it's not that bad.
>
> Spans are 1-dimensional for now and all documented dimensions are
> "flattened". Having multiple dimensions is really only useful for
> documentation purposes.
> Once multidimensional Spans or tensors are supported, their
> dimensionality definition could be implemented that way. E.g. "[3,,]"
> could be interpreted as a tensor with fixed-size first dimension and
> variable-sized second and third dimension.
> >
> >>
> >> Signed-off-by: Christian Rauch <Rauch.Christian at gmx.de>
> >
> > By the way, you have a Reviewed-by tag from Jacopo on v1.
>
> I am afraid, I don't know how these things work. Do I just copy & paste
> this into my commit message or do I have to "import" this reviewed
> commit into my branch again?
>
Yes, just copy and paste tags you have received in the new version of
the patch file.
If changes between versions are considerable, you might decide to drop
the tags.
Thanks
j
> Best,
> Christian
> >
> >
> > Paul
> >
> >> ---
> >> src/libcamera/control_ids.yaml | 2 +-
> >> src/libcamera/property_ids.yaml | 4 ++--
> >> 2 files changed, 3 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/src/libcamera/control_ids.yaml b/src/libcamera/control_ids.yaml
> >> index 9d4638ae..c3f593a1 100644
> >> --- a/src/libcamera/control_ids.yaml
> >> +++ b/src/libcamera/control_ids.yaml
> >> @@ -291,7 +291,7 @@ controls:
> >> transformation. The 3x3 matrix is stored in conventional reading
> >> order in an array of 9 floating point values.
> >>
> >> - size: [3x3]
> >> + size: [3,3]
> >>
> >> - ScalerCrop:
> >> type: Rectangle
> >> diff --git a/src/libcamera/property_ids.yaml b/src/libcamera/property_ids.yaml
> >> index 12ecbce5..47c350ed 100644
> >> --- a/src/libcamera/property_ids.yaml
> >> +++ b/src/libcamera/property_ids.yaml
> >> @@ -497,7 +497,7 @@ controls:
> >>
> >> - PixelArrayOpticalBlackRectangles:
> >> type: Rectangle
> >> - size: [n]
> >> + size: []
> >> description: |
> >> The pixel array region(s) which contain optical black pixels
> >> considered valid for calibration purposes.
> >> @@ -592,7 +592,7 @@ controls:
> >>
> >> - PixelArrayActiveAreas:
> >> type: Rectangle
> >> - size: [n]
> >> + size: []
> >> description: |
> >> The PixelArrayActiveAreas property defines the (possibly multiple and
> >> overlapping) portions of the camera sensor readable pixel matrix
> >> --
> >> 2.25.1
> >>
More information about the libcamera-devel
mailing list