Commit Graph

1971 Commits

Author SHA1 Message Date
Dan Stoza
dc13c5b85b libgui: Hook up onFrameReplaced
This completes the plumbing from ConsumerListener::onFrameReplaced into
SurfaceFlinger (and other consumers that may care).

Change-Id: I376e78ace95d6748e8662e6b4d47c0dfa697a300
2015-05-11 15:33:01 -07:00
Svet Ganov
5fa32d4b08 Fix broken NDK sensor manager API.
Change-Id: I21bb8b0dcfd3f1c812753a9fd77dea792e7155f2
2015-05-07 12:50:27 -07:00
Svetoslav
c28fe8f5c5 Merge "Add body sensors app op - framework native" into mnc-dev 2015-05-01 23:10:56 +00:00
Svetoslav
b412f6e203 Add body sensors app op - framework native
Change-Id: I727a2bb1e28ae9158f2df9c74dd0aee977dfd47f
2015-05-01 13:51:45 -07:00
Dan Stoza
ecc504043f SurfaceFlinger: Fix PTS on stale buffers
SurfaceFlinger's (Layer's) shadow copy of the BufferQueue queue was
getting out of sync for a few reasons. This change fixes these by
doing the following:

- Adds a check to re-synchronize the shadow copy every time we
  successfully acquire a buffer by first dropping stale buffers before
  removing the current buffer.
- Avoids trying to perform updates for buffers which have been rejected
  (for incorrect dimensions) by SurfaceFlinger.
- Adds IGraphicBufferConsumer::setShadowQueueSize, which allows the
  consumer to notify the BufferQueue that it is maintaining a shadow
  copy of the queue and prevents it from dropping so many buffers
  during acquireBuffer that it ends up returning a buffer for which the
  consumer has not yet received an onFrameAvailable call.

Bug: 20096136
Change-Id: I78d0738428005fc19b3be85cc8f1db498043612f
(cherry picked from commit 2e36f2283f)
2015-05-01 12:23:44 -07:00
Svet Ganov
f1377f506c Respect the record audio app op - frameworks native
Change-Id: Id747767377953fd644a538aad3f603d6c50875a2
2015-04-28 16:33:28 -07:00
Dan Stoza
4afd8b67f9 BufferQueue: Add NATIVE_WINDOW_BUFFER_AGE query
Adds a NATIVE_WINDOW_BUFFER_AGE query, which returns the age of the
contents of the most recently dequeued buffer as the number of frames
that have elapsed since it was last queued.

Change-Id: Ib6fd62945cb62d1e60133a65beee510363218a23
(cherry picked from commit 49f810c72df8d1d64128e376757079825c8decd4)
2015-04-28 13:46:49 -07:00
Dan Stoza
d9c4971da2 libgui: Change detachNextBuffer to return sp<GB>
Changes Surface::detachNextBuffer to return an sp<GraphicBuffer>
instead of an ANativeWindowBuffer* to ensure that reference counting
works correctly.

Bug: 20092217
Change-Id: I3979ea6121aaf14845f0554477b778770413581e
(cherry picked from commit 8b2daa3ca29492b181fb67840640d771c4a2b3ac)
2015-04-27 11:45:58 -07:00
Aravind Akella
579529130d Build fix change method signature of enableDataInjection.
Change-Id: I3927aec64f5a1555d2e5d07591fd04e7b3be5f09
2015-04-24 19:54:46 -07:00
Aravind Akella
cc60dc2128 Merge "Enable data injection mode in SensorService." 2015-04-25 01:40:35 +00:00
Lajos Molnar
0f7723f6b4 OMX: add event for rendering an output frame by a tunneled decoder
Bug: 20503131
Change-Id: Ia5cc7629244c986f059a3571be1d8aca87006e02
2015-04-24 13:33:37 -07:00
Dan Stoza
6febf6c150 am 5d10894c: am ef47c080: am 958f5011: Merge "libgui: Allow an IGBProducer to disable allocation"
* commit '5d10894c9d547449cf231f02b736da9dfdebec11':
  libgui: Allow an IGBProducer to disable allocation
