[libcamera-devel] [PATCH v2 0/5] Plumb the YUV processor in

Paul Elder paul.elder at ideasonboard.com
Fri May 27 11:34:35 CEST 2022


Just reviving this patch series. Original cover letter (2022/01/10):


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: Postpone mapped streams handling
  android: camera_device: Print the correct number of completed streams

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

-- 
2.30.2



More information about the libcamera-devel mailing list