Commit Graph

833 Commits

Author SHA1 Message Date
Zhijun He
f5fe63c35c Merge "Camera2: Update spec for thumbnail cropping behavior" into lmp-preview-dev 2014-05-28 22:49:31 +00:00
Zhijun He
50f7243ca0 Camera2: Update spec for thumbnail cropping behavior
Also update FULL capability spec (remove ZSL from the requirement list).

Bug: 15168075
Change-Id: I864baf35ffab9047b52facb29011682e724bbc9b
2014-05-28 15:23:21 -07:00
Yin-Chia Yeh
884cddcdf4 Camera2: Fix wrong index in ColorSpaceTransform
Bug: 15309870
Change-Id: I89a043a005435695ac8649e20d4e0e58d0f62bc7
2014-05-28 20:54:24 +00:00
Ruben Brunk
574936894d camera2: Update native/managed key mappings.
Switches to using managed value classes for the following keys:
- android.sensor.info.sensitivityRange
- android.sensor.info.exposureTimeRange
- android.jpeg.gpsCoordinates
- android.jpeg.gpsTimestamp
- android.jpeg.gpsProcessingMethod
- android.statistics.lensShadingMap
- android.lens.info.shadingMapSize
Also fixes a minor bug in LensShadingMap

Bug: 14628001
Change-Id: Ia0f541242f529ab9ba3111db799306b198f2b40b
2014-05-28 10:26:21 -07:00
Yin-Chia Yeh
8490ace76f Camera2: switch API interface to java classses
android.sensor.info.physicalSize: float[] -> SizeF
android.statistics.hotPixelMap: int[] -> Point[]
android.tonemap.curve[Red|Green|Blue]: float[] -> TonemapCurve

Bug: 14628001
Change-Id: I1e085f5e640a059852fcb504b6dd5f884039e653
2014-05-28 01:36:54 -07:00
Eino-Ville Talvala
2bb91a7a68 Camera2: Use ColorSpaceTransform and RggbChannelVector, replace enum byte[]
Also fix a minor bug in ColorSpaceTransform copying validation.

Affected keys:
  android.colorCorrection.transform
  android.colorCorrection.gain
  android.control.aeAvailableAntibandingModes
  android.control.aeAvailableModes
  android.control.afAvailableModes
  android.control.availableEffects
  android.control.availableSceneModes
  android.control.availableVideoStabilizationModes
  android.control.awbAvailableModes
  android.edge.availableEdgeModes
  android.hotpixel.availableHotPixelModes
  android.lens.info.availableOpticalStabilization
  android.noiseReduction.availableNoiseReductionModes
  android.sensor.calibrationTransform1
  android.sensor.calibrationTransform2
  android.sensor.colorTransform1
  android.sensor.colorTransform2
  android.sensor.forwardTransform1
  android.sensor.forwardTransform2
  android.statistics.info.availableFaceDetectModes
  android.tonemap.availableToneMapModes

Bug: 14628001
Change-Id: Ic0a3ff0aaa6bfe872cf8fb740870618c3eee3008
2014-05-28 01:36:53 -07:00
Igor Murashkin
78712a8bd7 camera2: Add new metadata keys, change types for existing range keys
Also adds the following keys:
* android.control.maxRegionsAe
* android.control.maxRegionsAwb
* android.control.maxRegionsAf
* android.request.maxNumOutputRaw
* android.request.maxNumOutputProc
* android.request.maxNumOutputProcStalling

Changes the following keys' type
generations:
* android.control.aeTargetFpsRange
* (Range<Integer>)
* android.control.aeAvailableTargetFpsRanges
* (Range<Integer>[])
* android.control.aeCompensationRange
* (Range<Integer>)
* android.lens.focusRange
* (Range<Float>)

Bug: 14628001
Change-Id: I141847dffc4b0d89cea37c19a54d6d5faf24a9bb
2014-05-28 01:36:53 -07:00
Yin-Chia Yeh
817f8933ee Camera2: Replace int[] by MeteringRectangle
Bug: 14628001
Change-Id: I8ae4efa24d41043046a84b04e5209259a8a21063
2014-05-28 01:36:53 -07:00
Igor Murashkin
db075afc85 camera2: Add partial results to the capture listener (API change)
* Also adds capture sequence aborted callback

Bug: 12492876
Change-Id: I56ec8edbcda8b64c2262ff7472961ac78042c7f4
2014-05-27 11:25:24 -07:00
Ruben Brunk
0bfa56e766 Merge "camera2: Move DngCreator to hardware/camera2." into lmp-preview-dev 2014-05-24 00:25:59 +00:00
Zhijun He
8949225294 Camera2: Mark the under-specified tags for FUTURE
Also clean up the tag ids.

