[libcamera-devel,0/5] android: Plumb the YUV processor in
mbox series

Message ID 20220110165524.72978-1-jacopo@jmondi.org
Headers show
Series
  • android: Plumb the YUV processor in
Related show

Message

Jacopo Mondi Jan. 10, 2022, 4:55 p.m. UTC
Hello
   I've started this series by reviewing Hiro's
"[PATCH 1/1] android: camera_device: Configure one stream for identical stream requests"
https://patchwork.libcamera.org/project/libcamera/list/?series=2880

In order to validate my review comments I had to find tests which exercized the
YUV post-processor, and that's the result of the testing process.

I broke Hiro's series in 4 patches and addded one small fix on top.

Tested by running 12 of the tests currently excluded from the libcamera
subplan.

These tests require 3 YUV streams to be supported and where so far excluded for
this reason:

[1/12] android.hardware.camera2.cts.RobustnessTest#testMandatoryOutputCombinations pass
[2/12] android.hardware.cts.CameraTest#testFocusDistances pass
[3/12] android.hardware.cts.CameraTest#testPreviewCallback pass
[4/12] android.hardware.cts.CameraTest#testPreviewCallbackWithBuffer pass
[5/12] android.hardware.cts.CameraTest#testPreviewCallbackWithPicture pass
[6/12] android.hardware.cts.CameraTest#testPreviewFormats pass
[7/12] android.hardware.cts.CameraTest#testPreviewFpsRange pass
[8/12] android.hardware.cts.CameraTest#testSetOneShotPreviewCallback pass
[9/12] android.hardware.cts.CameraTest#testSetPreviewDisplay pass
[10/12] android.hardware.cts.CameraGLTest#testSetPreviewTextureBothCallbacks pass
[11/12] android.hardware.cts.CameraGLTest#testSetPreviewTexturePreviewCallback pass
[12/12] android.hardware.camera2.cts.SurfaceViewPreviewTest#testDeferredSurfaces pass

As an example output from a test run:

-------------------------------------------------------------------------------
INFO HAL camera_device.cpp:569 '\_SB_.PCI0.I2C4.CAM1': Stream #0, direction: Output, width: 1920, height: 1080, format: 0x00000022, rotation: 0, crop_rotate_scale_degrees: 0 (NV12)
INFO HAL camera_device.cpp:569 '\_SB_.PCI0.I2C4.CAM1': Stream #1, direction: Output, width: 1920, height: 1080, format: 0x00000022, rotation: 0, crop_rotate_scale_degrees: 0 (NV12)
INFO HAL camera_device.cpp:569 '\_SB_.PCI0.I2C4.CAM1': Stream #2, direction: Output, width: 2560, height: 1920, format: 0x00000021, rotation: 0, crop_rotate_scale_degrees: 0 (MJPEG)
INFO HAL camera_device.cpp:694 '\_SB_.PCI0.I2C4.CAM1': Adding 2560x1920-NV12 for MJPEG support
DEBUG HAL camera_device.cpp:121 Insert 2560x1920-NV12
DEBUG HAL camera_device.cpp:127 Insert 1920x1080-NV12
INFO Camera camera.cpp:1028 configuring streams: (0) 2560x1920-NV12 (1) 1920x1080-NV12

...

DEBUG HAL camera_device.cpp:951 '\_SB_.PCI0.I2C4.CAM1': Queueing request 138253722276496 with 3 streams
DEBUG HAL camera_device.cpp:1017 '\_SB_.PCI0.I2C4.CAM1': 1 - (1920x1080)[0x00000022] -> (1920x1080)[NV12] (direct)
DEBUG HAL camera_device.cpp:1030 '\_SB_.PCI0.I2C4.CAM1': 2 - (2560x1920)[0x00000021] -> (2560x1920)[NV12] (internal)
DEBUG HAL camera_device.cpp:1063 '\_SB_.PCI0.I2C4.CAM1': 0 - (1920x1080)[0x00000022] -> (1920x1080)[NV12] (mapped)
DEBUG HAL camera_device.cpp:1198 '\_SB_.PCI0.I2C4.CAM1': Request 138253722217920 completed with 2 streams
-------------------------------------------------------------------------------

