diff options
author | Glenn Kasten <gkasten@google.com> | 2015-05-12 13:17:07 -0700 |
---|---|---|
committer | Glenn Kasten <gkasten@google.com> | 2015-05-27 09:21:00 -0700 |
commit | 68d5ebd1da6bd4744314749d4fdbaf216414ea94 (patch) | |
tree | 9c358286493cca6b2450a0f76535932acc0ac7e9 /media/java | |
parent | 16224288791dd3f122931504e624637fdcc70903 (diff) | |
download | frameworks_base-68d5ebd1da6bd4744314749d4fdbaf216414ea94.zip frameworks_base-68d5ebd1da6bd4744314749d4fdbaf216414ea94.tar.gz frameworks_base-68d5ebd1da6bd4744314749d4fdbaf216414ea94.tar.bz2 |
Improve error handling for AudioTrack write with PTS
Pick up some of the error handling from AudioTrack write ByteBuffer
Change-Id: I62f233c2026759dbe57d7e1f48d62babaa49e5b8
Diffstat (limited to 'media/java')
-rw-r--r-- | media/java/android/media/AudioTrack.java | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/media/java/android/media/AudioTrack.java b/media/java/android/media/AudioTrack.java index f76189c..7293c6c 100644 --- a/media/java/android/media/AudioTrack.java +++ b/media/java/android/media/AudioTrack.java @@ -1990,9 +1990,24 @@ public class AudioTrack * The dead object error code is not returned if some data was successfully transferred. * In this case, the error is returned at the next write(). */ - public int write(ByteBuffer audioData, int sizeInBytes, + public int write(@NonNull ByteBuffer audioData, int sizeInBytes, @WriteMode int writeMode, long timestamp) { + if (mState == STATE_UNINITIALIZED) { + Log.e(TAG, "AudioTrack.write() called in invalid state STATE_UNINITIALIZED"); + return ERROR_INVALID_OPERATION; + } + + if ((writeMode != WRITE_BLOCKING) && (writeMode != WRITE_NON_BLOCKING)) { + Log.e(TAG, "AudioTrack.write() called with invalid blocking mode"); + return ERROR_BAD_VALUE; + } + + if (mDataLoadMode != MODE_STREAM) { + Log.e(TAG, "AudioTrack.write() with timestamp called for non-streaming mode track"); + return ERROR_INVALID_OPERATION; + } + if ((mAttributes.getFlags() & AudioAttributes.FLAG_HW_AV_SYNC) == 0) { Log.d(TAG, "AudioTrack.write() called on a regular AudioTrack. Ignoring pts..."); return write(audioData, sizeInBytes, writeMode); |