Bug: 15168075
Change-Id: I57fb6fb37e512c224370c72d806a4b702360f29f
2014-05-23 13:49:59 -07:00
Ruben Brunk
db67ffd62b Merge "DO NOT MERGE: Javadoc fix." into lmp-preview-dev 2014-05-23 20:02:01 +00:00
Ruben Brunk
5e3c3aa44d DO NOT MERGE: Javadoc fix.
Bug: 15189630

Change-Id: I4644ec782e636104fc06a27716f2fd224003e8d2
(cherry picked from commit 0a03a2ab50b665d382f92a1219177c3bd6fc568b)
2014-05-23 19:04:47 +00:00
Igor Murashkin
d6d65154e5 camera2: Refactor CameraMetadata.Key out into 3 key classes
Before:
* CameraMetadata.Key<T>

After:
* CameraCharacteristics.Key<T>
* CaptureResult.Key<T>
* CaptureRequest.Key<T>

CameraMetadata#get has been removed (each metadata subclass has
its own #get now) due to java generic limitations (in particular
a type bound <T1<T2> extends Key<T2>> is an illegal bound).

CameraMetadataNative gets a new #dumpToLog function to dump the native
metadata to logcat.

Bug: 15091017
Change-Id: Ic56c54c0d184e209e20de374dc8a6d79527c209f
2014-05-23 11:55:29 -07:00
Zhijun He
1498615d56 Camera2: Add croppingType tag
This is to indicate if the camera supports arbitrary cropping.

Bug: 15168075
Change-Id: Ib75f7af629be816229cc686c89980fec101301c0
2014-05-22 21:58:48 -07:00
Zhijun He
9e6d1880c2 Camera2: Raw is not croppable
Update spec doc to clarify that raw stream is not croppable.

Bug: 15168075
Change-Id: I4ffa8e2a06acd17913426ba37744bb9df1bc7330
2014-05-22 16:47:35 -07:00
Zhijun He
fa7c755a92 Camera2: Clarify shading map spec
The existing spec is unclear about shading map calculation for both application
developer and hal implementers, need more clarification.

Also fix a typo in tonemap.mode.

Bug: 15168075
Change-Id: I7f38ccf6aa6938fdac9f64e95deddc0188025d08
2014-05-22 16:36:02 -07:00
Ruben Brunk
b6079005ed camera2: Move DngCreator to hardware/camera2.
Bug: 15091253
Change-Id: Ibe2ee376436e5c796e33c0b782ea68278589f2e6
2014-05-22 22:57:11 +00:00
Eino-Ville Talvala
cca00c614c Camera2: New capture session interface
- Add CameraCaptureSession for all operations that require a
  valid camera configuration
- Deprecate methods in CameraDevice that are moving to CameraCaptureSession
- Document new semantics

Bug: 14964443
Change-Id: I53b2b71ed2b746cfcf76a01483f499765eb5047b
2014-05-22 20:52:36 +00:00
Ruben Brunk
94520c7460 Merge "camera2: Add HAL1 compatibility shim skeleton." 2014-05-22 06:08:56 +00:00
Jinsuk Kim
9302a733b0 Fix broken build
Change-Id: Icff98663842482149d8c5c5371327121a1adff3d
2014-05-22 04:35:08 +00:00
Jinsuk Kim
78d695d8ba Add feature actions for HDMI-CEC playback device
- OneTouchPlayAction
- DevicePowerStatusAction
- addHotplugEventListener
- removeHotplugEventListener

Change-Id: Ia7f31507ca62127efbacbbfe07ab43ba1f9bd4cf
2014-05-22 11:15:51 +09:00
Ruben Brunk
feb50af361 camera2: Add HAL1 compatibility shim skeleton.
This adds basic support for running the Camera2 API on a device running
a camera HAL version lower than CAMERA_MODULE_API_VERSION_2_0.

This CL includes support for:
- N-way preview output streams
- N-way jpeg output streams
- CameraDevice emulation at the binder interface
- Basic camera metadata querying in the CameraManager

Bug: 15117269
Bug: 15116722

Change-Id: I8322955034c91f34bb348d4b28c2b774dbef38f6
2014-05-21 16:37:59 -07:00
Mike Lockwood
5633e37ec1 Merge "USB: Minor cleanup from API council review" 2014-05-20 18:58:35 +00:00
Mike Lockwood
fa2b3fc6cd USB: Minor cleanup from API council review
Bug: 15089961
Change-Id: I8a22fad94d2a52d2270c89240b2a47bd1cef17b5
2014-05-20 11:14:58 -07:00
Jinsuk Kim
91120c541a HdmiControlManager with HdmiPlaybackClient API definition
This is a rewrite of HdmiCecManager that exposes API for CEC Playback
device control. HdmiCecManager will be removed together with
HdmiCecService once the migration is completed.

