[v2,0/8] Signal metadataAvailable and Android partial result
mbox series

Message ID 20241127092632.3145984-1-chenghaoyang@chromium.org
Headers show
Series
  • Signal metadataAvailable and Android partial result
Related show

Message

Cheng-Hao Yang Nov. 27, 2024, 9:25 a.m. UTC
Hi folks,

This series of patches adds a new signal metadataAvailable in
libcamera::Camera, and supports partial result in Android adapter.

Although Android allows a partial result to contain both buffers and
metadata, we probably don't need such a feature. Splitting them into
different partial results should fit both MediaTek's and Intel's
requirements.

This patch passed gitlab pipeline:
https://gitlab.freedesktop.org/chenghaoyang/libcamera/-/pipelines/1317276

There are still some discussion of the new signal in the previous patch,
with Jacopo. I'll update the patch when we reach agreement.

I understand that the last patch is a bit large, while I don't know how
to split that furthermore. Let me know if there are some pieces that can
be standalone patches.

BR,
Harvey


Han-Lin Chen (2):
  libcamera: Camera: Add signals for completion of metadata as a partial
    result
  android: Add JpegExifMetadata to store tags setting into Exif

Harvey Yang (7):
  android: Move StreamBuffer out of Camera3RequestDescriptor
  android: Set StreamBuffer::srcBuffer in
    CameraDevice::processCaptureRequest
  android: Migrate StreamBuffer::internalBuffer to
    Camera3RequestDescriptor
  android: Add CameraDevice::sendCaptureResult()
  android: Cleanup CAMERA3_MSG_ERROR_REQUEST
  android: Remove Camera3RequestDescriptor::streamsProcessMutex_
  android: Support partial results

 include/libcamera/camera.h                    |   1 +
 include/libcamera/internal/pipeline_handler.h |   1 +
 include/libcamera/internal/request.h          |   4 +
 include/libcamera/request.h                   |   1 +
 src/android/camera_capabilities.cpp           |  11 +-
 src/android/camera_capabilities.h             |   2 +
 src/android/camera_device.cpp                 | 926 ++++++++++++------
 src/android/camera_device.h                   |  46 +-
 src/android/camera_request.cpp                |  94 +-
 src/android/camera_request.h                  |  96 +-
 src/android/camera_stream.cpp                 |  20 +-
 src/android/camera_stream.h                   |  10 +-
 src/android/jpeg/encoder.h                    |   2 +-
 src/android/jpeg/encoder_jea.cpp              |   2 +-
 src/android/jpeg/encoder_jea.h                |   2 +-
 src/android/jpeg/encoder_libjpeg.cpp          |   2 +-
 src/android/jpeg/encoder_libjpeg.h            |   2 +-
 src/android/jpeg/post_processor_jpeg.cpp      |  16 +-
 src/android/jpeg/post_processor_jpeg.h        |   2 +-
 src/android/post_processor.h                  |   4 +-
 src/android/yuv/post_processor_yuv.cpp        |   2 +-
 src/android/yuv/post_processor_yuv.h          |   2 +-
 src/libcamera/camera.cpp                      |   6 +
 src/libcamera/pipeline_handler.cpp            |  41 +
 src/libcamera/request.cpp                     |  21 +
 25 files changed, 908 insertions(+), 408 deletions(-)

Comments

Jacopo Mondi Nov. 28, 2024, 9:22 a.m. UTC | #1
Hi Harevy

Please note that our CI system has detected 10 test failures on CTS
when testing this series:
https://gitlab.freedesktop.org/camera/libcamera/-/jobs/67301704
https://yvain.ideasonboard.com/scheduler/job/84

Our baseline with CTS is 7 test failures.

We know CTS failures might be a fluke but I'm wondering if you have
run CTS on your systems and detected similar results or not.

Thanks
  j


On Wed, Nov 27, 2024 at 09:25:50AM +0000, Harvey Yang wrote:
> Hi folks,
>
> This series of patches adds a new signal metadataAvailable in
> libcamera::Camera, and supports partial result in Android adapter.
>
> Although Android allows a partial result to contain both buffers and
> metadata, we probably don't need such a feature. Splitting them into
> different partial results should fit both MediaTek's and Intel's
> requirements.
>
> This patch passed gitlab pipeline:
> https://gitlab.freedesktop.org/chenghaoyang/libcamera/-/pipelines/1317276
>
> There are still some discussion of the new signal in the previous patch,
> with Jacopo. I'll update the patch when we reach agreement.
>
> I understand that the last patch is a bit large, while I don't know how
> to split that furthermore. Let me know if there are some pieces that can
> be standalone patches.
>
> BR,
> Harvey
>
>
> Han-Lin Chen (2):
>   libcamera: Camera: Add signals for completion of metadata as a partial
>     result
>   android: Add JpegExifMetadata to store tags setting into Exif
>
> Harvey Yang (7):
>   android: Move StreamBuffer out of Camera3RequestDescriptor
>   android: Set StreamBuffer::srcBuffer in
>     CameraDevice::processCaptureRequest
>   android: Migrate StreamBuffer::internalBuffer to
>     Camera3RequestDescriptor
>   android: Add CameraDevice::sendCaptureResult()
>   android: Cleanup CAMERA3_MSG_ERROR_REQUEST
>   android: Remove Camera3RequestDescriptor::streamsProcessMutex_
>   android: Support partial results
>
>  include/libcamera/camera.h                    |   1 +
>  include/libcamera/internal/pipeline_handler.h |   1 +
>  include/libcamera/internal/request.h          |   4 +
>  include/libcamera/request.h                   |   1 +
>  src/android/camera_capabilities.cpp           |  11 +-
>  src/android/camera_capabilities.h             |   2 +
>  src/android/camera_device.cpp                 | 926 ++++++++++++------
>  src/android/camera_device.h                   |  46 +-
>  src/android/camera_request.cpp                |  94 +-
>  src/android/camera_request.h                  |  96 +-
>  src/android/camera_stream.cpp                 |  20 +-
>  src/android/camera_stream.h                   |  10 +-
>  src/android/jpeg/encoder.h                    |   2 +-
>  src/android/jpeg/encoder_jea.cpp              |   2 +-
>  src/android/jpeg/encoder_jea.h                |   2 +-
>  src/android/jpeg/encoder_libjpeg.cpp          |   2 +-
>  src/android/jpeg/encoder_libjpeg.h            |   2 +-
>  src/android/jpeg/post_processor_jpeg.cpp      |  16 +-
>  src/android/jpeg/post_processor_jpeg.h        |   2 +-
>  src/android/post_processor.h                  |   4 +-
>  src/android/yuv/post_processor_yuv.cpp        |   2 +-
>  src/android/yuv/post_processor_yuv.h          |   2 +-
>  src/libcamera/camera.cpp                      |   6 +
>  src/libcamera/pipeline_handler.cpp            |  41 +
>  src/libcamera/request.cpp                     |  21 +
>  25 files changed, 908 insertions(+), 408 deletions(-)
>
> --
> 2.47.0.338.g60cca15819-goog
>
Jacopo Mondi Nov. 28, 2024, 12:59 p.m. UTC | #2
A second run of CTS reported 7 failures
https://gitlab.freedesktop.org/camera/libcamera/-/jobs/67365473

