Commit Graph

79 Commits

Author SHA1 Message Date
Yahan Zhou
2ff1f7e687 Merge "Camera: fix recursive lock in CameraDevice 1.0" into oc-dev
am: eed6653f2a

Change-Id: I66f434944d2a00bee6c06d0883b916c5c87d1243
2017-06-23 17:59:25 +00:00
Yahan Zhou
77dd4aaad3 Camera: fix recursive lock in CameraDevice 1.0
Several functions call close() while they are holding a lock, which
results in recursive locking. This CL implements close_locked() to avoid
such behavior.

Bug: 62919192
Test: run vts -m VtsHalCameraProviderV2_4Target, and camera should still
work after it

Change-Id: Ib38e1de19ed3c927bfb645c0c777c04f157f2b88
2017-06-23 00:28:11 +00:00
Yin-Chia Yeh
a9576758e2 Merge "Camera: fix release fence FD leaks" into oc-dev
am: 6e7ca4e166

Change-Id: I82df851760e0d85890fcc85496afb302f38d3ed7
2017-05-30 22:39:03 +00:00
Yin-Chia Yeh
aa6993121e Camera: fix release fence FD leaks
Test: use sw_sync to fake release fence FDs, GCA, CTS
Bug: 62070085
Change-Id: Iae77a2e112df5363e55e4177656a5dd41b830cbd
2017-05-26 16:28:45 -07:00
Shuzhen Wang
6ccc129e91 Camera: Silence log spam
am: 207867716a

Change-Id: I697d551878713f56ed5845b3ebd87db76e1b513e
2017-05-25 22:57:13 +00:00
Shuzhen Wang
207867716a Camera: Silence log spam
HAL is allowed to return captureResult from different thread contexts.
Do not do ALOGW if this is the case.

Test: Run camera and check logspam is gone
Bug: 62068207
Change-Id: I86e77fc578953cefecf10ebc4d395edf33627e8c
2017-05-25 11:21:09 -07:00
Eino-Ville Talvala
86d314012e Merge "camera.device@3.2 wrapper: Close release fence FDs" into oc-dev
am: 1c20927f43

Change-Id: I81840052731f509509cde33ba773b5972ed08d66
2017-05-25 01:55:55 +00:00
Eino-Ville Talvala
4ebf53f450 camera.device@3.2 wrapper: Close release fence FDs
Freeing the native handle isn't enough; we need to close the fence FDs
after sending them to the camera service, since that's the behavior
that the legacy HAL interface requires.

Test: Camera CTS continues to pass.
Bug: 38482274
Change-Id: I879de566dcafecc1b899d79e68b38ea39b91a37e
2017-05-24 15:23:56 -07:00
Steven Moreland
f203167814 Update makefiles. (2/2)
am: 76cfb84140

Change-Id: I24d21438a5b2f447d2160929c6ff6e17b2b66820
2017-05-22 17:15:20 +00:00
Steven Moreland
76cfb84140 Update makefiles. (2/2)
Adds default configuration for all hals.

Bug: 38415912
Test: pass
Change-Id: Idd1f3a2b7b16ad956d31784a513e93a066cdd02e
2017-05-19 15:54:03 -07:00
Steven Moreland
a32ebce372 Update makefiles for c++-sources and c++-headers. (2/2)
am: bc71124120

Change-Id: Icf36068a4d863a8520854c7a83e51f960c188e12
2017-05-11 00:48:55 +00:00
Steven Moreland
bc71124120 Update makefiles for c++-sources and c++-headers. (2/2)
Test: pass
Bug: 38174080
Change-Id: Icad451f9f9ad5f46412356a4171a8a1222f8e545
2017-05-09 19:58:43 -07:00
Eino-Ville Talvala
569dbdc90e Camera: Remove TODOs in interfaces
am: 71619beef7

