History log of /frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
cad1bfe68b3597741f777a8bf233cd440946936b 23-May-2017 Eino-Ville Talvala <etalvala@google.com> Camera2: Fix broken onCaptureBufferLost callback

Turns out this never worked. 😱

- Add missing oncaptureBufferLost proxy method
- To avoid this issue in the future, change CameraDeviceImpl.CaptureCallback to be
an interface instead of an abstract class; now all implementers _must_ implement
all the methods
- For the short-circuit local callback when no callback is provided by the user,
implement all no-ops explicitly.

Test: Camera CTS continues to pass; manual testing with injected buffer drops
Bug: 62004599
Change-Id: I7732903dbc00e80084162e067de66b5db6cee74c
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
0e04e910a6b0d8a7464df9721535dfba21527c37 01-Mar-2017 Eino-Ville Talvala <etalvala@google.com> CameraDevice: Add hidden createCustomCaptureSession

This exposes a direct route to selecting the operating mode, instead
of only allowing normal and high-speed modes.

Test: Compiles
Bug: 34853980
Change-Id: Ib4f833399834c9bacb9de666560e909109aa5af9
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
4bd7abe72a647ceb2175a4fe66aa640815c116f8 11-Jan-2017 Shuzhen Wang <shuzhenwang@google.com> Camera2: Combine API for deferred surface and shared surface

- Unhide API to enable sharing surfaces via OutputConfiguration.
- Combine the APIs for deferred surface and shared surfaces so that
same functions can be used for both use cases.
1. setDeferredSurface becomes addSurface.
2. finishDeferredConfiguration becomes finalizeOutputConfiguration.
- Better documentation on shared surface use cases.

Test: Camera CTS, and preview/video/capture with GCA
Bug: 33777818
Change-Id: I528b221492e07888a2da96658aaf8e7b9c4d1640
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
9c663d4415a077230924f40eaf291f51ff37e8b0 29-Oct-2016 Shuzhen Wang <shuzhenwang@google.com> Camera2: Add secondary surface to OutputConfiguration

Test: camera cts, and manually test camera preview/capture/recording.
Bug: 33777818
Change-Id: I853f2f48640e4b1ad20a468c152f7e9b536f7a3b
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
88f1af241045d446358c692e183e5ecb152bad91 30-Sep-2016 Shuzhen Wang <shuzhenwang@google.com> Camera2: Add onCaptureQueueEmpty callback

onCaptureQueueEmpty indicates that the non-repeating
capture request queue of camera device is empty, and
is ready to process a new request.

Test: testMultipleCapture in PerformanceTest.java

Bug: 29006447
Change-Id: If245ff6abf352548ca13a10fcfbd1550b92c1224
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
b0025e1f6848b02cb4bd25f07c6f9567116f6aaf 09-Aug-2016 Yin-Chia Yeh <yinchiayeh@google.com> Camera: ensure lock ordering (device->session)

On close/abort calls, which are more likely to run in parallel
with CameraDevice APIs.

Bug: 30742426
Change-Id: I6550283d1026373d48bb730164e65b25c7037bab
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
c8b181e95d17c00f9fe4a8338c4cdd0eeac3a0dc 30-May-2016 Zhijun He <zhijunhe@google.com> Camera2: add deferred output config support

Allow surfaces to be deferred during session creation. Once the surfaces are ready,
the application can finish the deferred output configuration to be able to submit
requests with these surface targets.

Bug: 28323863
Change-Id: Id6634c3ef2ecc84422a88f63de0a19a0cb496e96
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
7e71896561178a14622755e3bbc5b7d374850ca5 21-Apr-2016 Eino-Ville Talvala <etalvala@google.com> Camera2: Ignore exception on double-completed capture sequences.

As a workaround for b/27870771, convert fatal exception into a
warning.

Duplicate calls to finishPendingSequence with the same sequenceId
are seen in user crash reports, but with no further context and
inability to reproduce after testing various hypothesis, just
warn about it happening.