No regression with the ordinary CTS libcamera plan

=============== Summary ===============
Total Run time: 19m 51s
1/1 modules completed
Total Tests       : 231
PASSED            : 231
FAILED            : 0
============== End of Results ==============

Thanks
   j


Hirokazu Honda (2):
  android: camera_stream: Add sourceStream
  android: camera_device: Use YUV post-processor

Jacopo Mondi (3):
  android: camera_stream: Create allocator unconditionally
  android: camera_device: Post-pone mapped streams handling
  android: camera_device: Print the correct number of completed streams

 src/android/camera_device.cpp | 124 ++++++++++++++++++++++++++++++----
 src/android/camera_stream.cpp |  12 ++--
 src/android/camera_stream.h   |   6 +-
 3 files changed, 122 insertions(+), 20 deletions(-)

--
2.34.1

Comments

Hirokazu Honda Jan. 12, 2022, 7:33 a.m. UTC | #1
Thanks Jacopo for sorting out, splitting and testing!

On Tue, Jan 11, 2022 at 1:54 AM Jacopo Mondi <jacopo@jmondi.org> wrote:
>
> Hello
>    I've started this series by reviewing Hiro's
> "[PATCH 1/1] android: camera_device: Configure one stream for identical stream requests"
> https://patchwork.libcamera.org/project/libcamera/list/?series=2880
>
> In order to validate my review comments I had to find tests which exercized the
> YUV post-processor, and that's the result of the testing process.
>
> I broke Hiro's series in 4 patches and addded one small fix on top.
>
> Tested by running 12 of the tests currently excluded from the libcamera
> subplan.
>
> These tests require 3 YUV streams to be supported and where so far excluded for
> this reason:
>
> [1/12] android.hardware.camera2.cts.RobustnessTest#testMandatoryOutputCombinations pass
> [2/12] android.hardware.cts.CameraTest#testFocusDistances pass
> [3/12] android.hardware.cts.CameraTest#testPreviewCallback pass
> [4/12] android.hardware.cts.CameraTest#testPreviewCallbackWithBuffer pass
> [5/12] android.hardware.cts.CameraTest#testPreviewCallbackWithPicture pass
> [6/12] android.hardware.cts.CameraTest#testPreviewFormats pass
> [7/12] android.hardware.cts.CameraTest#testPreviewFpsRange pass
> [8/12] android.hardware.cts.CameraTest#testSetOneShotPreviewCallback pass
> [9/12] android.hardware.cts.CameraTest#testSetPreviewDisplay pass
> [10/12] android.hardware.cts.CameraGLTest#testSetPreviewTextureBothCallbacks pass
> [11/12] android.hardware.cts.CameraGLTest#testSetPreviewTexturePreviewCallback pass
> [12/12] android.hardware.camera2.cts.SurfaceViewPreviewTest#testDeferredSurfaces pass
>
> As an example output from a test run:
>
> -------------------------------------------------------------------------------
> INFO HAL camera_device.cpp:569 '\_SB_.PCI0.I2C4.CAM1': Stream #0, direction: Output, width: 1920, height: 1080, format: 0x00000022, rotation: 0, crop_rotate_scale_degrees: 0 (NV12)
> INFO HAL camera_device.cpp:569 '\_SB_.PCI0.I2C4.CAM1': Stream #1, direction: Output, width: 1920, height: 1080, format: 0x00000022, rotation: 0, crop_rotate_scale_degrees: 0 (NV12)
> INFO HAL camera_device.cpp:569 '\_SB_.PCI0.I2C4.CAM1': Stream #2, direction: Output, width: 2560, height: 1920, format: 0x00000021, rotation: 0, crop_rotate_scale_degrees: 0 (MJPEG)
> INFO HAL camera_device.cpp:694 '\_SB_.PCI0.I2C4.CAM1': Adding 2560x1920-NV12 for MJPEG support
> DEBUG HAL camera_device.cpp:121 Insert 2560x1920-NV12
> DEBUG HAL camera_device.cpp:127 Insert 1920x1080-NV12
> INFO Camera camera.cpp:1028 configuring streams: (0) 2560x1920-NV12 (1) 1920x1080-NV12
>
> ...
>
> DEBUG HAL camera_device.cpp:951 '\_SB_.PCI0.I2C4.CAM1': Queueing request 138253722276496 with 3 streams
> DEBUG HAL camera_device.cpp:1017 '\_SB_.PCI0.I2C4.CAM1': 1 - (1920x1080)[0x00000022] -> (1920x1080)[NV12] (direct)
> DEBUG HAL camera_device.cpp:1030 '\_SB_.PCI0.I2C4.CAM1': 2 - (2560x1920)[0x00000021] -> (2560x1920)[NV12] (internal)
> DEBUG HAL camera_device.cpp:1063 '\_SB_.PCI0.I2C4.CAM1': 0 - (1920x1080)[0x00000022] -> (1920x1080)[NV12] (mapped)
> DEBUG HAL camera_device.cpp:1198 '\_SB_.PCI0.I2C4.CAM1': Request 138253722217920 completed with 2 streams
> -------------------------------------------------------------------------------
>
> No regression with the ordinary CTS libcamera plan
>
> =============== Summary ===============
> Total Run time: 19m 51s
> 1/1 modules completed
> Total Tests       : 231
> PASSED            : 231
> FAILED            : 0
> ============== End of Results ==============
>
> Thanks
>    j
>
>
> Hirokazu Honda (2):
>   android: camera_stream: Add sourceStream
>   android: camera_device: Use YUV post-processor
>
> Jacopo Mondi (3):
>   android: camera_stream: Create allocator unconditionally
>   android: camera_device: Post-pone mapped streams handling
>   android: camera_device: Print the correct number of completed streams
>
>  src/android/camera_device.cpp | 124 ++++++++++++++++++++++++++++++----
>  src/android/camera_stream.cpp |  12 ++--
>  src/android/camera_stream.h   |   6 +-
>  3 files changed, 122 insertions(+), 20 deletions(-)
>
> --
> 2.34.1
>
Tomasz Figa April 13, 2022, 11:04 a.m. UTC | #2
Hi Jacopo, Laurent,