The three additional ones were likely flukes then.

On Thu, Nov 28, 2024 at 10:22:23AM +0100, Jacopo Mondi wrote:
> Hi Harevy
>
> Please note that our CI system has detected 10 test failures on CTS
> when testing this series:
> https://gitlab.freedesktop.org/camera/libcamera/-/jobs/67301704
> https://yvain.ideasonboard.com/scheduler/job/84
>
> Our baseline with CTS is 7 test failures.
>
> We know CTS failures might be a fluke but I'm wondering if you have
> run CTS on your systems and detected similar results or not.
>
> Thanks
>   j
>
>
> On Wed, Nov 27, 2024 at 09:25:50AM +0000, Harvey Yang wrote:
> > Hi folks,
> >
> > This series of patches adds a new signal metadataAvailable in
> > libcamera::Camera, and supports partial result in Android adapter.
> >
> > Although Android allows a partial result to contain both buffers and
> > metadata, we probably don't need such a feature. Splitting them into
> > different partial results should fit both MediaTek's and Intel's
> > requirements.
> >
> > This patch passed gitlab pipeline:
> > https://gitlab.freedesktop.org/chenghaoyang/libcamera/-/pipelines/1317276
> >
> > There are still some discussion of the new signal in the previous patch,
> > with Jacopo. I'll update the patch when we reach agreement.
> >
> > I understand that the last patch is a bit large, while I don't know how
> > to split that furthermore. Let me know if there are some pieces that can
> > be standalone patches.
> >
> > BR,
> > Harvey
> >
> >
> > Han-Lin Chen (2):
> >   libcamera: Camera: Add signals for completion of metadata as a partial
> >     result
> >   android: Add JpegExifMetadata to store tags setting into Exif
> >
> > Harvey Yang (7):
> >   android: Move StreamBuffer out of Camera3RequestDescriptor
> >   android: Set StreamBuffer::srcBuffer in
> >     CameraDevice::processCaptureRequest
> >   android: Migrate StreamBuffer::internalBuffer to
> >     Camera3RequestDescriptor
> >   android: Add CameraDevice::sendCaptureResult()
> >   android: Cleanup CAMERA3_MSG_ERROR_REQUEST
> >   android: Remove Camera3RequestDescriptor::streamsProcessMutex_
> >   android: Support partial results
> >
> >  include/libcamera/camera.h                    |   1 +
> >  include/libcamera/internal/pipeline_handler.h |   1 +
> >  include/libcamera/internal/request.h          |   4 +
> >  include/libcamera/request.h                   |   1 +
> >  src/android/camera_capabilities.cpp           |  11 +-
> >  src/android/camera_capabilities.h             |   2 +
> >  src/android/camera_device.cpp                 | 926 ++++++++++++------
> >  src/android/camera_device.h                   |  46 +-
> >  src/android/camera_request.cpp                |  94 +-
> >  src/android/camera_request.h                  |  96 +-
> >  src/android/camera_stream.cpp                 |  20 +-
> >  src/android/camera_stream.h                   |  10 +-
> >  src/android/jpeg/encoder.h                    |   2 +-
> >  src/android/jpeg/encoder_jea.cpp              |   2 +-
> >  src/android/jpeg/encoder_jea.h                |   2 +-
> >  src/android/jpeg/encoder_libjpeg.cpp          |   2 +-
> >  src/android/jpeg/encoder_libjpeg.h            |   2 +-
> >  src/android/jpeg/post_processor_jpeg.cpp      |  16 +-
> >  src/android/jpeg/post_processor_jpeg.h        |   2 +-
> >  src/android/post_processor.h                  |   4 +-
> >  src/android/yuv/post_processor_yuv.cpp        |   2 +-
> >  src/android/yuv/post_processor_yuv.h          |   2 +-
> >  src/libcamera/camera.cpp                      |   6 +
> >  src/libcamera/pipeline_handler.cpp            |  41 +
> >  src/libcamera/request.cpp                     |  21 +
> >  25 files changed, 908 insertions(+), 408 deletions(-)
> >
> > --
> > 2.47.0.338.g60cca15819-goog
> >