Commit 5d045715 by Oliver Woodman

Remove need for InlinedApi with a few more C constants.

parent 56a509d8
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
*/ */
package com.google.android.exoplayer; package com.google.android.exoplayer;
import android.media.MediaCodec;
import android.media.MediaExtractor; import android.media.MediaExtractor;
/** /**
...@@ -43,11 +44,23 @@ public final class C { ...@@ -43,11 +44,23 @@ public final class C {
public static final String UTF8_NAME = "UTF-8"; public static final String UTF8_NAME = "UTF-8";
/** /**
* Sample flag that indicates the sample is a synchronization sample. * @see MediaExtractor#SAMPLE_FLAG_SYNC
*/ */
@SuppressWarnings("InlinedApi") @SuppressWarnings("InlinedApi")
public static final int SAMPLE_FLAG_SYNC = MediaExtractor.SAMPLE_FLAG_SYNC; public static final int SAMPLE_FLAG_SYNC = MediaExtractor.SAMPLE_FLAG_SYNC;
/**
* @see MediaExtractor#SAMPLE_FLAG_ENCRYPTED
*/
@SuppressWarnings("InlinedApi")
public static final int SAMPLE_FLAG_ENCRYPTED = MediaExtractor.SAMPLE_FLAG_ENCRYPTED;
/**
* @see MediaCodec#CRYPTO_MODE_AES_CTR
*/
@SuppressWarnings("InlinedApi")
public static final int CRYPTO_MODE_AES_CTR = MediaCodec.CRYPTO_MODE_AES_CTR;
private C() {} private C() {}
} }
...@@ -26,7 +26,6 @@ import android.media.MediaCodec; ...@@ -26,7 +26,6 @@ import android.media.MediaCodec;
import android.media.MediaCodec.CodecException; import android.media.MediaCodec.CodecException;
import android.media.MediaCodec.CryptoException; import android.media.MediaCodec.CryptoException;
import android.media.MediaCrypto; import android.media.MediaCrypto;
import android.media.MediaExtractor;
import android.os.Handler; import android.os.Handler;
import android.os.SystemClock; import android.os.SystemClock;
...@@ -583,7 +582,7 @@ public abstract class MediaCodecTrackRenderer extends TrackRenderer { ...@@ -583,7 +582,7 @@ public abstract class MediaCodecTrackRenderer extends TrackRenderer {
} }
waitingForFirstSyncFrame = false; waitingForFirstSyncFrame = false;
} }
boolean sampleEncrypted = (sampleHolder.flags & MediaExtractor.SAMPLE_FLAG_ENCRYPTED) != 0; boolean sampleEncrypted = (sampleHolder.flags & C.SAMPLE_FLAG_ENCRYPTED) != 0;
waitingForKeys = shouldWaitForKeys(sampleEncrypted); waitingForKeys = shouldWaitForKeys(sampleEncrypted);
if (waitingForKeys) { if (waitingForKeys) {
return false; return false;
......
...@@ -50,9 +50,8 @@ public final class SampleHolder { ...@@ -50,9 +50,8 @@ public final class SampleHolder {
public int size; public int size;
/** /**
* Flags that accompany the sample. A combination of * Flags that accompany the sample. A combination of {@link C#SAMPLE_FLAG_SYNC} and
* {@link android.media.MediaExtractor#SAMPLE_FLAG_SYNC} and * {@link C#SAMPLE_FLAG_ENCRYPTED}
* {@link android.media.MediaExtractor#SAMPLE_FLAG_ENCRYPTED}
*/ */
public int flags; public int flags;
......
...@@ -33,10 +33,6 @@ import com.google.android.exoplayer.util.MimeTypes; ...@@ -33,10 +33,6 @@ import com.google.android.exoplayer.util.MimeTypes;
import com.google.android.exoplayer.util.ParsableByteArray; import com.google.android.exoplayer.util.ParsableByteArray;
import com.google.android.exoplayer.util.Util; import com.google.android.exoplayer.util.Util;
import android.annotation.SuppressLint;
import android.media.MediaCodec;
import android.media.MediaExtractor;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
...@@ -795,7 +791,6 @@ public final class FragmentedMp4Extractor implements Extractor { ...@@ -795,7 +791,6 @@ public final class FragmentedMp4Extractor implements Extractor {
return RESULT_READ_SAMPLE; return RESULT_READ_SAMPLE;
} }
@SuppressLint("InlinedApi")
private void readSampleEncryptionData(ParsableByteArray sampleEncryptionData, SampleHolder out) { private void readSampleEncryptionData(ParsableByteArray sampleEncryptionData, SampleHolder out) {
TrackEncryptionBox encryptionBox = TrackEncryptionBox encryptionBox =
track.sampleDescriptionEncryptionBoxes[fragmentRun.sampleDescriptionIndex]; track.sampleDescriptionEncryptionBoxes[fragmentRun.sampleDescriptionIndex];
...@@ -833,8 +828,8 @@ public final class FragmentedMp4Extractor implements Extractor { ...@@ -833,8 +828,8 @@ public final class FragmentedMp4Extractor implements Extractor {
} }
out.cryptoInfo.set(subsampleCount, clearDataSizes, encryptedDataSizes, keyId, vector, out.cryptoInfo.set(subsampleCount, clearDataSizes, encryptedDataSizes, keyId, vector,
MediaCodec.CRYPTO_MODE_AES_CTR); C.CRYPTO_MODE_AES_CTR);
out.flags |= MediaExtractor.SAMPLE_FLAG_ENCRYPTED; out.flags |= C.SAMPLE_FLAG_ENCRYPTED;
} }
} }
...@@ -26,10 +26,6 @@ import com.google.android.exoplayer.upstream.NonBlockingInputStream; ...@@ -26,10 +26,6 @@ import com.google.android.exoplayer.upstream.NonBlockingInputStream;
import com.google.android.exoplayer.util.LongArray; import com.google.android.exoplayer.util.LongArray;
import com.google.android.exoplayer.util.MimeTypes; import com.google.android.exoplayer.util.MimeTypes;
import android.annotation.SuppressLint;
import android.media.MediaCodec;
import android.media.MediaExtractor;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
...@@ -425,7 +421,6 @@ public final class WebmExtractor implements Extractor { ...@@ -425,7 +421,6 @@ public final class WebmExtractor implements Extractor {
return true; return true;
} }
@SuppressLint("InlinedApi")
/* package */ boolean onBinaryElement( /* package */ boolean onBinaryElement(
int id, long elementOffsetBytes, int headerSizeBytes, int contentsSizeBytes, int id, long elementOffsetBytes, int headerSizeBytes, int contentsSizeBytes,
NonBlockingInputStream inputStream) throws ParserException { NonBlockingInputStream inputStream) throws ParserException {
...@@ -507,8 +502,8 @@ public final class WebmExtractor implements Extractor { ...@@ -507,8 +502,8 @@ public final class WebmExtractor implements Extractor {
encryptedDataSizes[0] = sampleHolder.size; encryptedDataSizes[0] = sampleHolder.size;
sampleHolder.cryptoInfo.set(1, clearDataSizes, encryptedDataSizes, sampleHolder.cryptoInfo.set(1, clearDataSizes, encryptedDataSizes,
encryptionKeyId, iv, MediaCodec.CRYPTO_MODE_AES_CTR); encryptionKeyId, iv, C.CRYPTO_MODE_AES_CTR);
sampleHolder.flags |= MediaExtractor.SAMPLE_FLAG_ENCRYPTED; sampleHolder.flags |= C.SAMPLE_FLAG_ENCRYPTED;
} }
} }
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
*/ */
package com.google.android.exoplayer.source; package com.google.android.exoplayer.source;
import com.google.android.exoplayer.C;
import com.google.android.exoplayer.MediaFormat; import com.google.android.exoplayer.MediaFormat;
import com.google.android.exoplayer.SampleHolder; import com.google.android.exoplayer.SampleHolder;
import com.google.android.exoplayer.SampleSource; import com.google.android.exoplayer.SampleSource;
...@@ -163,7 +164,7 @@ public final class FrameworkSampleExtractor implements SampleExtractor { ...@@ -163,7 +164,7 @@ public final class FrameworkSampleExtractor implements SampleExtractor {
} }
sampleHolder.timeUs = mediaExtractor.getSampleTime(); sampleHolder.timeUs = mediaExtractor.getSampleTime();
sampleHolder.flags = mediaExtractor.getSampleFlags(); sampleHolder.flags = mediaExtractor.getSampleFlags();
if ((sampleHolder.flags & MediaExtractor.SAMPLE_FLAG_ENCRYPTED) != 0) { if ((sampleHolder.flags & C.SAMPLE_FLAG_ENCRYPTED) != 0) {
sampleHolder.cryptoInfo.setFromExtractorV16(mediaExtractor); sampleHolder.cryptoInfo.setFromExtractorV16(mediaExtractor);
} }
......
package com.google.android.exoplayer;
import android.annotation.SuppressLint;
import android.media.MediaCodec;
import android.media.MediaExtractor;
import junit.framework.TestCase;
/**
* Unit test for {@link C}.
*/
public class CTest extends TestCase {
@SuppressLint("InlinedApi")
public static final void testContants() {
// Sanity check that constant values match those defined by the platform.
assertEquals(MediaExtractor.SAMPLE_FLAG_SYNC, C.SAMPLE_FLAG_SYNC);
assertEquals(MediaExtractor.SAMPLE_FLAG_ENCRYPTED, C.SAMPLE_FLAG_ENCRYPTED);
assertEquals(MediaCodec.CRYPTO_MODE_AES_CTR, C.CRYPTO_MODE_AES_CTR);
}
}
...@@ -25,9 +25,6 @@ import com.google.android.exoplayer.upstream.ByteArrayNonBlockingInputStream; ...@@ -25,9 +25,6 @@ import com.google.android.exoplayer.upstream.ByteArrayNonBlockingInputStream;
import com.google.android.exoplayer.upstream.NonBlockingInputStream; import com.google.android.exoplayer.upstream.NonBlockingInputStream;
import com.google.android.exoplayer.util.MimeTypes; import com.google.android.exoplayer.util.MimeTypes;
import android.annotation.SuppressLint;
import android.media.MediaCodec;
import android.media.MediaExtractor;
import android.test.InstrumentationTestCase; import android.test.InstrumentationTestCase;
import java.io.IOException; import java.io.IOException;
...@@ -355,7 +352,6 @@ public class WebmExtractorTest extends InstrumentationTestCase { ...@@ -355,7 +352,6 @@ public class WebmExtractorTest extends InstrumentationTestCase {
} }
} }
@SuppressLint("InlinedApi")
private void assertSample( private void assertSample(
MediaSegment mediaSegment, int timeUs, boolean keyframe, boolean invisible, MediaSegment mediaSegment, int timeUs, boolean keyframe, boolean invisible,
boolean encrypted) { boolean encrypted) {
...@@ -364,10 +360,10 @@ public class WebmExtractorTest extends InstrumentationTestCase { ...@@ -364,10 +360,10 @@ public class WebmExtractorTest extends InstrumentationTestCase {
assertEquals(timeUs, sampleHolder.timeUs); assertEquals(timeUs, sampleHolder.timeUs);
assertEquals(keyframe, (sampleHolder.flags & C.SAMPLE_FLAG_SYNC) != 0); assertEquals(keyframe, (sampleHolder.flags & C.SAMPLE_FLAG_SYNC) != 0);
assertEquals(invisible, sampleHolder.decodeOnly); assertEquals(invisible, sampleHolder.decodeOnly);
assertEquals(encrypted, (sampleHolder.flags & MediaExtractor.SAMPLE_FLAG_ENCRYPTED) != 0); assertEquals(encrypted, (sampleHolder.flags & C.SAMPLE_FLAG_ENCRYPTED) != 0);
if (encrypted) { if (encrypted) {
android.test.MoreAsserts.assertEquals(TEST_INITIALIZATION_VECTOR, sampleHolder.cryptoInfo.iv); android.test.MoreAsserts.assertEquals(TEST_INITIALIZATION_VECTOR, sampleHolder.cryptoInfo.iv);
assertEquals(MediaCodec.CRYPTO_MODE_AES_CTR, sampleHolder.cryptoInfo.mode); assertEquals(C.CRYPTO_MODE_AES_CTR, sampleHolder.cryptoInfo.mode);
assertEquals(1, sampleHolder.cryptoInfo.numSubSamples); assertEquals(1, sampleHolder.cryptoInfo.numSubSamples);
assertEquals(100, sampleHolder.cryptoInfo.numBytesOfEncryptedData[0]); assertEquals(100, sampleHolder.cryptoInfo.numBytesOfEncryptedData[0]);
assertEquals(0, sampleHolder.cryptoInfo.numBytesOfClearData[0]); assertEquals(0, sampleHolder.cryptoInfo.numBytesOfClearData[0]);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment