b8fe327b1505778e82db76de930dd3f62ec99158 |
|
28-May-2015 |
Glenn Kasten <gkasten@google.com> |
Remove redundant parentheses Change-Id: Ia7de3564a8065f33aa74655b01357f4138b32aa8
/frameworks/wilhelm/src/handler_bodies.c
|
f5ff1a75f55677163bd9a8bd804e8f5c33ef592c |
|
30-Aug-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5244675 handle the switch cases of AAC decode Fix handling of AUDIOPLAYER_FROM_ADTS_ABQ_TO_PCM_BUFFERQUEUE decode use case: - Play::GetPosition: explicitly list decode case and return media player time; previously returned zero. - Seek::SetLoop for AudioPlayer or MediaPlayer: return SL_RESULT_FEATURE_UNSUPPORTED on non-URI data source. This is correctly passed up to app. The remaining have no immediate impact, but should make future maintenance easier: - Play::GetDuration: explicitly list decode case and return unknown time; no impact as already covered by default. - Seek::SetPosition: explicitly list decode case and handle as no-op; no impact as already covered by default. - Seek::SetPosition for AudioPlayer or MediaPlayer: return SL_RESULT_FEATURE_UNSUPPORTED with unsupported data source e.g. buffer queue. No impact as the result is currently ignored, but added a FIXME to pass this up to app. - AndroidBufferQueue::Clear: explicitly list decode case as a no-op other than the partial clear of upper layer queue. - AndroidBufferQueue::onRefilled: explicitly list decode case as a no-op, but with a FIXME that this may need more work later. Change-Id: I53c8a0b736f32cd265ee9c94a70127d4f80869b5
/frameworks/wilhelm/src/handler_bodies.c
|
bcfe680db1e392f3bb29382c2e15e89c3af783ed |
|
22-Aug-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5198051 MediaPlayer PLAYEVENT_HEAD* callbacks Change-Id: Ibb04fbf727997281bb77fd22c51cd90bd044e505
/frameworks/wilhelm/src/handler_bodies.c
|
5933f3d5e532aaac31ce0e6551c59f0197c0ae3c |
|
29-Jul-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5903270 play interface, events, markers, etc. As the media framework does not directly support marker and periodic callbacks, we use a retriggerable one-shot timer at application level to emulate this. This has the advantage of being faster, but is also less accurate than if it were in the framework. Details: - Get position is now synchronous and (mostly) lock-free - Fix regression in SL_PLAYEVENT_HEADATMARKER and SL_PLAYEVENTHEADATNEWPOS - Fix SMP races in GetPlayState, GetCallbackEventsMask, GetMarkerPosition, GetPositionUpdatePeriod - AudioSfDecoder was not updating mPositionMsec when getPositionUsec failed - Updating attributes is relatively expensive, so only do it when a significant change in SetMarkerPosition, ClearMarkerPosition, SetPositionUpdatePeriod - Error on unknown message type in onMessageReceived - Delete an obsolete FIXME - "Clearing" a marker is now equivalent to disabling the marker event, and the default marker position is cleared. - use Android time units and types (int32_t, ANDROID_UNKNOWN_TIME, etc.) where appropriate instead of SLmillisecond and SL_TIME_UNKNOWN Change-Id: Ib78bafa20d883b8d927364769663837389b6ea1d
/frameworks/wilhelm/src/handler_bodies.c
|
99b927751677abfb60a388d65dfeed1fed1db12c |
|
28-Jul-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5080320 MediaPlayer volume Details: - re-factor volume-related code yet again - remove dead variables mAmplFromVolLevel, mAmplFromStereoPos, mDirectLevel - add placeholders for kEventPrefetchFillLevelUpdate and kEventPrefetchStatusChange Known issues: - MPEG-2 TS doesn't yet implement the ability to query channel count, so default to stereo Change-Id: Ic0f2297b267dc3d380755e8d314e1d5f0f659d7c
/frameworks/wilhelm/src/handler_bodies.c
|
f4647bf85968ab30eb07f9a80b99177d91068f94 |
|
29-Jun-2011 |
Glenn Kasten <gkasten@google.com> |
Call AudioTrack start, stop, and pause when needed These AudioTrack operations are relatively expensive Binder calls (and will soon be even more expensive to fix a deadlock at AudioTrack::start), and they were being called excessively. Now AudioTrack start, stop, and pause are only called when there is an actual play state change. Details: - distinguish ATTR_TRANSPORT vs. ATTR_PLAY_STATE for audio players - android_audioPlayer_setPlayState is only called when the play state changes - handler_AudioPlayer_transport is only called for transport changes other than play state - android_audioPlayer_setPlayState is always called with mutex locked - since media player currently only handles play state, handler_MediaPlayer_transport is still called for both ATTR_TRANSPORT and ATTR_PLAY_STATE - since the handlers for ATTR_BQ_ENQUEUE and ATTR_ABQ_ENQUEUE are only called if in state PLAYING, changed an "if" to an "assert" Change-Id: Iee2968fd98d215885b7105053bb1604f962ea337
/frameworks/wilhelm/src/handler_bodies.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/handler_bodies.c
|