History log of /frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
51dcfd65a6742884e07182dd7d13b916fd4e0305 26-Sep-2014 Igor Murashkin <iam@google.com> camera2: Fix race conditions and deadlocks around configuration

Fixes an illegal state exception that sometimes occurs during
configuration. Fixes a deadlock during unconfiguration. Fixes
the idle handler never being run during configuration.

Bug: 17628736
Change-Id: Id2c5e416f96fcbac9c718fca3cc2cf21734bc6a4
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
e663cb77281c4c76241b820f6126543f1c2d859f 16-Sep-2014 Ruben Brunk <rubenbrunk@google.com> camera2: refactor LEGACY mode error handling.

Bug: 17431462
Bug: 17407537

- Add Surface format/size validation during configure.
- Update exception error codes used in binder calls.
- Report dropped requests, frames, captures, and device
errors in binder callback properly.
- Fixes CameraDeviceTest errors for incorrect metering
rectangle weight in template tests.
- Fixes CameraDeviceTest errors for missing
noiseReductionMode field in template tests.
- Implement flush call.

Change-Id: I0da803bccf2bfb9b4c0cf61208e160a86c577497
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
848fe733f3fb6601229bdaef7c3a876032d46883 16-Sep-2014 Eino-Ville Talvala <etalvala@google.com> Camera2: Check for sequence complete sooner.

It's possible, especially with legacy mode, for a last frame for a
sequence to have already arrived when a repeating sequence is stopped.

In that case, need to check for sequence complete as soon as the
requestId, framenumber pair is added to the pending queue of completions.

Bug: 17428716
Change-Id: Ie5c6ea5a43639c812b8441da326c6303e150fce0
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
9503785393ba8999473b7a924ede2baf520e367c 14-Sep-2014 Eino-Ville Talvala <etalvala@google.com> Camera2: Clean up corner case error handling

- If a session is closed, and a new session is created immediately
afterwards, but then fails to be configured, the first session sees an
onUnconfigured call which it wasn't expecting, and throws an
exception on an internal thread, leading to app death.
Add a guard against this case.

- If the lower levels skip a frame (illegal per design), be slightly more
robust to that by accepting any successful result as the latest completed
frame, instead of just incrementing the completed frame count. This will
lead to missing results, but should allow shutdown, etc, to complete
cleanly.

- Convert TIMED_OUT error codes to CAMERA_ERROR CameraAccessExceptions.
This is a common error code returned by waitUntilIdle.

Also, improve debug logging to log a session ID with verbose logging,
and add a few verbose logs.

Bug: 16899526
Change-Id: I7a31f0a12effc2611e1f9c2408224ee82c37c912
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
e8df3093f53fa992f89e019b2fc87ff4fac0f335 08-Sep-2014 Eino-Ville Talvala <etalvala@google.com> Camera2: Add frameNumber to CaptureCallback#onCaptureStarted

Otherwise, cannot reliably match up capture progressed and failure callbacks
with the start callback.

Bug: 17421092
Change-Id: I91d92be70a15536b215bac330370ce37e426ec26
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
fd887436bd111e4d2c7307578a51b5070025b7f2 04-Sep-2014 Eino-Ville Talvala <etalvala@google.com> Camera2: Final API revisions

- Rename listeners to callbacks. Listeners are single-method and are interfaces,
while callbacks are abstract may get more methods in the future.
- Use register/unregister for registering callbacks, not add/remove.

Bug: 17389922
Change-Id: Ic6b46ad79cb43a43a85e2a4b63f059d3af99798b
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
0d1227d8b9578b642abcfe1767c7d01bda6ddfed 29-Aug-2014 Igor Murashkin <iam@google.com> Merge "camera2: Implement TotalCaptureResult#getPartialResults" into lmp-dev
1e854c5fc817d31eef18e671b9b519bbb4b400d2 29-Aug-2014 Igor Murashkin <iam@google.com> camera2: Implement TotalCaptureResult#getPartialResults

No longer throws NPE. Returns a list of all partial results that were
observed by a listener's #onCaptureProgressed

Bug: 16876347
Change-Id: I80335a8533ab082ac4d5dcd2597e4181ef49f19c
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
c346bbf748b27a207f1653dd05132469a0f4d962 28-Aug-2014 Eino-Ville Talvala <etalvala@google.com> Camera2: Make sure aborting captures on an idle device works.

