History log of /frameworks/ex/camera2/
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)
ortability/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
ortability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
ortability/src/com/android/ex/camera2/portability/CameraStateHolder.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)
ortability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
ortability/src/com/android/ex/camera2/portability/CameraStateHolder.java
55ee348616472c36b1941870556044bdbc7f5458 28-Oct-2016 Dan Willemsen <dwillemsen@google.com> Merge "Revert "Revert "Revert "Camera2: Use hidden APIs"""" am: 6033321c6f am: 156dc3b883 am: 5c2d5d4549
am: 98cfb87a97

Change-Id: I61d2e654ca0dbcdbb10c464dbdbaeb38eb7b16dc
6033321c6f8305aa2f35b6f9c33169d69ec6fc91 28-Oct-2016 Treehugger Robot <treehugger-gerrit@google.com> Merge "Revert "Revert "Revert "Camera2: Use hidden APIs""""
a26632ef83df8e8a727641998876fa2043f06611 20-Oct-2016 Shuzhen Wang <shuzhenwang@google.com> Merge "camera2: Add onCaptureQueueEmpty callback"
20ae4a778e9358f23657091fd084343433d048bb 14-Oct-2016 Charles Zhang <ZhangCharles518@gmail.com> Merge "fix a mistake in AndroidCameraCapabilities.buildWhiteBalances()." am: 659f8313d7 am: c11b14c6b4
am: a69e6dece2

Change-Id: I2a6b56516149b15127de644d76c14a4d162cecbb
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
ortability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
ortability/src/com/android/ex/camera2/portability/AndroidCameraCapabilities.java
3308f56e9af5f38f4b03e8b7700d3e8bf400fb38 10-Oct-2016 Shuzhen Wang <shuzhenwang@google.com> camera2: Add onCaptureQueueEmpty callback

onCaptureQueueEmpty is called when the non-repeating request queue
becomes empty.

Test: testMultipleCapture in PerformanceTest.java

Bug: 29006447
Change-Id: Ic19debb27dd9580b58d1790af03dc55fa0ac5db9
ublic/src/com/android/ex/camera2/blocking/BlockingSessionCallback.java
ac2be4eb69d17dae3099a40fbba0608eeaf123e6 24-Aug-2016 Guang Zhu <guangzhu@google.com> Avoid JUnit4 collision in android-support-test, mockito-target

Bug: 31072145
Test: make droid checkbuild

Change-Id: I0e89cdca16e6874a0c5578190c33f251db6d3984
ortability/tests/Android.mk
tils/tests/Android.mk
a650cbea25ec9202a65049c2d0fae4ce5dd30e0d 20-Jul-2016 Dan Willemsen <dwillemsen@google.com> Revert "Revert "Revert "Camera2: Use hidden APIs"""

This reverts commit 7705b0b80a3f432c59d1e1892ca3751e89508aed. These APIs
aren't hidden anymore.
ublic/Android.mk
39c31d49ce38158b7708581df0813b03e32d6eea 06-Jun-2015 Yin-Chia Yeh <yinchiayeh@google.com> Camera2: Support waitForSurfacePrepared in BlockingSessionCallback

Change-Id: I7f6f351092a173fe0b7a567e5240cb5abe8cb2de
ublic/src/com/android/ex/camera2/blocking/BlockingSessionCallback.java
ebb6c5111f287a8cf55f1dcac7d7c5b76d9260ff 13-May-2015 Eino-Ville Talvala <etalvala@google.com> Camera2: Support onSurfacePrepared in BlockingSessionCallback

Change-Id: Id46c044badb98f7837ca3898758997c171aa5c68
ublic/src/com/android/ex/camera2/blocking/BlockingSessionCallback.java
046ba28a082f30d56a1ac63eaa13b5cf95093db6 17-Apr-2015 Jiawen Chen <jiawen@google.com> DO NOT MERGE: Minor style fixes.

- BlockingCameraManager had the wrong TAG.
- Added static / final to NUM_STATES.
- Javadoc @param mismatch.

Change-Id: I0dbe6b3d4bdcb5a51ba0aea89985c3495a59381e
(cherry picked from commit 5a772174d14175474e76701b07cc0be86c3df32a)
ublic/src/com/android/ex/camera2/blocking/BlockingCameraManager.java
ublic/src/com/android/ex/camera2/blocking/BlockingSessionCallback.java
ublic/src/com/android/ex/camera2/blocking/BlockingStateCallback.java
ublic/src/com/android/ex/camera2/utils/StateChangeListener.java
ublic/src/com/android/ex/camera2/utils/StateWaiter.java
c5effbd8ffed05f6c5142c1c8d491c398194bf5b 05-Dec-2014 Eino-Ville Talvala <etalvala@google.com> Camera2: Portability: Remove HDR hack.

Bug: 18640480
Change-Id: I8f0b42cbb05c6881fbc32664ce9e2b97a0ef5db3
ortability/src/com/android/ex/camera2/portability/AndroidCamera2Capabilities.java
ortability/src/com/android/ex/camera2/portability/AndroidCamera2Settings.java
ortability/src/com/android/ex/camera2/portability/LegacyVendorTags.java
aa9ed1d0bfa5ed2929cefc875a14b327875db290 19-Nov-2014 Nick Korostelev <nkorsote@google.com> Cleaned up usages of deprecated API

