diff options
author | nyorain <[email protected]> | 2019-12-19 17:15:13 +0100 |
---|---|---|
committer | Paul Adenot <[email protected]> | 2020-10-28 16:55:14 +0000 |
commit | 9905226379329bf95ce6b761eceae46dfe429d9a (patch) | |
tree | 0c337cda7ddb0c9f2840cb816cfa267121024b14 | |
parent | 4480be293954b8e0ef581c0d94c7956b9a1de0b9 (diff) | |
download | cubeb-9905226379329bf95ce6b761eceae46dfe429d9a.tar.gz cubeb-9905226379329bf95ce6b761eceae46dfe429d9a.zip |
AAudio: Address first review comments
-rw-r--r-- | include/cubeb/cubeb.h | 4 | ||||
-rw-r--r-- | src/cubeb_aaudio.c | 32 | ||||
-rw-r--r-- | src/cubeb_log.h | 1 |
3 files changed, 18 insertions, 19 deletions
diff --git a/include/cubeb/cubeb.h b/include/cubeb/cubeb.h index e88536f..afe7c8e 100644 --- a/include/cubeb/cubeb.h +++ b/include/cubeb/cubeb.h @@ -509,7 +509,9 @@ CUBEB_EXPORT void cubeb_destroy(cubeb * context); cubeb_devid allows the stream to follow that device type's OS default. @param output_stream_params Parameters for the output side of the stream, or - NULL if this stream is input only. + NULL if this stream is input only. When input + and output stream parameters are supplied, their + rate has to be the same. @param latency_frames Stream latency in frames. Valid range is [1, 96000]. @param data_callback Will be called to preroll data before playback is diff --git a/src/cubeb_aaudio.c b/src/cubeb_aaudio.c index f841a66..513af5e 100644 --- a/src/cubeb_aaudio.c +++ b/src/cubeb_aaudio.c @@ -1,5 +1,5 @@ /* ex: set tabstop=2 shiftwidth=2 expandtab: - * Copyright © 2011 Jan Kelling + * Copyright © 2019 Jan Kelling * * This program is made available under an ISC-style license. See the * accompanying file LICENSE for details. @@ -289,7 +289,7 @@ static void update_state(cubeb_stream * stm) // The DRAINING state means that we want to stop the streams but // may not have done so yet. // The aaudio docs state that returning STOP from the callback isn't - // enough, the stream has to be stopped from another threads + // enough, the stream has to be stopped from another thread // afterwards. // No callbacks are triggered anymore when requestStop returns. // That is important as we otherwise might read from a closed istream @@ -598,10 +598,10 @@ aaudio_duplex_data_cb(AAudioStream * astream, void * user_data, assert(num_frames >= 0); enum stream_state state = atomic_load(&stm->state); - int istate = WRAP(AAudioStream_getState)(stm->istream); - int ostate = WRAP(AAudioStream_getState)(stm->ostream); - ALOGV("aaudio duplex data cb on stream %p: state %ld (in: %d, out: %d), num_frames: %ld", - (void*) stm, state, istate, ostate, num_frames); + // int istate = WRAP(AAudioStream_getState)(stm->istream); + // int ostate = WRAP(AAudioStream_getState)(stm->ostream); + // ALOGV("aaudio duplex data cb on stream %p: state %ld (in: %d, out: %d), num_frames: %ld", + // (void*) stm, state, istate, ostate, num_frames); // all other states may happen since the callback might be called // from within requestStart @@ -629,8 +629,8 @@ aaudio_duplex_data_cb(AAudioStream * astream, void * user_data, // the stream when it is stopped by another thread shortly after being started. // We therefore simply send silent input to the application. if (in_num_frames < num_frames) { - ALOGV("AAudioStream_read returned not enough frames: %ld instead of %d", - in_num_frames, num_frames); + // ALOGV("AAudioStream_read returned not enough frames: %ld instead of %d", + // in_num_frames, num_frames); unsigned left = num_frames - in_num_frames; char * buf = ((char*) stm->in_buf) + in_num_frames * stm->in_frame_size; memset(buf, 0x0, left * stm->in_frame_size); @@ -667,9 +667,9 @@ aaudio_output_data_cb(AAudioStream * astream, void * user_data, assert(num_frames >= 0); enum stream_state state = atomic_load(&stm->state); - int ostate = WRAP(AAudioStream_getState)(stm->ostream); - ALOGV("aaudio output data cb on stream %p: state %ld (%d), num_frames: %ld", - (void*) stm, state, ostate, num_frames); + // int ostate = WRAP(AAudioStream_getState)(stm->ostream); + // ALOGV("aaudio output data cb on stream %p: state %ld (%d), num_frames: %ld", + // (void*) stm, state, ostate, num_frames); // all other states may happen since the callback might be called // from within requestStart @@ -711,9 +711,9 @@ aaudio_input_data_cb(AAudioStream * astream, void * user_data, assert(num_frames >= 0); enum stream_state state = atomic_load(&stm->state); - int istate = WRAP(AAudioStream_getState)(stm->istream); - ALOGV("aaudio input data cb on stream %p: state %ld (%d), num_frames: %ld", - (void*) stm, state, istate, num_frames); + // int istate = WRAP(AAudioStream_getState)(stm->istream); + // ALOGV("aaudio input data cb on stream %p: state %ld (%d), num_frames: %ld", + // (void*) stm, state, istate, num_frames); // all other states may happen since the callback might be called // from within requestStart @@ -1006,10 +1006,6 @@ aaudio_stream_init(cubeb * ctx, LOG("AAudio input stream buffer rate: %d", rate); stm->in_buf = malloc(bcap * frame_size); - - // NOTE: not sure about this. - // But when this stream contains input and output stream, their - // sample rates have to match, don't they? assert(!target_sample_rate || target_sample_rate == input_stream_params->rate); target_sample_rate = input_stream_params->rate; diff --git a/src/cubeb_log.h b/src/cubeb_log.h index 446e29a..4139196 100644 --- a/src/cubeb_log.h +++ b/src/cubeb_log.h @@ -46,6 +46,7 @@ void cubeb_async_log_reset_threads(); } while(0) /* Asynchronous verbose logging, to log in real-time callbacks. */ +/* Should not be used on android due to the use of global/static variables. */ #define ALOGV(fmt, ...) \ do { \ cubeb_async_log(fmt, ##__VA_ARGS__); \ |