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

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

Message

Jacopo Mondi June 4, 2022, 9:30 a.m. UTC
v3:
- Add comments as suggested by Laurent and Umang
- Assert sourceStream != nullptr
- Rework requestedStream handling to simplify it

This change allows to include 13 more tests from the Camera CTS test.

android.hardware.camera2.cts.SurfaceViewPreviewTest#testDeferredSurfaces
android.hardware.cts.CameraGLTest#testSetPreviewTextureBothCallbacks
android.hardware.cts.CameraGLTest#testSetPreviewTexturePreviewCallback
android.hardware.cts.CameraTest#testPreviewCallback
android.hardware.cts.CameraTest#testSetOneShotPreviewCallback
android.hardware.cts.CameraTest#testPreviewCallbackWithBuffer
android.hardware.cts.CameraTest#testFocusDistances
android.hardware.cts.CameraTest#testPreviewFormats
android.hardware.cts.CameraTest#testSetPreviewDisplay
android.hardware.cts.CameraTest#testImmediateZoom
android.hardware.cts.CameraTest#testPreviewFpsRange
android.hardware.cts.CameraTest#testPreviewCallbackWithPicture
android.hardware.cts.CameraTest#testPreviewPictureSizesCombination

Result from running the now 244 CTS tests report 5 failures (3 straight runs out
from an hard reboot with the same result)

=============== Summary ===============
Total Run time: 20m 3s
1/1 modules completed
Total Tests       : 244
PASSED            : 239
FAILED            : 5
============== End of Results ==============

-------------------------------------------------------------------------------
android.hardware.camera2.cts.CameraDeviceTest#testPrepare
junit.framework.AssertionFailedError: Preparing surface used in previous session must throw IllegalArgumentException

android.hardware.cts.CameraTest#testImmediateZoom
junit.framework.AssertionFailedError

android.hardware.cts.CameraTest#testLockUnlock
java.lang.RuntimeException: start failed

android.hardware.cts.CameraTest#testPreviewPictureSizesCombination
junit.framework.AssertionFailedError: expected:<1> but was:<0>

android.hardware.cts.CameraTest#testRecordingHint
java.lang.RuntimeException: start failed.
-------------------------------------------------------------------------------

Only 2 of them are newly enabled tests:

android.hardware.cts.CameraTest#testImmediateZoom
android.hardware.cts.CameraTest#testPreviewPictureSizesCombination

which does not seem to fail because of failures in handling 3 streams (actual
resons to be investigated).

Running the current CTS plan which does not require YUV duplications results in

=============== Summary ===============
Total Run time: 18m 32s
1/1 modules completed
Total Tests       : 231
PASSED            : 228
FAILED            : 3
============== End of Results ==============

android.hardware.camera2.cts.CameraDeviceTest#testPrepare
junit.framework.AssertionFailedError: Preparing surface used in previous session must throw IllegalArgumentException

android.hardware.cts.CameraTest#testLockUnlock
java.lang.RuntimeException: start failed.

android.hardware.cts.CameraTest#testRecordingHint
java.lang.RuntimeException: start failed.

The same tests fail on current master, with some more flukes.

There are no evident regression as far as I can tell. It's hard to estimate the
exact number of failures as there are flukes and results are not consistent, but
in the last run of CTS on plain master I got 7 and 5 failures, which is
comparable to the number of failures with the series applied and the new test
plan.

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 | 112 ++++++++++++++++++++++++++++++----
 src/android/camera_stream.cpp |  12 ++--
 src/android/camera_stream.h   |   6 +-
 3 files changed, 110 insertions(+), 20 deletions(-)

--
2.35.1