Check if device is already idle, and if so, don't actually flush,
just fire the busy/idle callbacks to the session.

Bug: 17306157
Change-Id: I7ba416c6014c7bc1edcad07910aa0aff232af8b0
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
acc0095bc84914d3ce41ad8298f698c37935b8a8 06-Aug-2014 Eino-Ville Talvala <etalvala@google.com> Camera2: Correct error handling

- Report capture failures from service to application
- Only go to error state for device-level errors
- Adjust binder interface method names to match the service side names
- Reduce failed session creation logging
- Don't fire CaptureSession.onActive for CameraDevice.onBusy
- Check with session to determine capture failure reason

Bug: 17160301
Bug: 15524101
Bug: 14448494
Bug: 11272459

Change-Id: I9dd606004fd7845910dc865738fbe17f1640f07d
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
10fbbbb6babc2700c731ac85fc0137d481e4d256 20-Aug-2014 Igor Murashkin <iam@google.com> camera2: Enable configuration failure to call #onConfigureFailed

Bug: 16629195
Change-Id: I0c365bc8f760466916dcc089217a43c43f9f4c9d
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
d3b85f69a811113826933c8abf591f20e9b3c8ff 06-Aug-2014 Eino-Ville Talvala <etalvala@google.com> Camera2: Fix session shutdown race, frequent warning log

- Make sure that session.close followed by device.createCaptureSession cannot race on
configureOutputs calls
- Silence warning about RAW_OPAQUE format

Change-Id: I02e4a048e8b26ea61aadcf115b029e9fbb58ad4e
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
a6b5ba56036f19bdd816ef03ad37beccf0150050 03-Jul-2014 Eino-Ville Talvala <etalvala@google.com> Camera2: Remove hidden parts of public CameraDevice

- Remove everything @hide in CameraDevice
- Move bits that are still needed into CameraDeviceImpl

Change-Id: Ie22059a0eb5c4238142a8a1e8dbcf1a422e845aa
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
7875a886b8397684c5fac3dd022d19de9874b436 31-Jul-2014 Eino-Ville Talvala <etalvala@google.com> Camera2: Fix null-listener capture for CameraCaptureSession

Correctly allow null listener/handler when invoked on a thread with no
looper; otherwise all capture/repeating requests will fail even if listener
is null.