Change-Id: Ie2f5fdc51d47e1d70dcfaf27550412d8569c1c04
ortability/tests/src/com/android/ex/camera2/portability/Camera2PortabilityTest.java
tils/tests/src/com/android/ex/camera2/utils/Camera2DeviceTester.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
ortability/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
ortability/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
ortability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
ortability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
ortability/src/com/android/ex/camera2/portability/CameraExceptionHandler.java
ortability/src/com/android/ex/camera2/portability/HistoryHandler.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
ortability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
ortability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
ortability/src/com/android/ex/camera2/portability/CameraActions.java
ortability/src/com/android/ex/camera2/portability/CameraAgent.java
ortability/src/com/android/ex/camera2/portability/CameraExceptionHandler.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
ortability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
ortability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
ortability/src/com/android/ex/camera2/portability/CameraAgent.java
ortability/src/com/android/ex/camera2/portability/CameraExceptionHandler.java
ortability/src/com/android/ex/camera2/portability/CameraStateHolder.java
90e75d1f90b85e11f6905966ea28d59916935c68 05-Oct-2014 Alan Newberger <alann@google.com> Check isZoomSupported before any zoom ratio calculations.

Per API doc, isZoomeSupported should be checked before calling
getZoomRatios or getMaxZoom. Moving zoom calculation into
isZoomSupported check fixed crash in front camera with no zoom
support, where a HAL/fwk returns a null list of zoom ratios.

Bug: 17863266
Change-Id: I80b5f7a431e7bbe4d50e5d062628e38eda3fd0a6
ortability/src/com/android/ex/camera2/portability/AndroidCameraCapabilities.java
698997b9ef47f215350f03c0289f291846cd3604 03-Oct-2014 Puneet Lall <puneetl@google.com> Add null check for exif thumbnail size

Bug:17790747
Change-Id: I758bb217d0a76093d8e4bb1832cc7ab6907235ee
ortability/src/com/android/ex/camera2/portability/AndroidCamera2Settings.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
ortability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
ortability/src/com/android/ex/camera2/portability/CameraSettings.java
70a82d9d9a59c2a0b9241fdb0b8b0f1a61d0d5a0 24-Sep-2014 Senpo Hu <senpo@google.com> Add null check in AndroidCameraSettings.

Check Camera.Parameters is null in AndroidCameraSettings ctor.
This should also fix the NPE bug b/17620440.

Bug: 17555612
Change-Id: Iee5f41b5d47eced3155e31c09f267eaa61c7de39
ortability/src/com/android/ex/camera2/portability/AndroidCameraSettings.java
2eed7ab0e5d81c0025737c6ce9931f3d8b57b418 23-Sep-2014 Alan Newberger <alann@google.com> Merge "Specify Locale.US for stringification of enums" into lmp-dev
1bd78b36e275371eff1ec1d07c9c1f93f63f5c39 23-Sep-2014 Alan Newberger <alann@google.com> Specify Locale.US for stringification of enums

For machine-readable enum translation, use Locale.US which will preserve
english enum casing and is recommended in Locale docs.

Bug: 17557568
Change-Id: I40274bccdb593889c8ded003a5fb731f45892d7b
ortability/src/com/android/ex/camera2/portability/CameraCapabilities.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
ortability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
06b23bb5cbddfed587a6f0d75636734862b49a1e 10-Sep-2014 Eino-Ville Talvala <etalvala@google.com> Merge "Camera2: Update for camera2 API changes" into lmp-dev
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
ortability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
ortability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
ortability/src/com/android/ex/camera2/portability/CameraActions.java
ortability/src/com/android/ex/camera2/portability/CameraAgent.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
ortability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
ortability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
ortability/src/com/android/ex/camera2/portability/CameraActions.java
ortability/src/com/android/ex/camera2/portability/CameraAgent.java
ortability/src/com/android/ex/camera2/portability/CameraStateHolder.java
ca507f86d3d5e4f16ebd666a2b42664e5178eceb 09-Sep-2014 Alan Newberger <alann@google.com> Merge "Log null returns from Camera.getParameters" into lmp-dev
171362f843c1e7623f29db1781176f85b1f74815 09-Sep-2014 Eino-Ville Talvala <etalvala@google.com> Camera2: Update for camera2 API changes

Add frame number to CaptureCallback#onCaptureStarted

Bug: 17421092
Change-Id: I8ffc0c7c22a5f3a25e923aaf1ecf166c7a264508
ortability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
ublic/src/com/android/ex/camera2/blocking/BlockingCaptureCallback.java
tils/src/com/android/ex/camera2/utils/Camera2CaptureCallbackForwarder.java
tils/src/com/android/ex/camera2/utils/Camera2CaptureCallbackSplitter.java
tils/tests/src/com/android/ex/camera2/utils/Camera2UtilsTest.java
d5205c2648ba1213f28a232379d10b07a7ee9bdc 06-Sep-2014 Igor Murashkin <iam@google.com> Merge "portability: Fix incorrect comparison between int and Integer" into lmp-dev
bb013aa3e197e881756be5ad13e6ad30bfb4aeff 04-Sep-2014 Eino-Ville Talvala <etalvala@google.com> Camera2: Renames for API consistency

- Listener -> Callback
- add/remove callbacks -> register/unregister

Bug: 17389922
Change-Id: I6e162ae18447b5a4fcabc17d17b1341f341fc47d
ndroid.mk
ortability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
ublic/src/com/android/ex/camera2/blocking/BlockingCameraManager.java
ublic/src/com/android/ex/camera2/blocking/BlockingCaptureCallback.java
ublic/src/com/android/ex/camera2/blocking/BlockingCaptureListener.java
ublic/src/com/android/ex/camera2/blocking/BlockingSessionCallback.java
ublic/src/com/android/ex/camera2/blocking/BlockingSessionListener.java
ublic/src/com/android/ex/camera2/blocking/BlockingStateCallback.java
ublic/src/com/android/ex/camera2/blocking/BlockingStateListener.java
ublic/src/com/android/ex/camera2/pos/AutoFocusStateMachine.java
tils/src/com/android/ex/camera2/utils/Camera2CaptureCallbackForwarder.java
tils/src/com/android/ex/camera2/utils/Camera2CaptureCallbackSplitter.java
tils/src/com/android/ex/camera2/utils/Camera2CaptureListenerForwarder.java
tils/src/com/android/ex/camera2/utils/Camera2CaptureListenerSplitter.java
tils/tests/src/com/android/ex/camera2/utils/Camera2DeviceTester.java
tils/tests/src/com/android/ex/camera2/utils/Camera2UtilsTest.java
dc05ed7a8443af7c1a7b1bb39519d09d79284e42 05-Sep-2014 Igor Murashkin <iam@google.com> portability: Fix incorrect comparison between int and Integer

