From b1a270d1e926fb9a01b4265a7675ed0c2c8f4868 Mon Sep 17 00:00:00 2001 From: Richard Fitzgerald Date: Tue, 14 May 2013 12:12:21 +0100 Subject: libmedia: offloaded playback support - start() returns a status so that upper layers can recreate a non offloaded track in case of error. - Added states to handle offloaded tracks specific: - waiting for stream end (drain) notification by audio flinger - allow pause while waiting for stream end notification - getPosition() queries the render position directly from audio HAL. - disable APIs not applicable to offloaded tracks - Modified track restoring behavior for invalidated offloaded tracks: just send the callback and wait for upper layers to create a new track. - Added wait for stream end management in audio track client proxy. Similar to obtainBuffer and should be factored in. Change-Id: I0fc48117946364cb255afd653195498891f622bd Signed-off-by: Eric Laurent --- include/private/media/AudioTrackShared.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include/private') diff --git a/include/private/media/AudioTrackShared.h b/include/private/media/AudioTrackShared.h index 6129c80..b890180 100644 --- a/include/private/media/AudioTrackShared.h +++ b/include/private/media/AudioTrackShared.h @@ -296,6 +296,7 @@ public: bool getStreamEndDone() const; + status_t waitStreamEndDone(const struct timespec *requested); }; class StaticAudioTrackClientProxy : public AudioTrackClientProxy { @@ -379,8 +380,8 @@ public: protected: size_t mAvailToClient; // estimated frames available to client prior to releaseBuffer() -private: int32_t mFlush; // our copy of cblk->u.mStreaming.mFlush, for streaming output only +private: bool mDeferWake; // whether another releaseBuffer() is expected soon }; -- cgit v1.1