Merge "Add parser name constants and a StringDef for them" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
1e9da0f457
@@ -52,6 +52,20 @@ package android.media {
|
|||||||
field public static final String PARAMETER_TS_IGNORE_AVC_STREAM = "android.media.mediaparser.ts.ignoreAvcStream";
|
field public static final String PARAMETER_TS_IGNORE_AVC_STREAM = "android.media.mediaparser.ts.ignoreAvcStream";
|
||||||
field public static final String PARAMETER_TS_IGNORE_SPLICE_INFO_STREAM = "android.media.mediaparser.ts.ignoreSpliceInfoStream";
|
field public static final String PARAMETER_TS_IGNORE_SPLICE_INFO_STREAM = "android.media.mediaparser.ts.ignoreSpliceInfoStream";
|
||||||
field public static final String PARAMETER_TS_MODE = "android.media.mediaparser.ts.mode";
|
field public static final String PARAMETER_TS_MODE = "android.media.mediaparser.ts.mode";
|
||||||
|
field public static final String PARSER_NAME_AC3 = "android.media.mediaparser.Ac3Parser";
|
||||||
|
field public static final String PARSER_NAME_AC4 = "android.media.mediaparser.Ac4Parser";
|
||||||
|
field public static final String PARSER_NAME_ADTS = "android.media.mediaparser.AdtsParser";
|
||||||
|
field public static final String PARSER_NAME_AMR = "android.media.mediaparser.AmrParser";
|
||||||
|
field public static final String PARSER_NAME_FLAC = "android.media.mediaparser.FlacParser";
|
||||||
|
field public static final String PARSER_NAME_FLV = "android.media.mediaparser.FlvParser";
|
||||||
|
field public static final String PARSER_NAME_FMP4 = "android.media.mediaparser.FragmentedMp4Parser";
|
||||||
|
field public static final String PARSER_NAME_MATROSKA = "android.media.mediaparser.MatroskaParser";
|
||||||
|
field public static final String PARSER_NAME_MP3 = "android.media.mediaparser.Mp3Parser";
|
||||||
|
field public static final String PARSER_NAME_MP4 = "android.media.mediaparser.Mp4Parser";
|
||||||
|
field public static final String PARSER_NAME_OGG = "android.media.mediaparser.OggParser";
|
||||||
|
field public static final String PARSER_NAME_PS = "android.media.mediaparser.PsParser";
|
||||||
|
field public static final String PARSER_NAME_TS = "android.media.mediaparser.TsParser";
|
||||||
|
field public static final String PARSER_NAME_WAV = "android.media.mediaparser.WavParser";
|
||||||
}
|
}
|
||||||
|
|
||||||
public static interface MediaParser.InputReader {
|
public static interface MediaParser.InputReader {
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ package android.media;
|
|||||||
import android.annotation.CheckResult;
|
import android.annotation.CheckResult;
|
||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
import android.annotation.Nullable;
|
import android.annotation.Nullable;
|
||||||
|
import android.annotation.StringDef;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Pair;
|
import android.util.Pair;
|
||||||
@@ -56,6 +57,8 @@ import com.google.android.exoplayer2.video.ColorInfo;
|
|||||||
import java.io.EOFException;
|
import java.io.EOFException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InterruptedIOException;
|
import java.io.InterruptedIOException;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -440,7 +443,46 @@ public final class MediaParser {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Public constants.
|
// Parser implementation names.
|
||||||
|
|
||||||
|
/** @hide */
|
||||||
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
|
@StringDef(
|
||||||
|
prefix = {"PARSER_NAME_"},
|
||||||
|
value = {
|
||||||
|
PARSER_NAME_MATROSKA,
|
||||||
|
PARSER_NAME_FMP4,
|
||||||
|
PARSER_NAME_MP4,
|
||||||
|
PARSER_NAME_MP3,
|
||||||
|
PARSER_NAME_ADTS,
|
||||||
|
PARSER_NAME_AC3,
|
||||||
|
PARSER_NAME_TS,
|
||||||
|
PARSER_NAME_FLV,
|
||||||
|
PARSER_NAME_OGG,
|
||||||
|
PARSER_NAME_PS,
|
||||||
|
PARSER_NAME_WAV,
|
||||||
|
PARSER_NAME_AMR,
|
||||||
|
PARSER_NAME_AC4,
|
||||||
|
PARSER_NAME_FLAC
|
||||||
|
})
|
||||||
|
public @interface ParserName {}
|
||||||
|
|
||||||
|
public static final String PARSER_NAME_MATROSKA = "android.media.mediaparser.MatroskaParser";
|
||||||
|
public static final String PARSER_NAME_FMP4 = "android.media.mediaparser.FragmentedMp4Parser";
|
||||||
|
public static final String PARSER_NAME_MP4 = "android.media.mediaparser.Mp4Parser";
|
||||||
|
public static final String PARSER_NAME_MP3 = "android.media.mediaparser.Mp3Parser";
|
||||||
|
public static final String PARSER_NAME_ADTS = "android.media.mediaparser.AdtsParser";
|
||||||
|
public static final String PARSER_NAME_AC3 = "android.media.mediaparser.Ac3Parser";
|
||||||
|
public static final String PARSER_NAME_TS = "android.media.mediaparser.TsParser";
|
||||||
|
public static final String PARSER_NAME_FLV = "android.media.mediaparser.FlvParser";
|
||||||
|
public static final String PARSER_NAME_OGG = "android.media.mediaparser.OggParser";
|
||||||
|
public static final String PARSER_NAME_PS = "android.media.mediaparser.PsParser";
|
||||||
|
public static final String PARSER_NAME_WAV = "android.media.mediaparser.WavParser";
|
||||||
|
public static final String PARSER_NAME_AMR = "android.media.mediaparser.AmrParser";
|
||||||
|
public static final String PARSER_NAME_AC4 = "android.media.mediaparser.Ac4Parser";
|
||||||
|
public static final String PARSER_NAME_FLAC = "android.media.mediaparser.FlacParser";
|
||||||
|
|
||||||
|
// MediaParser parameters.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets whether constant bitrate seeking should be enabled for ADTS parsing. {@code boolean}
|
* Sets whether constant bitrate seeking should be enabled for ADTS parsing. {@code boolean}
|
||||||
@@ -589,7 +631,7 @@ public final class MediaParser {
|
|||||||
*/
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
public static MediaParser createByName(
|
public static MediaParser createByName(
|
||||||
@NonNull String name, @NonNull OutputConsumer outputConsumer) {
|
@NonNull @ParserName String name, @NonNull OutputConsumer outputConsumer) {
|
||||||
String[] nameAsArray = new String[] {name};
|
String[] nameAsArray = new String[] {name};
|
||||||
assertValidNames(nameAsArray);
|
assertValidNames(nameAsArray);
|
||||||
return new MediaParser(outputConsumer, /* sniff= */ false, name);
|
return new MediaParser(outputConsumer, /* sniff= */ false, name);
|
||||||
@@ -607,7 +649,7 @@ public final class MediaParser {
|
|||||||
*/
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
public static MediaParser create(
|
public static MediaParser create(
|
||||||
@NonNull OutputConsumer outputConsumer, @NonNull String... parserNames) {
|
@NonNull OutputConsumer outputConsumer, @NonNull @ParserName String... parserNames) {
|
||||||
assertValidNames(parserNames);
|
assertValidNames(parserNames);
|
||||||
if (parserNames.length == 0) {
|
if (parserNames.length == 0) {
|
||||||
parserNames = EXTRACTOR_FACTORIES_BY_NAME.keySet().toArray(new String[0]);
|
parserNames = EXTRACTOR_FACTORIES_BY_NAME.keySet().toArray(new String[0]);
|
||||||
@@ -624,6 +666,7 @@ public final class MediaParser {
|
|||||||
* <p>TODO: List which properties are taken into account. E.g. MimeType.
|
* <p>TODO: List which properties are taken into account. E.g. MimeType.
|
||||||
*/
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
|
@ParserName
|
||||||
public static List<String> getParserNames(@NonNull MediaFormat mediaFormat) {
|
public static List<String> getParserNames(@NonNull MediaFormat mediaFormat) {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
@@ -702,6 +745,7 @@ public final class MediaParser {
|
|||||||
* implementation has not yet been selected.
|
* implementation has not yet been selected.
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
|
@ParserName
|
||||||
public String getParserName() {
|
public String getParserName() {
|
||||||
return mExtractorName;
|
return mExtractorName;
|
||||||
}
|
}
|
||||||
@@ -1165,20 +1209,20 @@ public final class MediaParser {
|
|||||||
LinkedHashMap<String, ExtractorFactory> extractorFactoriesByName = new LinkedHashMap<>();
|
LinkedHashMap<String, ExtractorFactory> extractorFactoriesByName = new LinkedHashMap<>();
|
||||||
// Parsers are ordered to match ExoPlayer's DefaultExtractorsFactory extractor ordering,
|
// Parsers are ordered to match ExoPlayer's DefaultExtractorsFactory extractor ordering,
|
||||||
// which in turn aims to minimize the chances of incorrect extractor selections.
|
// which in turn aims to minimize the chances of incorrect extractor selections.
|
||||||
extractorFactoriesByName.put("exo.MatroskaParser", MatroskaExtractor::new);
|
extractorFactoriesByName.put(PARSER_NAME_MATROSKA, MatroskaExtractor::new);
|
||||||
extractorFactoriesByName.put("exo.FragmentedMp4Parser", FragmentedMp4Extractor::new);
|
extractorFactoriesByName.put(PARSER_NAME_FMP4, FragmentedMp4Extractor::new);
|
||||||
extractorFactoriesByName.put("exo.Mp4Parser", Mp4Extractor::new);
|
extractorFactoriesByName.put(PARSER_NAME_MP4, Mp4Extractor::new);
|
||||||
extractorFactoriesByName.put("exo.Mp3Parser", Mp3Extractor::new);
|
extractorFactoriesByName.put(PARSER_NAME_MP3, Mp3Extractor::new);
|
||||||
extractorFactoriesByName.put("exo.AdtsParser", AdtsExtractor::new);
|
extractorFactoriesByName.put(PARSER_NAME_ADTS, AdtsExtractor::new);
|
||||||
extractorFactoriesByName.put("exo.Ac3Parser", Ac3Extractor::new);
|
extractorFactoriesByName.put(PARSER_NAME_AC3, Ac3Extractor::new);
|
||||||
extractorFactoriesByName.put("exo.TsParser", TsExtractor::new);
|
extractorFactoriesByName.put(PARSER_NAME_TS, TsExtractor::new);
|
||||||
extractorFactoriesByName.put("exo.FlvParser", FlvExtractor::new);
|
extractorFactoriesByName.put(PARSER_NAME_FLV, FlvExtractor::new);
|
||||||
extractorFactoriesByName.put("exo.OggParser", OggExtractor::new);
|
extractorFactoriesByName.put(PARSER_NAME_OGG, OggExtractor::new);
|
||||||
extractorFactoriesByName.put("exo.PsParser", PsExtractor::new);
|
extractorFactoriesByName.put(PARSER_NAME_PS, PsExtractor::new);
|
||||||
extractorFactoriesByName.put("exo.WavParser", WavExtractor::new);
|
extractorFactoriesByName.put(PARSER_NAME_WAV, WavExtractor::new);
|
||||||
extractorFactoriesByName.put("exo.AmrParser", AmrExtractor::new);
|
extractorFactoriesByName.put(PARSER_NAME_AMR, AmrExtractor::new);
|
||||||
extractorFactoriesByName.put("exo.Ac4Parser", Ac4Extractor::new);
|
extractorFactoriesByName.put(PARSER_NAME_AC4, Ac4Extractor::new);
|
||||||
extractorFactoriesByName.put("exo.FlacParser", FlacExtractor::new);
|
extractorFactoriesByName.put(PARSER_NAME_FLAC, FlacExtractor::new);
|
||||||
EXTRACTOR_FACTORIES_BY_NAME = Collections.unmodifiableMap(extractorFactoriesByName);
|
EXTRACTOR_FACTORIES_BY_NAME = Collections.unmodifiableMap(extractorFactoriesByName);
|
||||||
|
|
||||||
HashMap<String, Class> expectedTypeByParameterName = new HashMap<>();
|
HashMap<String, Class> expectedTypeByParameterName = new HashMap<>();
|
||||||
|
|||||||
@@ -26435,6 +26435,20 @@ package android.media {
|
|||||||
field public static final String PARAMETER_TS_IGNORE_AVC_STREAM = "android.media.mediaparser.ts.ignoreAvcStream";
|
field public static final String PARAMETER_TS_IGNORE_AVC_STREAM = "android.media.mediaparser.ts.ignoreAvcStream";
|
||||||
field public static final String PARAMETER_TS_IGNORE_SPLICE_INFO_STREAM = "android.media.mediaparser.ts.ignoreSpliceInfoStream";
|
field public static final String PARAMETER_TS_IGNORE_SPLICE_INFO_STREAM = "android.media.mediaparser.ts.ignoreSpliceInfoStream";
|
||||||
field public static final String PARAMETER_TS_MODE = "android.media.mediaparser.ts.mode";
|
field public static final String PARAMETER_TS_MODE = "android.media.mediaparser.ts.mode";
|
||||||
|
field public static final String PARSER_NAME_AC3 = "android.media.mediaparser.Ac3Parser";
|
||||||
|
field public static final String PARSER_NAME_AC4 = "android.media.mediaparser.Ac4Parser";
|
||||||
|
field public static final String PARSER_NAME_ADTS = "android.media.mediaparser.AdtsParser";
|
||||||
|
field public static final String PARSER_NAME_AMR = "android.media.mediaparser.AmrParser";
|
||||||
|
field public static final String PARSER_NAME_FLAC = "android.media.mediaparser.FlacParser";
|
||||||
|
field public static final String PARSER_NAME_FLV = "android.media.mediaparser.FlvParser";
|
||||||
|
field public static final String PARSER_NAME_FMP4 = "android.media.mediaparser.FragmentedMp4Parser";
|
||||||
|
field public static final String PARSER_NAME_MATROSKA = "android.media.mediaparser.MatroskaParser";
|
||||||
|
field public static final String PARSER_NAME_MP3 = "android.media.mediaparser.Mp3Parser";
|
||||||
|
field public static final String PARSER_NAME_MP4 = "android.media.mediaparser.Mp4Parser";
|
||||||
|
field public static final String PARSER_NAME_OGG = "android.media.mediaparser.OggParser";
|
||||||
|
field public static final String PARSER_NAME_PS = "android.media.mediaparser.PsParser";
|
||||||
|
field public static final String PARSER_NAME_TS = "android.media.mediaparser.TsParser";
|
||||||
|
field public static final String PARSER_NAME_WAV = "android.media.mediaparser.WavParser";
|
||||||
}
|
}
|
||||||
|
|
||||||
public static interface MediaParser.InputReader {
|
public static interface MediaParser.InputReader {
|
||||||
|
|||||||
Reference in New Issue
Block a user