From 9a4ba4d6242be6712b0f26c3c1504e7af533fab6 Mon Sep 17 00:00:00 2001 From: Yixiao Luo Date: Tue, 10 Jan 2023 18:04:47 -0800 Subject: [PATCH] Add constants for supplementary audio placement bug: 230158637 test: mmm Change-Id: Iebde7dcb0ecfcc47c771a65aa633d2fbe1ee7ba3 --- core/api/current.txt | 4 ++ media/java/android/media/AudioTrack.java | 57 +++++++++++++++++++++--- 2 files changed, 54 insertions(+), 7 deletions(-) diff --git a/core/api/current.txt b/core/api/current.txt index 0e92850b46c8b..46318ae6f7ef3 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -20611,6 +20611,7 @@ package android.media { field public static final int DUAL_MONO_MODE_RR = 3; // 0x3 field public static final int ENCAPSULATION_METADATA_TYPE_DVB_AD_DESCRIPTOR = 2; // 0x2 field public static final int ENCAPSULATION_METADATA_TYPE_FRAMEWORK_TUNER = 1; // 0x1 + field public static final int ENCAPSULATION_METADATA_TYPE_SUPPLEMENTARY_AUDIO_PLACEMENT = 3; // 0x3 field public static final int ENCAPSULATION_MODE_ELEMENTARY_STREAM = 1; // 0x1 field public static final int ENCAPSULATION_MODE_NONE = 0; // 0x0 field public static final int ERROR = -1; // 0xffffffff @@ -20629,6 +20630,9 @@ package android.media { field public static final int STATE_NO_STATIC_DATA = 2; // 0x2 field public static final int STATE_UNINITIALIZED = 0; // 0x0 field public static final int SUCCESS = 0; // 0x0 + field public static final int SUPPLEMENTARY_AUDIO_PLACEMENT_LEFT = 1; // 0x1 + field public static final int SUPPLEMENTARY_AUDIO_PLACEMENT_NORMAL = 0; // 0x0 + field public static final int SUPPLEMENTARY_AUDIO_PLACEMENT_RIGHT = 2; // 0x2 field public static final int WRITE_BLOCKING = 0; // 0x0 field public static final int WRITE_NON_BLOCKING = 1; // 0x1 } diff --git a/media/java/android/media/AudioTrack.java b/media/java/android/media/AudioTrack.java index d51f1e1327bd6..f61c42760c9b6 100644 --- a/media/java/android/media/AudioTrack.java +++ b/media/java/android/media/AudioTrack.java @@ -266,15 +266,19 @@ public class AudioTrack extends PlayerBase @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public static final int ENCAPSULATION_MODE_HANDLE = 2; - /* Enumeration of metadata types permitted for use by + /** + * Enumeration of metadata types permitted for use by * encapsulation mode audio streams. + * @hide */ - /** @hide */ - @IntDef(prefix = { "ENCAPSULATION_METADATA_TYPE_" }, value = { - ENCAPSULATION_METADATA_TYPE_NONE, /* reserved */ - ENCAPSULATION_METADATA_TYPE_FRAMEWORK_TUNER, - ENCAPSULATION_METADATA_TYPE_DVB_AD_DESCRIPTOR, - }) + @IntDef(prefix = {"ENCAPSULATION_METADATA_TYPE_"}, + value = + { + ENCAPSULATION_METADATA_TYPE_NONE, /* reserved */ + ENCAPSULATION_METADATA_TYPE_FRAMEWORK_TUNER, + ENCAPSULATION_METADATA_TYPE_DVB_AD_DESCRIPTOR, + ENCAPSULATION_METADATA_TYPE_SUPPLEMENTARY_AUDIO_PLACEMENT, + }) @Retention(RetentionPolicy.SOURCE) public @interface EncapsulationMetadataType {} @@ -298,6 +302,45 @@ public class AudioTrack extends PlayerBase */ public static final int ENCAPSULATION_METADATA_TYPE_DVB_AD_DESCRIPTOR = 2; + /** + * Encapsulation metadata type for placement of supplementary audio. + * + * A 32 bit integer constant, one of {@link #SUPPLEMENTARY_AUDIO_PLACEMENT_NORMAL}, {@link + * #SUPPLEMENTARY_AUDIO_PLACEMENT_LEFT}, {@link #SUPPLEMENTARY_AUDIO_PLACEMENT_RIGHT}. + */ + public static final int ENCAPSULATION_METADATA_TYPE_SUPPLEMENTARY_AUDIO_PLACEMENT = 3; + + /** + * Enumeration of supplementary audio placement types. + * @hide + */ + @IntDef(prefix = {"SUPPLEMENTARY_AUDIO_PLACEMENT_"}, + value = + { + SUPPLEMENTARY_AUDIO_PLACEMENT_NORMAL, + SUPPLEMENTARY_AUDIO_PLACEMENT_LEFT, + SUPPLEMENTARY_AUDIO_PLACEMENT_RIGHT, + }) + @Retention(RetentionPolicy.SOURCE) + public @interface SupplementaryAudioPlacement {} + // Important: The SUPPLEMENTARY_AUDIO_PLACEMENT values must be kept in sync with native header + // files. + + /** + * Supplementary audio placement normal. + */ + public static final int SUPPLEMENTARY_AUDIO_PLACEMENT_NORMAL = 0; + + /** + * Supplementary audio placement left. + */ + public static final int SUPPLEMENTARY_AUDIO_PLACEMENT_LEFT = 1; + + /** + * Supplementary audio placement right. + */ + public static final int SUPPLEMENTARY_AUDIO_PLACEMENT_RIGHT = 2; + /* Dual Mono handling is used when a stereo audio stream * contains separate audio content on the left and right channels. * Such information about the content of the stream may be found, for example, in