From 7d3f4df0a77e052a7d37de9268aff8c2ed0909cc Mon Sep 17 00:00:00 2001 From: Wei Jia Date: Tue, 3 Mar 2015 15:28:00 -0800 Subject: mediaplayer: use non-blocking mode for AudioSink::write(). This cherry picks https://googleplex-android-review.git.corp.google.com/#/c/643541/ to master. Bug: 19448263 Change-Id: I43dea830212de79c2b080185b6c6b36078f517d2 --- include/media/MediaPlayerInterface.h | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/media/MediaPlayerInterface.h b/include/media/MediaPlayerInterface.h index 482b85f..d6fe390 100644 --- a/include/media/MediaPlayerInterface.h +++ b/include/media/MediaPlayerInterface.h @@ -113,7 +113,19 @@ public: const audio_offload_info_t *offloadInfo = NULL) = 0; virtual status_t start() = 0; - virtual ssize_t write(const void* buffer, size_t size) = 0; + + /* Input parameter |size| is in byte units stored in |buffer|. + * Data is copied over and actual number of bytes written (>= 0) + * is returned, or no data is copied and a negative status code + * is returned (even when |blocking| is true). + * When |blocking| is false, AudioSink will immediately return after + * part of or full |buffer| is copied over. + * When |blocking| is true, AudioSink will wait to copy the entire + * buffer, unless an error occurs or the copy operation is + * prematurely stopped. + */ + virtual ssize_t write(const void* buffer, size_t size, bool blocking = true) = 0; + virtual void stop() = 0; virtual void flush() = 0; virtual void pause() = 0; -- cgit v1.1