History log of /frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
bf39f791ab7c79457de2c2f21ac2260a6754c029 01-Mar-2017 Sheng-Hao Tsao <shenghao@google.com> Fix the bug that camera can't open again after disconnected

Reproduce steps:
1. Open android default camera
2. Open chrome camera app
3. Close chrome camera app
4. Android camera app is disconnected. Close it.
5. Open android camera app again. It can't open camera anymore.

The root cause is that camera state is set to invalid after getting
an exception in step 4. We should not invalidate the camera.

BUG=35411023
TEST=In samus, verify that camera can be opened after the above steps

Change-Id: I63bcc3587d1c7970c1bad8bffa628fa579f831ef
(cherry picked from commit a822d5c3528473582de6b2f9db0bee3ea2a18190)
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
7921659d7096a618634153ca7fed88e8563e03f5 02-Mar-2017 Sheng-hao Tsao <shenghao@google.com> Revert "Fix the bug that camera can't open again after disconnected"

This reverts commit 03e6dacb31332de191a1190a6b6f7d948f6536ef.

Change-Id: I469085d6993a6005f3487a3a33327bdaac498993
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
03e6dacb31332de191a1190a6b6f7d948f6536ef 23-Feb-2017 Sheng-Hao Tsao <shenghao@google.com> Fix the bug that camera can't open again after disconnected

Reproduce steps:
1. Open android default camera
2. Open chrome camera app
3. Close chrome camera app
4. Android camera app is disconnected. Close it.
5. Open android camera app again. It can't open camera anymore.

The root cause is that camera state is set to invalid after getting
an exception in step 4. We should allow opening camera even if
the state is invalid.

BUG=35411023
TEST=In elm, verify that camera can be opened after the above steps

Change-Id: Ie9e64cf826a3510b5fa76b14f7f4110e5a015b64
(cherry picked from commit 5d61737fe19ad69d41d94e2660053e82d0aa3dc5)
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
5f82a7e40f93cf9ae70ba1dacb61e907b8bdcc83 20-Jul-2015 Charles Zhang <ZhangCharles518@gmail.com> fix a mistake in AndroidCameraCapabilities.buildWhiteBalances().

1.fix a mistake in AndroidCameraCapabilities.buildWhiteBalances().
2.add White Balance Parameter setting in applySettingsToParameters().

Change-Id: Ic74493026ebfa09e27f7c3ea83fee300f751c5c1
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
25b78c8a18327bd73c3d4d34887dd63953aeaa8c 04-Nov-2014 Alan Newberger <alann@google.com> Ensure default handler always is set if no other error handler registered

To avoid memory leaks we set the error handler to null in activity
onDestroy. But, the agent may receive callbacks after this, so
ensure at minimum that we set the default logging handler to default
handle errors post activity destroy.

Bug: 18200874
Bug: 18202261
Change-Id: Ie7251a149ab02c474d8affd15af6b9ea48c2cdc0
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
c15ddae4862bb9a10b0142fac9558a5f899b1a21 27-Oct-2014 Alan Newberger <alann@google.com> Ensure agent error handler is always non-null

Create a dummy placeholder handler which logs warnings, which
can be replaced by app if desired. This makes various assumptions
valid that this is non-null.

Bug: 18137167
Change-Id: I0f508dff3cfe766ccc5a3c5a26c6196f4fb31e04
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
733ca8dfa76ac34d1f9caff8798d01a4a8f44002 14-Oct-2014 Senpo Hu <senpo@google.com> Return more detailed debugging info for logging purposes.

Change-Id: If71afbf8029e9e4d5560eb6a655ece990cf19a19
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
318eeb225f4567a8c2a6fe14baa06e8923ebe622 11-Oct-2014 Senpo Hu <senpo@google.com> Cleanup: handle API 1 error callback in CameraExceptionHandler.

Portability API used to expose setErrorCallback call which is API 1
only. The new CameraExceptionHandler should be the centralized place
to handle different camera errors.

Bug: 17931297
Change-Id: I0212f96a98e0caca64aca0f947b991b895d8d56b
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
2d01b8e2b5ad30ce3c442799cad4c3d26607fc6f 06-Oct-2014 Senpo Hu <senpo@google.com> Overhaul error handling in AndroidCameraAgentImpl.

DispatchThread could throw RTE when timeout (2500 ms). This CL extends
it to 3500 ms and also re-route the exception to the proper exception
callback instead of surfacing that up to the app. Since a lot of try-catch
block is added, CameraExceptionHandler class is added to keep
CameraAgent.java clean.

The portability layer should ensure the proper use of Camera API 1. With
this assumption, any run time exception thrown by the framework should be
considered fatal. Once it happened, CameraAgent/CameraProxy should be
invalidated. Any subsequent camera commands should be gated as no-ops to
prevent HAL hanging symptom. Users should be guided to exit the app and
recover from the camera error.

Design Doc:
https://docs.google.com/a/google.com/document/d/1t0sEPwGgc387XcoCVC7kT9Y_RSZPxcayla03M4bdn0U/edit

