summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorWei Jia <wjia@google.com>2015-03-03 15:28:00 -0800
committerWei Jia <wjia@google.com>2015-03-03 15:28:00 -0800
commit7d3f4df0a77e052a7d37de9268aff8c2ed0909cc (patch)
tree060550294c95fe8a35ba5c7c0c9d476d7c91d788 /include
parent1ba399206f6a99fec17331186041b55c3733c8d8 (diff)
downloadframeworks_av-7d3f4df0a77e052a7d37de9268aff8c2ed0909cc.zip
frameworks_av-7d3f4df0a77e052a7d37de9268aff8c2ed0909cc.tar.gz
frameworks_av-7d3f4df0a77e052a7d37de9268aff8c2ed0909cc.tar.bz2
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
Diffstat (limited to 'include')
-rw-r--r--include/media/MediaPlayerInterface.h14
1 files changed, 13 insertions, 1 deletions
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;