Bug: 27870771
Change-Id: Icd7d408887e04b94092689ce61809d6c664d8e3a
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
7ed1aaa369b6a459c776a9a6e96c33014b30f278 14-Aug-2015 Ruben Brunk <rubenbrunk@google.com> Add experimental camera session prepare API.

Bug: 18949148
Change-Id: I35fde35436ae5bebab3c912243e621285307c211
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
14c09fa3c5371b977c77e5813eabb81941040627 16-Jul-2015 Eino-Ville Talvala <etalvala@google.com> Camera2: Add hidden experimental tearDown method

Bug: 18949148
Change-Id: I6264d95a26ebf51cce6114c9a86b9561f7c60ab5
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
639fffee624302ec5b175503d7bd8a441340a629 30-Jun-2015 Eino-Ville Talvala <etalvala@google.com> Camera2: Reorganize high-speed recording API slightly

- Split off distinct high speed capture session class from base capture session
- Move createHighSpeedRequestList to CameraConstrainedHighSpeedCaptureSession

Bug: 21664295
Change-Id: I67d705fdeee1eaa6e5e3e1416771d5d0df642843
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
d24e49bba8225d846546612b647dde70ad71f1dc 05-Jun-2015 Zhijun He <zhijunhe@google.com> Camera2: add missing HFR implementation

Bug: 21442271
Change-Id: I08c0a5b75ccb0f737013026511cfe3bf9e15c744
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
a7677722304670dc07feef242156b97e6bb51bcd 02-Jun-2015 Zhijun He <zhijunhe@google.com> Camera2: implement high speed video APIs

Bug: 21442271
Change-Id: Ia0ae5bbd3e8c81bad293c29987301a2457817d12
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
b1300e39c7974937d563b3ec62f5246248a157b3 28-May-2015 Zhijun He <zhijunhe@google.com> Camera2: add high speed video APIs

Interface only.

Bug: 21442271
Change-Id: If81caa0f2dc9f7802af564abcd9541aff3e30901
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
a78791f22af6c6985d186494737468bb19b69540 01-Jun-2015 Eino-Ville Talvala <etalvala@google.com> Camera2: Remove isLoggable

Change-Id: I83b2c8321ab6b48cf68ef7a4d724559ead1a1790
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
1975b0a4bedb997f4f106ab35be4889eb207cf60 19-May-2015 Eino-Ville Talvala <etalvala@google.com> Merge "Camera2: Fix session close callback" into mnc-dev
937c93c47d91962fcbc1cb08e5ce08d55d9a931e 19-May-2015 Eino-Ville Talvala <etalvala@google.com> Camera2: Fix session close callback

If a session is directly replaced, it no longer will receive state
change callbacks from the device. That means it'll never hear about
abort or idle transitions.

Fix this to signal onClose earlier, after sequences complete. This is
reliable to wait on.

Remove the unconfigure drainer, as we have nothing to do after
null-stream configuration completes, now, so no point in triggering
anything for it.

Bug: 19666551
Change-Id: Ied6fb40126b79886cdbcb27d40a76a1646273dd2
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
125ff3cacd4f44c4fb01c2542521b6d2be69ee19 18-May-2015 Zhijun He <zhijunhe@google.com> Camera2: stop log spamming when closing a closed camera

Bug: 21268174
Change-Id: I711380c52f5ce9829a660c6e1b999b0377ea6c7b
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
8062d31d27943da4d652878b4c36aeabb8bb8b08 12-May-2015 Chien-Yu Chen <cychen@google.com> Camera2: Fix reprocessing API naming and docs

Rename reprocessible to reprocessable and OPAQUE reprocessing to
PRIVATE reprocessing. Also fix a few broken links in reprocessing
APIs.

Bug: 21044522
Change-Id: I155b62d8743b036bd4b46f0da87749ce4e20b467
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
4560df76ebe9414da187e133786ffca9840e6e85 28-Apr-2015 Chien-Yu Chen <cychen@google.com> camera2: allow mixing regular/reprocess requests

