ae1a5c8dc1fccf7c121eda830f8d23bd094c0f16 |
|
15-Nov-2011 |
Glenn Kasten <gkasten@google.com> |
Remove AudioTrackProxy since AudioTrack is RefBase Change-Id: I4a1f755178699e0fdedf58e1f3cbd82e6067e071
/frameworks/wilhelm/src/locks.c
|
4ce38604afa7e4f629d568f400b0634504e60a2e |
|
29-Jul-2011 |
Glenn Kasten <gkasten@google.com> |
Improved deadlock detection logs. This should make it easier to debug the "object was locked by" logs. Display tid and pthread_t of both the lock owner and the caller in the "object was locked by" warning log about potential deadlocks. This makes it easier to figure out what's going on with ps -t which only shows the tid not the pthread_t. Reduce false positives by using a generation counter to look for forward progress, at the risk of increasing the chance of more false negatives. Use lock with timeout to reduce chance of missing an "unlocked" window. Change-Id: I15e158a20d7076624188110842a01c1bf2c5c8ae
/frameworks/wilhelm/src/locks.c
|
a60dbf554549d10780f473b6e1373aa07aec3a28 |
|
11-Aug-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5147281 prefetch status deadlocks Fixed two deadlocks related to AudioTrack prefetch event callbacks: - if PrefetchStatus interface was initialized on an AudioPlayer, there was a deadlock at the point where it checked whether to do a callback - prefetch status callbacks are now called with the object unlocked, so they are permitted to do APIs on the object Miscellaneous fixes: - SMP-safe locks for GetPrefetchStatus, GetFillLevel, GetCallbackEventsMask, SetFillUpdatePeriod, GetFillUpdatePeriod - SetCallbackEventsMask error handling for invalid bitmask - Enqueue sets prefetch fill level to 1000 Change-Id: Ic8b2c440aeb4efa3446a4a73d3422d934ceb0578
/frameworks/wilhelm/src/locks.c
|
47550bf6cf5cf08a402a54b1589f4b64582a5120 |
|
30-Jun-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 4980997 Fix the AudioTrack start deadlock Details: - Added AudioTrackProxy, a RefBase proxy for AudioTrack - Call AudioTrack::start() after unlock Change-Id: Ib1a05ee57f78432eb4c9d3a5bd68dd31a78d6e3e
/frameworks/wilhelm/src/locks.c
|
7b726bdcd996f1cab3a584c04ce1afc07bc8fbe7 |
|
07-Apr-2011 |
Glenn Kasten <gkasten@google.com> |
Refactor the handling of updates to attributes Attribute handler functions are more modular and get rid of those endless if statements. Change-Id: I3221aeb3d26d2dcc5dc9a3f6d37d088f5ce511a1
/frameworks/wilhelm/src/locks.c
|
92b245bf8828db9e469febebbe8774c00570b5b9 |
|
07-Apr-2011 |
Jean-Michel Trivi <jmtrivi@google.com> |
OpenMAX AL: support the SeekItf and XA_PLAYEVENT_HEADATEND Implemented support for: - seeking to a position - looping (only over full duration is supported, no loop points) - notification of end of content reached This is all for the playback of URIs or FDs. Change-Id: I015c40e66feb7ac280459895f5f7915ac964df31
/frameworks/wilhelm/src/locks.c
|
37dc2fccf3f122b79ebd554de209d0a3c94ae161 |
|
09-Mar-2011 |
Jean-Michel Trivi <jmtrivi@google.com> |
Bug 3329759 Implement streamInformation and volume in OpenMAX AL - Implement StreamInformation for video size notification. - Implement the XAVolumeItf for volume control - Fix bug in GUID -> MPH hash. - Fixed typo in GenericPlayer::pause() log - Do not signal a discontinuity automatically when the ABQ is cleared because clearing the queue doesn't imply there will be a discontinuity in the data (e.g. the same data that was cleared could be reenqueued) - In "native-media" test app: add test code to exercise the XAVolumeItf functionality. Change-Id: I9f69f8cacbdce51b6d96d60141ec1d0f645df991
/frameworks/wilhelm/src/locks.c
|
70c49ae2867094072a4365423417ea452bf82231 |
|
07-Mar-2011 |
Jean-Michel Trivi <jmtrivi@google.com> |
Bug 3329759 support commands in SLAndroidBufferQueueItf Support for EOS, DISCONTINUITY, and DISCONTINUITY with a PTS. - in IAndroidBufferQueue structure, added buffer type - modified AdvancedBufferHeader structure to have a buffer type-specific structure that contains all the items for each buffer - added parsing of items when enqueueing a buffer - enforce buffer size enqueue to be a multiple of MPEG-2 TS block size for buffer of the corresponding types - when enqueueing a buffer on an empty queue, implemented an asynchronous notification on StreamPlayer to consume the newly queued buffer. Verified this kicks off playback after having starved the framework for buffers. - report unknown duration when using AndroidBufferQueue Change-Id: I9bde97a6c6ffca7d376b4963313b820b35f50a26
/frameworks/wilhelm/src/locks.c
|
d158d31a6bbb06426b71c3d097b7768bc3fb79a3 |
|
04-Mar-2011 |
Jean-Michel Trivi <jmtrivi@google.com> |
Bug 3329759 TS streaming over SLAndroidBufferQueueItf Modify the SLAndroidBufferQueueItf interface to offer a model where buffers of data can be queued along with commands (messages) when used for playback, or buffers of data can be received along with metadata (messages) changes: - new callback and enqueue functions in SLAndroidBufferQueueItf and XAAndroidBufferQueueItf. - definition of a new struct, AdvancedBufferHeader, for the buffers in the queue. - decoupling of the "buffer available to be filled" from SF and the call to the ABQ callback. Implemented in new file AndroidBufferQueueSource.cpp - source/sink checks and memory allocation when creating an AudioPlayer or MediaPlayer that uses SLAndroidBufferQueueItf, and verifying the data fed to the ABQ is declared as SL_CONTAINERTYPE_MPEG_TS - updated tests/native-media XA demo code, and tests/sandbox/streamSource to use the new interface. Change-Id: I48e44f346e718041d835fde51e349923fcc1f4b1
/frameworks/wilhelm/src/locks.c
|
68d56b8ebaf60184a3aef988e3d2b09ed8b88c05 |
|
24-Feb-2011 |
Jean-Michel Trivi <jmtrivi@google.com> |
OpenMAX AL: consolidate MediaPlayer implementations under superclass The OpenMAX AL MediaPlayer object has two implementations: one for playing from URI/FD (LocAVPlayer) and one for playing from AndroidBufferQueue (StreamPlayer). They both inherit from AVPlayer. This CL makes LocAVPlayer and StreamPlayer inherit from GenericMediaPlayer (new name of AVPlayer) which encapsulates the interaction with an android::MediaPlayer instance running in the media server process. Also it makes GenericMediaPlayer inherit from GenericPlayer, the player superclass also used in OpenSL ES. After this CL, the OpenMAX AL and OpenSL ES have a common class hierarchy for their players. Change-Id: I5f6e279fc29b7f6f26c9ed5c83a9455cfda88ff4
/frameworks/wilhelm/src/locks.c
|
bcc5c7225e3b7a1dbf2e9e830987f69167acf06f |
|
18-Jan-2011 |
Glenn Kasten <gkasten@google.com> |
Rename class__ to clazz, this to thiz The JNI naming conventions avoid conflict with C++ reserved words. Change-Id: I93ad6920bf78c0a02ac4b2650a29c9e11252f731
/frameworks/wilhelm/src/locks.c
|
262059f71a68edc5e510427c63f5f1623d3672a8 |
|
12-Jan-2011 |
Glenn Kasten <gkasten@google.com> |
Directory re-organization Change-Id: I8e3f12a22e765d36ddefd87edf204735b25474f6
/frameworks/wilhelm/src/locks.c
|