Replaced direct access to CEC commands with the following 2 API:
- oneTouchPlay
- queryDisplayStatus

Each method requires communication with other device on CEC bus,
hence might take some time to finish. The result at the end of
protocol exchange is reported through a callback provided as a
parameter to the method.

The callback is based on interface not abstract class since
it has only one method 'onComplete'.

Change-Id: I41e9d4571f890303282a79a803c86530d0b46974
2014-05-19 07:46:26 +09:00
Ruben Brunk
f967a5486a camera2: Plumb DngCreator to native library.
Change-Id: Ic58bf6cf5086808b503460ef8e451fc0d6f1f850
2014-05-16 23:25:51 -07:00
Igor Murashkin
9d08a93b2d Merge "camera2: Move parameters around to different packages" 2014-05-16 18:08:41 +00:00
Jungshik Jang
b0650e8ff3 Merge "Add ARC commands" 2014-05-16 06:49:18 +00:00
Jungshik Jang
be9cd8eb3f Add ARC commands
ARC, Audio Return Channel is newly introduced in HDMI CEC 1.4.
Here is a list of new command
<Initiate ARC>
<Report ARC Initiated>
<Report ARC Terminated>
<Request ARC Initiation>
<Request ARC Termination>
<Terminate ARC>

Along with it replaced <Get OSD Name> with <Give OSD Name>
which is renamed in CEC 1.4.

Change-Id: If4a7aedef839c8413a8e3b5f66f3df0c7234104b
2014-05-15 20:21:43 +09:00
Igor Murashkin
72f9f0a96e camera2: Move parameters around to different packages
* Camera-specific params to android.hardware.camera2.params
* Remove android.hardware.camera2.Size
* Move Rational to android.util

Bug: 14628001
Change-Id: Ie7a82bf9f4a0d8c18e0dc3a1581123c0d95da3f0
2014-05-14 18:24:58 -07:00
Igor Murashkin
9c595174cc camera2: Use StreamConfigurationMap for format/size/duration lookup
* Also @hide/@deprecate a bunch of other keys
* Move some classes into android.hardware.camera2.params

Bug: 14628001
Change-Id: I2db490a0849680a133a901403477a147b004fb28
2014-05-14 10:40:53 -07:00
Igor Murashkin
3c40a046cf camera2: Update native<->managed camera metadata marshalers
* Improve existing marshalers:
 - each managed/native type combination can be queried marshal support
 - marshalers can recursively call other marshalers for nested types
 - support marshaling/unmarshaling generic classes by using super type tokens

* Add new marshalers for:
 - ColorSpaceTransform
 - MeteringRectangle
 - Parcelable
 - Range<T>
 - ReprocessFormatsMap
 - RggbChannelVector
 - SizeF
 - StreamConfiguration
 - StreamConfigurationDuration

Batteries included; so are unit tests.

Bug: 14628001
Change-Id: I38d3e646ccfb3953898cd6f750c33e4097328482
2014-05-13 15:28:24 -07:00
Etienne Le Grand
1796635f7f Merge "Add wake gesture as a hidden sensor in Sensor.java" 2014-05-12 22:41:19 +00:00
Ruchi Kandoi
f974cc8706 Display: Brightness: Low power mode scales the brightness to 50 percent.
When the device is in low power mode all changes to brightness will be
scaled to half of the brightness that would be normally set when not in
low power mode.

Change-Id: I03be820ef64c1d5631ded35f7dfc2799e807226b
Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>
2014-05-09 21:17:33 +00:00
Yin-Chia Yeh
e2e5527ef3 Merge "Camera2: Minor update for exposureCompensation spec" 2014-05-09 19:02:09 +00:00
Yin-Chia Yeh
a4227dfe48 Camera2: Minor update for exposureCompensation spec
doc change only

Change-Id: I4bcc461cd9d592d5b15beda45f2b6176d7efde37
2014-05-09 12:01:10 -07:00
Etienne Le Grand
28071e3f40 Add wake gesture as a hidden sensor in Sensor.java
Change-Id: Ic9792b5262d1efc9bec2ef9ba980e6a2f34fece6
2014-05-07 19:47:43 -07:00
Zhijun He
bc01db42d5 Camera: remove some DNG tags
Change-Id: I878e26414dcf5cedbcfd8c505b0c507f4548c035
2014-05-07 21:33:23 +00:00
Zhijun He
379af01292 Camera2: Add missing capture result tags
All capture request tags should be available in capture result.

