aaudio: use new flowgraph to simplify processing
Construct a flowgraph based on the source and destination
format and channelCount. This is groundwork for supporting 24-bit
PCM formats.
Also cleaned up handling of device related format.
This CL removes more code than it adds.
Bug: 65067568
Test: write_sine_callback.cpp -pl
Test: write_sine_callback.cpp -pl -x
Test: input_monitor -pl
Test: input_monitor -pl -x
Change-Id: Ia155bff0164912011d09b61b54f983ccf4490bd1
diff --git a/media/libaaudio/src/binding/AAudioStreamConfiguration.cpp b/media/libaaudio/src/binding/AAudioStreamConfiguration.cpp
index 959db61..3d1bc9b 100644
--- a/media/libaaudio/src/binding/AAudioStreamConfiguration.cpp
+++ b/media/libaaudio/src/binding/AAudioStreamConfiguration.cpp
@@ -14,6 +14,10 @@
* limitations under the License.
*/
+#define LOG_TAG "AAudioStreamConfiguration"
+//#define LOG_NDEBUG 0
+#include <utils/Log.h>
+
#include <stdint.h>
#include <sys/mman.h>
@@ -36,6 +40,7 @@
status_t AAudioStreamConfiguration::writeToParcel(Parcel* parcel) const {
status_t status;
+
status = parcel->writeInt32(getDeviceId());
if (status != NO_ERROR) goto error;
status = parcel->writeInt32(getSampleRate());
@@ -46,6 +51,7 @@
if (status != NO_ERROR) goto error;
status = parcel->writeInt32((int32_t) getFormat());
if (status != NO_ERROR) goto error;
+
status = parcel->writeInt32((int32_t) getDirection());
if (status != NO_ERROR) goto error;
status = parcel->writeInt32(getBufferCapacity());
@@ -60,7 +66,7 @@
if (status != NO_ERROR) goto error;
return NO_ERROR;
error:
- ALOGE("AAudioStreamConfiguration.writeToParcel(): write failed = %d", status);
+ ALOGE("%s(): write failed = %d", __func__, status);
return status;
}
@@ -80,7 +86,8 @@
setSharingMode((aaudio_sharing_mode_t) value);
status = parcel->readInt32(&value);
if (status != NO_ERROR) goto error;
- setFormat((aaudio_format_t) value);
+ setFormat((audio_format_t) value);
+
status = parcel->readInt32(&value);
if (status != NO_ERROR) goto error;
setDirection((aaudio_direction_t) value);
@@ -99,8 +106,9 @@
status = parcel->readInt32(&value);
if (status != NO_ERROR) goto error;
setSessionId(value);
+
return NO_ERROR;
error:
- ALOGE("AAudioStreamConfiguration.readFromParcel(): read failed = %d", status);
+ ALOGE("%s(): read failed = %d", __func__, status);
return status;
}