Fix ConversionUtil AudioFormat construction
Properly construct AudioFormat when the format passed from the HAL
is null.
Test: atest ConversionUtilTests
Fixes: 272616167
Change-Id: If48f80a02ab733926028363a39f82dd9d1a1ddcf
diff --git a/core/java/android/hardware/soundtrigger/ConversionUtil.java b/core/java/android/hardware/soundtrigger/ConversionUtil.java
index 9a2cd06..be57bbe 100644
--- a/core/java/android/hardware/soundtrigger/ConversionUtil.java
+++ b/core/java/android/hardware/soundtrigger/ConversionUtil.java
@@ -41,7 +41,7 @@
import java.util.UUID;
/** @hide */
-class ConversionUtil {
+public class ConversionUtil {
public static SoundTrigger.ModuleProperties aidl2apiModuleDescriptor(
SoundTriggerModuleDescriptor aidlDesc) {
Properties properties = aidlDesc.properties;
@@ -233,7 +233,11 @@
if (audioConfig != null) {
return AidlConversion.aidl2api_AudioConfig_AudioFormat(audioConfig, isInput);
}
- return new AudioFormat.Builder().build();
+ return new AudioFormat.Builder()
+ .setSampleRate(48000)
+ .setEncoding(AudioFormat.ENCODING_PCM_16BIT)
+ .setChannelMask(AudioFormat.CHANNEL_IN_MONO)
+ .build();
}
public static int api2aidlModelParameter(int apiParam) {
diff --git a/services/tests/voiceinteractiontests/src/com/android/server/soundtrigger_middleware/ConversionUtilTest.java b/services/tests/voiceinteractiontests/src/com/android/server/soundtrigger_middleware/ConversionUtilTest.java
index 5a2ce45..0799859 100644
--- a/services/tests/voiceinteractiontests/src/com/android/server/soundtrigger_middleware/ConversionUtilTest.java
+++ b/services/tests/voiceinteractiontests/src/com/android/server/soundtrigger_middleware/ConversionUtilTest.java
@@ -16,7 +16,10 @@
package com.android.server.soundtrigger_middleware;
+import static android.hardware.soundtrigger.ConversionUtil.aidl2apiAudioFormatWithDefault;
+
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
import android.hardware.audio.common.V2_0.Uuid;
@@ -44,4 +47,14 @@
Uuid reconstructed = ConversionUtil.aidl2hidlUuid(aidl);
assertEquals(hidl, reconstructed);
}
+
+ @Test
+ public void testDefaultAudioFormatConstruction() {
+ // This method should generate a real format when passed null
+ final var format = aidl2apiAudioFormatWithDefault(
+ null /** exercise default **/,
+ true /** isInput **/
+ );
+ assertNotNull(format);
+ }
}