Commit graph

111 commits

Author SHA1 Message Date
Emilian Peev
c9ded51848 CameraProvider: Check camera device version
Make sure we are working with supported devices.

Bug: 34392075
Test: Manual using application
Change-Id: I834612303f3e02e79924efbdcc25cff890defefb
2017-04-25 20:05:41 +01:00
Emilian Peev
a13ac99f34 Camera: Insert default RAW boost if needed
RAW boost key inside result and request metadata could be
absent depending on CameraHal. In case RAW boost range is
supported, the RAW boost value must always be present.

Bug: 34392075
Test: runtest -x
cts/tests/camera/src/android/hardware/camera2/cts/DngCreatorTest.java
Change-Id: I4c27b3fe5228ff604e3f2796abc670be5c17da67
2017-04-25 20:04:25 +01:00
Emilian Peev
cf5813702a Camera: Override AE pre-capture trigger cancel
CameraHal version 3.2 doesn't support cancel AE pre-capture
trigger. Camera request metadata that contains this value
needs to be overriden respectively. The corresponding results
also require the same kind of modification.

Bug: 34392075
Test: runtest -x
cts/tests/camera/src/android/hardware/camera2/cts/StillCaptureTest.java
-m testAePrecaptureTriggerCancelJpegCapture
Change-Id: If8bcf7e97ca8691cf890d5d6306d49dc3ddd087a
2017-04-25 20:04:19 +01:00
Emilian Peev
7d52a6fd25 Camera: Map stream dataspaces
Older CameraHal versions are still using deprecated dataspace
definitions. Mapping between these dataspaces is needed to avoid
discrepancies.

Bug: 34392075
Test: Manual using camera application
Change-Id: I811dec879494445736b4e3731b2d516e396a9058
2017-04-25 20:04:12 +01:00
Chris Forbes
58a80300aa camera: Adjust for libui gralloc flags change
Change-Id: Ia09737c28a78a8a50a9f751ed2774299ecc3d58c
Bug: b/33350696
Test: Bullhead: booted to launcher, take photo, watch youtube
2017-04-21 17:32:37 +00:00
Yifan Hong
993e3d0286 Use fmq for camera capture result.
Test: camera works.

Bug: 35788245 [Treble] Pass camera metadata using shared memory

Change-Id: Ia8ba8ac4c8f7d1a89035f549c0281a30190554bb
2017-04-14 14:28:48 -07:00
TreeHugger Robot
8afd952d48 Merge "Changed the naming scheme for Treble java libraries (both static and dynamic)" into oc-dev 2017-04-14 02:13:28 +00:00
Andreas Huber
6fa374ad30 Changed the naming scheme for Treble java libraries (both static and dynamic)
android.hardware.foo@1.0-java => android.hardware.foo-V1.0-java

Bug: 37207894
Test: make
Change-Id: I177f4cfd42f635aaf096107af8309d1a82ed41c0
Merged-In: I8b91881dfaf507c0d852d56ebbb53ff0987e5a34
2017-04-13 15:23:46 -07:00
Yifan Hong
1192e1d109 Use fmq for camera capture request.
Test: camera works.

Bug: 35788245 [Treble] Pass camera metadata using shared memory
Change-Id: I4a1585315bf448c8c57def2964237cae21bdbe03
2017-04-13 13:25:29 -07:00
TreeHugger Robot
f8b85e63e4 Merge "android.hardware.camera.common@1.0-helper: vendor" into oc-dev 2017-04-13 04:12:12 +00:00
Iliyan Malchev
b4488af17c android.hardware.camera.provider@2.4: set up /dev/vndbinder
The camera-HAL implementation may need to communicate with other vendor
components over /dev/vndbinder.  Route all libbinder traffic to that
node.

b/36651814
b/36651237
b/35870313
b/36683636

Test: sailfish

Change-Id: I9b80fefbcdf5ce18a2d788e8582ea8791a604435
Signed-off-by: Iliyan Malchev <malchev@google.com>
2017-04-13 00:24:39 +00:00
Steven Moreland
7d774e7937 android.hardware.camera.common@1.0-helper: vendor
Test: links/camera works
Bug: 33241851
Change-Id: I5bb846fabca29b789692fe8c253383fd821b8ba6
2017-04-11 20:58:31 -07:00
Steven Moreland
3b36a83a2e Update makefiles (2/2).
Test: pass
Change-Id: Ic7e6289c7b69785491708ce0acbb657f4c704229
2017-04-11 09:58:03 -07:00
Chia-I Wu
79d13ff0f5 graphics: revise gralloc interfaces
Revise IAllocator and IMapper to reduce IPC and to support gralloc0
devices.

