[libcamera-devel] [PATCH v7 0/8] 2D transforms

Laurent Pinchart laurent.pinchart at ideasonboard.com
Sun Sep 6 02:44:57 CEST 2020


Hi David,

On Fri, Sep 04, 2020 at 11:30:34AM +0100, David Plowman wrote:
> Hi everyone
> 
> Thanks for the various comments from Kieran since last time. The
> latest version I think incorporates that feedback - I moved the
> combinedTransform_ field into the RPiCameraConfiguration, and removed
> that extra one I had called userTransform_ because it's the same as
> the field already named transform. Apart from that everything else is
> unchanged, except for maybe a couple of improved comments. So still 8
> separate commits as last time:
> 
> 1. The revert commit - unchanged.
> 
> 2. V4L2Device::controlInfo method - unchanged.
> 
> 3. Transform enum - unchanged.
> 
> 4. BayerFormat class - unchanged apart from cosmetic tidying as per
> feedback.
> 
> 5. Add transform to CameraConfiguration - unchanged.
> 
> 6. This is where combinedTransform_ moves into the
> RPiCameraConfiguration, and userTransform_ is deleted (being just a
> duplicate of the transform field).
> 
> 7 and 8. Unchanged.
> 
> I think that's it!

Nice work, it's nice to see pieces falling into place. The BayerFormat
class is a good addition, I think we'll end up extending it to support
PixelFormat in addition to V4L2PixelFormat.

The patches are mostly OK. I thought I could handle the last few fixups
myself when applying (after getting your feedback on a few questions),
but patch 4/8 needs a bit more refactoring, so if you don't mind a (I
believe final) v8 would probably be best.

> David Plowman (8):
>   libcamera: pipeline: raspberrypi: Revert "Set sensor default
>     orientation before configure()"
>   libcamera: Allow access to v4l2_query_ext_ctrl structure for a V4L2
>     control
>   libcamera: Add Transform enum to represent 2D plane transforms.
>   libcamera: Add BayerFormat type
>   libcamera: Add user Transform to CameraConfiguration
>   libcamera: raspberrypi: Set camera flips correctly from user transform
>   libcamera: raspberrypi: Plumb user transform through to IPA
>   libcamera: ipa: raspberrypi: ALSC: Handle user transform
> 
>  include/libcamera/camera.h                    |   3 +
>  include/libcamera/internal/bayer_format.h     |  60 ++++
>  include/libcamera/internal/v4l2_device.h      |   2 +
>  include/libcamera/meson.build                 |   1 +
>  include/libcamera/transform.h                 |  78 +++++
>  src/ipa/raspberrypi/controller/camera_mode.h  |   4 +
>  src/ipa/raspberrypi/controller/rpi/alsc.cpp   |  13 +-
>  src/ipa/raspberrypi/raspberrypi.cpp           |  48 +--
>  src/libcamera/bayer_format.cpp                | 231 +++++++++++++
>  src/libcamera/camera.cpp                      |  16 +-
>  src/libcamera/meson.build                     |   2 +
>  src/libcamera/pipeline/ipu3/ipu3.cpp          |   5 +
>  .../pipeline/raspberrypi/raspberrypi.cpp      | 155 ++++++++-
>  src/libcamera/pipeline/rkisp1/rkisp1.cpp      |   5 +
>  src/libcamera/pipeline/simple/simple.cpp      |   5 +
>  src/libcamera/pipeline/uvcvideo/uvcvideo.cpp  |   5 +
>  src/libcamera/pipeline/vimc/vimc.cpp          |   5 +
>  src/libcamera/transform.cpp                   | 322 ++++++++++++++++++
>  src/libcamera/v4l2_device.cpp                 |  15 +
>  19 files changed, 941 insertions(+), 34 deletions(-)
>  create mode 100644 include/libcamera/internal/bayer_format.h
>  create mode 100644 include/libcamera/transform.h
>  create mode 100644 src/libcamera/bayer_format.cpp
>  create mode 100644 src/libcamera/transform.cpp

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list