To allow for implementation inheritance of @2.4 legacy wrapper and
@2.4 external webcamera HALs in the @2.5 implementations, restructure
the existing default provider to separate the service interface into a
thin shim that calls the implementations.
Test: Camera starts as usual after refactor, VTS tests pass
Bug: 121379978
Change-Id: Id40790ed4fb495577fd2b885c706b2ed7a96d64e
Add buffer management API support.
Test: VTS to be written. Need Pixel device impl to verify.
Bug: 120986771
Change-Id: Icdbc621f8cd17aa0868d3ac361867c44793a268c
* The sCameraDeviceStatusChange() callback might be fired between
initialize() and setCallback(), which can be easily triggered if there
is an external camera connected at the boot time.
* The external cameras need to be excluded in the getCameraIdList().
Bug: 77833131
Bug: 122800852
Test: Reboot with an external camera is connected, and see the
camera list is corrected probed in
$ android-sh -c 'dumpsys media.camera'
The testing device is Nautilus (Samsung Chromebook Plus).
Change-Id: I5cec6732ce4e26632f1bb5186331b7ce7a94a0b3
Test: On walleye_svelte, reboot device and check that camera HAL is not
running until camera app is opened
Bug: 79374634
Change-Id: Ib9968c899ce8be5a68a28b4decf0a52f96b20ec5
External camera@3.5 supports the new buffer management
API that allows HAL to request buffer when needed to
optimize the memory usage.
Test: smoke test TestingCamera
Bug: 109829698
Change-Id: Icfbb75a26d8e92e4eb82a680e94e183041a5174d
- Add version 3.5 for ICameraDevice for physical camera characteristics
query.
- Add version 3.5 for ICameraDeviceSession to work around HIDL
versioning bug.
Test: Camera CTS
Bug: 79523700
Change-Id: I8df6cdd4ee6ac5755758510c0dc1ea1cec31aa73
Claim torch API support though there is no device
actually has a flash unit. This is to workaround
an issue in camera service where it falls back
to legacy camera HAL1 control if the device does
not report torch API support (and external camera
HAL does not implement HAL1)
Test: CtsVerifier FlashLight test
Bug: 113336515
Change-Id: I945b35fecfed3b2698b1e9bb1d8faad8699258d2
Added a secondary Camera Provider for 64bit HALs
Test: GCA and normal camera usecases, CTS
Bug: 73173997
Change-Id: I2d9b9a916edc71b73086375f541368b080f5eca9
Vendor-specific property should have "vendor." prefix.
Bug: 36513925
Test: succeeded building and tested with taimen
Change-Id: I80f17fb6b8017a761122ddd2f8863e63c72e5623
1. Add EXIF MAKE/MODEL tag
2. Add retry loop for V4L2 open failure
3. Do not add external camera if ExternalCameraDevice cannot be
initialized
Bug: 72261912
Bug: 72569850
Change-Id: I06df1fbbb4afabea1a9a74aca9e288b24966cb0b
Add camera removal support to CameraProvider and CameraModule.
Change-Id: I047e486d1665ba9e0b1455f77a7bbbb5e0d66653
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@intel.com>
According to the camera_module_t::get_number_of_cameras() description
in camera_common.h, it should only return the number of "fixed"
cameras, i.e. cameras, facing to the front and to the back. Any
cameras, with the facing value of "external," i.e. externally connected
cameras, should not be reported by it, instead they should later be
reported, using the
camera_module_callbacks_t::camera_device_status_change() callback.
However, this doesn't work. When a camera is reported this way, it is
ignored as unknown. Fix this by adding a new camera, when its status
change is reported.
Change-Id: I18874ed005f477e32fb723c00c16b67a81cde6ce
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@intel.com>
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
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
To prevent property name collisions between properties of system and
vendor, 'vendor.' prefix must be added to a vendor HAL service name.
You can see the details in http://go/treble-sysprop-compatibility.
Test: succeeded building and tested on a walleye device
Bug: 36796459
Change-Id: I4e8fbee791ec917a8f627a1366f4d44ec7e6febc
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
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>
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
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
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
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