summaryrefslogtreecommitdiff
path: root/camera/device/3.2/default/CameraDeviceSession.cpp
AgeCommit message (Collapse)Author
2020-09-02Merge SP1A.200727.001Daniel Norman
Change-Id: Ia3b7d4eba938bb8d176ba2b02a4e194288372de2
2020-03-05Fix bugprone-use-after-move warningsChih-Hung Hsieh
Bug: 150783499 Test: WITH_TIDY=1 make Change-Id: If257532523674ea6256b72ec765904a8de5bf565
2019-05-23Merge QP1A.190523.001Scott Lobdell
Change-Id: Ib1b5c796e9ff2926403cf91eee5f2c79983dbd85
2019-05-09Camera: Add fall back properties for FMQ size overrideEmilian Peev
All system properties in the vendor partition must start with either "vendor" or "ro.vendor". Older devices should not be affected but newer implementations may not be able to override the FMQ size if needed. Keep this functionality and provide fall back properties using "ro.vendor.camera". Bug: 77865891 Test: Manual using application and modified device configuration. Change-Id: I23d0ba7a10eaafe98a708277c26579e8a0fec614
2019-02-06Merge QP1A.190205.002Scott Lobdell
Change-Id: I00eea204467afb5984b2dbcc87d8e8ff82aac307
2019-01-28Camera: support libhardware camera device 3.6Yin-Chia Yeh
Add buffer management API support. Test: VTS to be written. Need Pixel device impl to verify. Bug: 120986771 Change-Id: Icdbc621f8cd17aa0868d3ac361867c44793a268c
2018-09-05Merge QP1A.180823.001Bill Peckham
Change-Id: I0e80bda07db2ee67575e7d3c8bde46bf29d8c790
2018-08-03Legacy camera shim: add option to free buffers earlierYin-Chia Yeh
This option allows HAL to opt in for the behavior that will free cached buffers earlier if the libhardware HAL implementation doesn't cache/reference the cached buffers internally. Test: buffers are freed earlier when the property is set Bug: 111850884 Change-Id: I3a10b288c7160c86dc7d3a30d04b5c4903917731
2018-06-20frameworks: Update HIDL overrideFormat from HALAbhijit Trivedi
--HAL requires 64 bit usage flags to support more feature --Re-used one of the reserved locations to read 64bit usage flags and override format CRs-fixed: 2264577 Change-Id: I9a4cbb80b1c2d82ec4af3941f0d98b67ecfd59ef
2018-06-05Camera: Avoid Metadata re-allocation during shrinkCaptureResultShuzhen Wang
If capture result metadata is to be shrinked, reserve enough space so that CameraMetadata isn't re-allocated when std::vector expands. If vector expansion happens, CameraMetadata is re-allocated, causing camera_metadata_t being re-allocated as well. Test: Camera CTS Bug: 109672123 Change-Id: Idaf5bf409bdbbccf617614edc96c0478260b4c30
2018-05-24Camera: add FMQ size override logicYin-Chia Yeh
Test: modify FMQ size in device.mk Bug: 80242493 Change-Id: Ie1fb12118ad53c5bbe0cf264bffaafcd3728f8db
2018-05-23Camera: use compact copy when necessaryYin-Chia Yeh
When camera HAL sends redundant metadata (reserved space >> actual used space), create a compact copy to save IPC overhead. Test: Camera CTS/camera app smoke test Bug: 79838637 Change-Id: I02657deb377c43c65d111d1fc894eb3c20ad3b8f
2018-04-27Camera: check return value of callbackYin-Chia Yeh
Test: no crash Bug: 78181355 Change-Id: Iaf953045b64dd7b258cf49919ccb8aa5a8a0c7d1
2018-04-06camera: print the oversized result sizeZhijun He
It's generally a bad thing to have the result exploded to exceed the shared message max depth (1MB). Print the size when such case occurs for better debugging output. Bug: 77665564 Change-Id: I971fca202aa3ca0fa1863e9c658659d0775a1ad4
2018-03-09Camera: Do not forward capture_result in error conditionShuzhen Wang
If HAL calls process_capture_result with invalid buffers, the HIDL wrapper shouldn't forward it to camera service, since the CaptureResult structure may not be completely initialized. Test: Run GoogleCamera Bug: 74433802 Change-Id: Iaf20b542af5b11ffbedf709e99137b69d77a9ad3
2018-01-24camera: Add physical camera metadata in CaptureResultShuzhen Wang
- When physical stream of a logical multi-camera is requested, HAL needs to generate metadata for the physical cameras. - In case no physical stream is requested for the logical multi-camera, no capture result metadata is required for physical camera. - Batch physical and logical metadata within one capture_result call. Test: testLogicalCamera CTS test Bug: 64691172 Change-Id: Id040620f3f0c350711d49341ab31ab88ecd94888
2018-01-23camera.device@3.4: Add MOTION_TRACKING template enumsEino-Ville Talvala
- Extend RequestTemplate with two new values - Add legacy wrapper support for the new templates Test: Builds, camera continues to run. CTS coverage of templates tests new templates as expected. Bug: 63629224 Change-Id: I2a44d86a815690798fa4b8327794c64716d134ee
2018-01-20camera: Add support for individual physical camera requestsEmilian Peev
Multi-camera devices should be able to accept and process individual settings for all physical sensors backing the logical camera. 'CaptureRequest' must be extended to hold these additional physical camera settings. Test: Manual using camera application, camera_client_test, run vts --skip-all-system-status-check --skip-preconditions --primary-abi-only --module VtsHalCameraProviderV2_4Target -l INFO Bug: 64691172 Change-Id: Ia38d1e7681a9385be7578c11e40f4e35e9101d75
2017-12-20Camera: Bump device version to 3.4Emilian Peev
Camera devices supporting version 3.4 will be able to receive session parameters during the stream configuration phase. Bug: 64450664 Test: Camera CTS run commandAndExit vts --skip-all-system-status-check --skip-preconditions --primary-abi-only --module VtsHalCameraProviderV2_4Target -l INFO Change-Id: Ifd83bfe0e512fe75b63602b4aba98f4cc1cdeb53
2017-09-15Camera: Add default implementation of camera.device@3.3Eino-Ville Talvala
Inherit as much as possible from camera.device@3.2 - Refactor CameraDeviceSession@3.2 implementation to separate out the HIDL session interface from the main implementation object. This avoids multiple inheritance issues - Create CameraDeviceSession@3.3 with support for the new overrideDataspace field - Add virtual factory method for CameraDevice to create the right version of Session. - Create CameraDevice@3.3, which overrides createSession to return a CameraDeviceSession@3.3. - Add system property to override selection of which minor HIDL version is used for legal HAL version 3.x; set the default to the newest available minor version. Test: Camera CTS passes on device using @3.3. Bug: 62358514 Change-Id: I497e4bc0de798b56ecdb2ea6467b79afccaf89f7
2017-07-27Camera: fix various VTS issuesYin-Chia Yeh
Also fix wrong return values for processCaptureRequest in default wrapper. Test: running camera VTS Bug: 64041692 Change-Id: I397390af7c85a776713f6287bef1c4d11c721c9a
2017-05-26Camera: fix release fence FD leaksYin-Chia Yeh
Test: use sw_sync to fake release fence FDs, GCA, CTS Bug: 62070085 Change-Id: Iae77a2e112df5363e55e4177656a5dd41b830cbd
2017-05-25Camera: Silence log spamShuzhen Wang
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-24camera.device@3.2 wrapper: Close release fence FDsEino-Ville Talvala
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-04-27Merge "Camera: use gralloc mapper for handle import" into oc-devTreeHugger Robot
2017-04-27Camera: use gralloc mapper for handle importYin-Chia Yeh
Bug: 37540361 Test: marlin, smoke test GCA Change-Id: I9d58d9c6af20b37c016f036bce2dcf55817c59aa
2017-04-25Camera: Insert default RAW boost if neededEmilian Peev
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-25Camera: Override AE pre-capture trigger cancelEmilian Peev
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-25Camera: Map stream dataspacesEmilian Peev
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-14Use fmq for camera capture result.Yifan Hong
Test: camera works. Bug: 35788245 [Treble] Pass camera metadata using shared memory Change-Id: Ia8ba8ac4c8f7d1a89035f549c0281a30190554bb
2017-04-13Use fmq for camera capture request.Yifan Hong
Test: camera works. Bug: 35788245 [Treble] Pass camera metadata using shared memory Change-Id: I4a1585315bf448c8c57def2964237cae21bdbe03
2017-04-10graphics: revise gralloc interfacesChia-I Wu
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-04Revert "camera: Map between legacy gralloc0 usage, and HIDL gralloc1 usages"Yin-Chia Yeh
This reverts commit 2d80c0d66f9ca869d6102f07bd236b7c4c94c205. Test: fix b/36876770 Bug: b/36876770 Change-Id: Ia251ec97273d71fd5bc759aa1161960f6266358a
2017-04-04Merge "Camera: add interface to evict obsolete buffer caches" into oc-devTreeHugger Robot
2017-04-03Camera: add interface to evict obsolete buffer cachesYin-Chia Yeh
Test: fix CTS ReprocessCaptureTest Bug: 34461678 Change-Id: Icde654b0c8423c31d7d39d180913ffa374e7de3c
2017-03-30camera: Map between legacy gralloc0 usage, and HIDL gralloc1 usagesEino-Ville Talvala
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-19Camera: add batching supportYin-Chia Yeh
Currently only batching high speed recording request/results. Test: GCA slow motion recording working Bug: 34899394 Change-Id: Id83b9d1cefe011391c86a5e7e898262a169cc9e7
2017-03-08Camera: remove unused variableSteven Moreland
Test: pass Change-Id: Ic382adca84ed16826fb56ebd20c573fdf8021d7b
2017-03-01Camera: default implementation of device 1.0Yin-Chia Yeh
Also some updates to HIDL interface: - Add releaseRecordingFrameHandle to ICameraDevice for native handle metadata recording mode - Add handleCallbackTimestamp to ICameraDevieCallback for native handle metadata recording mode - Add missing face detection metadata to ICameraDeviceCallback::dataCallback - Instead of passing native handle, pass buffer ID in dequeueBuffer/enqueueBuffer/cancelBuffer in ICameraDevicePreviewCallback - Add CameraFrameMetadata in types.hal for face metadata Test: Camera CTS passing (except FlashLightTest) on Angler Bug: 30985004 Change-Id: Idf72a4b5f4c934845ac698f0b13536608ffd0100
2017-02-14Merge "Camera: Fix ION buffer leaks"Yin-Chia Yeh
2017-02-14Camera: Fix ION buffer leaksEmilian Peev
Native buffer handles should always get closed and deleted during buffer release. BUG: 35338606 Test: Manual using application Change-Id: I5d7a4b02a28b29b872b66843d623166f04207c2e
2017-02-09Camera: Delete streams after successful configurationEmilian Peev
The stream resources will be released by Hal most likely only in cases of successful configuration. If the configuration fails keep the deleted streams for the next call. BUG: 34131351 Test: 'CameraTest' API1 tests using Hal3.x and ZSL Change-Id: I68696d561258571727b35b52ff326aac27edaad3
2017-02-03Camera: remove BINDERIZED flagYin-Chia Yeh
No longer needed. This also enable us to switch to defaultPassthroughImplementation. Also rename camera device wrapper library to signal it's not a top level HAL entry. Test: marlin camera app with passthrough/binderzied mode Bug: 34817742 Change-Id: I78ad5afbf78b2679be3efe0e82f430958ef6bfea
2017-01-17Camera: make fence import agnostic to hidl transportYin-Chia Yeh
This will introduce one more FD dup/close in passthrough mode, but we have no other choice as camera server will not know whether it is running in passthrough or binderized mode. Test: running Camera2 API CTS Bug: 30985004 Change-Id: I407d54a51c51fc09477dfb6236ab1b53bb1e0a21
2017-01-17Camera: add bufferId field to StreamBufferYin-Chia Yeh
This gives each buffer a unique identifier and allow camera server to only send one unique to HAL process once. Bug: 30985004 Change-Id: I6aff498c5667dd71fd70b3881fd60b0ecc366e0a
2017-01-09Camera: avoid double closing FDYin-Chia Yeh
Right now conventional HAL close the acquire_fence FD so wrapper should not close it again. However, we might need to change this behavior later to make camera service agnostic to passthrough or binderized mode. Bug: 34169301 Change-Id: I96b46521e4081b43e7a7e9c9efa98121739dda99
2017-01-05Camera: patching treble camera HALYin-Chia Yeh
Bug fixes like deadlock resolution, wrong enum usage etc. Bug: 30985004 Test: run Camera2 API CTS tests on Angler Change-Id: I661fa9197f66344ddecca8f68d343c891806eca1
2017-01-05Camera: default implementation of device 3.2Yin-Chia Yeh
Test: compile Bug: 30985004 Change-Id: Ibb48673840de6a5f7c75dc6993d5457a272177a2