Specifically, IAllocator is trimmed down to have essentially only

    allocate(BufferDescriptor descriptor, uint32_t count)
        generates (Error error,
                   uint32_t stride,
                   vec<handle> buffers);

The ability to allocate buffers with shared backing store is
removed.  ProducerUsage and ConsumerUsage are moved to the
graphics.common package and are merged and renamed to BufferUsage.
BufferUsage's bits follow gralloc0.

IMapper gains

    typedef vec<uint32_t> BufferDescriptor;
    createDescriptor(BufferDescriptorInfo descriptorInfo)
          generates (Error error,
                     BufferDescriptor descriptor);

where BufferDescriptor is an implementation-defined blob.  lockFlex
is replaced by lockYCbCr.  All getters are removed.

Reference counting with retain/release is replaced by
importBuffer/freeBuffer.

Most if not all gralloc1 features are not used by the runtime yet.
There is also not too much test written for them.  As such, they
tend to behave differently between implementations and cannot be
used reliably.

Bug: 36481301
Test: builds and boots on Pixel
Change-Id: I1d31105120517ea2c128c7a19297acf3bfd312bb
2017-04-10 11:15:54 -07:00
Steven Moreland
4e7a307730 Fix transitive includes.
Files relying on transitive include of utils/Log.h (and things that it
includes) from MQDescriptor.h

Test: pass
Merged-In: Iff316b21bef556bb026378b7f89e97ded3febef4
Change-Id: Iff316b21bef556bb026378b7f89e97ded3febef4
2017-04-06 22:04:05 +00:00
Greg Hartman
7b63265377 Merge "CameraProvider: Refactor legacy name regex code" into oc-dev 2017-04-05 22:20:21 +00:00
Andreas Gampe
0b171f1ff2 CameraProvider: Refactor legacy name regex code
The match will use iterators that will be invalidated when the
used string input goes out of scope. Refactor the API to return
the two components of the match.

Bug: 36871785
Test: m && m SANITIZE_TARGET=address
Change-Id: I2418541234a09e53856ea61e0fbc4b67d8036308
2017-04-05 10:34:04 -07:00
Yin-Chia Yeh
ae880e4922 Merge "Revert "camera: Map between legacy gralloc0 usage, and HIDL gralloc1 usages"" into oc-dev 2017-04-04 22:22:03 +00:00
Yin-Chia Yeh
c25c54f4b1 Revert "camera: Map between legacy gralloc0 usage, and HIDL gralloc1 usages"
This reverts commit 2d80c0d66f.

Test: fix b/36876770
Bug: b/36876770
Change-Id: Ia251ec97273d71fd5bc759aa1161960f6266358a
2017-04-04 13:19:09 -07:00
TreeHugger Robot
73bae67b5d Merge "Camera: HAL1: remove libbinder usage" into oc-dev 2017-04-04 19:24:26 +00:00
TreeHugger Robot
2fc995846c Merge "Camera: add interface to evict obsolete buffer caches" into oc-dev 2017-04-04 00:31:01 +00:00
Eino-Ville Talvala
4cea813a35 Merge "camera: Map between legacy gralloc0 usage, and HIDL gralloc1 usages" into oc-dev 2017-04-03 22:03:15 +00:00
Yin-Chia Yeh
28eebbfc41 Camera: add interface to evict obsolete buffer caches
Test: fix CTS ReprocessCaptureTest
Bug: 34461678
Change-Id: Icde654b0c8423c31d7d39d180913ffa374e7de3c
2017-04-03 14:41:23 -07:00
Yin-Chia Yeh
12b364bf8a Camera: HAL1: remove libbinder usage
Test: Angler HAL1 preview/takePicture/record
Bug: 35887419
Change-Id: I6cb37fd78a2fad1ee3b24e4cd61e3a3b2bce4744
2017-04-01 13:19:46 -07:00
Yin-Chia Yeh
1ba83a9a28 Camera: add HAL1 recording batching support
Test: Angler HAL1 + set mBatchSize to 4 locally
Bug: 35997432
Change-Id: I6baf112f9da56534ae81008bad818fba1e76a294
2017-04-01 13:12:49 -07:00
Eino-Ville Talvala
2d80c0d66f camera: Map between legacy gralloc0 usage, and HIDL gralloc1 usages
Otherwise some bits will be set incorrectly.

Also move device@1.0 to use ProducerUsageFlags instead of ProducerUsage,
and add a compatibility workaround to set the gralloc0 HW_CAMERA_ZSL flags
when ConsumerUsage::CAMERA is passed in.