2015-04-24 16:33:38 +00:00
Dan Stoza
7536ef4f07 am 437fb850: am f96a7581: am fb6d43ff: Merge "libgui: Change BufferQueue to use free lists"
* commit '437fb850b0667be3e8655cb1ac6a8d491f59d045':
  libgui: Change BufferQueue to use free lists
2015-04-24 16:33:37 +00:00
Dan Stoza
5d10894c9d am ef47c080: am 958f5011: Merge "libgui: Allow an IGBProducer to disable allocation"
* commit 'ef47c080fd0e7fb8bf1fc4b0ecadae277a22f2cf':
  libgui: Allow an IGBProducer to disable allocation
2015-04-24 16:12:30 +00:00
Dan Stoza
437fb850b0 am f96a7581: am fb6d43ff: Merge "libgui: Change BufferQueue to use free lists"
* commit 'f96a758139be0d5c298abad8e27083b0f0849818':
  libgui: Change BufferQueue to use free lists
2015-04-24 16:12:29 +00:00
Aravind Akella
a9e6cc3870 Enable data injection mode in SensorService.
Change-Id: I0cd32a017235c31c54816e4a357ce3b988350ed6
2015-04-23 17:42:37 -07:00
Dan Stoza
9de7293b0a libgui: Allow an IGBProducer to disable allocation
Adds a new method IGBP::allowAllocation, which controls whether
dequeueBuffer is permitted to allocate a new buffer. If allocation is
disallowed, dequeueBuffer will block or return an error as it
normally would (as controlled by *ControlledByApp).

If there are free buffers, but they are not of the correct dimensions,
format, or usage, they may be freed if a more suitable buffer is not
found first.

Bug: 19801715
Change-Id: I0d604958b78b2fd775c2547690301423f9a52165
2015-04-23 15:28:12 -07:00
Dan Stoza
0de7ea7529 libgui: Change BufferQueue to use free lists
BufferQueue used to choose free buffers by scanning through its array
of slots and picking one based on timestamp. This changes that
mechanism to use a pair of free lists: one with buffers attached and
one without. This makes it easier to choose either type of free slot
depending on the needs of the current operation.

Fixes an issue with the first version of this change, found in bugs
20482952, 20443314, and 20464549.

Bug: 13175420
Change-Id: I9b6e83cfe8f9b4329a976025cb8e291d51fb6d4a
2015-04-23 13:25:11 -07:00
Dan Stoza
83e9f6e75e am 41422980: am d2c12e4c: am 7637e35d: Merge "Revert "libgui: Change BufferQueue to use free lists""
* commit '41422980fabb087390791d951c28fef072d93be1':
  Revert "libgui: Change BufferQueue to use free lists"
2015-04-22 22:18:58 +00:00
Dan Stoza
41422980fa am d2c12e4c: am 7637e35d: Merge "Revert "libgui: Change BufferQueue to use free lists""
* commit 'd2c12e4cd394ab9ed642526f8bd0e1b3acd692ae':
  Revert "libgui: Change BufferQueue to use free lists"
2015-04-22 19:17:56 +00:00
Dan Stoza
7637e35d17 Merge "Revert "libgui: Change BufferQueue to use free lists"" 2015-04-22 18:59:02 +00:00
Dan Stoza
1fc9cc25a4 Revert "libgui: Change BufferQueue to use free lists"
This reverts commit 8dddc99010.

Change-Id: I0b0fed9f1394c6f6ae812f6c562ead4473a8226e
2015-04-22 18:57:39 +00:00
Dan Stoza
2bff43a912 am 3805a00d: am 91f16b1b: am e647ddde: Merge "libgui: Fix CPU rendering on Surface"
* commit '3805a00d6efef02535aaed96f412e0c55a9875f8':
  libgui: Fix CPU rendering on Surface
2015-04-22 00:47:35 +00:00
Dan Stoza
3805a00d6e am 91f16b1b: am e647ddde: Merge "libgui: Fix CPU rendering on Surface"
* commit '91f16b1b9c12e897d15198953684d9c7731ca47a':
  libgui: Fix CPU rendering on Surface
2015-04-22 00:30:31 +00:00
Dan Stoza
c62acbd127 libgui: Fix CPU rendering on Surface
When the surface damage code went in, it incorrectly assumed that if
an application was doing CPU rendering, it would be using lock and
unlockAndPost instead of dequeue and queue, so it repurposed the dirty
region too aggressively. This change keeps it from clobbering the
dirty region if a CPU producer is attached.

