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_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 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 {
|
||||
|
||||
@@ -18,6 +18,7 @@ package android.media;
|
||||
import android.annotation.CheckResult;
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.StringDef;
|
||||
import android.net.Uri;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Pair;
|
||||
@@ -56,6 +57,8 @@ import com.google.android.exoplayer2.video.ColorInfo;
|
||||
import java.io.EOFException;
|
||||
import java.io.IOException;
|
||||
import java.io.InterruptedIOException;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.Collections;
|
||||
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}
|
||||
@@ -589,7 +631,7 @@ public final class MediaParser {
|
||||
*/
|
||||
@NonNull
|
||||
public static MediaParser createByName(
|
||||
@NonNull String name, @NonNull OutputConsumer outputConsumer) {
|
||||
@NonNull @ParserName String name, @NonNull OutputConsumer outputConsumer) {
|
||||
String[] nameAsArray = new String[] {name};
|
||||
assertValidNames(nameAsArray);
|
||||
return new MediaParser(outputConsumer, /* sniff= */ false, name);
|
||||
@@ -607,7 +649,7 @@ public final class MediaParser {
|
||||
*/
|
||||
@NonNull
|
||||
public static MediaParser create(
|
||||
@NonNull OutputConsumer outputConsumer, @NonNull String... parserNames) {
|
||||
@NonNull OutputConsumer outputConsumer, @NonNull @ParserName String... parserNames) {
|
||||
assertValidNames(parserNames);
|
||||
if (parserNames.length == 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.
|
||||
*/
|
||||
@NonNull
|
||||
@ParserName
|
||||
public static List<String> getParserNames(@NonNull MediaFormat mediaFormat) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
@@ -702,6 +745,7 @@ public final class MediaParser {
|
||||
* implementation has not yet been selected.
|
||||
*/
|
||||
@Nullable
|
||||
@ParserName
|
||||
public String getParserName() {
|
||||
return mExtractorName;
|
||||
}
|
||||
@@ -1165,20 +1209,20 @@ public final class MediaParser {
|
||||
LinkedHashMap<String, ExtractorFactory> extractorFactoriesByName = new LinkedHashMap<>();
|
||||
// Parsers are ordered to match ExoPlayer's DefaultExtractorsFactory extractor ordering,
|
||||
// which in turn aims to minimize the chances of incorrect extractor selections.
|
||||
extractorFactoriesByName.put("exo.MatroskaParser", MatroskaExtractor::new);
|
||||
extractorFactoriesByName.put("exo.FragmentedMp4Parser", FragmentedMp4Extractor::new);
|
||||
extractorFactoriesByName.put("exo.Mp4Parser", Mp4Extractor::new);
|
||||
extractorFactoriesByName.put("exo.Mp3Parser", Mp3Extractor::new);
|
||||
extractorFactoriesByName.put("exo.AdtsParser", AdtsExtractor::new);
|
||||
extractorFactoriesByName.put("exo.Ac3Parser", Ac3Extractor::new);
|
||||
extractorFactoriesByName.put("exo.TsParser", TsExtractor::new);
|
||||
extractorFactoriesByName.put("exo.FlvParser", FlvExtractor::new);
|
||||
extractorFactoriesByName.put("exo.OggParser", OggExtractor::new);
|
||||
extractorFactoriesByName.put("exo.PsParser", PsExtractor::new);
|
||||
extractorFactoriesByName.put("exo.WavParser", WavExtractor::new);
|
||||
extractorFactoriesByName.put("exo.AmrParser", AmrExtractor::new);
|
||||
extractorFactoriesByName.put("exo.Ac4Parser", Ac4Extractor::new);
|
||||
extractorFactoriesByName.put("exo.FlacParser", FlacExtractor::new);
|
||||
extractorFactoriesByName.put(PARSER_NAME_MATROSKA, MatroskaExtractor::new);
|
||||
extractorFactoriesByName.put(PARSER_NAME_FMP4, FragmentedMp4Extractor::new);
|
||||
extractorFactoriesByName.put(PARSER_NAME_MP4, Mp4Extractor::new);
|
||||
extractorFactoriesByName.put(PARSER_NAME_MP3, Mp3Extractor::new);
|
||||
extractorFactoriesByName.put(PARSER_NAME_ADTS, AdtsExtractor::new);
|
||||
extractorFactoriesByName.put(PARSER_NAME_AC3, Ac3Extractor::new);
|
||||
extractorFactoriesByName.put(PARSER_NAME_TS, TsExtractor::new);
|
||||
extractorFactoriesByName.put(PARSER_NAME_FLV, FlvExtractor::new);
|
||||
extractorFactoriesByName.put(PARSER_NAME_OGG, OggExtractor::new);
|
||||
extractorFactoriesByName.put(PARSER_NAME_PS, PsExtractor::new);
|
||||
extractorFactoriesByName.put(PARSER_NAME_WAV, WavExtractor::new);
|
||||
extractorFactoriesByName.put(PARSER_NAME_AMR, AmrExtractor::new);
|
||||
extractorFactoriesByName.put(PARSER_NAME_AC4, Ac4Extractor::new);
|
||||
extractorFactoriesByName.put(PARSER_NAME_FLAC, FlacExtractor::new);
|
||||
EXTRACTOR_FACTORIES_BY_NAME = Collections.unmodifiableMap(extractorFactoriesByName);
|
||||
|
||||
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_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 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 {
|
||||
|
||||
Reference in New Issue
Block a user