Bug: 17405119
Change-Id: Ic4828b5ddee2b11fa9886506e48c640a4c5ad3ef
ortability/src/com/android/ex/camera2/portability/AndroidCamera2Settings.java
3b7da912d573f358fd217f6d9b569cca648efe02 04-Sep-2014 Ruben Brunk <rubenbrunk@google.com> ex: Avoid exception if HDR_SCENE_MODE name changes.

Bug: 17353543
Change-Id: I31448687a69afc66e93f4360e8a3186ff8ad6235
ortability/src/com/android/ex/camera2/portability/LegacyVendorTags.java
9fb7e16061ae2f3d3b059952706a1e1a1b439d6b 30-Aug-2014 Ruben Brunk <rubenbrunk@google.com> Merge "camera2: Add HDR vendor tag for legacy mode." 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
ortability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
ortability/src/com/android/ex/camera2/portability/AndroidCamera2Settings.java
ortability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
ortability/src/com/android/ex/camera2/portability/AndroidCameraSettings.java
ortability/src/com/android/ex/camera2/portability/CameraAgent.java
ortability/src/com/android/ex/camera2/portability/CameraSettings.java
54c8f898815a233ba6478630940432ddafdb4314 28-Aug-2014 Ruben Brunk <rubenbrunk@google.com> camera2: Add HDR vendor tag for legacy mode.

Bug: 17072609

Change-Id: Iebb97d12fc62986ad389460c253cfc504a68ad7f
ortability/src/com/android/ex/camera2/portability/AndroidCamera2Capabilities.java
ortability/src/com/android/ex/camera2/portability/AndroidCamera2Settings.java
ortability/src/com/android/ex/camera2/portability/CameraCapabilities.java
ortability/src/com/android/ex/camera2/portability/LegacyVendorTags.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
ortability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
415cf3ee18640ad0799e5c9a738afd1d19c14883 28-Aug-2014 Sol Boucher <solb@google.com> camera2-portability: Allow disabling the shutter sound on API 2

Because the camera2 API doesn't play shutter sounds at all, the portability
layer does it directly. Consequently, it is trivial to skip that step.

Bug: 17303595
Change-Id: I303696906902c2d8af58baedf27f6e20f34772f1
ortability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
47a01cf05c1e22e76bdf3182461dcfeb71b960bb 27-Aug-2014 Sol Boucher <solb@google.com> Merge "camera2-portability: Fix and document obscure state machine bug" into lmp-dev
7d71703202c2fba36653293eba2772745db46c00 27-Aug-2014 Sol Boucher <solb@google.com> camera2-portability: Fix camera2 takePicture AE regression

This fixes a regression introduced by 984a086412a94ebea1bd9af8cd8bbf4afab38034
that resulted in captures sometimes hanging until the AE state changed. It
includes explanatory comments to guard against this sort of error in the future.

Bug: 17302778
Change-Id: I668f5a5470a0ae7712f62c7574d18360d47e410b
ortability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
772fcce3e51a9c7d33df6a9c278a908ac6902880 27-Aug-2014 Sol Boucher <solb@google.com> camera2-portability: Fix and document obscure state machine bug

The numeric state codes defined by the camera2 implementation were incompatible
with the StateHolder class's wait interface; thus, blocking operations didn't
always behave as expected.

Bug: 17300466
Change-Id: I54f462d5de876c9dcf99b2a4c7ae79879cc0eca2
ortability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
7c8d6957b96c75ce11f7373f4ab2451ee4666360 27-Aug-2014 Sol Boucher <solb@google.com> Merge "camera2-portability: Fix zoom occasionally not working" into lmp-dev
80cda8dae801f09c2ce928d0f3feb8a569939fc2 27-Aug-2014 Sol Boucher <solb@google.com> camera2-portability: Fix zoom occasionally not working

Cache the last valid CameraSettings object

The camera2 implementation of CameraProxy#getSettings() now returns the most
recent valid CameraSettings object that was provided to it (or the template if
no valid cached instance is available). This more closely mimics the camera1
implementation's behavior, and resolves issues where the app relies on finding
recent settings there in corner cases.

Bug: 17016658
Change-Id: I057feec3f857428dd210300a05f22cafa9f5ba34
ortability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
984a086412a94ebea1bd9af8cd8bbf4afab38034 25-Aug-2014 Sol Boucher <solb@google.com> camera2-portability: Optimize out some camera2 AE precaptures

If it's already converged and the flash isn't being forced on, there's no need
to force the precapture routine, which would delay our capture significantly.
Also use onCaptureProgressed() instead of onCaptureCompleted() when possible.

Change-Id: I0bb7956498b0070382cd5b39b7ccdc0cc0765913
ortability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
tils/src/com/android/ex/camera2/utils/Camera2RequestSettingsSet.java
tils/tests/src/com/android/ex/camera2/utils/Camera2UtilsTest.java
f27e71f979e803a3ac00f4057eb909886d957a3e 23-Aug-2014 Sol Boucher <solb@google.com> Merge "camera2-portability: Switch to ratio-based zoom interfaces" into lmp-dev
336f88ed91a43eb4d1d67fb805171433676279e3 23-Aug-2014 Sol Boucher <solb@google.com> Merge "camera2-api: Tag camera2 JPEGs with any provided location" into lmp-dev
d6a52ce7b43f15fc931038133b4fea821e9f3b9f 23-Aug-2014 Sol Boucher <solb@google.com> Merge "camera2-api: Work around invalid camera2 API focus modes" into lmp-dev
d0185cc2f5786571565f01b26e1143ce0099bdc8 23-Aug-2014 Sol Boucher <solb@google.com> camera2-api: Tag camera2 JPEGs with any provided location