Test: Camera CTS passes, updated VTS tests pass
Bug: 35215313
Change-Id: I981dc1a650f838f94d932944fe835fd267f2004d
2017-03-30 16:11:26 -07:00
Andreas Huber
40d3a9bd8c Convert all comments into "doxygen-ready" comments.
Bug: 36453077
Test: mma
Change-Id: I0b1f77dfae5d2258969e33d85ecf45401ffbdfaa
2017-03-29 08:53:58 -07:00
Steven Moreland
561b602a99 Update makefiles for hwtypes.h
Test: pass
Change-Id: I8e17eb8fec5d2f04c526476a866c8dd54ccb556c
2017-03-28 15:18:20 +00:00
TreeHugger Robot
04a9f9abd6 Merge "Camera: Add doc for combined stream usage flags" 2017-03-23 03:44:35 +00:00
Shuzhen Wang
43698a2f5d Camera: Add doc for combined stream usage flags
Specify the HAL behavior when stream usage flag is combination for
multiple consumers.

Test: Compile
Bug: 33777818
Change-Id: I97e7bcc79ee36a395210c7cf8deefc4f175d3e07
2017-03-20 12:10:31 -07:00
Steven Moreland
54cc198022 update-makefiles for transisitive dependencies
Test: pass
Bug: 36162559
Change-Id: I4f5fddaef9811f0da1d69fa26a5d34830a1a9634
2017-03-20 07:13:46 -07:00
TreeHugger Robot
9198e7bb30 Merge "Camera: add batching support" 2017-03-20 06:13:12 +00:00
Yin-Chia Yeh
bed3a9473e Camera: add batching support
Currently only batching high speed recording request/results.

Test: GCA slow motion recording working
Bug: 34899394
Change-Id: Id83b9d1cefe011391c86a5e7e898262a169cc9e7
2017-03-19 21:36:49 -07:00
Eino-Ville Talvala
b439b10d60 camera.provider@2.4: Legacy wrapper: Run with more threads.
Each concurrent camera device in use needs 1 thread to maintain
operational semantics, plus we probably need threads for sensor service
calls, misc camera service calls, etc.

Up thread count to 6. That should be enough for everybody.

Test: Camera still works on sailfish
Change-Id: I2262c69985756fbf762034663ce24f45bf7ce2f1
2017-03-17 13:37:01 -07:00
TreeHugger Robot
4e07c744c9 Merge "Camera: Update HAL interface doc for high speed video batching" 2017-03-17 00:32:55 +00:00
TreeHugger Robot
0e5e908e69 Merge "Camera: Provider: Set up vendor tag before getDeviceVersion" 2017-03-16 15:26:38 +00:00
Shuzhen Wang
efb7bfa993 Camera: Provider: Set up vendor tag before getDeviceVersion
getDeviceVersion calls get_camera_info, which could contain vendor tags.
As a result, we need to set up vendor tag before that.

Test: Verify vendor tag in static metadata works.
Bug: 33641150
Change-Id: Id4cfea52235542b19170a757b4c6bea3ad1d190d
2017-03-15 18:35:42 -07:00
TreeHugger Robot
360cad209a Merge changes from topic 'vts_camera_tests'
* changes:
  Camera: Check for transport errors during VTS
  Camera: Add Hal version 1 get-/setParameter tests
  Camera: Add Hal version 1 sendcommand tests
  Camera: Add Hal version 1 autofocus test cases
  Camera: Add Hal version 1 video recording test cases
  Camera: Add Hal version 1 image capture test cases
  Camera: Add device ver. 1 preview test cases
  Camera: Extend camera test cases for camera 1.0 devices
  Camera: Add flush test cases
  Camera: Enable and check for torch callbacks
2017-03-15 18:33:05 +00:00
Emilian Peev
afc6723e86 Camera: Check for transport errors during VTS
- Check for transport errors during IPC calls.
- Some code clean up and refactoring.

BUG: 32022758
Test: compile and run the gtest binary on device
Change-Id: I71f96704f82db629d1982997940d8d1b7525ffea
2017-03-15 08:36:27 +00:00
Emilian Peev
ff8da298b9 Camera: Add Hal version 1 get-/setParameter tests
Tests are required for checking the basic camera parameters
functionality.

BUG: 32022758
Test: compile and run the gtest binary on device
Change-Id: I5725fef0bb4f5ac08ecae94def5cae66a640409a
2017-03-15 08:36:27 +00:00
Emilian Peev
9c8c26965b Camera: Add Hal version 1 sendcommand tests
Tests are needed for verifying 'sendCommand' API call.
Several new test cases will be available:
"sendCommandFaceDetection" - This will check whether face detection is
available and try to enable&disable it.
"sendCommandSmoothZoom" - Will try to verify whether smooth zoom can
be enabled&disabled in case the camera supports it.