Bug: 20431815
Change-Id: Id4dfd71378311ea822f0289f6de2d20a7bd84014
2015-04-21 16:56:52 -07:00
Joseph Cooper
2fba96360e Merge "Introduces navigation keycodes." 2015-04-21 15:31:42 +00:00
Dan Sandler
8f91a6fb04 Merge "Add ashmem stats to Parcels" 2015-04-21 14:10:23 +00:00
Dan Stoza
97ef903db1 am aadb236d: am 483c76dc: am ff5c1a6b: Merge "libgui: Change BufferQueue to use free lists"
* commit 'aadb236d2e944791c1e7600eae9439fcb8a6caa9':
  libgui: Change BufferQueue to use free lists
2015-04-20 20:59:55 +00:00
Dan Stoza
aadb236d2e am 483c76dc: am ff5c1a6b: Merge "libgui: Change BufferQueue to use free lists"
* commit '483c76dcb855fe87adc670c0a0ea1e1ce237dd81':
  libgui: Change BufferQueue to use free lists
2015-04-20 20:35:50 +00:00
Dan Stoza
8dddc99010 libgui: Change BufferQueue to use free lists
BufferQueue used to choose free buffers by scanning through its array
of slots and picking one based on timestamp. This changes that
mechanism to use a pair of free lists: one with buffers attached and
one without. This makes it easier to choose either type of free slot
depending on the needs of the current operation.

Bug: 13175420
Change-Id: Ic8398e7511bd11a60a1c82e3ad2ee271c9822be1
2015-04-17 09:28:41 -07:00
Joseph Cooper
e50376eef0 Introduces navigation keycodes.
These four new navigation keycodes are intended to be used to
navigate a tree hierarchy or list of items.  They should be used to
allow the user to advance forward or backward within a list of
sibling items, expand the currently selected item to navigate the
item's children, or back out from the current item to its parent
item or state.

Change-Id: I4781e9d7756ed00ca14d8d4c743da3cc0e68ea6c
2015-04-16 09:09:17 -07:00
Dan Sandler
aa5c2346c7 Add ashmem stats to Parcels
Requires change Ifaf115da in frameworks/base.

Bug: 20079551
Change-Id: Ifaf115dabd1a59cdb1b46e2d49c41f64ac107de4
2015-04-16 04:08:53 +00:00
Dan Stoza
2992fcd0b2 am 057a561a: am 57a9f5a0: am fd5f41be: Merge "libgui: Pass surface damage through BufferQueue"
* commit '057a561afbf30ede99b5ec627deec7ee11701f6d':
  libgui: Pass surface damage through BufferQueue
2015-04-15 21:42:43 +00:00
Dan Stoza
057a561afb am 57a9f5a0: am fd5f41be: Merge "libgui: Pass surface damage through BufferQueue"
* commit '57a9f5a05327de352896612caf85c991e65ca7be':
  libgui: Pass surface damage through BufferQueue
2015-04-15 20:45:44 +00:00
Dan Stoza
5065a55291 libgui: Pass surface damage through BufferQueue
This change adds support for passing surface damage all of the way
down from the EGL interface through the consumer side of the
BufferQueue. Depends on system/core change
Ie645e6a52b37b5c1b3be19481e8348570d1aa62c

Bug: 11239309
Change-Id: I4457ea826e9ade4ec187f973851d855b7b93a31b
2015-04-15 13:19:38 -07:00
Wale Ogunwale
376b822728 Added IPCThreadState::blockUntilThreadAvailable() method.
Will be used by the system_server watchdog to monitor the
availability of binder threads in the process to handle
incoming IPC requests.