Bug: 17027000
Change-Id: I311028b9df4d74268fb415c163f7e6a2d2505dff
ortability/src/com/android/ex/camera2/portability/AndroidCamera2Settings.java
ortability/src/com/android/ex/camera2/portability/CameraSettings.java
f2b5a976bb1c30f83682a996ce9289a973c88784 23-Aug-2014 Sol Boucher <solb@google.com> camera2-api: Work around invalid camera2 API focus modes

The validation routine now changes the focus mode to FIXED if the requested one
is unsupported. This is to work around devices whose templates erroneously
specify unsupported focus modes.

Bug: 17177436
Change-Id: If9b679510e0c232453dd0a77dbdd2e0ec713ac12
ortability/src/com/android/ex/camera2/portability/CameraCapabilities.java
aa907a3b6637b4f95dbf572d0cf790a70ba3aeb0 22-Aug-2014 Sol Boucher <solb@google.com> camera2-portability: Play shutter sound for camera2 captures

Bug: 17109582
Change-Id: I73321cdbb2972b2d1e9bc2de93192fbb506347e7
ortability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.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
ortability/src/com/android/ex/camera2/portability/AndroidCamera2Capabilities.java
ortability/src/com/android/ex/camera2/portability/AndroidCamera2Settings.java
ortability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
ortability/src/com/android/ex/camera2/portability/AndroidCameraCapabilities.java
ortability/src/com/android/ex/camera2/portability/AndroidCameraSettings.java
ortability/src/com/android/ex/camera2/portability/CameraAgent.java
ortability/src/com/android/ex/camera2/portability/CameraCapabilities.java
ortability/src/com/android/ex/camera2/portability/CameraSettings.java
ortability/tests/src/com/android/ex/camera2/portability/Camera2PortabilityTest.java
tils/tests/src/com/android/ex/camera2/utils/Camera2UtilsTest.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
ortability/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
ortability/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
ortability/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
182acbc3f78ea6c6edd6bd5d67c62188b4079243 16-Aug-2014 Sol Boucher <solb@google.com> Merge "camera2-portability: Provide preview transformation matrix" into lmp-dev
f9feab9a826e5b33d811e757bdfdbfa0738fcfa5 12-Aug-2014 Sol Boucher <solb@google.com> camera2-portability: Provide preview transformation matrix

Applying this transform to the Surface on which the stream is displayed results
in a correctly rotated image. For API 1, the rotation is actually performed by
the Camera class and the returned matrix is an identity matrix; however, for API
2, the transformation is responsible for proper orientation.

Bug: 16875535
Change-Id: I044ffbd1095bd1a9792c899b792129cc94c7c916
ortability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
ortability/src/com/android/ex/camera2/portability/CameraDeviceInfo.java
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
ortability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
ortability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
ortability/src/com/android/ex/camera2/portability/CameraAgentFactory.java
ortability/src/com/android/ex/camera2/portability/util/SystemProperties.java
3d6e5018ff8d64ac1815477fe0172f62f91727a2 15-Aug-2014 Sol Boucher <solb@google.com> Merge "camera2-portability: Improve capability conversions' null-safety" into lmp-dev
bc9c0e2cb071b085ecc5646751fb59f5145d51b1 13-Aug-2014 Sol Boucher <solb@google.com> camera2-portability: Improve capability conversions' null-safety

This makes it harder for unexpected nulls in CaptureRequest templates to cause
exceptions while unboxing Integer wrappers. Such crashes were observed on some
devices while running on the legacy layer, especially with scene modes.

Change-Id: I0cae95534f138e97f2c589d15e81f77b4f2141f7
ortability/src/com/android/ex/camera2/portability/AndroidCamera2Settings.java
c6344faeff899655abd60b3bf4cd638e58bcc3d7 13-Aug-2014 Sol Boucher <solb@google.com> camera2-portability: Report correct sizes for preview and capture

This reports JPEG capture sizes instead of YUV ones, and ensures that preview
sizes match TextureView, not SurfaceView.

Change-Id: I2963ee1741156cc2a29e2e65308bd14dd145e4c8
ortability/src/com/android/ex/camera2/portability/AndroidCamera2Capabilities.java
47497bee8a3550af79f9a32c9362d7ee78364a71 08-Aug-2014 Alan Newberger <alann@google.com> Merge "Fix missing zoom fields in copy constructor of CameraCapabilities" into lmp-dev
4ecb0ad6d1d5dc6b12f998bf694877df06a77890 08-Aug-2014 Alan Newberger <alann@google.com> Fix missing zoom fields in copy constructor of CameraCapabilities

These fields are deprecated but while we have them, should copy them in the
constructor. This contributes to a zoom bug in the app, since ratios and indices
are dropped upon copy.

Bug: 16527845
Change-Id: I008384faa77e0c13a2790e095fa311909c1e9b44
ortability/src/com/android/ex/camera2/portability/CameraCapabilities.java
399c82779ad59de44f46c25fd031f9909e0581e9 08-Aug-2014 Sol Boucher <solb@google.com> Merge "camera2-portability: Support photo capture using camera2 API" into lmp-dev
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
ortability/portability.mk
ortability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
ortability/src/com/android/ex/camera2/portability/AndroidCamera2Capabilities.java
ortability/src/com/android/ex/camera2/portability/AndroidCamera2Settings.java
ortability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
ortability/src/com/android/ex/camera2/portability/AndroidCameraSettings.java
ortability/src/com/android/ex/camera2/portability/CameraAgent.java
ortability/src/com/android/ex/camera2/portability/CameraCapabilities.java
ortability/src/com/android/ex/camera2/portability/CameraDeviceInfo.java
ortability/src/com/android/ex/camera2/portability/CameraSettings.java
ortability/tests/Android.mk
ortability/tests/AndroidManifest.xml
ortability/tests/src/com/android/ex/camera2/portability/Camera2PortabilityTest.java
tils/tests/src/com/android/ex/camera2/utils/Camera2DeviceTester.java
tils/tests/src/com/android/ex/camera2/utils/Camera2UtilsTest.java
91a9eebe63a2481ed6adbc59ecfbb22ce41fc65e 31-Jul-2014 Eino-Ville Talvala <etalvala@google.com> Camera2: Remove hidden callbacks