Corresponding CL for the app layer: ag/562383

Bug: 16189216
Change-Id: I33e69aeff0c8e4211e82e0e83133915700c4eb8f
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
1c1d1afb5701b78fcdf09969bba1c20eb591bccf 30-Sep-2014 Alan Newberger <alann@google.com> Remove default thumbnail size setting in portability lib

Settings thumbnail size to (0,0) suppresses thumbnail generation. The
Camera app did not set to (0,0) explicitly, but when porting
Camera.Parameters to CameraSettings this crept in. Causes issue on
Nakasi and no reason to suppress thumbnails in general.

Bug: 17700333
Change-Id: I486e560bc9aaf05daf019a3aad8de78ee306f21b
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
bad9708bd92213e65bfc9761ce3e69f8a59e1483 23-Sep-2014 Alan Newberger <alann@google.com> Add error log to API1 CameraAgent

Right when an error occurs, log it before doing further error handling.

Bug: 17555612
Change-Id: I23c828f3ff0749643e490a431b71318004c6d692
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
9f57c438ea0c7f02d0e86ade6a5e36c8993dd9fc 09-Sep-2014 Rachad Alao <rachad@google.com> Merge "portability: Fix a bug where long AF callbacks caused ISE timeouts" into lmp-dev
25ee73acd2dbd6f60deef5306994fbf3a7997936 09-Sep-2014 Senpo Hu <senpo@google.com> Let CameraProxy support setJpegOrientation.

When device is locked in portrait, JPEG orientation and preview
orientation might be different.

Bug: 17360176
Change-Id: I16ee937c4d930e5f02a3e703dffd3bdd63e0e367
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
6a9babad6eb8ac3e79a5e036d878ed7408e79f26 09-Sep-2014 Igor Murashkin <iam@google.com> portability: Fix a bug where long AF callbacks caused ISE timeouts

Bug: 17403384
Change-Id: I2f452f79ffb4c0c3327ea5bf7db3f9d26e98ff51
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
ca507f86d3d5e4f16ebd666a2b42664e5178eceb 09-Sep-2014 Alan Newberger <alann@google.com> Merge "Log null returns from Camera.getParameters" into lmp-dev
58774cf3543e06c4b51a54bccd603a2cbcd7a816 30-Aug-2014 Igor Murashkin <iam@google.com> Merge "camera2-portability: Touch-to-focus accounting for effective crop" into lmp-dev
2569329d6cff25bfe9941df539df14a0aeb4c4f4 29-Aug-2014 Sol Boucher <solb@google.com> camera2-portability: Touch-to-focus accounting for effective crop

This fixes the calculation of API 2 focus and metering rectangles to account for
the effective crop region (after the framework has performed automatic cropping
to match the requested output aspect ratio). It also guards against and prints
warnings when changing the resolution after having configured the session and
surfaces; before, this was merely a silent no-op.

Bug: 17187095
Change-Id: I3243bea24d6936d1bba5d556b3846d172ad0defe
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
f73c6cf2f04451ba4517abccd36a114667c69ae3 28-Aug-2014 Andy Huibers <andyhuibers@google.com> Add ability to reset focus and metering regions using API1.

Bug: 17286539
Change-Id: Id75bfc594f9fb6a08bb187d053ae99a85e7d9d42
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
9d8668449376fa47bc6528c7a61b04d6a0f691b3 20-Aug-2014 Sol Boucher <solb@google.com> camera2-portability: Switch to ratio-based zoom interfaces

This eliminates the deprecated index-based CameraSettings zoom methods in favor
of floating-point ratio based versions, and includes the plumbing to make those
work for both the camera1 and camera2 underlying framework APIs.

Bug: 17016658
Change-Id: I0567a53cd57bfa6d53604e3c5457a39ef49e3cb4
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
e4094bd3b85ce20e81a1677319192ed2274d0525 20-Aug-2014 Alan Newberger <alann@google.com> Log null returns from Camera.getParameters

There is some evidence that we may be getting null parameters on N10.
Specfically, AndroidCameraProxyImpl.getParameters is returning null,
and from analysis the only two options are that the API1 returns null,
or our synchronous waiting for threads is compromised and we are returning
without error too fast. The latter would presumably show up on many
devices, but we are only seeing an issue on N10, so I suspect an API/HAL
issue. Adding logging and a thrown exception, and cleaning up
GET_PARAMETERS message creation slightly to make more consistent with
other invocations.

Bug: 17109801
Change-Id: I1705345d03ed16ef22b170a11fcaf0c6fb2a2c4d
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
489e29ecbfd2ffe10ebd199204f3ee242b1bd1f8 18-Aug-2014 Alan Newberger <alann@google.com> Merge "Add exception logging to CameraDeviceInfo retrieval failure" into lmp-dev
eb07f0c4c693566f6f258e84426f518e90513c11 16-Aug-2014 Alan Newberger <alann@google.com> Add exception logging to CameraDeviceInfo retrieval failure