Bug: 19297165
Change-Id: I39175f3869ad14da5620fddb47f454e6e4ee2b25
2015-04-14 13:17:25 -07:00
Jeff Tinker
899d1a68b0 Merge "Add a method to associate MediaDrm session with MediaCrypto" 2015-04-10 21:04:06 +00:00
Ronghua Wu
4b7bfa48ff Merge "openmax: add OMX_IndexConfigOperatingRate." 2015-04-10 20:10:42 +00:00
Jeff Tinker
ac7d8fe36f Add a method to associate MediaDrm session with MediaCrypto
Previously, to associate a MediaDrm session with MediaCrypto,
the MediaDrm sessionId was passed as initData to the MediaCrypto
constructor.  This is not ideal for two reasons: it's pretty
obscure and you can't change the association without tearing
down the MediaCodec/MediaCrypto and starting all over.  Use
cases like key rotation require being able to update the
MediaDrm session post-construction.  This CL addresses both of
these issues.

bug: 19570317
Change-Id: Iede35e73e9007df13254edaa5877cb4832b28646
2015-04-10 04:10:10 -07:00
Erik Kline
cae1c81ab1 Merge "multinetwork API: native header" 2015-04-10 01:57:19 +00:00
Jeff Tinker
9a498ef115 Add expiration update and keys change events
In support of unprefixed EME

bug: 19771612
bug: 19771431
Change-Id: Ibb8471701a62dedfbf5231ad958e2c33ebb3c42f
2015-04-09 22:44:56 +00:00
Tim Kilbourn
063ff53d0b Pass through availability of audio mic for input devices.
Bug: 15374820
Change-Id: Id2ca6da10165e3a887ebfbb18f663a3bf316ac79
2015-04-09 10:02:16 -07:00
Dan Stoza
668285721b am 172ff24c: am 5977851b: am 00afb817: Merge "libgui: Plumb detachBuffer through ConsumerBase"
* commit '172ff24ccbc232cdf244a2bcbbb51df754929521':
  libgui: Plumb detachBuffer through ConsumerBase
2015-04-07 23:18:48 +00:00
Dan Stoza
172ff24ccb am 5977851b: am 00afb817: Merge "libgui: Plumb detachBuffer through ConsumerBase"
* commit '5977851b80549f24cd9164ec075b79c6c6291fa5':
  libgui: Plumb detachBuffer through ConsumerBase
2015-04-07 22:58:47 +00:00
Dan Stoza
6b4f28a793 am a53e955a: Merge "libgui: Plumb attach/detach through Surface" into stage-aosp-master
* commit 'a53e955ad882793bb6fea00d4d110a3d8878ab57':
  libgui: Plumb attach/detach through Surface
2015-04-07 22:12:33 +00:00
Dan Stoza
634f5ee6a7 libgui: Plumb detachBuffer through ConsumerBase
Exposes IGraphicBufferConsumer::detachBuffer as a ConsumerBase
method. attachBuffer is not currently exposed, because all current
clients will be recycling buffers through the allocator.

Bug: 19628705
Change-Id: I3e519767fa43d5d880c1d5695e31b60f6ad588af
2015-04-07 15:05:40 -07:00
Dan Stoza
6d9e3dc5ca am e55cae86: Merge "libgui: Remove IGBC::BufferItem" into stage-aosp-master
* commit 'e55cae86e6217a86d94bf280c6c8442bef2dd908':
  libgui: Remove IGBC::BufferItem
2015-04-07 21:24:02 +00:00
Dan Stoza
8ed8182756 libgui: Plumb attach/detach through Surface
Exposes the attachBuffer and detachNextBuffer calls from
IGraphicBufferProducer to the public Surface interface. Also moves
the version of connect that takes a producer callback from protected
to public.

Bug: 19628705
Change-Id: I9ebc3013c4d9c84c4e8ef150c00e03f8af80319e
(cherry picked from commit 231832eb27)
2015-04-07 13:50:03 -07:00
Dan Stoza
955c897482 libgui: Remove IGBC::BufferItem
Removes IGraphicBufferConsumer::BufferItem. Depends on the
following changes:
    I187b3a7d05196b6289596afac8fb9a9d4aebff76
    I0ddd38df37500cfd6b21d1e768ed14e39c5cd9fc

Change-Id: I3edf0db8fba656fd78e18a5a7f1137f0fb6b237d
(cherry picked from commit 1c87e474d8)
2015-04-07 13:49:25 -07:00
Ronghua Wu
a39c205f87 openmax: add OMX_IndexConfigOperatingRate.
Bug: 19620911
Change-Id: I4458705414ab0087bbfd60dee201973045cd711b
2015-04-07 12:25:30 -07:00