• Home
  • History
  • Annotate
  • only in /frameworks/ex/camera2/portability/src/
History log of /frameworks/ex/camera2/portability/src/
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)
om/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
om/android/ex/camera2/portability/AndroidCameraAgentImpl.java
om/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)
om/android/ex/camera2/portability/AndroidCameraAgentImpl.java
om/android/ex/camera2/portability/CameraStateHolder.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
om/android/ex/camera2/portability/AndroidCameraAgentImpl.java
om/android/ex/camera2/portability/AndroidCameraCapabilities.java
c5effbd8ffed05f6c5142c1c8d491c398194bf5b 05-Dec-2014 Eino-Ville Talvala <etalvala@google.com> Camera2: Portability: Remove HDR hack.

Bug: 18640480
Change-Id: I8f0b42cbb05c6881fbc32664ce9e2b97a0ef5db3
om/android/ex/camera2/portability/AndroidCamera2Capabilities.java
om/android/ex/camera2/portability/AndroidCamera2Settings.java
om/android/ex/camera2/portability/LegacyVendorTags.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
om/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
om/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
om/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
om/android/ex/camera2/portability/AndroidCameraAgentImpl.java
om/android/ex/camera2/portability/CameraExceptionHandler.java
om/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
om/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
om/android/ex/camera2/portability/AndroidCameraAgentImpl.java
om/android/ex/camera2/portability/CameraActions.java
om/android/ex/camera2/portability/CameraAgent.java
om/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
om/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
om/android/ex/camera2/portability/AndroidCameraAgentImpl.java
om/android/ex/camera2/portability/CameraAgent.java
om/android/ex/camera2/portability/CameraExceptionHandler.java
om/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
om/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
om/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
om/android/ex/camera2/portability/AndroidCameraAgentImpl.java
om/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
om/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
om/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
om/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
om/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
om/android/ex/camera2/portability/AndroidCameraAgentImpl.java
om/android/ex/camera2/portability/CameraActions.java
om/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
om/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
om/android/ex/camera2/portability/AndroidCameraAgentImpl.java
om/android/ex/camera2/portability/CameraActions.java
om/android/ex/camera2/portability/CameraAgent.java
om/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
om/android/ex/camera2/portability/AndroidCamera2AgentImpl.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
om/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
dc05ed7a8443af7c1a7b1bb39519d09d79284e42 05-Sep-2014 Igor Murashkin <iam@google.com> portability: Fix incorrect comparison between int and Integer