Change-Id: I4038f0aff5e82531ca2b6231feee9ade36ddbb75
ublic/src/com/android/ex/camera2/blocking/BlockingCameraManager.java
ublic/src/com/android/ex/camera2/blocking/BlockingStateListener.java
d4e5286bb4145e0371b783158fc8411565429c9b 31-Jul-2014 Sol Boucher <solb@google.com> Merge "Create new com.android.ex.camera2.utils package" into lmp-dev
15773a64b42023e31e2aade23ae44273862a9c04 31-Jul-2014 Alan Newberger <alann@google.com> add TORCH support to camera1 portability library

In the move to the portability library, TORCH mode got dropped.

Bug: 16680156
Change-Id: I3878c2399246bdb5cc80311c49533971c0c4c3d2
ortability/src/com/android/ex/camera2/portability/AndroidCameraCapabilities.java
8ba391e3f88936557ad6d44bbef32cb08f4ca310 24-Jul-2014 Sol Boucher <solb@google.com> Create new com.android.ex.camera2.utils package

It contains:
- Camera2RequestSettingsSet class for storing/unioning CaptureRequest.Builders
- A Camera2CaptureListenerSplitter class for connecting multiple such listeners
- A Camera2CpatureListenerForwarder for relaying callbacks to another Handler

Change-Id: I47381e4a45b4232b86e5498a1cc39cc600b5c5c5
tils/Android.mk
tils/src/com/android/ex/camera2/utils/Camera2CaptureListenerForwarder.java
tils/src/com/android/ex/camera2/utils/Camera2CaptureListenerSplitter.java
tils/src/com/android/ex/camera2/utils/Camera2RequestSettingsSet.java
tils/tests/Android.mk
tils/tests/AndroidManifest.xml
tils/tests/src/com/android/ex/camera2/utils/Camera2UtilsTest.java
tils/utils.mk
9b5facd03adbb55f6a1faa49788308f763a54ff0 25-Jul-2014 Ruben Brunk <rubenbrunk@google.com> camera2: Add BlockingCaptureListener class.

Bug: 15116722

Change-Id: Ib843dea27175dece8857359707318323a57f5409
ublic/src/com/android/ex/camera2/blocking/BlockingCaptureListener.java
ublic/src/com/android/ex/camera2/blocking/BlockingSessionListener.java
a97b7d1192e246a5f738991adca37cce282e1382 09-Jul-2014 Sol Boucher <solb@google.com> camera2-portability: Add focus locks and touch-to-focus for API 2

This implements focus locks very simply using only camera2 API requests: the
lens is locked on autoFocus() and unlocked on cancelAutoFocus(), as with the
existing legacy API--backed implementation. Both passive and active focus modes
ares supported, with and without positional focusing.

Change-Id: I26b1866539807fd3d64189923871443056a166af
ortability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
ortability/src/com/android/ex/camera2/portability/AndroidCamera2Capabilities.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)
ortability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
ortability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
ortability/src/com/android/ex/camera2/portability/CameraStateHolder.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
ortability/Android.mk
ortability/portability.mk
ortability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
ortability/src/com/android/ex/camera2/portability/AndroidCamera2Capabilities.java
ortability/src/com/android/ex/camera2/portability/AndroidCamera2Settings.java
ortability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
ortability/src/com/android/ex/camera2/portability/AndroidCameraCapabilities.java
ortability/src/com/android/ex/camera2/portability/CameraAgent.java
ortability/src/com/android/ex/camera2/portability/CameraAgentFactory.java
ortability/src/com/android/ex/camera2/portability/CameraCapabilities.java
ortability/src/com/android/ex/camera2/portability/CameraCapabilitiesFactory.java
ortability/src/com/android/ex/camera2/portability/CameraSettings.java
ortability/src/com/android/ex/camera2/portability/CameraStateHolder.java
ortability/src/com/android/ex/camera2/portability/DispatchThread.java
ortability/src/com/android/ex/camera2/portability/Size.java
ortability/tests/Android.mk
ortability/tests/AndroidManifest.xml
ortability/tests/src/com/android/ex/camera2/portability/Camera2PortabilityTest.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
ortability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
ortability/src/com/android/ex/camera2/portability/CameraAgent.java
ortability/src/com/android/ex/camera2/portability/CameraDeviceInfo.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
ortability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
ortability/src/com/android/ex/camera2/portability/AndroidCameraCapabilities.java
ortability/src/com/android/ex/camera2/portability/AndroidCameraSettings.java
ortability/src/com/android/ex/camera2/portability/CameraAgent.java
ortability/src/com/android/ex/camera2/portability/CameraCapabilities.java
ortability/src/com/android/ex/camera2/portability/CameraSettings.java
d61058f788eae0805bb20c4f68874f0f6caef423 18-Jun-2014 Sol Boucher <solb@google.com> camera2-portability: Fix the rest of the 'Andorid' typo

This resolves build breakage.

