liboboe: general cleanup of core code, register threads
Simplify audio format.
Cleaner includes.
Some debug printing.
Add registration of audio threads with server.
Bug: 33347409
Test: test_oboe_api
Change-Id: I342eb745830d6623681ce55cb510513e7c5e2ead
Signed-off-by: Phil Burk <philburk@google.com>
diff --git a/media/liboboe/src/utility/AudioClock.h b/media/liboboe/src/utility/AudioClock.h
index da2f74a..1a5c209 100644
--- a/media/liboboe/src/utility/AudioClock.h
+++ b/media/liboboe/src/utility/AudioClock.h
@@ -17,10 +17,10 @@
#ifndef UTILITY_AUDIOCLOCK_H
#define UTILITY_AUDIOCLOCK_H
-#include <sys/types.h>
+#include <stdint.h>
#include <time.h>
-#include "oboe/OboeDefinitions.h"
-#include "oboe/OboeAudio.h"
+
+#include <oboe/OboeDefinitions.h>
class AudioClock {
public:
diff --git a/media/liboboe/src/utility/HandleTracker.cpp b/media/liboboe/src/utility/HandleTracker.cpp
index be2a64c..bf5fb63 100644
--- a/media/liboboe/src/utility/HandleTracker.cpp
+++ b/media/liboboe/src/utility/HandleTracker.cpp
@@ -19,6 +19,7 @@
//#define LOG_NDEBUG 0
#include <utils/Log.h>
+#include <new>
#include <stdint.h>
#include <assert.h>
@@ -51,25 +52,28 @@
HandleTracker::HandleTracker(uint32_t maxHandles)
: mMaxHandleCount(maxHandles)
- , mHandleAddresses(nullptr)
, mHandleHeaders(nullptr)
{
assert(maxHandles <= HANDLE_TRACKER_MAX_HANDLES);
// Allocate arrays to hold addresses and validation info.
- mHandleAddresses = (handle_tracker_address_t *) new handle_tracker_address_t[maxHandles];
+ mHandleAddresses = (handle_tracker_address_t *)
+ new(std::nothrow) handle_tracker_address_t[maxHandles];
if (mHandleAddresses != nullptr) {
- mHandleHeaders = new handle_tracker_header_t[maxHandles];
+ mHandleHeaders = new(std::nothrow) handle_tracker_header_t[maxHandles];
+
if (mHandleHeaders != nullptr) {
- // Initialize linked list of free nodes. NULL terminated.
+ handle_tracker_header_t initialHeader = buildHeader(0, 1);
+ // Initialize linked list of free nodes. nullptr terminated.
for (uint32_t i = 0; i < (maxHandles - 1); i++) {
mHandleAddresses[i] = &mHandleAddresses[i + 1]; // point to next node
- mHandleHeaders[i] = 0;
+ mHandleHeaders[i] = initialHeader;
}
mNextFreeAddress = &mHandleAddresses[0];
mHandleAddresses[maxHandles - 1] = nullptr;
mHandleHeaders[maxHandles - 1] = 0;
} else {
delete[] mHandleAddresses; // so the class appears uninitialized
+ mHandleAddresses = nullptr;
}
}
}
@@ -131,7 +135,7 @@
// Generate a handle.
oboe_handle_t handle = buildHandle(inputHeader, index);
- //ALOGD("HandleTracker::put(%p) returns 0x%08x", address, handle);
+ ALOGV("HandleTracker::put(%p) returns 0x%08x", address, handle);
return handle;
}
diff --git a/media/liboboe/src/utility/OboeUtilities.cpp b/media/liboboe/src/utility/OboeUtilities.cpp
index b28f7c7..d9d2e88 100644
--- a/media/liboboe/src/utility/OboeUtilities.cpp
+++ b/media/liboboe/src/utility/OboeUtilities.cpp
@@ -28,24 +28,19 @@
using namespace android;
oboe_size_bytes_t OboeConvert_formatToSizeInBytes(oboe_audio_format_t format) {
- oboe_datatype_t dataType = OBOE_AUDIO_FORMAT_DATA_TYPE(format);
- oboe_size_bytes_t size;
- switch (dataType) {
- case OBOE_AUDIO_DATATYPE_UINT8:
- size = sizeof(uint8_t);
- break;
- case OBOE_AUDIO_DATATYPE_INT16:
+ oboe_size_bytes_t size = OBOE_ERROR_ILLEGAL_ARGUMENT;
+ switch (format) {
+ case OBOE_AUDIO_FORMAT_PCM16:
size = sizeof(int16_t);
break;
- case OBOE_AUDIO_DATATYPE_INT32:
- case OBOE_AUDIO_DATATYPE_INT824:
+ case OBOE_AUDIO_FORMAT_PCM32:
+ case OBOE_AUDIO_FORMAT_PCM824:
size = sizeof(int32_t);
break;
- case OBOE_AUDIO_DATATYPE_FLOAT32:
+ case OBOE_AUDIO_FORMAT_PCM_FLOAT:
size = sizeof(float);
break;
default:
- size = OBOE_ERROR_ILLEGAL_ARGUMENT;
break;
}
return size;