BUG: 32022758
Test: compile and run the gtest binary on device
Change-Id: Ib56f363126907f24b1af04187b093aa6c8e8ac99
2017-03-15 08:36:27 +00:00
Emilian Peev
5a81965a10 Camera: Add Hal version 1 autofocus test cases
Tests should be available for autofocus verification. The new
cases include:
"autoFocus" - Check whether the camera supports autofocus. In case
 auto is supported it will continue and test all available modes that
allow 'autoFocus' calls.
"cancelAutoFocus" - In case auto is supported, the test will trigger
full AF scan and cancel it immediately.
'CameraParameters' functionality is also required and should be included.

BUG: 32022758
Test: compile and run the gtest binary on device
Change-Id: I3bef25c5fdb6bbfa87517e6d255e4e6e01544d7d
2017-03-15 08:36:21 +00:00
TreeHugger Robot
30666ba2c6 Merge "Move camera hal imp to vendor partition" 2017-03-14 23:47:32 +00:00
Shuzhen Wang
145e135bd9 Camera: Update HAL interface doc for high speed video batching
Now cameraservice only sends one shutter notify and capture result to
the application per batch. Update the HAL interface doc to reflect this.

Test: Compiles
Bug: 35775704
Change-Id: I3a7967f0342213699989c70f485b379ccb94a1ff
2017-03-14 14:14:04 -07:00
Emilian Peev
cf7b797926 Camera: Add Hal version 1 video recording test cases
Tests involving Hal version 1 video recording APIs are
required. Several cases will be available:
- 'startStopRecording' - Verifies basic video recording
functionality. Metadata support will be tested if available.
- 'startRecordingFail' - Checks that recording can be enabled
only after preview starts.

Bug: 32022758
Test: compile and run the gtest binary on device
Change-Id: Id9dd8d3a554a1aa3bbbae9b836e4d14da5c4446b
2017-03-14 18:21:34 +00:00
Emilian Peev
92c7a65133 Camera: Add Hal version 1 image capture test cases
Tests involving Hal version 1 image capture APIs are
required. Several cases cover this:
- 'takePicture' - Regular image capture after preview gets enabled.
- 'takePictureFail' - Checks correct behavior in case preview is not
running.
- 'cancelPicture' - Verifies that image capture can be cancelled.
- 'cancelPictureFail' - Checks that image capture cancel fails as
expected in case 'takePicture' didn't get called.
Switch to BufferItemConsumer instead of CpuConsumer and use GLConsumer
default usage flags.

Bug: 32022758
Test: compile and run the gtest binary on device
Change-Id: I8db60aa8a21b6f829574fc9538da5644a4051e49
2017-03-13 08:58:49 +00:00
Emilian Peev
24f09645da Camera: Add device ver. 1 preview test cases
Test cases enabling/disabling preview using version 1
camera devices are needed. Test case is also available
for "setPreviewWindow".

BUG: 32022758
Test: compile and run the gtest binary on device
Change-Id: I234881fe940309dbb6ac11bfee7d01cc76d09f59
2017-03-13 08:58:21 +00:00
Emilian Peev
ceb0ee8b96 Camera: Extend camera test cases for camera 1.0 devices
Test cases involving camera version 1.0 devices are
required. The API methods which overlap between 3.x and 1.0
devices should be considered in the respective test cases.

BUG: 32022758
Test: compile and run the gtest binary on device
Change-Id: I044b6586b812aed14d66867d51f97123addcd718
2017-03-13 08:57:43 +00:00
Emilian Peev
a3bba4c43c Camera: Add flush test cases
Camera should flush pending requets and buffers
correctly. Two new test cases will help with
 the verification of this method:
- 'flushPreviewRequest' - Constructs a valid camera request
and sends it to camera. The test will not wait for the request
to complete instead it will call flush immediately. The results
 and notifications that follow are checked for consistency with
expected behavior.
- 'flushEmpty' - Triggers flush without any pending request. Check
 whether the camera behaves as expected.

BUG: 32022758
Test: compile and run the gtest binary on device

Change-Id: Iab9e37b3864491f970a783a68952a9c0c1703520
2017-03-13 08:57:38 +00:00
Emilian Peev
40f6211413 Camera: Enable and check for torch callbacks
The expected torch callbacks can be verified during
 the torch set test.

BUG: 32022758
Test: compile and run the gtest binary on device
Change-Id: Idaa1a4c6eb5306f1a2e1d126f54fcb26aaa1dc7c
2017-03-13 08:57:27 +00:00