Soundpool: use audio attributes instead of legacy stream type

Use audio attributes to specifcy the use case and make sure performance flags
in audio attributes are reflecting the output flags passed to the AudioTrack by
Stream::play_l().

Bug: 283003710
Test: make
Change-Id: If9c53e807425abe71f4172b5160af0a5be24e81c
This commit is contained in:
Eric Laurent
2023-05-17 14:40:01 +02:00
parent 0f26a22cdb
commit 7ab6103aae
2 changed files with 6 additions and 5 deletions

View File

@@ -282,8 +282,6 @@ void Stream::play_l(const std::shared_ptr<Sound>& sound, int32_t nextStreamID,
priority, loop, rate, playerIId);
// initialize track
const audio_stream_type_t streamType =
AudioSystem::attributesToStreamType(*mStreamManager->getAttributes());
const int32_t channelCount = sound->getChannelCount();
const auto sampleRate = (uint32_t)lround(double(sound->getSampleRate()) * rate);
size_t frameCount = 0;
@@ -328,8 +326,8 @@ void Stream::play_l(const std::shared_ptr<Sound>& sound, int32_t nextStreamID,
attributionSource.token = sp<BBinder>::make();
mCallback = sp<StreamCallback>::make(this, toggle),
// TODO b/182469354 make consistent with AudioRecord, add util for native source
mAudioTrack = new AudioTrack(streamType, sampleRate, sound->getFormat(),
channelMask, sound->getIMemory(), AUDIO_OUTPUT_FLAG_FAST,
mAudioTrack = new AudioTrack(AUDIO_STREAM_DEFAULT, sampleRate, sound->getFormat(),
channelMask, sound->getIMemory(), AUDIO_OUTPUT_FLAG_NONE,
mCallback,
0 /*default notification frames*/, AUDIO_SESSION_ALLOCATE,
AudioTrack::TRANSFER_DEFAULT,

View File

@@ -109,7 +109,10 @@ StreamManager::StreamManager(
int32_t streams, size_t threads, const audio_attributes_t& attributes,
std::string opPackageName)
: StreamMap(streams)
, mAttributes(attributes)
, mAttributes([attributes](){
audio_attributes_t attr = attributes;
attr.flags = static_cast<audio_flags_mask_t>(attr.flags | AUDIO_FLAG_LOW_LATENCY);
return attr; }())
, mOpPackageName(std::move(opPackageName))
, mLockStreamManagerStop(streams == 1 || kForceLockStreamManagerStop)
{