Change-Id: I3cab88fdee5f86d183b1307dac714466336fc476
ortability/src/com/android/ex/camera2/portability/CameraAgentFactory.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
ortability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
ortability/src/com/android/ex/camera2/portability/AndroidCameraManagerImpl.java
ortability/src/com/android/ex/camera2/portability/CameraAgent.java
ortability/src/com/android/ex/camera2/portability/CameraAgentFactory.java
ortability/src/com/android/ex/camera2/portability/CameraManager.java
ortability/src/com/android/ex/camera2/portability/CameraManagerFactory.java
ortability/src/com/android/ex/camera2/portability/CameraStateHolder.java
e224f6688362452a4f9021e54f4a2fdc73dee2c5 17-Jun-2014 Sol Boucher <solb@google.com> Add build file for android-ex-camera2-portability

Change-Id: I5d388402fa2705da3b58595e3a1e4da3f01eef47
ortability/Android.mk
f07afbbde040b9578bc7f188016c3960e8616ab0 13-Jun-2014 Angus Kong <shkong@google.com> Don't pass empty list of areas.

Some devices won't work well if we pass in an empty list of focusing or metering
areas.

Change-Id: Iff6bfd37a7d551b12c43e88cf8d4934472837257
ortability/src/com/android/ex/camera2/portability/AndroidCameraManagerImpl.java
8097973089420749dcd1ab4974a629c2466b31cc 11-Jun-2014 Angus Kong <shkong@google.com> Refactor out Camera.Parameters.

Change-Id: Ibc1ddac509381530e887b7491069e6367e9a6088
ortability/src/com/android/ex/camera2/portability/AndroidCameraCapabilities.java
ortability/src/com/android/ex/camera2/portability/AndroidCameraManagerImpl.java
ortability/src/com/android/ex/camera2/portability/AndroidCameraSettings.java
ortability/src/com/android/ex/camera2/portability/CameraActions.java
ortability/src/com/android/ex/camera2/portability/CameraCapabilities.java
ortability/src/com/android/ex/camera2/portability/CameraManager.java
ortability/src/com/android/ex/camera2/portability/CameraSettings.java
ortability/src/com/android/ex/camera2/portability/Size.java
cef46862d6937bc98bf1a6b087c5daa22b5239f3 09-Jun-2014 Sol Boucher <solb@google.com> Refactor CameraManager hierarchy to support new implementations

This relocates several components of the implementation class
AndroidCameraManagerImpl to higher levels in the inheritence hierarchy, where
they can be reused by other implementations of the CameraManager interface:
- AndroidCameraManager.DispatchThread is moved into its own file
- The core (history-tracking) pieces of CameraManager.CameraHandler are moved
into their own HistoryHandler class, which the former is made to inherit
- The constants defined in AndroidCameraManagerImpl for use in its nested
CameraHandler class are moved into a separate class called CameraActions
- AndroidCameraManagerImpl.CameraStateHolder is moved into its own file
- Those CallbackForward classes that aren't tied to Android's Camera1 API are
moved directly into the CameraManager interface

Change-Id: I5f3e1eb72039a0018ce2277e3ec6289bfa4ccec3
ortability/src/com/android/ex/camera2/portability/AndroidCameraManagerImpl.java
ortability/src/com/android/ex/camera2/portability/CameraActions.java
ortability/src/com/android/ex/camera2/portability/CameraManager.java
ortability/src/com/android/ex/camera2/portability/CameraStateHolder.java
ortability/src/com/android/ex/camera2/portability/DispatchThread.java
ortability/src/com/android/ex/camera2/portability/HistoryHandler.java
da52dbdc5ffc76c1c875229086e91475eb150090 24-May-2014 Erin Dahlgren <edahlgren@google.com> Timeout on wait lock and throw exception to prevent ANR.

Change-Id: I5b0d2b8c0384d32ed0d870e5db6003991524fc38
ortability/src/com/android/ex/camera2/portability/AndroidCameraManagerImpl.java
7e6c76ef7faf26aa1060b4abc1c65934b4e45338 13-May-2014 Angus Kong <shkong@google.com> Handle error getting camera info.

bug:13877028
Change-Id: Iff0353738de3290244092076b2f955f0d7d57408
ortability/src/com/android/ex/camera2/portability/AndroidCameraManagerImpl.java
ortability/src/com/android/ex/camera2/portability/CameraDeviceInfo.java
ortability/src/com/android/ex/camera2/portability/CameraManager.java
742beb4e81cfcdfa9d4f7d3252be7be797a1e462 12-May-2014 Sascha Haeberling <haeberling@google.com> Don't use stale parameters for capabilities.

Bug: 14823111

Change-Id: I524de9a6dd774c3aa8b6c47092657d66447565bc
ortability/src/com/android/ex/camera2/portability/AndroidCameraManagerImpl.java
c36e3c983c232dc45ed31f3d8e98d8cdd7ac14ba 23-Apr-2014 Angus Kong <shkong@google.com> First Step: CameraCapabilities intead of Parameter

To get rid of Camera.Parameters, we need to provide our own interfaces.
Camera.Parameters actually consists of 2 parts: capabilities and settings. We'll
provide two interfaces and will just use Camera.Parameters inside of
CameraManager implementations.

Change-Id: I53922b6d740835412d74365374a6a0382129564e
ortability/src/com/android/ex/camera2/portability/AndroidCameraCapabilities.java
ortability/src/com/android/ex/camera2/portability/AndroidCameraManagerImpl.java
ortability/src/com/android/ex/camera2/portability/CameraCapabilities.java
ortability/src/com/android/ex/camera2/portability/CameraCapabilitiesFactory.java
ortability/src/com/android/ex/camera2/portability/CameraManager.java
60520c4df78e595964605cf8acfa21bbafaeba84 01-May-2014 Angus Kong <shkong@google.com> Cancel onResumeTask when the app is paused.

Also change the camera closing conditions to force close all camera before
killing the handler thread.

bug:14190951
bug:14441425

