[v1,0/2] Clarify rectangle behavior
mbox series

Message ID 20260616120828.375547-1-stefan.klug@ideasonboard.com
Headers show
Series
  • Clarify rectangle behavior
Related show

Message

Stefan Klug June 16, 2026, 12:08 p.m. UTC
Hi all,

This series changes the behavior of PixelArraySize to represent the
physical sensor area instead of the readable pixel area. The reasoning
is explained in a bit more detail in patch 1. Patch 2 is a small cleanup
that also shows how limited the impact on the overall project is.

With these patches applied I am able to draw proper bounding rectangles
in camshark. An implemented is available in
https://gitlab.freedesktop.org/camera/camshark/-/tree/sklug/next?ref_type=heads

Best regards,
Stefan

Stefan Klug (2):
  libcamera: Clarify meaning of PixelArraySize and other rectangles
  libcamera: ipa: core: Rename IPACameraSensorInfo::activeAreaSize to
    pixelArraySize

 include/libcamera/ipa/core.mojom              |   6 +-
 src/ipa/rkisp1/algorithms/lsc.cpp             |   6 +-
 src/ipa/rpi/common/ipa_base.cpp               |   4 +-
 src/libcamera/property_ids_core.yaml          | 116 ++++++++++--------
 src/libcamera/sensor/camera_sensor_legacy.cpp |  28 +++--
 src/libcamera/sensor/camera_sensor_raw.cpp    |  18 ++-
 6 files changed, 96 insertions(+), 82 deletions(-)

Comments

Kieran Bingham July 1, 2026, 6:37 a.m. UTC | #1
Hi Stefan,

I'm trying to test this on a Raspberry Pi 5 and I get this:

root@beehive:~# rpicam-still --list
[2:40:58.858381253] [3075]  INFO IPAProxyRPiWorker raspberrypi_ipa_proxy_worker.cpp:556 Starting worker for IPA module /lib/aarch64-linux-gnu/libcamera/ipa/ipa_rpi_pisp.so with IPC fd = 12
Available cameras
-----------------
0 : imx283 [5496x3694 12-bit RGGB] (/base/axi/pcie@1000120000/rp1/i2c@80000/imx283@1a)
    Modes: 'SRGGB10_CSI2P' : 5472x3648 [30.00 fps - (65535, 65535)/65535x65535 crop]
           'SRGGB12_CSI2P' : 48x3694 [30.00 fps - (65535, 65535)/65535x65535 crop]
                             2736x450 [30.00 fps - (65535, 65535)/65535x65535 crop]
                             4096x450 [30.00 fps - (65535, 65535)/65535x65535 crop]
                             1824x1216 [30.00 fps - (65535, 65535)/65535x65535 crop]
                             5472x450 [30.00 fps - (65535, 65535)/65535x65535 crop]
                             2736x1824 [30.00 fps - (65535, 65535)/65535x65535 crop]
                             2304x3072 [30.00 fps - (65535, 65535)/65535x65535 crop]
                             4096x3072 [30.00 fps - (65535, 65535)/65535x65535 crop]
                             5472x3648 [30.00 fps - (65535, 65535)/65535x65535 crop]
                             5496x3672 [30.00 fps - (65535, 65535)/65535x65535 crop]
                             5496x3694 [30.00 fps - (65535, 65535)/65535x65535 crop]
                             5592x3710 [30.00 fps - (65535, 65535)/65535x65535 crop]


That could potentially be from rpicam-still or otherwise, but reporting
here as I expect we need to make sure that's verified.

Otherwise - looking through - I definitely see the need to be able to
report the full native size! So I look forward to this progressing.

--
Kieran

