The orientation and facing of external devices cannot be used
for calculating the jpeg orientation.
Bug: 72261912
Test: Android compiles without errors
Change-Id: Ide8dcdb709dfb2c43a72241c9bf3f65af8d23d87
This allows camera devices to correct geometric distortion in their
optics, when requested by the application.
The correction only applies to processed (YUV, JPEG, etc) outputs,
not RAW buffers, or the result metadata.
Test: New CTS test passes
Bug: 74434422
Change-Id: I77a84c1321058ab6637be2fffaca19a27f46dca1
LENS_RADIAL_DISTORTION is inconsistently defined: in some places, it
is documented to operate on the range [-1...1], and in others, on a
range dependent on the camera lens's intrinsic calibration and focal
length.
Since fixing just the definition will not fix any existing devices
that define this value, deprecate the old key and add a new consistent
one to make sure applications only reference the consistent
definition.
Test: Adjusted camera CTS passes
Bug: 74641761
Change-Id: I5c9dea8653769696035c7d243fbd1fae4fd1b1cc
If application specifies 0-weight AF_REGIONS in capture request, the
camera device is allowed to override with non-0-weight AF_REGIONS in
capture result.
Test: Build
Bug: 29398609
Change-Id: I1e90c6c1717a894458b9a989cbd25981eaad43fb
- Include stdbool.h for using bool in C
- Add typedef to restore backward compatibility
Bug: https://github.com/android-ndk/ndk/issues/559
Change-Id: I28f5a99ea6271e364a2d1db793dbadcc63fe2f2c
- Require timestamp source of logical and physical cameras to be the
same.
- Clarify requirement for guaranteed raw stream combinations.
Test: Compile
Bug: 64691172
Change-Id: Iaf5fe2721a7b21faf7a79b8db01a3df97b034ed5
- Add physical camera metadata in capture result.
- Adjust capture_result book-keeping for physical capture result.
- Adapt to new version of ICameraDeviceCallback.
- Batch physical metadata with logical metadata within one
process_capture_result call.
Test: testLogicalCameraTest CTS test
Bug: 64691172
Change-Id: I63fd343770cbb6183b7c6e4566c698f69801a8e8
Capture requests could include settings for different physical
cameras. Camera service should always check whether such
extended requests refer to valid physical devices and process
them accordingly.
Fix some stability issues in the camera native tests.
Test: Basic camera sanity using camera application,
camera_client_test, Camera CTS
Bug: 64691172
Change-Id: I68b81e983dd0b7caebfa03e4f0cf283f2a91dc7a
Add physical camera ID in OutputConfiguration so that the application
can optionally set physical camera id for an output stream.
Test: Camera CTS
Bug: 64691172
Change-Id: I5909cd71618cc07ef403c420913eb1c02f1e10f0
Change type to byte because int32 and enum cause type mismatch.
Allow DETECT in all AF modes.
Test: CTS
Bug: 64847201
Change-Id: I9c7b13f0fd53873b14e13eb5c85b421b588ced49
Currently the camera subsystem is trying to store all cameras, that
have ever been registered with it by camera HALs. This makes it
easier for the framework, but with hotpluggable cameras it makes
little sense, because for this HALs also have to store all cameras,
that have ever been plugged in and with every new plug in event
identify, whether this is a new camera or a known one. An easier and
cleaner approach is to remove cameras upon unplug. This patch
implements that.
Change-Id: Ie38cad59449386351518655e723e3f826a2ec826
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@intel.com>
- MOTION_TRACKING capability defines a camera with accurate lens calibration
values, accurate timestamps relative to the inertial sensors, and ability
to limit exposure time to 20ms max.
- Add android.lens.poseReference for supporting gyroscope-centered lens calibration
data for MOTION_TRACKING.
Test: Builds
Bug: 63629224
Change-Id: I99f209afae930a7b59a2a84163d19de5f824cc96
The initial values of the session-wide capture parameters
should be passed along the stream list during stream
configuration. This could yield performance gains depending
on the Hal implementation and support.
Bug: 64450664
Test: Camera CTS
Change-Id: I2b0ec8916f027e7f34f81dc414c3ca649807e925
Includes only minor formatting/wording tweaks from merging
together the SDK and NDK metadata definitions.
Bug: 29102963
Bug: 33262893
Test: Build and manual inspection of generated docs diff
Change-Id: Ie43e692cee5e6e7dc8de68c4191a9140bcc0025b
The Camera API needs to support the dynamic attach/detach of extra
output surfaces to a given camera stream.
Bug: 63912484
Change-Id: I18809aea31f78fb9e125bd18b58951ade4fad3c5
1. Fix AMessage contains last reference to session
issue
2. Fix disconnectLocked waits on dead session issue
Test: add some sleeps to make deadlock scenarios pops in CTS
and then run CTS 100 times.
Bug: 67965633
Change-Id: If0ab9e33de12969dcb5f1d10e96f47f13024f399
Move libmediandk and libcamera2ndk headers into their module
and export them from there. Also move them to the same path
relative to the export as used in the NDK, media/ for
libmediandk and camera/ for libcamera2ndk.
Test: builds
Change-Id: I0b424e0e48bfb5e2b762694a97d799de08f5dda3
(cherry picked from commit 7e8d4ba588)
Soong handles these automatically now.
Bug: 33241851
Test: Android-aosp_arm.mk is the same before/after
Test: build.ninja is the same before/after
Test: build-aosp_arm.ninja is the same before/after
Change-Id: I792e4647b38988db5d9f591d69688479ce9dc62b
Different vendors could have different vendor tags.
A global vendor tag cache will store all available
vendor tag descriptors from different providers.
The cache will then be shared with each camera client.
Camera metadata will use specific vendor ids stored
in the metadata buffer to identify the correct vendor
tag provider.
Bug: 34275821
Test: adb shell /data/nativetest/cameraservice_test/cameraservice_test
--gtest_filter=CameraProviderManagerTest.MultipleVendorTagTest
Complete Camera/Camera2 CTS tests
Change-Id: I2262128f21a0167504f018230624e2a89786c467
Add enableZsl key so the apps can choose to allow or
disallow out of order frame contents and metadata like
timestamp.
Test: Camera CTS tests on Marlin
Bug: 30983997
Change-Id: I715ef24ab55d6941c0ece16f09f325c26b83ea54
The NDK CameraManager only lists cameras that support camera API v2. For
a device that only supports v1 the list comes back empty. This results
in allocating an array of size zero. This array was then intialized with
a nullptr. This is fine if the array contains at least one item but in
the case where there are no cameras this will cause a buffer overflow.
This change removes the initialization which fixes the crash.
Test: manual - ran camera CTS tests
Change-Id: Ie1c872ff66997d55572fd855f20b56bd58b01752
- For all camera2 paths, and anything shared between the legacy API and
camera2, switch to using strings for camera IDs
- Update ICameraService.addListener to return current set of known
devices and their status, to allow for immediate return of camera
devices when first connecting to camera service
- Remove unused code path for getCameraCharacteristics with HALv1
- Add namespace qualifiers to Binder objects that are also used by
hardware binder.
- Switch to using new HIDL DeviceStatus and TorchStatus enumerations
for better type safety in the service; map more clearly between
the HAL, service-internal, and Binder enums.
Test: cts-tradefed run cts -m Camera --skip-connectivity-check -d -o --abi armeabi-v7a --disable-reboot
Bug: 32991422
Change-Id: I765951d9a21000a8432bed9aa0e3604709daa4b1
This fixes Access to field 'targets' results in a dereference of a null
pointer
Test: the warning is gone.
Change-Id: If5d8c1c87c4cf77252bd5d262eefeba30c772fe7
onCaptureQueueEmpty is called when the non-repeating request queue in
cameraservice becomes empty. Application can use this callback as a
trigger for a new request.
Test: testMultipleCapture in PerformanceTest.java
Bug: 29006447
Change-Id: Id21afd74381e0b70f924c6026025c91a8ffd5ee0
On Android Wear devices we don't have cameras, so we don't need the
proxy service as well. If it is disabled by the system property, don't
wait for it to start, but rather return null pointer in
getCameraService(), which causes getNumberOfCameras() to report zero
cameras available.
The same logic applies to ACameraManager, where we return an empty list.
Bug: 28560707
Change-Id: I4c0bc29f061f1b66710c8188a7916bfaf089d23f
This change adds document for ACaptureRequest, ACameraMetadata,
AImage and AImageReader.
Bug: 27102995
Change-Id: I79d88f73258c01ebeabcd5b4e3b90996759cb021
This change adds document for ACameraManager, ACameraDevice and
ACameraCaptureSession.
Bug: 27102995
Change-Id: I5706337e419cd533c1c7d46e412dc62bf7c726cb
Stop repeating request if any of its output stream is abandoned.
Add a callback to notify the repeating request has been stopped
with frame number of the last frame.
Update NDK with the new callback and behavior.
Bug: 21270879
Change-Id: I3553775c7807a77104aa1650609480ca3321310c
- Codegen update: some of hidden metadata keys should not be
disclosed in NDK.
- Also added capture result frame number plumbing.
Bug: 27102995
Change-Id: Ia238f95a4da726330205c53fc5d3f1f63d7553a1
- Also fix error logging template inconsistency
- Also add a few error handling cases into camera2 NDK
to deal with previously-ignored error codes
Bug: 27149500
Change-Id: I8f1f4c72252dd48d652f24b595b642199f20c327