| Message ID | 20260918091835.2332386-2-stefan.klug@ideasonboard.com |
|---|---|
| State | Accepted |
| Headers | show |
| Series |
|
| Related | show |
Quoting Stefan Klug (2026-09-18 10:10:48) > The PixelArrayOpticalBlackRectangles is neither used nor populated > anywhere in libcamera. The definition of it is difficult (due to the > handing of invalid pixels and sensors specifying different OB areas for > different binning modes) and will therefore break on the first real > world use-case. > > Drop it for now. This can be revisited when need arises. > If it's unused, and currently complicates things: this is easy. Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com> > > --- > > Changes in v4: > - Added this patch > --- > src/libcamera/property_ids_core.yaml | 95 ---------------------------- > 1 file changed, 95 deletions(-) > > diff --git a/src/libcamera/property_ids_core.yaml b/src/libcamera/property_ids_core.yaml > index d5b3d309c055..96c7b55d8383 100644 > --- a/src/libcamera/property_ids_core.yaml > +++ b/src/libcamera/property_ids_core.yaml > @@ -496,101 +496,6 @@ controls: > \todo Rename this property to Size once we will have property > categories (i.e. Properties::PixelArray::Size) > > - - PixelArrayOpticalBlackRectangles: > - type: Rectangle > - size: [n] > - description: | > - The pixel array region(s) which contain optical black pixels > - considered valid for calibration purposes. > - > - This property describes the position and size of optical black pixel > - regions in the raw data buffer as stored in memory, which might differ > - from their actual physical location in the pixel array matrix. > - > - It is important to note, in fact, that camera sensors might > - automatically reorder or skip portions of their pixels array matrix when > - transmitting data to the receiver. For instance, a sensor may merge the > - top and bottom optical black rectangles into a single rectangle, > - transmitted at the beginning of the frame. > - > - The pixel array contains several areas with different purposes, > - interleaved by lines and columns which are said not to be valid for > - capturing purposes. Invalid lines and columns are defined as invalid as > - they could be positioned too close to the chip margins or to the optical > - black shielding placed on top of optical black pixels. > - > - PixelArraySize.width > - /----------------------------------------------/ > - x1 x2 > - +--o---------------------------------------o---+ / > - |IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII| | > - |IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII| | > - y1 oIIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOII| | > - |IIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOII| | > - |IIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOII| | > - y2 oIIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOII| | > - |IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII| | > - |IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII| | > - y3 |IIOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOOII| | > - |IIOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOOII| | PixelArraySize.height > - |IIOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOOII| | > - ... ... ... ... ... > - ... ... ... ... ... > - y4 |IIOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOOII| | > - |IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII| | > - |IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII| | > - +----------------------------------------------+ / > - > - The readable pixel array matrix is composed by > - 2 invalid lines (I) > - 4 lines of valid optical black pixels (O) > - 2 invalid lines (I) > - n lines of valid pixel data (P) > - 2 invalid lines (I) > - > - And the position of the optical black pixel rectangles is defined by > - > - PixelArrayOpticalBlackRectangles = { > - { x1, y1, x2 - x1 + 1, y2 - y1 + 1 }, > - { x1, y3, 2, y4 - y3 + 1 }, > - { x2, y3, 2, y4 - y3 + 1 }, > - }; > - > - If the camera, when capturing the full pixel array matrix, automatically > - skips the invalid lines and columns, producing the following data > - buffer, when captured to memory > - > - PixelArraySize.width > - /----------------------------------------------/ > - x1 > - +--------------------------------------------o-+ / > - |OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO| | > - |OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO| | > - |OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO| | > - |OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO| | > - y1 oOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOO| | > - |OOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOO| | > - |OOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOO| | PixelArraySize.height > - ... ... ... ... ... | > - ... ... ... ... ... | > - |OOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOO| | > - |OOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOO| | > - +----------------------------------------------+ / > - > - then the invalid lines and columns should not be reported as part of the > - PixelArraySize property in first place. > - > - In this case, the position of the black pixel rectangles will be > - > - PixelArrayOpticalBlackRectangles = { > - { 0, 0, y1 + 1, PixelArraySize[0] }, > - { 0, y1, 2, PixelArraySize[1] - y1 + 1 }, > - { x1, y1, 2, PixelArraySize[1] - y1 + 1 }, > - }; > - > - \todo Rename this property to Size once we will have property > - categories (i.e. Properties::PixelArray::OpticalBlackRectangles) > - > - PixelArrayActiveAreas: > type: Rectangle > size: [n] > -- > 2.53.0 >
Hi Stefan, Thank you for the patch. On Fri, Sep 18, 2026 at 11:10:48AM +0200, Stefan Klug wrote: > The PixelArrayOpticalBlackRectangles is neither used nor populated > anywhere in libcamera. The definition of it is difficult (due to the > handing of invalid pixels and sensors specifying different OB areas for > different binning modes) and will therefore break on the first real > world use-case. > > Drop it for now. This can be revisited when need arises. > > Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com> > > --- > > Changes in v4: > - Added this patch > --- > src/libcamera/property_ids_core.yaml | 95 ---------------------------- > 1 file changed, 95 deletions(-) > > diff --git a/src/libcamera/property_ids_core.yaml b/src/libcamera/property_ids_core.yaml > index d5b3d309c055..96c7b55d8383 100644 > --- a/src/libcamera/property_ids_core.yaml > +++ b/src/libcamera/property_ids_core.yaml > @@ -496,101 +496,6 @@ controls: > \todo Rename this property to Size once we will have property > categories (i.e. Properties::PixelArray::Size) There are two mentions of black pixels above in PixelArraySize. Those can be addressed in following patches in this series. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > - - PixelArrayOpticalBlackRectangles: > - type: Rectangle > - size: [n] > - description: | > - The pixel array region(s) which contain optical black pixels > - considered valid for calibration purposes. > - > - This property describes the position and size of optical black pixel > - regions in the raw data buffer as stored in memory, which might differ > - from their actual physical location in the pixel array matrix. > - > - It is important to note, in fact, that camera sensors might > - automatically reorder or skip portions of their pixels array matrix when > - transmitting data to the receiver. For instance, a sensor may merge the > - top and bottom optical black rectangles into a single rectangle, > - transmitted at the beginning of the frame. > - > - The pixel array contains several areas with different purposes, > - interleaved by lines and columns which are said not to be valid for > - capturing purposes. Invalid lines and columns are defined as invalid as > - they could be positioned too close to the chip margins or to the optical > - black shielding placed on top of optical black pixels. > - > - PixelArraySize.width > - /----------------------------------------------/ > - x1 x2 > - +--o---------------------------------------o---+ / > - |IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII| | > - |IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII| | > - y1 oIIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOII| | > - |IIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOII| | > - |IIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOII| | > - y2 oIIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOII| | > - |IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII| | > - |IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII| | > - y3 |IIOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOOII| | > - |IIOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOOII| | PixelArraySize.height > - |IIOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOOII| | > - ... ... ... ... ... > - ... ... ... ... ... > - y4 |IIOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOOII| | > - |IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII| | > - |IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII| | > - +----------------------------------------------+ / > - > - The readable pixel array matrix is composed by > - 2 invalid lines (I) > - 4 lines of valid optical black pixels (O) > - 2 invalid lines (I) > - n lines of valid pixel data (P) > - 2 invalid lines (I) > - > - And the position of the optical black pixel rectangles is defined by > - > - PixelArrayOpticalBlackRectangles = { > - { x1, y1, x2 - x1 + 1, y2 - y1 + 1 }, > - { x1, y3, 2, y4 - y3 + 1 }, > - { x2, y3, 2, y4 - y3 + 1 }, > - }; > - > - If the camera, when capturing the full pixel array matrix, automatically > - skips the invalid lines and columns, producing the following data > - buffer, when captured to memory > - > - PixelArraySize.width > - /----------------------------------------------/ > - x1 > - +--------------------------------------------o-+ / > - |OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO| | > - |OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO| | > - |OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO| | > - |OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO| | > - y1 oOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOO| | > - |OOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOO| | > - |OOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOO| | PixelArraySize.height > - ... ... ... ... ... | > - ... ... ... ... ... | > - |OOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOO| | > - |OOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOO| | > - +----------------------------------------------+ / > - > - then the invalid lines and columns should not be reported as part of the > - PixelArraySize property in first place. > - > - In this case, the position of the black pixel rectangles will be > - > - PixelArrayOpticalBlackRectangles = { > - { 0, 0, y1 + 1, PixelArraySize[0] }, > - { 0, y1, 2, PixelArraySize[1] - y1 + 1 }, > - { x1, y1, 2, PixelArraySize[1] - y1 + 1 }, > - }; > - > - \todo Rename this property to Size once we will have property > - categories (i.e. Properties::PixelArray::OpticalBlackRectangles) > - > - PixelArrayActiveAreas: > type: Rectangle > size: [n]
Hi Laurent, Thank you for the review. Quoting Laurent Pinchart (2026-09-23 08:07:23) > Hi Stefan, > > Thank you for the patch. > > On Fri, Sep 18, 2026 at 11:10:48AM +0200, Stefan Klug wrote: > > The PixelArrayOpticalBlackRectangles is neither used nor populated > > anywhere in libcamera. The definition of it is difficult (due to the > > handing of invalid pixels and sensors specifying different OB areas for > > different binning modes) and will therefore break on the first real > > world use-case. > > > > Drop it for now. This can be revisited when need arises. > > > > Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com> > > > > --- > > > > Changes in v4: > > - Added this patch > > --- > > src/libcamera/property_ids_core.yaml | 95 ---------------------------- > > 1 file changed, 95 deletions(-) > > > > diff --git a/src/libcamera/property_ids_core.yaml b/src/libcamera/property_ids_core.yaml > > index d5b3d309c055..96c7b55d8383 100644 > > --- a/src/libcamera/property_ids_core.yaml > > +++ b/src/libcamera/property_ids_core.yaml > > @@ -496,101 +496,6 @@ controls: > > \todo Rename this property to Size once we will have property > > categories (i.e. Properties::PixelArray::Size) > > There are two mentions of black pixels above in PixelArraySize. Those > can be addressed in following patches in this series. Do you mean we should apply additional changes for the following patches? In the final version it says: The PixelArrayReadableArea property defines the rectangle in pixel units of the readable part of full pixel array matrix, including optical black pixels used for calibration I think it is fine to mention the optical black pixels there. We just don't have a property to query the location of those. So I'd keep it as is. > > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Thanks. Best regards, Stefan > > > > > - - PixelArrayOpticalBlackRectangles: > > - type: Rectangle > > - size: [n] > > - description: | > > - The pixel array region(s) which contain optical black pixels > > - considered valid for calibration purposes. > > - > > - This property describes the position and size of optical black pixel > > - regions in the raw data buffer as stored in memory, which might differ > > - from their actual physical location in the pixel array matrix. > > - > > - It is important to note, in fact, that camera sensors might > > - automatically reorder or skip portions of their pixels array matrix when > > - transmitting data to the receiver. For instance, a sensor may merge the > > - top and bottom optical black rectangles into a single rectangle, > > - transmitted at the beginning of the frame. > > - > > - The pixel array contains several areas with different purposes, > > - interleaved by lines and columns which are said not to be valid for > > - capturing purposes. Invalid lines and columns are defined as invalid as > > - they could be positioned too close to the chip margins or to the optical > > - black shielding placed on top of optical black pixels. > > - > > - PixelArraySize.width > > - /----------------------------------------------/ > > - x1 x2 > > - +--o---------------------------------------o---+ / > > - |IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII| | > > - |IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII| | > > - y1 oIIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOII| | > > - |IIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOII| | > > - |IIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOII| | > > - y2 oIIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOII| | > > - |IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII| | > > - |IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII| | > > - y3 |IIOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOOII| | > > - |IIOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOOII| | PixelArraySize.height > > - |IIOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOOII| | > > - ... ... ... ... ... > > - ... ... ... ... ... > > - y4 |IIOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOOII| | > > - |IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII| | > > - |IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII| | > > - +----------------------------------------------+ / > > - > > - The readable pixel array matrix is composed by > > - 2 invalid lines (I) > > - 4 lines of valid optical black pixels (O) > > - 2 invalid lines (I) > > - n lines of valid pixel data (P) > > - 2 invalid lines (I) > > - > > - And the position of the optical black pixel rectangles is defined by > > - > > - PixelArrayOpticalBlackRectangles = { > > - { x1, y1, x2 - x1 + 1, y2 - y1 + 1 }, > > - { x1, y3, 2, y4 - y3 + 1 }, > > - { x2, y3, 2, y4 - y3 + 1 }, > > - }; > > - > > - If the camera, when capturing the full pixel array matrix, automatically > > - skips the invalid lines and columns, producing the following data > > - buffer, when captured to memory > > - > > - PixelArraySize.width > > - /----------------------------------------------/ > > - x1 > > - +--------------------------------------------o-+ / > > - |OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO| | > > - |OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO| | > > - |OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO| | > > - |OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO| | > > - y1 oOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOO| | > > - |OOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOO| | > > - |OOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOO| | PixelArraySize.height > > - ... ... ... ... ... | > > - ... ... ... ... ... | > > - |OOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOO| | > > - |OOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOO| | > > - +----------------------------------------------+ / > > - > > - then the invalid lines and columns should not be reported as part of the > > - PixelArraySize property in first place. > > - > > - In this case, the position of the black pixel rectangles will be > > - > > - PixelArrayOpticalBlackRectangles = { > > - { 0, 0, y1 + 1, PixelArraySize[0] }, > > - { 0, y1, 2, PixelArraySize[1] - y1 + 1 }, > > - { x1, y1, 2, PixelArraySize[1] - y1 + 1 }, > > - }; > > - > > - \todo Rename this property to Size once we will have property > > - categories (i.e. Properties::PixelArray::OpticalBlackRectangles) > > - > > - PixelArrayActiveAreas: > > type: Rectangle > > size: [n] > > -- > Regards, > > Laurent Pinchart
diff --git a/src/libcamera/property_ids_core.yaml b/src/libcamera/property_ids_core.yaml index d5b3d309c055..96c7b55d8383 100644 --- a/src/libcamera/property_ids_core.yaml +++ b/src/libcamera/property_ids_core.yaml @@ -496,101 +496,6 @@ controls: \todo Rename this property to Size once we will have property categories (i.e. Properties::PixelArray::Size) - - PixelArrayOpticalBlackRectangles: - type: Rectangle - size: [n] - description: | - The pixel array region(s) which contain optical black pixels - considered valid for calibration purposes. - - This property describes the position and size of optical black pixel - regions in the raw data buffer as stored in memory, which might differ - from their actual physical location in the pixel array matrix. - - It is important to note, in fact, that camera sensors might - automatically reorder or skip portions of their pixels array matrix when - transmitting data to the receiver. For instance, a sensor may merge the - top and bottom optical black rectangles into a single rectangle, - transmitted at the beginning of the frame. - - The pixel array contains several areas with different purposes, - interleaved by lines and columns which are said not to be valid for - capturing purposes. Invalid lines and columns are defined as invalid as - they could be positioned too close to the chip margins or to the optical - black shielding placed on top of optical black pixels. - - PixelArraySize.width - /----------------------------------------------/ - x1 x2 - +--o---------------------------------------o---+ / - |IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII| | - |IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII| | - y1 oIIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOII| | - |IIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOII| | - |IIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOII| | - y2 oIIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOII| | - |IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII| | - |IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII| | - y3 |IIOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOOII| | - |IIOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOOII| | PixelArraySize.height - |IIOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOOII| | - ... ... ... ... ... - ... ... ... ... ... - y4 |IIOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOOII| | - |IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII| | - |IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII| | - +----------------------------------------------+ / - - The readable pixel array matrix is composed by - 2 invalid lines (I) - 4 lines of valid optical black pixels (O) - 2 invalid lines (I) - n lines of valid pixel data (P) - 2 invalid lines (I) - - And the position of the optical black pixel rectangles is defined by - - PixelArrayOpticalBlackRectangles = { - { x1, y1, x2 - x1 + 1, y2 - y1 + 1 }, - { x1, y3, 2, y4 - y3 + 1 }, - { x2, y3, 2, y4 - y3 + 1 }, - }; - - If the camera, when capturing the full pixel array matrix, automatically - skips the invalid lines and columns, producing the following data - buffer, when captured to memory - - PixelArraySize.width - /----------------------------------------------/ - x1 - +--------------------------------------------o-+ / - |OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO| | - |OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO| | - |OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO| | - |OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO| | - y1 oOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOO| | - |OOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOO| | - |OOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOO| | PixelArraySize.height - ... ... ... ... ... | - ... ... ... ... ... | - |OOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOO| | - |OOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOO| | - +----------------------------------------------+ / - - then the invalid lines and columns should not be reported as part of the - PixelArraySize property in first place. - - In this case, the position of the black pixel rectangles will be - - PixelArrayOpticalBlackRectangles = { - { 0, 0, y1 + 1, PixelArraySize[0] }, - { 0, y1, 2, PixelArraySize[1] - y1 + 1 }, - { x1, y1, 2, PixelArraySize[1] - y1 + 1 }, - }; - - \todo Rename this property to Size once we will have property - categories (i.e. Properties::PixelArray::OpticalBlackRectangles) - - PixelArrayActiveAreas: type: Rectangle size: [n]
The PixelArrayOpticalBlackRectangles is neither used nor populated anywhere in libcamera. The definition of it is difficult (due to the handing of invalid pixels and sensors specifying different OB areas for different binning modes) and will therefore break on the first real world use-case. Drop it for now. This can be revisited when need arises. Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com> --- Changes in v4: - Added this patch --- src/libcamera/property_ids_core.yaml | 95 ---------------------------- 1 file changed, 95 deletions(-)