Merge "audio: fix profile of digital device incorrect" into main
diff --git a/media/libaudiofoundation/AudioPort.cpp b/media/libaudiofoundation/AudioPort.cpp
index 6e05abc..ae0457f 100644
--- a/media/libaudiofoundation/AudioPort.cpp
+++ b/media/libaudiofoundation/AudioPort.cpp
@@ -57,14 +57,21 @@
void AudioPort::importAudioPort(const audio_port_v7 &port) {
for (size_t i = 0; i < port.num_audio_profiles; ++i) {
+ if (port.audio_profiles[i].format == AUDIO_FORMAT_DEFAULT) {
+ // The dynamic format from AudioPort should not be AUDIO_FORMAT_DEFAULT.
+ continue;
+ }
sp<AudioProfile> profile = new AudioProfile(port.audio_profiles[i].format,
ChannelMaskSet(port.audio_profiles[i].channel_masks,
port.audio_profiles[i].channel_masks +
- port.audio_profiles->num_channel_masks),
+ port.audio_profiles[i].num_channel_masks),
SampleRateSet(port.audio_profiles[i].sample_rates,
port.audio_profiles[i].sample_rates +
port.audio_profiles[i].num_sample_rates),
port.audio_profiles[i].encapsulation_type);
+ profile->setDynamicFormat(true);
+ profile->setDynamicChannels(true);
+ profile->setDynamicRate(true);
if (!mProfiles.contains(profile)) {
addAudioProfile(profile);
}