aaudio: fix USAGE, INPUT_PRESET and CONTENT_TYPE
The attributes were not propagating all the way down for MMAP
streams.
Bug: 72046612
Bug: 72049948
Test: adb shell aaudio_loopback -te -pl -n1 -x -X -i6
Change-Id: I41b592d0c3a9daef5070ad299198c8d6cd890cfc
diff --git a/services/oboeservice/AAudioServiceEndpoint.cpp b/services/oboeservice/AAudioServiceEndpoint.cpp
index f917675..01e9c6f 100644
--- a/services/oboeservice/AAudioServiceEndpoint.cpp
+++ b/services/oboeservice/AAudioServiceEndpoint.cpp
@@ -55,11 +55,15 @@
result << " Direction: " << ((getDirection() == AAUDIO_DIRECTION_OUTPUT)
? "OUTPUT" : "INPUT") << "\n";
- result << " Sample Rate: " << getSampleRate() << "\n";
- result << " Frames Per Burst: " << mFramesPerBurst << "\n";
- result << " Reference Count: " << mOpenCount << "\n";
result << " Requested Device Id: " << mRequestedDeviceId << "\n";
result << " Device Id: " << getDeviceId() << "\n";
+ result << " Sample Rate: " << getSampleRate() << "\n";
+ result << " Channel Count: " << getSamplesPerFrame() << "\n";
+ result << " Frames Per Burst: " << mFramesPerBurst << "\n";
+ result << " Usage: " << getUsage() << "\n";
+ result << " ContentType: " << getContentType() << "\n";
+ result << " InputPreset: " << getInputPreset() << "\n";
+ result << " Reference Count: " << mOpenCount << "\n";
result << " Connected: " << mConnected.load() << "\n";
result << " Registered Streams:" << "\n";
result << AAudioServiceStreamShared::dumpHeader() << "\n";
diff --git a/services/oboeservice/AAudioServiceEndpointMMAP.cpp b/services/oboeservice/AAudioServiceEndpointMMAP.cpp
index 8db1761..541be20 100644
--- a/services/oboeservice/AAudioServiceEndpointMMAP.cpp
+++ b/services/oboeservice/AAudioServiceEndpointMMAP.cpp
@@ -98,6 +98,9 @@
.flags = AUDIO_FLAG_LOW_LATENCY,
.tags = ""
};
+ ALOGV("open() MMAP attributes.usage = %d, content_type = %d, source = %d",
+ attributes.usage, attributes.content_type, attributes.source);
+
mMmapClient.clientUid = request.getUserId();
mMmapClient.clientPid = request.getProcessId();
mMmapClient.packageName.setTo(String16(""));
diff --git a/services/oboeservice/AAudioServiceEndpointShared.cpp b/services/oboeservice/AAudioServiceEndpointShared.cpp
index 6af9e7e..2de537a 100644
--- a/services/oboeservice/AAudioServiceEndpointShared.cpp
+++ b/services/oboeservice/AAudioServiceEndpointShared.cpp
@@ -60,18 +60,16 @@
aaudio_result_t result = AAUDIO_OK;
const AAudioStreamConfiguration &configuration = request.getConstantConfiguration();
+ copyFrom(configuration);
mRequestedDeviceId = configuration.getDeviceId();
- setDirection(configuration.getDirection());
AudioStreamBuilder builder;
+ builder.copyFrom(configuration);
+
builder.setSharingMode(AAUDIO_SHARING_MODE_EXCLUSIVE);
// Don't fall back to SHARED because that would cause recursion.
builder.setSharingModeMatchRequired(true);
- builder.setDeviceId(mRequestedDeviceId);
- builder.setFormat(configuration.getFormat());
- builder.setSampleRate(configuration.getSampleRate());
- builder.setSamplesPerFrame(configuration.getSamplesPerFrame());
- builder.setDirection(configuration.getDirection());
+
builder.setBufferCapacity(DEFAULT_BUFFER_CAPACITY);
result = mStreamInternal->open(builder);