On Tue, Jan 11, 2022 at 1:54 AM Jacopo Mondi <jacopo@jmondi.org> wrote:
>
> Hello
>    I've started this series by reviewing Hiro's
> "[PATCH 1/1] android: camera_device: Configure one stream for identical stream requests"
> https://patchwork.libcamera.org/project/libcamera/list/?series=2880
>
> In order to validate my review comments I had to find tests which exercized the
> YUV post-processor, and that's the result of the testing process.
>
> I broke Hiro's series in 4 patches and addded one small fix on top.
>
> Tested by running 12 of the tests currently excluded from the libcamera
> subplan.
>
> These tests require 3 YUV streams to be supported and where so far excluded for
> this reason:
>
> [1/12] android.hardware.camera2.cts.RobustnessTest#testMandatoryOutputCombinations pass
> [2/12] android.hardware.cts.CameraTest#testFocusDistances pass
> [3/12] android.hardware.cts.CameraTest#testPreviewCallback pass
> [4/12] android.hardware.cts.CameraTest#testPreviewCallbackWithBuffer pass
> [5/12] android.hardware.cts.CameraTest#testPreviewCallbackWithPicture pass
> [6/12] android.hardware.cts.CameraTest#testPreviewFormats pass
> [7/12] android.hardware.cts.CameraTest#testPreviewFpsRange pass
> [8/12] android.hardware.cts.CameraTest#testSetOneShotPreviewCallback pass
> [9/12] android.hardware.cts.CameraTest#testSetPreviewDisplay pass
> [10/12] android.hardware.cts.CameraGLTest#testSetPreviewTextureBothCallbacks pass
> [11/12] android.hardware.cts.CameraGLTest#testSetPreviewTexturePreviewCallback pass
> [12/12] android.hardware.camera2.cts.SurfaceViewPreviewTest#testDeferredSurfaces pass
>
> As an example output from a test run:
>
> -------------------------------------------------------------------------------
> INFO HAL camera_device.cpp:569 '\_SB_.PCI0.I2C4.CAM1': Stream #0, direction: Output, width: 1920, height: 1080, format: 0x00000022, rotation: 0, crop_rotate_scale_degrees: 0 (NV12)
> INFO HAL camera_device.cpp:569 '\_SB_.PCI0.I2C4.CAM1': Stream #1, direction: Output, width: 1920, height: 1080, format: 0x00000022, rotation: 0, crop_rotate_scale_degrees: 0 (NV12)
> INFO HAL camera_device.cpp:569 '\_SB_.PCI0.I2C4.CAM1': Stream #2, direction: Output, width: 2560, height: 1920, format: 0x00000021, rotation: 0, crop_rotate_scale_degrees: 0 (MJPEG)
> INFO HAL camera_device.cpp:694 '\_SB_.PCI0.I2C4.CAM1': Adding 2560x1920-NV12 for MJPEG support
> DEBUG HAL camera_device.cpp:121 Insert 2560x1920-NV12
> DEBUG HAL camera_device.cpp:127 Insert 1920x1080-NV12
> INFO Camera camera.cpp:1028 configuring streams: (0) 2560x1920-NV12 (1) 1920x1080-NV12
>
> ...
>
> DEBUG HAL camera_device.cpp:951 '\_SB_.PCI0.I2C4.CAM1': Queueing request 138253722276496 with 3 streams
> DEBUG HAL camera_device.cpp:1017 '\_SB_.PCI0.I2C4.CAM1': 1 - (1920x1080)[0x00000022] -> (1920x1080)[NV12] (direct)
> DEBUG HAL camera_device.cpp:1030 '\_SB_.PCI0.I2C4.CAM1': 2 - (2560x1920)[0x00000021] -> (2560x1920)[NV12] (internal)
> DEBUG HAL camera_device.cpp:1063 '\_SB_.PCI0.I2C4.CAM1': 0 - (1920x1080)[0x00000022] -> (1920x1080)[NV12] (mapped)
> DEBUG HAL camera_device.cpp:1198 '\_SB_.PCI0.I2C4.CAM1': Request 138253722217920 completed with 2 streams
> -------------------------------------------------------------------------------
>
> No regression with the ordinary CTS libcamera plan
>
> =============== Summary ===============
> Total Run time: 19m 51s
> 1/1 modules completed
> Total Tests       : 231
> PASSED            : 231
> FAILED            : 0
> ============== End of Results ==============
>
> Thanks
>    j
>
>
> Hirokazu Honda (2):
>   android: camera_stream: Add sourceStream
>   android: camera_device: Use YUV post-processor
>
> Jacopo Mondi (3):
>   android: camera_stream: Create allocator unconditionally
>   android: camera_device: Post-pone mapped streams handling
>   android: camera_device: Print the correct number of completed streams
>
>  src/android/camera_device.cpp | 124 ++++++++++++++++++++++++++++++----
>  src/android/camera_stream.cpp |  12 ++--
>  src/android/camera_stream.h   |   6 +-
>  3 files changed, 122 insertions(+), 20 deletions(-)

Thanks for helping with Hiro's series. Is this something we could merge?

Best regards,
Tomasz