summaryrefslogtreecommitdiff
path: root/apex/media/framework
diff options
context:
space:
mode:
authorSantiago Seifert <aquilescanta@google.com>2020-04-19 15:07:14 +0100
committerSantiago Seifert <aquilescanta@google.com>2020-04-19 15:07:14 +0100
commitf3c89a6851a500d41b7521f8d013cb7943fc98bb (patch)
treece362f52e73bda8d10e155dd6265724745121c2e /apex/media/framework
parentff9701f94856b114a1e74e3bb6591c1e18413763 (diff)
Make schemeInitData constructor ref non-static
Bug: 154120292 Test: atest CtsMediaParserTestCases Change-Id: I21cba4406fec20a69ad9a2f830213883a708ca20
Diffstat (limited to 'apex/media/framework')
-rw-r--r--apex/media/framework/java/android/media/MediaParser.java38
1 files changed, 19 insertions, 19 deletions
diff --git a/apex/media/framework/java/android/media/MediaParser.java b/apex/media/framework/java/android/media/MediaParser.java
index 596ad1e830e2..d1e9e4e4289b 100644
--- a/apex/media/framework/java/android/media/MediaParser.java
+++ b/apex/media/framework/java/android/media/MediaParser.java
@@ -718,8 +718,6 @@ public final class MediaParser {
private static final String TS_MODE_SINGLE_PMT = "single_pmt";
private static final String TS_MODE_MULTI_PMT = "multi_pmt";
private static final String TS_MODE_HLS = "hls";
- @Nullable
- private static final Constructor<DrmInitData.SchemeInitData> SCHEME_INIT_DATA_CONSTRUCTOR;
// Instance creation methods.
@@ -854,6 +852,7 @@ public final class MediaParser {
private final InputReadingDataReader mExoDataReader;
private final DataReaderAdapter mScratchDataReaderAdapter;
private final ParsableByteArrayAdapter mScratchParsableByteArrayAdapter;
+ @Nullable private final Constructor<DrmInitData.SchemeInitData> mSchemeInitDataConstructor;
private String mParserName;
private Extractor mExtractor;
private ExtractorInput mExtractorInput;
@@ -1055,6 +1054,7 @@ public final class MediaParser {
removePendingSeek();
mScratchDataReaderAdapter = new DataReaderAdapter();
mScratchParsableByteArrayAdapter = new ParsableByteArrayAdapter();
+ mSchemeInitDataConstructor = getSchemeInitDataConstructor();
}
private boolean isPendingSeek() {
@@ -1196,7 +1196,7 @@ public final class MediaParser {
}
}
- private static final class MediaParserDrmInitData extends DrmInitData {
+ private final class MediaParserDrmInitData extends DrmInitData {
private final SchemeInitData[] mSchemeDatas;
@@ -1229,10 +1229,9 @@ public final class MediaParser {
return mSchemeDatas.length;
}
- private static DrmInitData.SchemeInitData toFrameworkSchemeInitData(
- SchemeData exoSchemeData)
+ private DrmInitData.SchemeInitData toFrameworkSchemeInitData(SchemeData exoSchemeData)
throws IllegalAccessException, InvocationTargetException, InstantiationException {
- return SCHEME_INIT_DATA_CONSTRUCTOR.newInstance(
+ return mSchemeInitDataConstructor.newInstance(
exoSchemeData.uuid, exoSchemeData.mimeType, exoSchemeData.data);
}
}
@@ -1479,7 +1478,7 @@ public final class MediaParser {
private DrmInitData toFrameworkDrmInitData(
com.google.android.exoplayer2.drm.DrmInitData exoDrmInitData) {
try {
- return exoDrmInitData != null && SCHEME_INIT_DATA_CONSTRUCTOR != null
+ return exoDrmInitData != null && mSchemeInitDataConstructor != null
? new MediaParserDrmInitData(exoDrmInitData)
: null;
} catch (Throwable e) {
@@ -1515,6 +1514,19 @@ public final class MediaParser {
}
}
+ @Nullable
+ private static Constructor<DrmInitData.SchemeInitData> getSchemeInitDataConstructor() {
+ // TODO: Use constructor statically when available.
+ Constructor<DrmInitData.SchemeInitData> constructor;
+ try {
+ return DrmInitData.SchemeInitData.class.getConstructor(
+ UUID.class, String.class, byte[].class);
+ } catch (Throwable e) {
+ Log.e(TAG, "Unable to get SchemeInitData constructor.");
+ return null;
+ }
+ }
+
// Static initialization.
static {
@@ -1558,17 +1570,5 @@ public final class MediaParser {
expectedTypeByParameterName.put(PARAMETER_TS_DETECT_ACCESS_UNITS, Boolean.class);
expectedTypeByParameterName.put(PARAMETER_TS_ENABLE_HDMV_DTS_AUDIO_STREAMS, Boolean.class);
EXPECTED_TYPE_BY_PARAMETER_NAME = Collections.unmodifiableMap(expectedTypeByParameterName);
-
- // TODO: Use constructor statically when available.
- Constructor<DrmInitData.SchemeInitData> constructor;
- try {
- constructor =
- DrmInitData.SchemeInitData.class.getConstructor(
- UUID.class, String.class, byte[].class);
- } catch (Throwable e) {
- Log.e(TAG, "Unable to get SchemeInitData constructor.");
- constructor = null;
- }
- SCHEME_INIT_DATA_CONSTRUCTOR = constructor;
}
}