Change-Id: I4c64c81ad7f14b5cb309b4f92822cb50dbd74ba6
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
bdf366cc70639b0e16b8f84eebe612a48a8b8b06 26-Jul-2014 Igor Murashkin <iam@google.com> camera2: Api change (#getFrameNumber -> long; @hide REQUEST_FRAME_COUNT)

Change-Id: I164011c97a57fb9fb9c504ae4c5f394dcb36a4bc
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
bd9b106806f9792be210cc2d9848d8b1f4b9664d 22-Jul-2014 Eino-Ville Talvala <etalvala@google.com> Camera2: CameraManager refurbishing and error management

- Invoke availability listeners when first added
- Handle camera service crashes
- Listen to service death
- Attempt to rebind on every call if service died
- If service is still dead, act as if no cameras are connected
- Fix bug in DeviceImpl that prevented proper handling of errors on open
- For clarity, don't UncheckedThrow for exceptions that are already unchecked

Bug: 16514157
Bug: 16483815
Bug: 16483222
Bug: 16561237

Change-Id: I3d54de1204f5a863882cf675fcee6280d53c4039
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
2f75e7d7ef2ef29ac4b1287dc44cf62cfbaf50b3 15-Jul-2014 Eino-Ville Talvala <etalvala@google.com> Camera2: Fix callback operation

- Remove CloseableLock use; looks to be incompatible with invocations during callbacks
- Replace with basic interface lock to be thread-safe
- Add intermediate callback thread to legacy mode to match cross-process one-way Binder
semantics

Change-Id: Iecd4ff6cf260c5a13bd11b850177ccea93e25933
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
fac77c46fe03466cb4bd728da3dc49b40652964b 18-Jul-2014 Zhijun He <zhijunhe@google.com> Camera2: send the partial result with onCaptureProgressed

When partial results are receieved, call onCaptureProgressed instead of
onCapturePartial.

Change-Id: If97233d7b980f490821bca0a722d527f19034cd9
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
83159151f618c79040a2e800de8cc78f22bf760b 16-Jul-2014 Zhijun He <zhijunhe@google.com> Camera2: replace partial quirks with normal partial result

Change-Id: I56550748478bf0aa1a7bf9a350b4fdc7bbd6af86
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
a8c5badec4083e58e7fd9277a21f5c54f9843483 09-Jul-2014 Eino-Ville Talvala <etalvala@google.com> Merge "Camera2: Hide all the deprecated methods and interfaces"
0a160acf297b583e12a9710c929c4ba9a38f7353 02-Jul-2014 Eino-Ville Talvala <etalvala@google.com> Camera2: Hide all the deprecated methods and interfaces

Leave them in for now until bundled clients complete updating

Change-Id: Ibd0fc971258ce6b649000c48dd7a6716f1ab91d4
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
7f2372bd85445967ac6cb8c9519ebd1405aaa233 02-Jul-2014 Ruben Brunk <rubenbrunk@google.com> camera2: Update LEGACY mode video handling.

Bug: 15116722

- Change FPS preview setting handling for video modes.

Change-Id: Idba2162979db93a0483480ea256cbab85c1bd182
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
15d0f974732583c8276aa38031917c98277c7622 20-Jun-2014 Eino-Ville Talvala <etalvala@google.com> Merge "Camera2: Call onCaptureSequenceAborted when appropriate"
ee37e30c222ec60e51b6bf41309b396f0f23b47a 11-Jun-2014 Eino-Ville Talvala <etalvala@google.com> Camera2: Call onCaptureSequenceAborted when appropriate

Bug: 15524101
Change-Id: I4615d0b4ae3cae80609586f7dfa8373691a9e384
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
49b2b135105e5ca5dc9547f4c6de473bebad647d 19-Jun-2014 Igor Murashkin <iam@google.com> camera2: Fix deadlocks in shim #close and make #testInvalidCapture pass

* Also fixes configureOutputs to allow it to unconfigure
* Adds IAE checks in a few spots to validate surfaces aren't null

Bug: 15116722
Change-Id: I9ec88bccb3600eb12747d84436ead27952e87646
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
e1442204c1a2e8c6697d0640df06dc6314ed7113 10-Jun-2014 Igor Murashkin <iam@google.com> camera2: Fix session-related CTS test failures

Bug: 15474402
Change-Id: I4ae86166b5ce99a854c754c8ac6d6c23c683b14a
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
4b3f8004382192e066bb0c38bf39421f312daaf2 05-Jun-2014 Sol Boucher <solb@google.com> camera2: Fix ordering issue between #onOpened and createCaptureSession

This resolves an issue where the CameraDevice.StateListener callbacks were
erroneously called before the CameraCaptureSession.StateListener ones,
preventing e.g. creating a capture session from the
CameraDevice.StateListener#onOpened() callback.
It also explicitly ignores CameraDevice.StateListener#onUnconfigured() calls
occurring before the first call to #close .

Bug: 15449190
Change-Id: Ic0094d53a65e42108201d7bb50734d17290fa9bf
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
7fcb357811d4dc1f44624e30ad924e9e580d4cbf 04-Jun-2014 Eino-Ville Talvala <etalvala@google.com> Camera2: Invoke onError callbacks for failure to open

When the initial attempt to connect to the remote camera device fails,
fire the onError callback as documented, instead of throwing an
exception from open().

Also ensure the correct exception is sent when methods are called
while in the error state, and make sure onClosed() is called correctly
if closing the device after an initial startup error.

Bug: 14413756
Bug: 14413363
Change-Id: I0822261dad52bcd428a0c4556202f00032499990
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
21547d66a9ce591ff30a3ad4102f7f30a4764d80 05-Jun-2014 Igor Murashkin <iam@google.com> camera2: Change CaptureListener callbacks to include the session (api)

* Also makes CameraDevice an abstract class (API)

Bug: 15428219
Bug: 14964443
Change-Id: I0e8c8309186aad59570aac7e0f998bb615405f0a
/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java