[BUG] audio: Misalignement of Native/Java AudioAttributes
Native audio attributes are initialized with a default source,
whereas JAVA AudioAttributes are initialized with an INVALID source.
It leads to equality failure, thus preventing to identify the
right strategy / volume group.
This CL fixes this misalignement by using the builder constructor
from AudioAttributes, thus cleaning the input source.
Test: AudioVolumeGroupTest
Bug: 238058094
Signed-off-by: Francois Gaffie <francois.gaffie@renault.com>
Change-Id: I1dca99cf60c8b3a6291743dc299324374e5752a6
Signed-off-by: François Gaffie <francois.gaffie@renault.com>
Change-Id: I13d216814db66369ae72b496f4c9ae724cc40561
diff --git a/media/java/android/media/AudioAttributes.java b/media/java/android/media/AudioAttributes.java
index ded9597..a59a006 100644
--- a/media/java/android/media/AudioAttributes.java
+++ b/media/java/android/media/AudioAttributes.java
@@ -1431,6 +1431,8 @@
return new String("AudioAttributes:"
+ " usage=" + usageToString()
+ " content=" + contentTypeToString()
+ + (mSource != MediaRecorder.AudioSource.AUDIO_SOURCE_INVALID
+ ? " source=" + MediaRecorder.toLogFriendlyAudioSource(mSource) : "")
+ " flags=0x" + Integer.toHexString(mFlags).toUpperCase()
+ " tags=" + mFormattedTags
+ " bundle=" + (mBundle == null ? "null" : mBundle.toString()));
diff --git a/media/java/android/media/audiopolicy/AudioProductStrategy.java b/media/java/android/media/audiopolicy/AudioProductStrategy.java
index 31d5967..14d5f35 100644
--- a/media/java/android/media/audiopolicy/AudioProductStrategy.java
+++ b/media/java/android/media/audiopolicy/AudioProductStrategy.java
@@ -22,7 +22,6 @@
import android.annotation.TestApi;
import android.media.AudioAttributes;
import android.media.AudioSystem;
-import android.media.MediaRecorder;
import android.os.Parcel;
import android.os.Parcelable;
import android.text.TextUtils;
@@ -129,9 +128,7 @@
return aa;
}
}
- return new AudioAttributes.Builder()
- .setContentType(AudioAttributes.CONTENT_TYPE_UNKNOWN)
- .setUsage(AudioAttributes.USAGE_UNKNOWN).build();
+ return DEFAULT_ATTRIBUTES;
}
/**
@@ -216,7 +213,7 @@
@SystemApi
public @NonNull AudioAttributes getAudioAttributes() {
// We need a choice, so take the first one
- return mAudioAttributesGroups.length == 0 ? (new AudioAttributes.Builder().build())
+ return mAudioAttributesGroups.length == 0 ? DEFAULT_ATTRIBUTES
: mAudioAttributesGroups[0].getAudioAttributes();
}
@@ -357,8 +354,7 @@
* Default attributes, with default source to be aligned with native.
*/
private static final @NonNull AudioAttributes DEFAULT_ATTRIBUTES =
- new AudioAttributes.Builder().setCapturePreset(MediaRecorder.AudioSource.DEFAULT)
- .build();
+ new AudioAttributes.Builder().build();
/**
* @hide
@@ -428,8 +424,7 @@
public @NonNull AudioAttributes getAudioAttributes() {
// We need a choice, so take the first one
- return mAudioAttributes.length == 0 ? (new AudioAttributes.Builder().build())
- : mAudioAttributes[0];
+ return mAudioAttributes.length == 0 ? DEFAULT_ATTRIBUTES : mAudioAttributes[0];
}
/**