Define a interface type for Aac object type.
PiperOrigin-RevId: 308115863
This commit is contained in:
parent
e250fe6277
commit
d01d0cfd4b
@ -15,11 +15,15 @@
|
|||||||
*/
|
*/
|
||||||
package com.google.android.exoplayer2.audio;
|
package com.google.android.exoplayer2.audio;
|
||||||
|
|
||||||
|
import androidx.annotation.IntDef;
|
||||||
import com.google.android.exoplayer2.C;
|
import com.google.android.exoplayer2.C;
|
||||||
import com.google.android.exoplayer2.ParserException;
|
import com.google.android.exoplayer2.ParserException;
|
||||||
import com.google.android.exoplayer2.util.Assertions;
|
import com.google.android.exoplayer2.util.Assertions;
|
||||||
import com.google.android.exoplayer2.util.Log;
|
import com.google.android.exoplayer2.util.Log;
|
||||||
import com.google.android.exoplayer2.util.ParsableBitArray;
|
import com.google.android.exoplayer2.util.ParsableBitArray;
|
||||||
|
import java.lang.annotation.Documented;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
|
||||||
/** Utility methods for handling AAC audio streams. */
|
/** Utility methods for handling AAC audio streams. */
|
||||||
public final class AacUtil {
|
public final class AacUtil {
|
||||||
@ -132,19 +136,37 @@ public final class AacUtil {
|
|||||||
private static final String CODECS_STRING_PREFIX = "mp4a.40.";
|
private static final String CODECS_STRING_PREFIX = "mp4a.40.";
|
||||||
|
|
||||||
// Advanced Audio Coding Low-Complexity profile.
|
// Advanced Audio Coding Low-Complexity profile.
|
||||||
private static final int AUDIO_OBJECT_TYPE_AAC_LC = 2;
|
public static final int AUDIO_OBJECT_TYPE_AAC_LC = 2;
|
||||||
// Spectral Band Replication.
|
// Spectral Band Replication.
|
||||||
private static final int AUDIO_OBJECT_TYPE_AAC_SBR = 5;
|
public static final int AUDIO_OBJECT_TYPE_AAC_SBR = 5;
|
||||||
// Error Resilient Bit-Sliced Arithmetic Coding.
|
// Error Resilient Bit-Sliced Arithmetic Coding.
|
||||||
private static final int AUDIO_OBJECT_TYPE_AAC_ER_BSAC = 22;
|
public static final int AUDIO_OBJECT_TYPE_AAC_ER_BSAC = 22;
|
||||||
// Enhanced low delay.
|
// Enhanced low delay.
|
||||||
private static final int AUDIO_OBJECT_TYPE_AAC_ELD = 23;
|
public static final int AUDIO_OBJECT_TYPE_AAC_ELD = 23;
|
||||||
// Parametric Stereo.
|
// Parametric Stereo.
|
||||||
private static final int AUDIO_OBJECT_TYPE_AAC_PS = 29;
|
public static final int AUDIO_OBJECT_TYPE_AAC_PS = 29;
|
||||||
// Escape code for extended audio object types.
|
// Escape code for extended audio object types.
|
||||||
private static final int AUDIO_OBJECT_TYPE_ESCAPE = 31;
|
private static final int AUDIO_OBJECT_TYPE_ESCAPE = 31;
|
||||||
// Extended high efficiency.
|
// Extended high efficiency.
|
||||||
private static final int AUDIO_OBJECT_TYPE_AAC_XHE = 42;
|
public static final int AUDIO_OBJECT_TYPE_AAC_XHE = 42;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Valid AAC Audio object types. One of {@link #AUDIO_OBJECT_TYPE_AAC_LC}, {@link
|
||||||
|
* #AUDIO_OBJECT_TYPE_AAC_SBR}, {@link #AUDIO_OBJECT_TYPE_AAC_ER_BSAC}, {@link
|
||||||
|
* #AUDIO_OBJECT_TYPE_AAC_ELD}, {@link #AUDIO_OBJECT_TYPE_AAC_PS} or {@link
|
||||||
|
* #AUDIO_OBJECT_TYPE_AAC_XHE}.
|
||||||
|
*/
|
||||||
|
@Documented
|
||||||
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
|
@IntDef({
|
||||||
|
AUDIO_OBJECT_TYPE_AAC_LC,
|
||||||
|
AUDIO_OBJECT_TYPE_AAC_SBR,
|
||||||
|
AUDIO_OBJECT_TYPE_AAC_ER_BSAC,
|
||||||
|
AUDIO_OBJECT_TYPE_AAC_ELD,
|
||||||
|
AUDIO_OBJECT_TYPE_AAC_PS,
|
||||||
|
AUDIO_OBJECT_TYPE_AAC_XHE
|
||||||
|
})
|
||||||
|
public @interface AacAudioObjectType {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parses an AAC AudioSpecificConfig, as defined in ISO 14496-3 1.6.2.1
|
* Parses an AAC AudioSpecificConfig, as defined in ISO 14496-3 1.6.2.1
|
||||||
@ -275,7 +297,7 @@ public final class AacUtil {
|
|||||||
|
|
||||||
/** Returns the encoding for a given AAC audio object type. */
|
/** Returns the encoding for a given AAC audio object type. */
|
||||||
@C.Encoding
|
@C.Encoding
|
||||||
public static int getEncodingForAudioObjectType(int audioObjectType) {
|
public static int getEncodingForAudioObjectType(@AacAudioObjectType int audioObjectType) {
|
||||||
switch (audioObjectType) {
|
switch (audioObjectType) {
|
||||||
case AUDIO_OBJECT_TYPE_AAC_LC:
|
case AUDIO_OBJECT_TYPE_AAC_LC:
|
||||||
return C.ENCODING_AAC_LC;
|
return C.ENCODING_AAC_LC;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user