camera1 CameraAgent returns null CameraDeviceInfo if the underlying
camera device is broken. see b/16982203, this caused issues but was
invisible in logs. Adding logging to document true root cause of
any device info failures stemming from an underlying failure.

Bug: 16982203
Change-Id: I8a48714e1ddbde8b8eac35f149136d19efce5fb8
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
8447d2276441983d88e8315ffa79a16a90b3d4bb 15-Aug-2014 Alan Newberger <alann@google.com> Consolidate parameter caching in camera1 portability agent

The existing implementation of the AndroidCameraAgentImpl uses
a 'mParamsToSet' upon which is projects requested settings
changes in applySettings(). But, this mParamsToSet is initialized
only upon camera open! So 'hidden' parameters like video-size are
stuck in the value upon open. Instead, they should be current to
the last call to refreshSettings. To simplify, removed this and
another copy of parameters (mParameters), introduced one cache
class, and use it throughout the agent. Tested and app seems to
work OK in general with the change, and specifically confirmed that
video size parameters are not reverted after start, as was
observed before the change.

Bug: 16991558
Change-Id: I8f2749b8ab2ccc2cb858b8cd844330c5a482f79c
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
d0e873ab838702c69ddbe4ca9523949348f3ea47 16-Aug-2014 Alan Newberger <alann@google.com> Merge "Consolidate parameter caching in camera1 portability agent" into lmp-dev
b2df32dd892ae8076714b7ebd33c715378c4c730 16-Aug-2014 Sol Boucher <solb@google.com> Merge "camera2-portability: Make factory offer choice of backing API" into lmp-dev
50f5b019ba3f333a09a1beb9667fd7290082dc31 05-Aug-2014 Sol Boucher <solb@google.com> camera2-portability: Make factory offer choice of backing API

This allows apps using the library to decide whether to jump to the new API.
Users of the library may choose to use the Camera class, the camera2 API, or
have the choice made automatically based on the device's API level. The choice
may also be globally overridden by means of a system property.

Bug: 16875535
Change-Id: I92e4be96fbd04057be61ceb8a0c58935770022f6
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
de48004068f8c16f9a56c60b0ed2485a67687b4b 23-Jul-2014 Sol Boucher <solb@google.com> camera2-portability: Support photo capture using camera2 API

This implements JPEG capture, including an autoexposure precapture sequence.
There are many changes to AndroidCamera2Capabilities and AndroidCamera2Settings
to support the representation of modes (e.g. flash modes) whose flags do not
map trivially between the API implementations. Part of this work is the
conversion of AndroidCamera2AgentImpl to use and store a
Camera2RequestSettingsSet instead of a bare API 2 CaptureRequest.Builder.

Change-Id: I03f9f98c954a7b0c140ac8d80161878c92ef65d2
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
7e0d39bf7b6e0f0df606e3f6c15f673f70fed3f7 16-Jul-2014 Sol Boucher <solb@google.com> DO NOT MERGE: Fix oversight while refactoring CameraStateHolder

The base class still (redundantly) defined states, and AndroidCameraStateMachine
was overriding methods with a verbatim copy of their implementations.

Change-Id: I0e6361417edb159f91b89409058ee9a73b1101d9
(cherry-picked from commit dbc457417c581c21b5d49539325b1b152dc1baba)
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
a0842b40441db5332a5290f941021636b1182761 09-Jun-2014 Sol Boucher <solb@google.com> camera2-portability: Add support for previews using the camera2 API

At the moment, only SurfaceTextures (and not SurfaceViews/SurfaceHolders) are
supported. The tests still only cover Stringifier and IntegralStringifier.

Change-Id: Ie643c58f8383cd3b9f59c16e0b79239df0ca068d
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
b30d2c670f1262f0d60181e40dad33f2151fee4a 19-Jun-2014 Sol Boucher <solb@google.com> camera2-portability: Remove Camera.CameraInfo accessor

This removes the CameraDevice#getCameraInfos() call that provided direct access
to this API 1 type, replacing it with another accessor returning individual
instances of the new wrapper type CameraDevice.BasicCharacteristics .
It also gives CameraProxy a method for getting instances of this wrapper.

Change-Id: I0c72ffe71817b8acf1cc5a01f1565ec4e0e97e7d
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
01e7c02174ef268b6d6daaa5a5bb4f752d55964c 18-Jun-2014 Angus Kong <shkong@google.com> Add various supports in settings and capabilities.

1. View angles in capabilities.
2. Preview formats setting.
3. Photo formats setting.
4. Recording hint for video recording preview setting.
5. JPEG thumbnail size setting.

Change-Id: Ib8e33cf838859ae76a662fffcc496250ad85c203
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
4f425ba476d62b4be7078f2084af37cf306b31c6 18-Jun-2014 Sol Boucher <solb@google.com> camera2-portability: Rename CameraManager to CameraAgent

This resolves a naming clash with a class in the new camera2 framework API.

Change-Id: Id53aa3e0bbe9e9edaa82b0aec695fd835c3d0ef9
/frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java