Bug: 17405119
Change-Id: Ic4828b5ddee2b11fa9886506e48c640a4c5ad3ef
om/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
om/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
om/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
om/android/ex/camera2/portability/AndroidCamera2Settings.java
om/android/ex/camera2/portability/AndroidCameraAgentImpl.java
om/android/ex/camera2/portability/AndroidCameraSettings.java
om/android/ex/camera2/portability/CameraAgent.java
om/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
om/android/ex/camera2/portability/AndroidCamera2Capabilities.java
om/android/ex/camera2/portability/AndroidCamera2Settings.java
om/android/ex/camera2/portability/CameraCapabilities.java
om/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
om/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
om/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
om/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
om/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
om/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
om/android/ex/camera2/portability/AndroidCamera2AgentImpl.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
om/android/ex/camera2/portability/AndroidCamera2Settings.java
om/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
om/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
om/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
om/android/ex/camera2/portability/AndroidCamera2Capabilities.java
om/android/ex/camera2/portability/AndroidCamera2Settings.java
om/android/ex/camera2/portability/AndroidCameraAgentImpl.java
om/android/ex/camera2/portability/AndroidCameraCapabilities.java
om/android/ex/camera2/portability/AndroidCameraSettings.java
om/android/ex/camera2/portability/CameraAgent.java
om/android/ex/camera2/portability/CameraCapabilities.java
om/android/ex/camera2/portability/CameraSettings.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
om/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
om/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
om/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
om/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
om/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
om/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
om/android/ex/camera2/portability/AndroidCameraAgentImpl.java
om/android/ex/camera2/portability/CameraAgentFactory.java
om/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
om/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
om/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
om/android/ex/camera2/portability/CameraCapabilities.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
om/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
om/android/ex/camera2/portability/AndroidCamera2Capabilities.java
om/android/ex/camera2/portability/AndroidCamera2Settings.java
om/android/ex/camera2/portability/AndroidCameraAgentImpl.java
om/android/ex/camera2/portability/AndroidCameraSettings.java
om/android/ex/camera2/portability/CameraAgent.java
om/android/ex/camera2/portability/CameraCapabilities.java
om/android/ex/camera2/portability/CameraDeviceInfo.java
om/android/ex/camera2/portability/CameraSettings.java
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
om/android/ex/camera2/portability/AndroidCameraCapabilities.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
om/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
om/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)
om/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
om/android/ex/camera2/portability/AndroidCameraAgentImpl.java
om/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
om/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
om/android/ex/camera2/portability/AndroidCamera2Capabilities.java
om/android/ex/camera2/portability/AndroidCamera2Settings.java
om/android/ex/camera2/portability/AndroidCameraAgentImpl.java
om/android/ex/camera2/portability/AndroidCameraCapabilities.java
om/android/ex/camera2/portability/CameraAgent.java
om/android/ex/camera2/portability/CameraAgentFactory.java
om/android/ex/camera2/portability/CameraCapabilities.java
om/android/ex/camera2/portability/CameraCapabilitiesFactory.java
om/android/ex/camera2/portability/CameraSettings.java
om/android/ex/camera2/portability/CameraStateHolder.java
om/android/ex/camera2/portability/DispatchThread.java
om/android/ex/camera2/portability/Size.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
om/android/ex/camera2/portability/AndroidCameraAgentImpl.java
om/android/ex/camera2/portability/CameraAgent.java
om/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
om/android/ex/camera2/portability/AndroidCameraAgentImpl.java
om/android/ex/camera2/portability/AndroidCameraCapabilities.java
om/android/ex/camera2/portability/AndroidCameraSettings.java
om/android/ex/camera2/portability/CameraAgent.java
om/android/ex/camera2/portability/CameraCapabilities.java
om/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
om/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
om/android/ex/camera2/portability/AndroidCameraAgentImpl.java
om/android/ex/camera2/portability/AndroidCameraManagerImpl.java
om/android/ex/camera2/portability/CameraAgent.java
om/android/ex/camera2/portability/CameraAgentFactory.java
om/android/ex/camera2/portability/CameraManager.java
om/android/ex/camera2/portability/CameraManagerFactory.java
om/android/ex/camera2/portability/CameraStateHolder.java
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
om/android/ex/camera2/portability/AndroidCameraManagerImpl.java
8097973089420749dcd1ab4974a629c2466b31cc 11-Jun-2014 Angus Kong <shkong@google.com> Refactor out Camera.Parameters.

Change-Id: Ibc1ddac509381530e887b7491069e6367e9a6088
om/android/ex/camera2/portability/AndroidCameraCapabilities.java
om/android/ex/camera2/portability/AndroidCameraManagerImpl.java
om/android/ex/camera2/portability/AndroidCameraSettings.java
om/android/ex/camera2/portability/CameraActions.java
om/android/ex/camera2/portability/CameraCapabilities.java
om/android/ex/camera2/portability/CameraManager.java
om/android/ex/camera2/portability/CameraSettings.java
om/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
om/android/ex/camera2/portability/AndroidCameraManagerImpl.java
om/android/ex/camera2/portability/CameraActions.java
om/android/ex/camera2/portability/CameraManager.java
om/android/ex/camera2/portability/CameraStateHolder.java
om/android/ex/camera2/portability/DispatchThread.java
om/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
om/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
om/android/ex/camera2/portability/AndroidCameraManagerImpl.java
om/android/ex/camera2/portability/CameraDeviceInfo.java
om/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
om/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
om/android/ex/camera2/portability/AndroidCameraCapabilities.java
om/android/ex/camera2/portability/AndroidCameraManagerImpl.java
om/android/ex/camera2/portability/CameraCapabilities.java
om/android/ex/camera2/portability/CameraCapabilitiesFactory.java
om/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
om/android/ex/camera2/portability/AndroidCameraManagerImpl.java
om/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
om/android/ex/camera2/portability/AndroidCameraManagerImpl.java
om/android/ex/camera2/portability/CameraManager.java
d3865a20b022f6d54fe7ac052768a7ff0710017f 26-Apr-2014 Doris Liu <tianliu@google.com> Bring back video snapshot

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

Change-Id: I73c69a70736b0b0eb0ef069a7876cf75fee91262
om/android/ex/camera2/portability/AndroidCameraManagerImpl.java
om/android/ex/camera2/portability/CameraManager.java
om/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
om/android/ex/camera2/portability/debug/Log.java
om/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
om/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
om/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
om/android/ex/camera2/portability/debug/Log.java