Loading media/libaaudio/examples/input_monitor/src/input_monitor.cpp +9 −2 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <stdlib.h> #include <math.h> #include <aaudio/AAudio.h> #include <aaudio/AAudioTesting.h> #include "AAudioExampleUtils.h" #include "AAudioSimpleRecorder.h" Loading @@ -42,7 +43,7 @@ int main(int argc, char **argv) const aaudio_format_t requestedDataFormat = AAUDIO_FORMAT_PCM_I16; aaudio_format_t actualDataFormat; const int requestedInputChannelCount = 1; // Can affect whether we get a FAST path. const int requestedInputChannelCount = 2; // Can affect whether we get a FAST path. //aaudio_performance_mode_t requestedPerformanceMode = AAUDIO_PERFORMANCE_MODE_NONE; const aaudio_performance_mode_t requestedPerformanceMode = AAUDIO_PERFORMANCE_MODE_LOW_LATENCY; Loading @@ -61,6 +62,7 @@ int main(int argc, char **argv) int16_t *data = nullptr; float peakLevel = 0.0; int loopCounter = 0; int32_t deviceId; // Make printf print immediately so that debug info is not stuck // in a buffer if we hang or crash. Loading @@ -68,6 +70,8 @@ int main(int argc, char **argv) printf("%s - Monitor input level using AAudio\n", argv[0]); // AAudio_setMMapPolicy(AAUDIO_POLICY_ALWAYS); recorder.setPerformanceMode(requestedPerformanceMode); recorder.setSharingMode(requestedSharingMode); Loading @@ -79,6 +83,9 @@ int main(int argc, char **argv) } aaudioStream = recorder.getStream(); deviceId = AAudioStream_getDeviceId(aaudioStream); printf("deviceId = %d\n", deviceId); actualSamplesPerFrame = AAudioStream_getSamplesPerFrame(aaudioStream); printf("SamplesPerFrame = %d\n", actualSamplesPerFrame); actualSampleRate = AAudioStream_getSampleRate(aaudioStream); Loading Loading @@ -133,7 +140,7 @@ int main(int argc, char **argv) framesLeft = framesToRecord; while (framesLeft > 0) { // Read audio data from the stream. const int64_t timeoutNanos = 100 * NANOS_PER_MILLISECOND; const int64_t timeoutNanos = 1000 * NANOS_PER_MILLISECOND; int minFrames = (framesToRecord < framesPerRead) ? framesToRecord : framesPerRead; int actual = AAudioStream_read(aaudioStream, data, minFrames, timeoutNanos); if (actual < 0) { Loading media/libaaudio/examples/write_sine/src/write_sine.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ int main(int argc, char **argv) int32_t xRunCount = 0; float *floatData = nullptr; int16_t *shortData = nullptr; int32_t deviceId; // Make printf print immediately so that debug info is not stuck // in a buffer if we hang or crash. Loading @@ -86,6 +87,9 @@ int main(int argc, char **argv) aaudioStream = player.getStream(); // Request stream properties. deviceId = AAudioStream_getDeviceId(aaudioStream); printf("deviceId = %d\n", deviceId); state = AAudioStream_getState(aaudioStream); printf("after open, state = %s\n", AAudio_convertStreamStateToText(state)); Loading media/libaudioclient/AudioRecord.cpp +12 −3 Original line number Diff line number Diff line Loading @@ -69,7 +69,8 @@ AudioRecord::AudioRecord(const String16 &opPackageName) : mActive(false), mStatus(NO_INIT), mOpPackageName(opPackageName), mSessionId(AUDIO_SESSION_ALLOCATE), mPreviousPriority(ANDROID_PRIORITY_NORMAL), mPreviousSchedulingGroup(SP_DEFAULT), mSelectedDeviceId(AUDIO_PORT_HANDLE_NONE), mPortId(AUDIO_PORT_HANDLE_NONE) mSelectedDeviceId(AUDIO_PORT_HANDLE_NONE), mRoutedDeviceId(AUDIO_PORT_HANDLE_NONE), mPortId(AUDIO_PORT_HANDLE_NONE) { } Loading Loading @@ -503,7 +504,14 @@ audio_port_handle_t AudioRecord::getRoutedDeviceId() { if (mInput == AUDIO_IO_HANDLE_NONE) { return AUDIO_PORT_HANDLE_NONE; } return AudioSystem::getDeviceIdForIo(mInput); // if the input stream does not have an active audio patch, use either the device initially // selected by audio policy manager or the last routed device audio_port_handle_t deviceId = AudioSystem::getDeviceIdForIo(mInput); if (deviceId == AUDIO_PORT_HANDLE_NONE) { deviceId = mRoutedDeviceId; } mRoutedDeviceId = deviceId; return deviceId; } // ------------------------------------------------------------------------- Loading Loading @@ -550,13 +558,14 @@ status_t AudioRecord::openRecord_l(const Modulo<uint32_t> &epoch, const String16 .channel_mask = mChannelMask, .format = mFormat }; mRoutedDeviceId = mSelectedDeviceId; status = AudioSystem::getInputForAttr(&mAttributes, &input, mSessionId, // FIXME compare to AudioTrack mClientPid, mClientUid, &config, mFlags, mSelectedDeviceId, &mPortId); mFlags, &mRoutedDeviceId, &mPortId); if (status != NO_ERROR || input == AUDIO_IO_HANDLE_NONE) { ALOGE("Could not get audio input for session %d, record source %d, sample rate %u, " Loading media/libaudioclient/AudioSystem.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -819,7 +819,7 @@ status_t AudioSystem::getOutputForAttr(const audio_attributes_t *attr, uid_t uid, const audio_config_t *config, audio_output_flags_t flags, audio_port_handle_t selectedDeviceId, audio_port_handle_t *selectedDeviceId, audio_port_handle_t *portId) { const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); Loading Loading @@ -863,7 +863,7 @@ status_t AudioSystem::getInputForAttr(const audio_attributes_t *attr, uid_t uid, const audio_config_base_t *config, audio_input_flags_t flags, audio_port_handle_t selectedDeviceId, audio_port_handle_t *selectedDeviceId, audio_port_handle_t *portId) { const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); Loading media/libaudioclient/AudioTrack.cpp +11 −2 Original line number Diff line number Diff line Loading @@ -184,6 +184,7 @@ AudioTrack::AudioTrack() mPreviousSchedulingGroup(SP_DEFAULT), mPausedPosition(0), mSelectedDeviceId(AUDIO_PORT_HANDLE_NONE), mRoutedDeviceId(AUDIO_PORT_HANDLE_NONE), mPortId(AUDIO_PORT_HANDLE_NONE) { mAttributes.content_type = AUDIO_CONTENT_TYPE_UNKNOWN; Loading Loading @@ -1226,7 +1227,14 @@ audio_port_handle_t AudioTrack::getRoutedDeviceId() { if (mOutput == AUDIO_IO_HANDLE_NONE) { return AUDIO_PORT_HANDLE_NONE; } return AudioSystem::getDeviceIdForIo(mOutput); // if the output stream does not have an active audio patch, use either the device initially // selected by audio policy manager or the last routed device audio_port_handle_t deviceId = AudioSystem::getDeviceIdForIo(mOutput); if (deviceId == AUDIO_PORT_HANDLE_NONE) { deviceId = mRoutedDeviceId; } mRoutedDeviceId = deviceId; return deviceId; } status_t AudioTrack::attachAuxEffect(int effectId) Loading Loading @@ -1306,10 +1314,11 @@ status_t AudioTrack::createTrack_l() config.channel_mask = mChannelMask; config.format = mFormat; config.offload_info = mOffloadInfoCopy; mRoutedDeviceId = mSelectedDeviceId; status = AudioSystem::getOutputForAttr(attr, &output, mSessionId, &streamType, mClientUid, &config, mFlags, mSelectedDeviceId, &mPortId); mFlags, &mRoutedDeviceId, &mPortId); if (status != NO_ERROR || output == AUDIO_IO_HANDLE_NONE) { ALOGE("Could not get audio output for session %d, stream type %d, usage %d, sample rate %u," Loading Loading
media/libaaudio/examples/input_monitor/src/input_monitor.cpp +9 −2 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <stdlib.h> #include <math.h> #include <aaudio/AAudio.h> #include <aaudio/AAudioTesting.h> #include "AAudioExampleUtils.h" #include "AAudioSimpleRecorder.h" Loading @@ -42,7 +43,7 @@ int main(int argc, char **argv) const aaudio_format_t requestedDataFormat = AAUDIO_FORMAT_PCM_I16; aaudio_format_t actualDataFormat; const int requestedInputChannelCount = 1; // Can affect whether we get a FAST path. const int requestedInputChannelCount = 2; // Can affect whether we get a FAST path. //aaudio_performance_mode_t requestedPerformanceMode = AAUDIO_PERFORMANCE_MODE_NONE; const aaudio_performance_mode_t requestedPerformanceMode = AAUDIO_PERFORMANCE_MODE_LOW_LATENCY; Loading @@ -61,6 +62,7 @@ int main(int argc, char **argv) int16_t *data = nullptr; float peakLevel = 0.0; int loopCounter = 0; int32_t deviceId; // Make printf print immediately so that debug info is not stuck // in a buffer if we hang or crash. Loading @@ -68,6 +70,8 @@ int main(int argc, char **argv) printf("%s - Monitor input level using AAudio\n", argv[0]); // AAudio_setMMapPolicy(AAUDIO_POLICY_ALWAYS); recorder.setPerformanceMode(requestedPerformanceMode); recorder.setSharingMode(requestedSharingMode); Loading @@ -79,6 +83,9 @@ int main(int argc, char **argv) } aaudioStream = recorder.getStream(); deviceId = AAudioStream_getDeviceId(aaudioStream); printf("deviceId = %d\n", deviceId); actualSamplesPerFrame = AAudioStream_getSamplesPerFrame(aaudioStream); printf("SamplesPerFrame = %d\n", actualSamplesPerFrame); actualSampleRate = AAudioStream_getSampleRate(aaudioStream); Loading Loading @@ -133,7 +140,7 @@ int main(int argc, char **argv) framesLeft = framesToRecord; while (framesLeft > 0) { // Read audio data from the stream. const int64_t timeoutNanos = 100 * NANOS_PER_MILLISECOND; const int64_t timeoutNanos = 1000 * NANOS_PER_MILLISECOND; int minFrames = (framesToRecord < framesPerRead) ? framesToRecord : framesPerRead; int actual = AAudioStream_read(aaudioStream, data, minFrames, timeoutNanos); if (actual < 0) { Loading
media/libaaudio/examples/write_sine/src/write_sine.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ int main(int argc, char **argv) int32_t xRunCount = 0; float *floatData = nullptr; int16_t *shortData = nullptr; int32_t deviceId; // Make printf print immediately so that debug info is not stuck // in a buffer if we hang or crash. Loading @@ -86,6 +87,9 @@ int main(int argc, char **argv) aaudioStream = player.getStream(); // Request stream properties. deviceId = AAudioStream_getDeviceId(aaudioStream); printf("deviceId = %d\n", deviceId); state = AAudioStream_getState(aaudioStream); printf("after open, state = %s\n", AAudio_convertStreamStateToText(state)); Loading
media/libaudioclient/AudioRecord.cpp +12 −3 Original line number Diff line number Diff line Loading @@ -69,7 +69,8 @@ AudioRecord::AudioRecord(const String16 &opPackageName) : mActive(false), mStatus(NO_INIT), mOpPackageName(opPackageName), mSessionId(AUDIO_SESSION_ALLOCATE), mPreviousPriority(ANDROID_PRIORITY_NORMAL), mPreviousSchedulingGroup(SP_DEFAULT), mSelectedDeviceId(AUDIO_PORT_HANDLE_NONE), mPortId(AUDIO_PORT_HANDLE_NONE) mSelectedDeviceId(AUDIO_PORT_HANDLE_NONE), mRoutedDeviceId(AUDIO_PORT_HANDLE_NONE), mPortId(AUDIO_PORT_HANDLE_NONE) { } Loading Loading @@ -503,7 +504,14 @@ audio_port_handle_t AudioRecord::getRoutedDeviceId() { if (mInput == AUDIO_IO_HANDLE_NONE) { return AUDIO_PORT_HANDLE_NONE; } return AudioSystem::getDeviceIdForIo(mInput); // if the input stream does not have an active audio patch, use either the device initially // selected by audio policy manager or the last routed device audio_port_handle_t deviceId = AudioSystem::getDeviceIdForIo(mInput); if (deviceId == AUDIO_PORT_HANDLE_NONE) { deviceId = mRoutedDeviceId; } mRoutedDeviceId = deviceId; return deviceId; } // ------------------------------------------------------------------------- Loading Loading @@ -550,13 +558,14 @@ status_t AudioRecord::openRecord_l(const Modulo<uint32_t> &epoch, const String16 .channel_mask = mChannelMask, .format = mFormat }; mRoutedDeviceId = mSelectedDeviceId; status = AudioSystem::getInputForAttr(&mAttributes, &input, mSessionId, // FIXME compare to AudioTrack mClientPid, mClientUid, &config, mFlags, mSelectedDeviceId, &mPortId); mFlags, &mRoutedDeviceId, &mPortId); if (status != NO_ERROR || input == AUDIO_IO_HANDLE_NONE) { ALOGE("Could not get audio input for session %d, record source %d, sample rate %u, " Loading
media/libaudioclient/AudioSystem.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -819,7 +819,7 @@ status_t AudioSystem::getOutputForAttr(const audio_attributes_t *attr, uid_t uid, const audio_config_t *config, audio_output_flags_t flags, audio_port_handle_t selectedDeviceId, audio_port_handle_t *selectedDeviceId, audio_port_handle_t *portId) { const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); Loading Loading @@ -863,7 +863,7 @@ status_t AudioSystem::getInputForAttr(const audio_attributes_t *attr, uid_t uid, const audio_config_base_t *config, audio_input_flags_t flags, audio_port_handle_t selectedDeviceId, audio_port_handle_t *selectedDeviceId, audio_port_handle_t *portId) { const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); Loading
media/libaudioclient/AudioTrack.cpp +11 −2 Original line number Diff line number Diff line Loading @@ -184,6 +184,7 @@ AudioTrack::AudioTrack() mPreviousSchedulingGroup(SP_DEFAULT), mPausedPosition(0), mSelectedDeviceId(AUDIO_PORT_HANDLE_NONE), mRoutedDeviceId(AUDIO_PORT_HANDLE_NONE), mPortId(AUDIO_PORT_HANDLE_NONE) { mAttributes.content_type = AUDIO_CONTENT_TYPE_UNKNOWN; Loading Loading @@ -1226,7 +1227,14 @@ audio_port_handle_t AudioTrack::getRoutedDeviceId() { if (mOutput == AUDIO_IO_HANDLE_NONE) { return AUDIO_PORT_HANDLE_NONE; } return AudioSystem::getDeviceIdForIo(mOutput); // if the output stream does not have an active audio patch, use either the device initially // selected by audio policy manager or the last routed device audio_port_handle_t deviceId = AudioSystem::getDeviceIdForIo(mOutput); if (deviceId == AUDIO_PORT_HANDLE_NONE) { deviceId = mRoutedDeviceId; } mRoutedDeviceId = deviceId; return deviceId; } status_t AudioTrack::attachAuxEffect(int effectId) Loading Loading @@ -1306,10 +1314,11 @@ status_t AudioTrack::createTrack_l() config.channel_mask = mChannelMask; config.format = mFormat; config.offload_info = mOffloadInfoCopy; mRoutedDeviceId = mSelectedDeviceId; status = AudioSystem::getOutputForAttr(attr, &output, mSessionId, &streamType, mClientUid, &config, mFlags, mSelectedDeviceId, &mPortId); mFlags, &mRoutedDeviceId, &mPortId); if (status != NO_ERROR || output == AUDIO_IO_HANDLE_NONE) { ALOGE("Could not get audio output for session %d, stream type %d, usage %d, sample rate %u," Loading