[libcamera-devel,v8,0/8] 2D transforms
mbox series

Message ID 20200907071604.8355-1-david.plowman@raspberrypi.com
Headers show
Series
  • 2D transforms
Related show

Message

David Plowman Sept. 7, 2020, 7:15 a.m. UTC
Hi everyone

Here's version 8 of the 2D transforms, benefitting from the latest
round of reviews from Laurent. Besides a couple of clarifications and
small fixes (discussed in an earlier email) the main changes are to
the BayerFormat class. Here, among other smaller things, I've changed
the "modifiers" to "packing", and added the IPU3 packing type and
formats.

Otherwise the changes have the same format and 8 commits as before.

Thanks and best regards
David

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     |  61 ++++
 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                | 268 +++++++++++++++
 src/libcamera/camera.cpp                      |  16 +-
 src/libcamera/meson.build                     |   2 +
 src/libcamera/pipeline/ipu3/ipu3.cpp          |   5 +
 .../pipeline/raspberrypi/raspberrypi.cpp      | 161 ++++++++-
 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, 985 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

Comments

David Plowman Sept. 21, 2020, 6:20 a.m. UTC | #1
Hi everyone

I was wondering if I could give this one a little nudge, is there
anything else we think we still need to do?

Thanks!
David

David

On Mon, 7 Sep 2020 at 08:16, David Plowman
<david.plowman@raspberrypi.com> wrote:
>
> Hi everyone
>
> Here's version 8 of the 2D transforms, benefitting from the latest
> round of reviews from Laurent. Besides a couple of clarifications and
> small fixes (discussed in an earlier email) the main changes are to
> the BayerFormat class. Here, among other smaller things, I've changed
> the "modifiers" to "packing", and added the IPU3 packing type and
> formats.
>
> Otherwise the changes have the same format and 8 commits as before.
>
> Thanks and best regards
> David
>
> 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     |  61 ++++
>  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                | 268 +++++++++++++++
>  src/libcamera/camera.cpp                      |  16 +-
>  src/libcamera/meson.build                     |   2 +
>  src/libcamera/pipeline/ipu3/ipu3.cpp          |   5 +
>  .../pipeline/raspberrypi/raspberrypi.cpp      | 161 ++++++++-
>  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, 985 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
>
> --
> 2.20.1
>
David Plowman Sept. 27, 2020, 7:48 a.m. UTC | #2
Hi again

Could I perhaps give this set of patches another little nudge, please?

Thanks
David

On Mon, 21 Sep 2020 at 07:20, David Plowman
<david.plowman@raspberrypi.com> wrote:
>
> Hi everyone
>
> I was wondering if I could give this one a little nudge, is there
> anything else we think we still need to do?
>
> Thanks!
> David
>
> David
>
> On Mon, 7 Sep 2020 at 08:16, David Plowman
> <david.plowman@raspberrypi.com> wrote:
> >
> > Hi everyone
> >
> > Here's version 8 of the 2D transforms, benefitting from the latest
> > round of reviews from Laurent. Besides a couple of clarifications and
> > small fixes (discussed in an earlier email) the main changes are to
> > the BayerFormat class. Here, among other smaller things, I've changed
> > the "modifiers" to "packing", and added the IPU3 packing type and
> > formats.
> >
> > Otherwise the changes have the same format and 8 commits as before.
> >
> > Thanks and best regards
> > David
> >
> > 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     |  61 ++++
> >  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                | 268 +++++++++++++++
> >  src/libcamera/camera.cpp                      |  16 +-
> >  src/libcamera/meson.build                     |   2 +
> >  src/libcamera/pipeline/ipu3/ipu3.cpp          |   5 +
> >  .../pipeline/raspberrypi/raspberrypi.cpp      | 161 ++++++++-
> >  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, 985 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
> >
> > --
> > 2.20.1
> >
Kieran Bingham Sept. 28, 2020, 11:34 a.m. UTC | #3
Hi David,

On 27/09/2020 08:48, David Plowman wrote:
> Hi again
> 
> Could I perhaps give this set of patches another little nudge, please?

Thanks - your nudge triggered the appropriate NMI on Laurent, and he's
added tags to the last two remaining patches, with only one small minor
comment.

I've fixed that, and rebased, but there were merge conflicts, due to
Naush's work getting in first.

It's run through a compile test fine, but I was wondering if you could
just test/check the rebasing I've done please?

I've pushed to

  https://github.com/kbingham/libcamera.git rpi/david/2d-transforms

With your ack, I'll push these to master.

Thanks

Kieran