Change-Id: Ic752b0678530b34eb3710bd7796cb17d15452013
ortability/src/com/android/ex/camera2/portability/AndroidCameraManagerImpl.java
ortability/src/com/android/ex/camera2/portability/CameraManager.java
b00b7a67213ee6868eb792b2a63ba0dca888a01f 25-Apr-2014 Angus Kong <shkong@google.com> Add history info for camera open failure log.

bug:14365703
Change-Id: I4b2259e12121cac5b8165f5c5dbacf9cb3a936a6
ortability/src/com/android/ex/camera2/portability/AndroidCameraManagerImpl.java
ortability/src/com/android/ex/camera2/portability/CameraManager.java
d3865a20b022f6d54fe7ac052768a7ff0710017f 26-Apr-2014 Doris Liu <tianliu@google.com> Bring back video snapshot

Bug: 14220490
Change-Id: Ibf20d169aae9de4eb9c1e2151d9c7335bcf7b3a3
ortability/src/com/android/ex/camera2/portability/AndroidCameraManagerImpl.java
bdaaaf5f0257168590fa8965e4d59b054636e6df 21-Apr-2014 Angus Kong <shkong@google.com> Create cameradevice package for camera management.

Change-Id: I73c69a70736b0b0eb0ef069a7876cf75fee91262
ortability/src/com/android/ex/camera2/portability/AndroidCameraManagerImpl.java
ortability/src/com/android/ex/camera2/portability/CameraManager.java
ortability/src/com/android/ex/camera2/portability/CameraManagerFactory.java
f7a80d935f2e40383237ad4c163b85047f95dc9c 09-Apr-2014 Alan Newberger <alann@google.com> Add logging override helper

This CL removes compile-time log suppression with a runtim override.
With a runtime override we can custom configure logging with a single
level, not quite as flexible as a boolean per level but should suit
our needs. Compile-time log pruning could be done with proguard if
desired.

Bug: 13737123

Change-Id: I8bdcaca44b4dc5c7eab8ef2f74e5181bcacd2727
ortability/src/com/android/ex/camera2/portability/debug/Log.java
ortability/src/com/android/ex/camera2/portability/debug/LogHelper.java
b52fe84c71ddcf1313c4112393bb4936442d9f13 08-Apr-2014 Alan Newberger <alann@google.com> Replace isDebugging compiletime logging override with runtime property

This CL accomplishes the same goal as the compile-time isDebuggable,
with a runtime property check. This is useful so that we opt in to
logging everything at a given level with one setprop line.

Note that either with this new runtime property or with isDebuggable,
the Log proxy wouldn't log if a particular Configuration value is false,
since that level is instead routed to SILENT_LOGGER.

Bug: 13737123
Change-Id: I78ce629620f420a08a2cc013865847674941fb9b
ortability/src/com/android/ex/camera2/portability/debug/Log.java
102540727e51003c352e82349c339929a0c4be7e 29-Mar-2014 Sascha Haeberling <haeberling@google.com> If debug is on, log everything.

Change-Id: I706874c9ea1b03c2fd9f987cda9581f72883c914
ortability/src/com/android/ex/camera2/portability/debug/Log.java
b35ea0d2d494ba7668b0183dfc906cde0708bc55 12-Mar-2014 Angus Kong <shkong@google.com> Use debug.Log instead of android.util.Log.

see http://ag/438423, merge conflicts solved.

1. Change to use com.android.camera.debug.Log instead of android.util.Log.
2. Add DebugCameraProxy to support more detailed debug info.
3. Add CameraErrorCallback in CameraManager.
4. Support posting to a specific handler for CameraErrorCallback.
5. Trim down some TAGs to match the framework tag length limit.
6. Remove some unused codes in CameraSettings.

bug:13324870

Change-Id: I8c20a8a0d11cfd50b6e199b03cbc88d3c4ad2ceb

Conflicts:
src/com/android/camera/data/LocalMediaData.java
src/com/android/camera/data/RotationTask.java
src/com/android/camera/widget/FilmstripView.java
ortability/src/com/android/ex/camera2/portability/debug/Log.java
77b7bbe039393c2d8c1107c07c65028886eef252 05-Jun-2014 Igor Murashkin <iam@google.com> camera2: Add state waiters for the session state listener

Bug: 15474402
Change-Id: I4ae86166b5ce99a854c754c8ac6d6c23c683b14a
ublic/src/com/android/ex/camera2/blocking/BlockingSessionListener.java
ublic/src/com/android/ex/camera2/blocking/BlockingStateListener.java
ublic/src/com/android/ex/camera2/utils/StateChangeListener.java
ublic/src/com/android/ex/camera2/utils/StateWaiter.java
00a9b46b5a85c2e7ff03d94e517f732d397eb020 20-May-2014 Igor Murashkin <iam@google.com> camera2: Update code for CameraMetadata.Key refactor

Bug: 15091017
Change-Id: Ic56c54c0d184e209e20de374dc8a6d79527c209f
ublic/src/com/android/ex/camera2/pos/AutoFocusStateMachine.java
f24f9918f9dc081ccad9871dc174bf3b3e47059a 08-Mar-2014 Igor Murashkin <iam@google.com> camera2: BlockingStateListener invokes proxy before firing state change

- This fixes a race condition where it was possible to wait for a state
transition using #waitForState but without yet the corresponding
proxy callback having been fired.

Change-Id: If521c4e48177d4b0fe5ab6fed3d31ddd74b656af
ublic/src/com/android/ex/camera2/blocking/BlockingStateListener.java
020e6d9bb46850ad39f14e575259a04887a2ea26 07-Nov-2013 Zhijun He <zhijunhe@google.com> Merge "camera2: Add updateCaptureRequest method" into klp-dev
d4429271623c05376ee1445d13fde9bcf76a0033 30-Oct-2013 Zhijun He <zhijunhe@google.com> camera2: Add updateCaptureRequest method

It can be used to update repeating request with current auto focus mode.