Change-Id: I43e85210ab1972f8245376831f578816be4dea78
2017-05-09 21:32:28 +00:00
Eino-Ville Talvala
e643da4e19 Merge "Camera: Clean up TODOs that aren't going to be addressed." into oc-dev
am: 0b3d86e05a

Change-Id: Ic0ca4e1eff6716466ef86bc6a660bc371da875d6
2017-05-09 21:32:10 +00:00
Eino-Ville Talvala
71619beef7 Camera: Remove TODOs in interfaces
These are tracked elsewhere and won't be addresed for the initial
interface versions.

Update current.txt hashes; comment-only update

Test: Compiles
Bug: 34108979
Bug: 33269977
Bug: 33262893
Change-Id: I0c0521cf69649d871f64a67773ce822db2487044
2017-05-09 11:32:27 -07:00
Eino-Ville Talvala
e0a0a1c239 Camera: Clean up TODOs that aren't going to be addressed.
These TODOs aren't in scope for the wrapper libraries.

Leave the few TODOs that have bugs tracking them, and the ones that
are from autogenerated metadata.

Test: Builds
Bug: 34108979
Change-Id: Ib28467a4fbcfaab4a0809334bc62eabb9290797a
2017-05-08 15:29:28 -07:00
Steven Moreland
5c63b11f76 Remove redundant dependencies
android.hidl.base@1.0 and android.hidl.manager@1.0 are built into libhidltransport.

Test: links
Bug: 33276472
Merged-In: I08aaad80f7e2fc262aa3a8b66fe932e8133a928d
Change-Id: I08aaad80f7e2fc262aa3a8b66fe932e8133a928d
2017-05-02 15:29:30 -07:00
TreeHugger Robot
d4fc468392 Merge "Camera: use framework header for VideoNativeHandleMetadata" into oc-dev 2017-04-28 08:01:49 +00:00
Yin-Chia Yeh
1ee279df20 Camera: use framework header for VideoNativeHandleMetadata
Test: build
Bug: 35625849
Change-Id: I8159dd571b6b390fa089d497d45b76c1ec5bda31
2017-04-27 16:13:52 -07:00
TreeHugger Robot
02b745ff40 Merge "Camera: use gralloc mapper for handle import" into oc-dev 2017-04-27 23:00:50 +00:00
Yin-Chia Yeh
519c1675c3 Camera: use gralloc mapper for handle import
Bug: 37540361
Test: marlin, smoke test GCA
Change-Id: I9d58d9c6af20b37c016f036bce2dcf55817c59aa
2017-04-27 14:11:07 -07: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
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
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
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
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
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
TreeHugger Robot
4e07c744c9 Merge "Camera: Update HAL interface doc for high speed video batching" 2017-03-17 00:32:55 +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
TreeHugger Robot
ef4522aca2 Merge "camera.device@1.0: Fix minor doc bug" 2017-03-09 23:11:48 +00:00
Jiyong Park
23cd03b27f Move camera hal imp to vendor partition
In order to make generic system image, these HAL implementation need to
be moved from system to vendor partition.

Bug: 36043196
Test: make, flash and make sure that they are at /vendor/lib[64]/hw.
Change-Id: I486cd32c36143102b3923acc58fda4f8aec30cb1
2017-03-09 17:15:20 +09:00
Steven Moreland
48c52249e4 hidl_default to all targets.
find hardware/interfaces -type f -not -path "*/.git/*" \
-exec sed -i -e '/cc_[A-Za-z_]\+/ { N; s/$/\n    defaults:
\["hidl_defaults"\],/ }' {} \;
./hardware/interfaces/update-makefiles.sh

Test: pass
Bug: 35840847
Change-Id: If10c464d2f000b85c8d698fe11a4f3fc4cfad282
2017-03-08 19:31:53 -08:00
Steven Moreland
d0c5b56e29 Camera: remove unused variable
Test: pass
Change-Id: Ic382adca84ed16826fb56ebd20c573fdf8021d7b
2017-03-08 19:27:05 -08:00