> 
> Thanks
> David
> 
> On Mon, 21 Sep 2020 at 07:20, David Plowman
> <david.plowman@raspberrypi.com> wrote:
>>
>> Hi everyone
>>
>> I was wondering if I could give this one a little nudge, is there
>> anything else we think we still need to do?
>>
>> Thanks!
>> David
>>
>> David
>>
>> On Mon, 7 Sep 2020 at 08:16, David Plowman
>> <david.plowman@raspberrypi.com> wrote:
>>>
>>> Hi everyone
>>>
>>> Here's version 8 of the 2D transforms, benefitting from the latest
>>> round of reviews from Laurent. Besides a couple of clarifications and
>>> small fixes (discussed in an earlier email) the main changes are to
>>> the BayerFormat class. Here, among other smaller things, I've changed
>>> the "modifiers" to "packing", and added the IPU3 packing type and
>>> formats.
>>>
>>> Otherwise the changes have the same format and 8 commits as before.
>>>
>>> Thanks and best regards
>>> David
>>>
>>> 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     |  61 ++++
>>>  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                | 268 +++++++++++++++
>>>  src/libcamera/camera.cpp                      |  16 +-
>>>  src/libcamera/meson.build                     |   2 +
>>>  src/libcamera/pipeline/ipu3/ipu3.cpp          |   5 +
>>>  .../pipeline/raspberrypi/raspberrypi.cpp      | 161 ++++++++-
>>>  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, 985 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
>>>
>>> --
>>> 2.20.1
>>>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel@lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
>
David Plowman Sept. 28, 2020, 4:55 p.m. UTC | #4
Hi Kieran

Thanks very much for doing this. I've taken a look at your branch -
presumably it's only our pipeline handler raspberrypi.c where Naush
and I have been fighting - and it looks good to me. I've also
downloaded and run it - no problems. So:

Acked-by: David Plowman <david.plowman@raspberrypi.com>

Best regards
David

On Mon, 28 Sep 2020 at 12:35, Kieran Bingham
<kieran.bingham@ideasonboard.com> wrote:
>
> Hi David,
>
> On 27/09/2020 08:48, David Plowman wrote:
> > Hi again
> >
> > Could I perhaps give this set of patches another little nudge, please?
>
> Thanks - your nudge triggered the appropriate NMI on Laurent, and he's
> added tags to the last two remaining patches, with only one small minor
> comment.
>
> I've fixed that, and rebased, but there were merge conflicts, due to
> Naush's work getting in first.
>
> It's run through a compile test fine, but I was wondering if you could
> just test/check the rebasing I've done please?
>
> I've pushed to
>
>   https://github.com/kbingham/libcamera.git rpi/david/2d-transforms
>
> With your ack, I'll push these to master.
>
> Thanks
>
> Kieran
>
>
> >
> > Thanks
> > David
> >
> > On Mon, 21 Sep 2020 at 07:20, David Plowman
> > <david.plowman@raspberrypi.com> wrote:
> >>
> >> Hi everyone
> >>
> >> I was wondering if I could give this one a little nudge, is there
> >> anything else we think we still need to do?
> >>
> >> Thanks!
> >> David
> >>
> >> David
> >>
> >> On Mon, 7 Sep 2020 at 08:16, David Plowman
> >> <david.plowman@raspberrypi.com> wrote:
> >>>
> >>> Hi everyone
> >>>
> >>> Here's version 8 of the 2D transforms, benefitting from the latest
> >>> round of reviews from Laurent. Besides a couple of clarifications and
> >>> small fixes (discussed in an earlier email) the main changes are to
> >>> the BayerFormat class. Here, among other smaller things, I've changed
> >>> the "modifiers" to "packing", and added the IPU3 packing type and
> >>> formats.
> >>>
> >>> Otherwise the changes have the same format and 8 commits as before.
> >>>
> >>> Thanks and best regards
> >>> David
> >>>
> >>> 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     |  61 ++++
> >>>  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                | 268 +++++++++++++++
> >>>  src/libcamera/camera.cpp                      |  16 +-
> >>>  src/libcamera/meson.build                     |   2 +
> >>>  src/libcamera/pipeline/ipu3/ipu3.cpp          |   5 +
> >>>  .../pipeline/raspberrypi/raspberrypi.cpp      | 161 ++++++++-
> >>>  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, 985 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
> >>>
> >>> --
> >>> 2.20.1
> >>>
> > _______________________________________________
> > libcamera-devel mailing list
> > libcamera-devel@lists.libcamera.org
> > https://lists.libcamera.org/listinfo/libcamera-devel
> >
>
> --
> Regards
> --
> Kieran