Bug: 10649854
Change-Id: I5e92218c61dea04990581d37f92bf25a1f8dbe91
ublic/src/com/android/ex/camera2/pos/AutoFocusStateMachine.java
e2fa3d7185929f5e51a851d23db2618a41f18d9d 06-Nov-2013 Igor Murashkin <iam@google.com> camera2: Add #resetState to AutoFocusStateMachine

Bug: 11071158
Change-Id: I24bc2d771703bb502dcbb676b6262954f2017630
ublic/src/com/android/ex/camera2/pos/AutoFocusStateMachine.java
2d8e55f45e52ac0b18c0e46de602e6a6d5ab1001 05-Nov-2013 Igor Murashkin <iam@google.com> camera2: Add tracing to AutoFocusStateMachine (lens-locking actions only)

Bug: 11071158
Change-Id: I6a1d0130b6ca36c853f539ef3f1afb363a70df24
ublic/src/com/android/ex/camera2/pos/AutoFocusStateMachine.java
1e125c7179c4226702a0c5d7943380529187f989 26-Oct-2013 Igor Murashkin <iam@google.com> Merge "gcam: Add empty SysTrace class" into klp-dev
30662b3366c815603d3ed61dc3868e0ea40788e7 18-Oct-2013 Igor Murashkin <iam@google.com> gcam: Add empty SysTrace class

Bug: 11071158
Change-Id: I31f8c449dc4c47c610b0ef3c24849e0402634c86
ublic/src/com/android/ex/camera2/utils/SysTrace.java
806d114d5975c89843c9ba16eadfcaf143afdebb 17-Oct-2013 Igor Murashkin <iam@google.com> camera2: Harden AutoFocusStateMachine against null values in callbacks

Bug: 11269834
Change-Id: Id3cb85eb3e9aaaf6714fd81a5d53811d4cbfefa9
ublic/src/com/android/ex/camera2/pos/AutoFocusStateMachine.java
ba7f02549047afd96f033eda9729592a7668e039 15-Oct-2013 Igor Murashkin <iam@google.com> camera2: Skip AF state updates when afMode/afState are missing

* Workaround for hal3 sometimes dropping afMode/afState (rarely)
- don't update AF states, instead just skip this frame, safer
and adds 1 frame of latency very rarely sometimes.

* Assumes request is repeating, since otherwise we wouldn't get future
af transition results

Bug: 11238865
Change-Id: Ic793d8c6d44873f6a7983e84e4510b8587a148a0
ublic/src/com/android/ex/camera2/pos/AutoFocusStateMachine.java
7705b0b80a3f432c59d1e1892ca3751e89508aed 11-Oct-2013 Eino-Ville Talvala <etalvala@google.com> Revert "Revert "Camera2: Use hidden APIs""

Play it again, Gerrit.

This reverts commit 08f250d97f3cd9d4a26983725f82b9f88ea4b9d8.

Bug: 11141002
ublic/Android.mk
08f250d97f3cd9d4a26983725f82b9f88ea4b9d8 11-Oct-2013 Eino-Ville Talvala <etalvala@google.com> Revert "Camera2: Use hidden APIs"


This reverts commit 51bb20d6396609a61aff93e9e7b9f878aa0bcee3.

Change-Id: Iafc4f7a3834fd1ea781ed5f423efbde95c160fe6
ublic/Android.mk
51bb20d6396609a61aff93e9e7b9f878aa0bcee3 08-Oct-2013 Eino-Ville Talvala <etalvala@google.com> Camera2: Use hidden APIs

Bug: 11141002
Change-Id: I351460e418c0084258984694c0289ef54250100f
ublic/Android.mk
a25c5599003b9e95cec566a94be6932bc42c00d3 04-Oct-2013 Eino-Ville Talvala <etalvala@google.com> Camera2: Add a blocking state listener

- Provides wait() methods for waiting on a desired state to be reached
- Only one waiter at a time

Bug: 10360518
Change-Id: Iab114584dfa4ab34c7a7b31ed243a3f6a3fc9c58
ublic/src/com/android/ex/camera2/blocking/BlockingStateListener.java
a47d6986cb4aa66e277c61df79a3947bbecd5de8 05-Oct-2013 Igor Murashkin <iam@google.com> gcam: Make AF more tolerant to transitioning into same state

Bug: 11014205
Change-Id: I669873307943bfdfbe67e688d1b2de24acd87550
ublic/src/com/android/ex/camera2/pos/AutoFocusStateMachine.java
134cd3193ddc17e97cb6364594d85e5b203c7cc6 04-Oct-2013 Igor Murashkin <iam@google.com> camera2: Add passive unfocused state to AF state machine

* Also fix minor issue where passive focused state was falsely locking

Bug: 11014205
Change-Id: Ic53e455693aa4f14d776658625d4ba8fa7dc2f51
ublic/src/com/android/ex/camera2/pos/AutoFocusStateMachine.java
fc121178a18d0860d020e9cb2253c5b00dbf19c3 25-Sep-2013 Igor Murashkin <iam@google.com> camera2: Add state machine for doing auto-focus easily from apps

Bug: 10890749
Change-Id: I966768bdcdbb2876d44eefc2156e7aca64c4e601
ublic/src/com/android/ex/camera2/pos/AutoFocusStateMachine.java
07f09b47112dc1094649da00f7e86024b67d5777 20-Sep-2013 Igor Murashkin <iam@google.com> camera2: New directory with camera2 extras/helpers

* Simplify using camera2 when possible
* Offer a blocking openCamera call to not have to deal with listeners

Bug: 10360518
Change-Id: I7f154db3a5300437785d6e8d0bfff5499ef9bc15
ndroid.mk
ublic/Android.mk
ublic/src/com/android/ex/camera2/blocking/BlockingCameraManager.java
ublic/src/com/android/ex/camera2/exceptions/TimeoutRuntimeException.java