OboeAudioService: add thread to service for passing timestamps
Cleanup several TODOs.
Test: test_aaudio in CTS
Change-Id: I7fc956b6a21cbb592f98e1e5a8f43ebd6926d796
Signed-off-by: Phil Burk <philburk@google.com>
diff --git a/media/liboboe/src/legacy/AudioStreamTrack.cpp b/media/liboboe/src/legacy/AudioStreamTrack.cpp
index b2c4ee1..291e56c 100644
--- a/media/liboboe/src/legacy/AudioStreamTrack.cpp
+++ b/media/liboboe/src/legacy/AudioStreamTrack.cpp
@@ -87,12 +87,10 @@
// Did we get a valid track?
status_t status = mAudioTrack->initCheck();
ALOGD("AudioStreamTrack::open(), initCheck() returned %d", status);
- // FIXME - this should work - if (status != NO_ERROR) {
- // But initCheck() is returning 1 !
- if (status < 0) {
+ if (status != NO_ERROR) {
close();
ALOGE("AudioStreamTrack::open(), initCheck() returned %d", status);
- return OboeConvert_androidToOboeError(status);
+ return OboeConvert_androidToOboeResult(status);
}
// Get the actual values from the AudioTrack.
@@ -123,11 +121,11 @@
// Get current position so we can detect when the track is playing.
status_t err = mAudioTrack->getPosition(&mPositionWhenStarting);
if (err != OK) {
- return OboeConvert_androidToOboeError(err);
+ return OboeConvert_androidToOboeResult(err);
}
err = mAudioTrack->start();
if (err != OK) {
- return OboeConvert_androidToOboeError(err);
+ return OboeConvert_androidToOboeResult(err);
} else {
setState(OBOE_STREAM_STATE_STARTING);
}
@@ -147,7 +145,7 @@
mAudioTrack->pause();
status_t err = mAudioTrack->getPosition(&mPositionWhenPausing);
if (err != OK) {
- return OboeConvert_androidToOboeError(err);
+ return OboeConvert_androidToOboeResult(err);
}
return OBOE_OK;
}
@@ -191,7 +189,7 @@
if (mAudioTrack->stopped()) {
err = mAudioTrack->getPosition(&position);
if (err != OK) {
- return OboeConvert_androidToOboeError(err);
+ return OboeConvert_androidToOboeResult(err);
} else if (position == mPositionWhenPausing) {
// Has stream really stopped advancing?
setState(OBOE_STREAM_STATE_PAUSED);
@@ -203,7 +201,7 @@
{
err = mAudioTrack->getPosition(&position);
if (err != OK) {
- return OboeConvert_androidToOboeError(err);
+ return OboeConvert_androidToOboeResult(err);
} else if (position == 0) {
// Advance frames read to match written.
setState(OBOE_STREAM_STATE_FLUSHED);
@@ -239,7 +237,7 @@
return 0;
} else if (bytesWritten < 0) {
ALOGE("invalid write, returned %d", (int)bytesWritten);
- return OboeConvert_androidToOboeError(bytesWritten);
+ return OboeConvert_androidToOboeResult(bytesWritten);
}
oboe_size_frames_t framesWritten = (oboe_size_frames_t)(bytesWritten / bytesPerFrame);
incrementFramesWritten(framesWritten);
@@ -251,7 +249,7 @@
{
ssize_t result = mAudioTrack->setBufferSizeInFrames(requestedFrames);
if (result != OK) {
- return OboeConvert_androidToOboeError(result);
+ return OboeConvert_androidToOboeResult(result);
} else {
*actualFrames = result;
return OBOE_OK;