Align camera2's management of platform-opaque formats with rest of
framework. Instead of using CAMERA2_PIXEL_FORMAT_OPAQUE, use
HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED as the format for both the
camera HAL and for gralloc, and depend on the gralloc usage flags to
let the gralloc module select the appropriate real format for specific
stream endpoints.
Add a new gralloc usage for ZSL mode, where the camera service will
hold a streaming circular buffer of opaque full-resolution images
during camera preview. Since this is an opaque format that needs to be
optimized for 30fps operation, need gralloc to be aware of this use
case.
Bug: 6243944
Change-Id: If7f2516649381ce9bcffe4e319b63cbc068f643f
Disallow modification to static characteristics structure, and clarify
ownership and lifetime of the structure.
Also update test code accordingly.
Bug: 6243944
Change-Id: I6921d6889937212867efb99aa3881ab3ffc4f6f9
Needs a third change that's not yet done with review.
This reverts commit c9ec8a656b59912f496880d3a63c0decd490f09d
Change-Id: Ic3e465e1308cbf107a250ec17b73a59a35e52f9f
Disallow modification to static characteristics structure, and clarify
ownership and lifetime of the structure.
Also update test code accordingly.
Bug: 6243944
Change-Id: Ib8de5e9d6580187b21a5ae9a28a3d24f1d083f7b
During the HWC 0.x evolution, some fields were left optional or
organized strangely to avoid breaking backwards compatibility. Since
we're breaking it in the transition to HWC 1.0 anyway, we can clean
these up a little.
* The current callbacks are now registered immediately after the
device is opened and guaranteed to be present, so the implementation
can rely on them being present.
* The hwc_methods_t structure is gone, with its two methods folded
into the main hwc_composer_device_1_t.
* All methods and callbacks are now required except dump(). New
methods and callbacks we add in the future will still be optional
for backwards compatibility.
Change-Id: I5d58774a5144016993c12df3dd6ad2a5d746bee9
Change the documentation of the blank function in the hw composer to
specify that the screen state transition must be complete when the
function returns.
Change-Id: Ibd0a9cdef13991c36cabada5fc0e4f7bb8fa7af9
- Add CAMERA2_HAL_PIXEL_FORMAT_ZSL
- Add CAMERA2_TRIGGER_CANCEL_AUTOFOCUS
- Add documentation to describe how AUTOFOCUS and CANCEL_AUTOFOCUS
triggers interact with AF state, mode, and notifications.
- Other minor edits
Bug: 6243944
Change-Id: I679c40cfe08e62d3a5851839f748fe2292bbfae7
Documentation updated for semantic changes vs. HWC 0.x:
* Prepare won't be called with NULL pointers. This used to be used to
disable hardware composition, though that wasn't documented. Now
we'll call prepare with non-NULL pointers but the layer list will
have zero layers.
* Set won't be called with NULL pointers. This used to cause the
display to turn off; that is now done by calling the blank() method,
which is no longer optional.
Change-Id: I9c69dc34f64e499a5ba5f8729836e7c216f8c733
(cherry picked from commit d245968b7ef0be5c776c9aefff3eca9e293d1b35)
> Extend the audio HAL interface to support get/set master mute
>
> Hand merge from ics-aah
>
> > Extend the audio HAL interface to support get/set master mute: DO NOT MERGE
> >
> > Extend the audio HAL interface to allow HALs to optionally support HW
> > level master mute. This follows the same pattern as master volume and
> > is part of the fix for bug 6828363. Because of the divergences
> > between ICS and master, this change will need to be merged by hand.
> >
> > Signed-off-by: John Grossman <johngro@google.com>
> > Change-Id: Ica6f5e37e13d13dde60463966f41f271ffa104fd
>
> Change-Id: I5e7aea6d7da0012dcc077281f9077fc04cfb9889
> Signed-off-by: John Grossman <johngro@google.com>
Change-Id: I2011cc5bc41ca7081ce255a4bfba65f36f899bc4
Signed-off-by: John Grossman <johngro@google.com>
GRALLOC_USAGE_HW_CAMERA_WRITE is for camera outputs in the new camera HAL.
GRALLOC_USAGE_HW_CAMERA_READ is for sending previously captured camera
data back into the camera pipeline for further processing. For
example, for converting a raw sensor image into YUV or JPEG data.
Bug: 6243944
Change-Id: If9011ec320a1a804f3337704243ed7fc410fec91
Add a new blank operation to be called by surfaceflinger when the screen
turns on or off. Also rev the API version to 1.1 for the new field.
Change-Id: I266fb33f66184538e34cfc319f63cf809dcb2f18
The new version adds an acquire and release fence to each layer,
providing explicit producer->hwc and hwc->producer synchronization.
Change-Id: Ibd6e3c7b3515c012c767246e6d6514274fdef01d
Added definitions for querying supported channel masks, sampling rates and
format with out_get_parameters().
Change-Id: Icb28fcef504c7e0a0b2daeb1bc7e704d20d3b738
hwcomposer_defs.h now contains enums, which are essentially names.
This won't change when we rev the h/w composer API (new ones will be added instead).
we do this to avoid having to abstract all these constants in higher
level APIs; instead hwcomposer_defs.h can be included without exposing
the hwcomposer's data structures (which are a lot more fragile wrt.
backward compatibility)
Change-Id: Ifb514f64de02a599fdd2d31c188327209ccb0ffc
- Clean up const/struct usage in HAL
- Add user pointer to notify callback
- Revamp allocate_stream, now it picks its own ID.
- Much simpler stream interface
- Merged request/reprocess input queues
- Frame queue interface no longer a mirror of request queue
- Added triggers/notifications
- Added default request creation
- Lots of comments
Unit tests added:
- Lots of utility code to speed up test writing
- Basic open/close
- Capturing 1 raw buffer (request input, frame output, buffer output)
- Capturing a burst of 10 raw buffers
Bug: 6243944
Change-Id: I490bd5df81079a44c43d87b02c9a7f7ca251f531
This change clarifies the meaning of the HWC vsync timestamp to specify that
the timestamp must be relative to the system monotonic clock.
Change-Id: I4386ce90511fd5b8f8e988917da637d84d86f026
Modified open output and input stream functions to add new
parameters needed by audio HAL. Also grouped parameters
in a config structure for clarity.
Change-Id: I60832d8e5b5e4a48f209a6d83f5ca9c044be61f1
- Add missing method in stream_ops (set_buffers_geometry)
- Remove extra method in stream_ops (set_swap_interval)
- Document metadata queue protocol
- Change metadata queue methods to be set/get through function calls
only, instead of a struct member in the HAL device ops.
- Change vendor extension tag query methods to be retrieved by a get
call, instead of a struct member in the HAL device ops.
- Add basic gtest unit test skeleton, which currently just returns
static info from all camera devices.
Change-Id: I94117097b0243023ad60638070cc7f0cefec18e6
Added methods to audio_policy_service_ops to load an audio hw module.
Added methods to open an output or input stream on a particualr module.
Change-Id: Ia0618053bec9978c1b7d2a5f6c02b78209557256
These constants should be used by HAL implementations to indicate
which versions of the module and device APIs they support.
Change-Id: I4b6eae278481545694e6a1827833b5958c26720c
The first flag is something for the default implementation to use to
indicate that its keys are importable to hardware keymasters. This
allows easy migration from the default software implementation to
hardware implementations as they become available.
Change-Id: Ideb26a4b1ac91ca8c330a4fe4df323f028b2f855
In order to aid keymasters erase their memory efficiently, introduce new
delete_all API to tell keymasters to forget everything. This will be
triggered when keystore itself is told to reset.
Change-Id: I730375f1f32cd1ea0bf1fa38d5b1bec2f81ba492
This allows all the existing modules to have source level
compatibility until they are fixed to use the new field names.
Since the binary compatibility has not been altered, we do not
need to force all the implementors to rev their version numbers.
This change should be reverted when all the clients have been updated.
Change-Id: Ie543d3a972d8abe03ca5123e3000966f048d1771
Signed-off-by: Dima Zavin <dima@android.com>
The previous names and documentation were not clear as to how the
version fields should be used. As a result, they were often either
unused or used improperly.
It became clear that there were two version fields necessary. One
to version the implementing module and the other to version the
hw_module_t interface itself.
This change renames version_major and version_minor members of
hw_module_t to module_api_version and hal_api_version. It also
provides in-depth descriptions for all the fields and clarifies
the purpose of the version field in hw_device_t structure.
Change-Id: I3e33e5a922cdc17c5e3b1c30a00e211394f18e86
Signed-off-by: Dima Zavin <dima@android.com>
Switch from unspecified encoding for import of keys to PKCS#8 (Java
standard encoding).
Add function for obtaining the public key from a keypair.
Add fields for RSA key generation that indicate modulus size and desired
public exponent.
Add in placeholder fields for possible digest and padding types for
signatures. Currently the only thing supported is "none" and "none"
respectively.
Change-Id: I19ee02cf35321aee859e2460a963c7213791414b
Add I2C slave address. Multiple I2C addresses are possible
for PN544 module. Configure address according to board design.
Change-Id: I847e8f3db631f5039cf15143a9982f4b9b209f27
This is a squashed merge of the following changes:
Commit f560da61a5e128ca9f82f7fe939afcf1f09188c7
Author: John Grossman <johngro@google.com>
Date: Thu Aug 11 15:34:55 2011 -0700
Fill out a missing entry in the audio HAL function table.
The entry for get_initial_master_volume was missing from the non-legacy audio
HAL and needs to be filled out. Also fix up the order of the comments
describing the get_initial_master_volume method.
Change-Id: I87d5415ef92611497a6dab4c657fc00367c4d80b
commit cea82facb63fd237a4ea6fb770605fcb500850ff
Author: Jason Simmons <jsimmons@google.com>
Date: Thu Jun 16 14:24:24 2011 -0700
Define a replacement for getSampleDelta that returns a DMA start time and count of samples queued
Change-Id: I2d13f57b5a8c5b97fb3aa0a90834ce91c56864ef
commit 60a9acd7eee470a8d870218e8be618bfa3be15a5
Author: Mike J. Chen <mjchen@google.com>
Date: Tue Jun 7 09:13:23 2011 -0700
Add Android@Home extensions to new Audio HAL interface.
Change-Id: I3ea4676d4b7d2afd78a5a7a7003ad5c437276d05
Signed-off-by: Mike J. Chen <mjchen@google.com>
Change-Id: I09f3756d12a1ce4f9af39610ed857890742a72df
Signed-off-by: Mike J. Chen <mjchen@google.com>
Signed-off-by: John Grossman <johngro@google.com>
Conflicts:
include/hardware/audio.h
modules/audio/audio_hw.c
This is a squashed merge of the following changes:
commit 9def1ae65f6b4d6a8fdec147fdcd34f22f08174a
Author: John Grossman <johngro@google.com>
Date: Fri Aug 12 11:47:20 2011 -0700
Change the signature of set_local_slew.
Changed the definition of the slew function in the local time HAL to take an
int16 instead of an int32 and to use the full range of the int instead of
attempting to imply any particular PPM range.
Change-Id: Ia67f50e77f1fe674a63ec69460e830d1191ef5a0
commit afab51327453d1bfc7423f8ce7a28933d8fc49b2
Author: John Grossman <johngro@google.com>
Date: Mon Jun 27 17:29:07 2011 -0700
Remove "primary" from the local_time HAL.
Interface instances are a pattern which should only be used by audio. Remove
its use from the local_time HAL.
Change-Id: If4c458cf16a02d9dc63c04185111ae793fc57801
commit 1c26e59a66e75ccb31027f42183aaa32bde6e456
Author: John Grossman <johngro@google.com>
Date: Fri Jun 17 14:19:24 2011 -0700
Refactor the local/common clock services.
This change is one of a set of 5 changes made to different repositories. Look
for this comment in all of them.
Refactor the local/common clock services to match android best
practice. Notable changes include
+ The kernel no longer knows anything about common time. Common time has been
moved completely up into user land. This has an impact on the accuracy of the
timesync debugging code, and the netfilter assisted approach to network based
timesync is going to have to be modified.
+ The timesync driver used by A@H is now just local time driver.
+ The kernel no longer needs access to the linear transform math code, and it
has been removed.
+ A new HAL has been introduced to expose the concept of local time to the
system.
+ A non-slewable stub implementation of the local time HAL based on
CLOCK_MONOTONIC has been added.
+ The old library has been eliminated. Its functionality has been
distributed among the common time binder service, the local time hal and the
linear transform utility code.
+ All clients of the old library have been changed to be clients of
the binder service, the hal and the utility code.
+ The reset_tt utilities have been removed, they no longer have a purpose in the
system.
Change-Id: I39843b94f9b6d13f63b22145a2edcafe4ca87349
Change-Id: Ib264c992d564b99ef7c7847a788e4fa7f5e101b4
Signed-off-by: Mike J. Chen <mjchen@google.com>
Signed-off-by: John Grossman <johngro@google.com>
Conflicts:
modules/Android.mk
At higher levels, SurfaceTextures include timestamp information in
their buffers. For accurate timestamps, they need to be set by the
driver code. This change adds the needed method into
preview_stream_ops.
Timestamp behavior is documented in SurfaceTexture.java, and
system/core/include/window.h, as well as here.
Bug-Id: 5081132
Change-Id: Id285f8e26edecf605444bc4b9e6eea9b224f9d31