Set initial audio device for AudioTrack and AudioRecord
Bug: 62090113
Test: run AAudio test and verify a valid device is reported just
after opening playback or capture streams in legacy mode.
Merged-In: Ic8be42e1735690eb00c811ef0cb8b5abb36172d6
Change-Id: Ic8be42e1735690eb00c811ef0cb8b5abb36172d6
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp
index c379c89..d850aa9 100644
--- a/services/audioflinger/AudioFlinger.cpp
+++ b/services/audioflinger/AudioFlinger.cpp
@@ -306,14 +306,14 @@
&fullConfig,
(audio_output_flags_t)(AUDIO_OUTPUT_FLAG_MMAP_NOIRQ |
AUDIO_OUTPUT_FLAG_DIRECT),
- *deviceId, &portId);
+ deviceId, &portId);
} else {
ret = AudioSystem::getInputForAttr(attr, &io,
sessionId,
client.clientPid,
client.clientUid,
config,
- AUDIO_INPUT_FLAG_MMAP_NOIRQ, *deviceId, &portId);
+ AUDIO_INPUT_FLAG_MMAP_NOIRQ, deviceId, &portId);
}
if (ret != NO_ERROR) {
return ret;
diff --git a/services/audioflinger/Threads.cpp b/services/audioflinger/Threads.cpp
index df10d23..085be00 100644
--- a/services/audioflinger/Threads.cpp
+++ b/services/audioflinger/Threads.cpp
@@ -7650,26 +7650,28 @@
audio_stream_type_t stream = streamType();
audio_output_flags_t flags =
(audio_output_flags_t)(AUDIO_OUTPUT_FLAG_MMAP_NOIRQ | AUDIO_OUTPUT_FLAG_DIRECT);
+ audio_port_handle_t deviceId = AUDIO_PORT_HANDLE_NONE;
ret = AudioSystem::getOutputForAttr(&mAttr, &io,
sessionId,
&stream,
client.clientUid,
&config,
flags,
- AUDIO_PORT_HANDLE_NONE,
+ &deviceId,
&portId);
} else {
audio_config_base_t config;
config.sample_rate = mSampleRate;
config.channel_mask = mChannelMask;
config.format = mFormat;
+ audio_port_handle_t deviceId = AUDIO_PORT_HANDLE_NONE;
ret = AudioSystem::getInputForAttr(&mAttr, &io,
sessionId,
client.clientPid,
client.clientUid,
&config,
AUDIO_INPUT_FLAG_MMAP_NOIRQ,
- AUDIO_PORT_HANDLE_NONE,
+ &deviceId,
&portId);
}
// APM should not chose a different input or output stream for the same set of attributes