Allow mixing regular and reprocess requests in burst requests.
Create RequestLastFrameNumbersHolder to store the last regular
frame number and the last reprocess frame number in a capture
request list which can be used to determine if the capture
sequence is completed.

Bug: 20537735
Change-Id: I0880f8c845380e1c7ffe504225a556829dfeccf6
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
7a316f6b1b040f0113161db87a36397aebfb80b8 13-Apr-2015 Chien-Yu Chen <cychen@google.com> camera2: validate reprocess request's session

Add a session ID to CaptureResult to indicate the session where
the result comes from. When creating a reprocess capture request
with a capture result, the session ID will be carried over to
the reprocess capture request. Reprocess capture request's session
ID will be used to validate that it matches the session ID when
submitting the reprocess capture request to a session.

Bug: 20263212
Change-Id: I024c1a28ecf0a43909a0ed3814a11360c318417f
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
ad916f7fd3fbb202f2993fea04b0bdad3dcd6de6 11-Apr-2015 Eino-Ville Talvala <etalvala@google.com> Camera2: Add prepare method for output buffer pre-allocation

Normally, buffers for camera output Surfaces are allocated as
needed. This minimizes memory overhead and time to first frame.

However, if allocation takes a long time, as it can do for full-resolution
output buffers, full frame rate may not be maintainable with the added
allocation overhead.

The prepare() method allows an application to indicate that buffers for
a given output Surface should be preallocated by the camera device.
Once the allocation is complete, the onSurfacePrepared callback is invoked.
The application may then use the prepared Surface without concerns about
allocation-caused delays.

Change-Id: I4f616dc87dd4346f408cf1ea37d48a642ceb57da
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
5398a676809faaf3c6c2875edc1907ad6b8e1c89 19-Mar-2015 Chien-Yu Chen <cychen@google.com> camera2: add reprocess support

Add reprocess API and implementation to support creating reprocess
capture sessions, reprocess requests, and receiving reprocess capture
results.

Change-Id: I4c1c02f41d1712f65e729ea3ba09592a27ffe86d
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
08c7116ab9cd04ad6dd3c04aa1017237e7f409ac 28-Feb-2015 John Spurlock <jspurlock@google.com> Remove unused imports in frameworks/base.

Change-Id: I031443de83f93eb57a98863001826671b18f3b17
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
56fbbeab7931386af7ad9701fad9b62c170abd77 24-Sep-2014 Eino-Ville Talvala <etalvala@google.com> Camera2: Fix parallel session and device close() exception

It's possible for the device to have close() called on it
during the session close sequence such that the session still
tries to do a stream reconfiguration on the closed device.

Handle the exception thrown by this attempt.

Bug: 17661765

Change-Id: Iee63c5c559405abe5c044ae251ad56edd1fb3e79
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
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/CameraCaptureSessionImpl.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/CameraCaptureSessionImpl.java
ee7ea8534067fd83ce4e446da5fd8b538cc2c444 09-Sep-2014 Eino-Ville Talvala <etalvala@google.com> Camera2: Allow captures right after abort

Since implementation is still largely synchronous, this is safe.
For the future full-asynchronous implementation, this is the behavior
we want in any case.

Bug: 17345630
Change-Id: Ib54a3441b21fa8cb42bcc6548e5639d9db7ec193
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.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/CameraCaptureSessionImpl.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/CameraCaptureSessionImpl.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/CameraCaptureSessionImpl.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/CameraCaptureSessionImpl.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/CameraCaptureSessionImpl.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/CameraCaptureSessionImpl.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/CameraCaptureSessionImpl.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/CameraCaptureSessionImpl.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/CameraCaptureSessionImpl.java
0b27d3453d5e257594792e9177c5fedb1bc6f9e9 30-May-2014 Igor Murashkin <iam@google.com> camera2: Implement most of CameraCaptureSession

Bug: 14964443
Change-Id: I8203842c77a94a3a6e5f89494fce658b00a4160d
/frameworks/base/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java