• Glenn Kasten's avatar
    Bug 5903270 play interface, events, markers, etc. · 5933f3d5
    Glenn Kasten authored
    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
    5933f3d5
attr.h 2.27 KB