Bug: 14059883
Change-Id: I0aa8d7341b14fbbd627b17eb316bb016ff1fc316
2014-05-06 21:46:27 +00:00
Zhijun He
e126be2c5b Merge "Camera2: make videostabilization type consistent" 2014-05-06 00:03:28 +00:00
Zhijun He
4793af5e35 Camera2: make videostabilization type consistent
Make it consistent with availableVideoStabilizationModes and its optical
stabilization relatives.

Change-Id: I6e3834af8a62d4f84fca2d305ac9574052b69db0
2014-05-05 10:39:12 -07:00
Zhijun He
dab4049383 Merge "Camera2: Minor update for hyperfocalDistance spec" 2014-05-04 23:38:28 +00:00
Zhijun He
b41fcc2506 Camera2: Minor update for hyperfocalDistance spec
Doc only change.

Change-Id: I1b425ab739f10d5e2ba9403baf918f3ee6150d71
2014-05-04 16:29:57 -07:00
Jinsuk Kim
043aa252cf Merge "Define Feature action for obtaining info on a new CEC device" 2014-05-04 21:51:44 +00:00
Igor Murashkin
94814218d2 camera2: Add camera-specific data types used for metadata key/value
Adds new public API classes:
* InputOutputFormatsMap
* LensShadingMap
* RggbChannelVector
* StreamConfigurationMap
* TonemapCurve

Adds new @hide classes:
* StreamConfiguration
* StreamConfigurationDuration

Minor changes:
* CameraDevice (doc only)
* Preconditions (new @hide function)

Change-Id: I2f3757e2fe9d63e710f51469c650377165fd6631
2014-05-02 15:55:30 -07:00
Igor Murashkin
b3a78b2ca9 camera2: Add re-usable data types for camera metadata key/values
Adds new types to public API:
* ColorSpaceTransform
* Range<T>
* SizeF (android.util)
* MeteringRectangle

Minor changes to:
* Size (docs and move to android.util)
* Preconditions (@hide)

Adds helper class:
* HashCodeHelpers

Change-Id: Ied6749a19234f3af9da838f365f8d68d90251aaf
2014-05-02 15:55:29 -07:00
Zhijun He
25bb60e844 Merge "Camera2: replace AssertionError with error log" 2014-05-02 18:45:06 +00:00
Jungshik Jang
3f74ab0ee0 Implement logical address allocation logic for HDMI CEC.
Logical address in CEC is to distinguish each logical device from others.
In order to allocate logical address for new device, CEC sends
<Polling Message> to CEC bus. <Polling Message> is a CEC message
which has the same address for both source and destination without
body frame. (10bits).
CEC allows one and more logical address for a device type.
For example, there are 3 logical address defined for recorder device(1, 2, 9).
Among logical address candidates for the given device type, CEC scans
first the previous logical address (preferred logical address) of device.
If a device has not been allocated any logical address, preferred address
will be 15 (Unregistered), which means scan address from the minimum address
number of type. For example for recorder device, it starts from 1.
If no devices acks to the <Polling Message> during scan, it will be the
logical address of the device.
Since logical address is determined by a series of sending <Polling Message>
it happens in IO thread with separate allocate logical address message
instead of individual sendCommand message.

Along with this, updated ADDR_FREE_USE(14) to ADDR_SPECIFIC_USE(14)
which is revised name on HDMI 1.4.

Change-Id: Ic96dcdbe4aaa3789cfed0352a88ca75369335a98
2014-05-02 10:50:08 +09:00
Jungshik Jang
7d9a843af8 Implement add/remove device info api for Hdmi Cec device.
In order to manage info of all cec devices connected hdmi bus,
HdmiCecController should have data structure for them.
This change includes two major pieces.

1. HdmiCecDeviceInfo
 It's data structure containing basic device information such as
 logical address, physicall address, device type and vendor id.
 It will not be available to thirdparty but some system component
 like TIF needs this to update device information connected to
 its hdmi ports.

2. Managing device list in HdmiCecController.
 HdmiCecController is a host to manage all CEC device.
 and we need to have logic add or remove as well as get it.
 All cec devices are managed as sparsearray which uses logical address as key.

This change introduces internal api and the later change will have logic
to call these apis.

Change-Id: Idc2f189ac0bffe904e011ced0ac991f16da07db1
2014-05-02 10:15:38 +09:00