Quoting Stefan Klug (2026-06-16 13:08:13)
> Hi all,
> 
> This series changes the behavior of PixelArraySize to represent the
> physical sensor area instead of the readable pixel area. The reasoning
> is explained in a bit more detail in patch 1. Patch 2 is a small cleanup
> that also shows how limited the impact on the overall project is.
> 
> With these patches applied I am able to draw proper bounding rectangles
> in camshark. An implemented is available in
> https://gitlab.freedesktop.org/camera/camshark/-/tree/sklug/next?ref_type=heads
> 
> Best regards,
> Stefan
> 
> Stefan Klug (2):
>   libcamera: Clarify meaning of PixelArraySize and other rectangles
>   libcamera: ipa: core: Rename IPACameraSensorInfo::activeAreaSize to
>     pixelArraySize
> 
>  include/libcamera/ipa/core.mojom              |   6 +-
>  src/ipa/rkisp1/algorithms/lsc.cpp             |   6 +-
>  src/ipa/rpi/common/ipa_base.cpp               |   4 +-
>  src/libcamera/property_ids_core.yaml          | 116 ++++++++++--------
>  src/libcamera/sensor/camera_sensor_legacy.cpp |  28 +++--
>  src/libcamera/sensor/camera_sensor_raw.cpp    |  18 ++-
>  6 files changed, 96 insertions(+), 82 deletions(-)
> 
> -- 
> 2.53.0
>
Kieran Bingham July 1, 2026, 6:56 a.m. UTC | #2
Quoting Kieran Bingham (2026-07-01 07:37:34)
> Hi Stefan,
> 
> I'm trying to test this on a Raspberry Pi 5 and I get this:
> 
> root@beehive:~# rpicam-still --list
> [2:40:58.858381253] [3075]  INFO IPAProxyRPiWorker raspberrypi_ipa_proxy_worker.cpp:556 Starting worker for IPA module /lib/aarch64-linux-gnu/libcamera/ipa/ipa_rpi_pisp.so with IPC fd = 12
> Available cameras
> -----------------
> 0 : imx283 [5496x3694 12-bit RGGB] (/base/axi/pcie@1000120000/rp1/i2c@80000/imx283@1a)
>     Modes: 'SRGGB10_CSI2P' : 5472x3648 [30.00 fps - (65535, 65535)/65535x65535 crop]
>            'SRGGB12_CSI2P' : 48x3694 [30.00 fps - (65535, 65535)/65535x65535 crop]
>                              2736x450 [30.00 fps - (65535, 65535)/65535x65535 crop]
>                              4096x450 [30.00 fps - (65535, 65535)/65535x65535 crop]
>                              1824x1216 [30.00 fps - (65535, 65535)/65535x65535 crop]
>                              5472x450 [30.00 fps - (65535, 65535)/65535x65535 crop]
>                              2736x1824 [30.00 fps - (65535, 65535)/65535x65535 crop]
>                              2304x3072 [30.00 fps - (65535, 65535)/65535x65535 crop]
>                              4096x3072 [30.00 fps - (65535, 65535)/65535x65535 crop]
>                              5472x3648 [30.00 fps - (65535, 65535)/65535x65535 crop]
>                              5496x3672 [30.00 fps - (65535, 65535)/65535x65535 crop]
>                              5496x3694 [30.00 fps - (65535, 65535)/65535x65535 crop]
>                              5592x3710 [30.00 fps - (65535, 65535)/65535x65535 crop]
> 
> 
> That could potentially be from rpicam-still or otherwise, but reporting
> here as I expect we need to make sure that's verified.

Uhm ... never mind, please ignore my ignorance - There was a duplicated
install in /usr/local/share/ causing a conflict:

root@beehive:~# rpicam-still --list
[2:59:10.608039049] [3349]  INFO IPAProxyRPiWorker raspberrypi_ipa_proxy_worker.cpp:556 Starting worker for IPA module /lib/aarch64-linux-gnu/libcamera/ipa/ipa_rpi_pisp.so with IPC fd = 12
Available cameras
-----------------
0 : imx283 [5496x3694 12-bit RGGB] (/base/axi/pcie@1000120000/rp1/i2c@80000/imx283@1a)
    Modes: 'SRGGB10_CSI2P' : 5472x3648 [10.62 fps - (108, 36)/5472x3648 crop]
           'SRGGB12_CSI2P' : 48x3694 [10.91 fps - (24, 16)/48x3694 crop]
                             2736x450 [151.06 fps - (108, 1404)/5472x900 crop]
                             4096x450 [79.78 fps - (792, 1632)/4096x450 crop]
                             1824x1216 [49.51 fps - (108, 36)/5472x3648 crop]
                             5472x450 [67.64 fps - (108, 1632)/5472x450 crop]
                             2736x1824 [37.46 fps - (108, 36)/5472x3648 crop]
                             2304x3072 [12.86 fps - (1692, 324)/2304x3072 crop]
                             4096x3072 [15.17 fps - (792, 324)/4096x3072 crop]
                             5472x3648 [10.70 fps - (108, 36)/5472x3648 crop]
                             5496x3672 [10.70 fps - (96, 28)/5496x3672 crop]
                             5496x3694 [10.70 fps - (96, 16)/5496x3694 crop]
                             5592x3710 [10.70 fps - (0, 0)/5592x3710 crop]

Note that 5592x3710 is now at 0,0, and I think that's "correct" in
'native' coordinates.

So now I have to clean up this rootfs ;-)

--
Kieran

> 
> Otherwise - looking through - I definitely see the need to be able to
> report the full native size! So I look forward to this progressing.
> 
> --
> Kieran
> 
> Quoting Stefan Klug (2026-06-16 13:08:13)
> > Hi all,
> > 
> > This series changes the behavior of PixelArraySize to represent the
> > physical sensor area instead of the readable pixel area. The reasoning
> > is explained in a bit more detail in patch 1. Patch 2 is a small cleanup
> > that also shows how limited the impact on the overall project is.
> > 
> > With these patches applied I am able to draw proper bounding rectangles
> > in camshark. An implemented is available in
> > https://gitlab.freedesktop.org/camera/camshark/-/tree/sklug/next?ref_type=heads
> > 
> > Best regards,
> > Stefan
> > 
> > Stefan Klug (2):
> >   libcamera: Clarify meaning of PixelArraySize and other rectangles
> >   libcamera: ipa: core: Rename IPACameraSensorInfo::activeAreaSize to
> >     pixelArraySize
> > 
> >  include/libcamera/ipa/core.mojom              |   6 +-
> >  src/ipa/rkisp1/algorithms/lsc.cpp             |   6 +-
> >  src/ipa/rpi/common/ipa_base.cpp               |   4 +-
> >  src/libcamera/property_ids_core.yaml          | 116 ++++++++++--------
> >  src/libcamera/sensor/camera_sensor_legacy.cpp |  28 +++--
> >  src/libcamera/sensor/camera_sensor_raw.cpp    |  18 ++-
> >  6 files changed, 96 insertions(+), 82 deletions(-)
> > 
> > -- 
> > 2.53.0
> >