mirror of
https://github.com/samsonjs/media.git
synced 2026-03-29 10:05:48 +00:00
Remove need for InlinedApi with a few more C constants.
This commit is contained in:
parent
56a509d8e4
commit
5d0457152d
8 changed files with 47 additions and 27 deletions
|
|
@ -15,6 +15,7 @@
|
|||
*/
|
||||
package com.google.android.exoplayer;
|
||||
|
||||
import android.media.MediaCodec;
|
||||
import android.media.MediaExtractor;
|
||||
|
||||
/**
|
||||
|
|
@ -43,11 +44,23 @@ public final class C {
|
|||
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")
|
||||
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() {}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ import android.media.MediaCodec;
|
|||
import android.media.MediaCodec.CodecException;
|
||||
import android.media.MediaCodec.CryptoException;
|
||||
import android.media.MediaCrypto;
|
||||
import android.media.MediaExtractor;
|
||||
import android.os.Handler;
|
||||
import android.os.SystemClock;
|
||||
|
||||
|
|
@ -583,7 +582,7 @@ public abstract class MediaCodecTrackRenderer extends TrackRenderer {
|
|||
}
|
||||
waitingForFirstSyncFrame = false;
|
||||
}
|
||||
boolean sampleEncrypted = (sampleHolder.flags & MediaExtractor.SAMPLE_FLAG_ENCRYPTED) != 0;
|
||||
boolean sampleEncrypted = (sampleHolder.flags & C.SAMPLE_FLAG_ENCRYPTED) != 0;
|
||||
waitingForKeys = shouldWaitForKeys(sampleEncrypted);
|
||||
if (waitingForKeys) {
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -50,9 +50,8 @@ public final class SampleHolder {
|
|||
public int size;
|
||||
|
||||
/**
|
||||
* Flags that accompany the sample. A combination of
|
||||
* {@link android.media.MediaExtractor#SAMPLE_FLAG_SYNC} and
|
||||
* {@link android.media.MediaExtractor#SAMPLE_FLAG_ENCRYPTED}
|
||||
* Flags that accompany the sample. A combination of {@link C#SAMPLE_FLAG_SYNC} and
|
||||
* {@link C#SAMPLE_FLAG_ENCRYPTED}
|
||||
*/
|
||||
public int flags;
|
||||
|
||||
|
|
|
|||
|
|
@ -33,10 +33,6 @@ import com.google.android.exoplayer.util.MimeTypes;
|
|||
import com.google.android.exoplayer.util.ParsableByteArray;
|
||||
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.util.Arrays;
|
||||
import java.util.Collections;
|
||||
|
|
@ -795,7 +791,6 @@ public final class FragmentedMp4Extractor implements Extractor {
|
|||
return RESULT_READ_SAMPLE;
|
||||
}
|
||||
|
||||
@SuppressLint("InlinedApi")
|
||||
private void readSampleEncryptionData(ParsableByteArray sampleEncryptionData, SampleHolder out) {
|
||||
TrackEncryptionBox encryptionBox =
|
||||
track.sampleDescriptionEncryptionBoxes[fragmentRun.sampleDescriptionIndex];
|
||||
|
|
@ -833,8 +828,8 @@ public final class FragmentedMp4Extractor implements Extractor {
|
|||
}
|
||||
|
||||
out.cryptoInfo.set(subsampleCount, clearDataSizes, encryptedDataSizes, keyId, vector,
|
||||
MediaCodec.CRYPTO_MODE_AES_CTR);
|
||||
out.flags |= MediaExtractor.SAMPLE_FLAG_ENCRYPTED;
|
||||
C.CRYPTO_MODE_AES_CTR);
|
||||
out.flags |= C.SAMPLE_FLAG_ENCRYPTED;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,10 +26,6 @@ import com.google.android.exoplayer.upstream.NonBlockingInputStream;
|
|||
import com.google.android.exoplayer.util.LongArray;
|
||||
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.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
|
@ -425,7 +421,6 @@ public final class WebmExtractor implements Extractor {
|
|||
return true;
|
||||
}
|
||||
|
||||
@SuppressLint("InlinedApi")
|
||||
/* package */ boolean onBinaryElement(
|
||||
int id, long elementOffsetBytes, int headerSizeBytes, int contentsSizeBytes,
|
||||
NonBlockingInputStream inputStream) throws ParserException {
|
||||
|
|
@ -507,8 +502,8 @@ public final class WebmExtractor implements Extractor {
|
|||
encryptedDataSizes[0] = sampleHolder.size;
|
||||
|
||||
sampleHolder.cryptoInfo.set(1, clearDataSizes, encryptedDataSizes,
|
||||
encryptionKeyId, iv, MediaCodec.CRYPTO_MODE_AES_CTR);
|
||||
sampleHolder.flags |= MediaExtractor.SAMPLE_FLAG_ENCRYPTED;
|
||||
encryptionKeyId, iv, C.CRYPTO_MODE_AES_CTR);
|
||||
sampleHolder.flags |= C.SAMPLE_FLAG_ENCRYPTED;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
*/
|
||||
package com.google.android.exoplayer.source;
|
||||
|
||||
import com.google.android.exoplayer.C;
|
||||
import com.google.android.exoplayer.MediaFormat;
|
||||
import com.google.android.exoplayer.SampleHolder;
|
||||
import com.google.android.exoplayer.SampleSource;
|
||||
|
|
@ -163,7 +164,7 @@ public final class FrameworkSampleExtractor implements SampleExtractor {
|
|||
}
|
||||
sampleHolder.timeUs = mediaExtractor.getSampleTime();
|
||||
sampleHolder.flags = mediaExtractor.getSampleFlags();
|
||||
if ((sampleHolder.flags & MediaExtractor.SAMPLE_FLAG_ENCRYPTED) != 0) {
|
||||
if ((sampleHolder.flags & C.SAMPLE_FLAG_ENCRYPTED) != 0) {
|
||||
sampleHolder.cryptoInfo.setFromExtractorV16(mediaExtractor);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,22 @@
|
|||
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;
|
|||
import com.google.android.exoplayer.upstream.NonBlockingInputStream;
|
||||
import com.google.android.exoplayer.util.MimeTypes;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.media.MediaCodec;
|
||||
import android.media.MediaExtractor;
|
||||
import android.test.InstrumentationTestCase;
|
||||
|
||||
import java.io.IOException;
|
||||
|
|
@ -355,7 +352,6 @@ public class WebmExtractorTest extends InstrumentationTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
@SuppressLint("InlinedApi")
|
||||
private void assertSample(
|
||||
MediaSegment mediaSegment, int timeUs, boolean keyframe, boolean invisible,
|
||||
boolean encrypted) {
|
||||
|
|
@ -364,10 +360,10 @@ public class WebmExtractorTest extends InstrumentationTestCase {
|
|||
assertEquals(timeUs, sampleHolder.timeUs);
|
||||
assertEquals(keyframe, (sampleHolder.flags & C.SAMPLE_FLAG_SYNC) != 0);
|
||||
assertEquals(invisible, sampleHolder.decodeOnly);
|
||||
assertEquals(encrypted, (sampleHolder.flags & MediaExtractor.SAMPLE_FLAG_ENCRYPTED) != 0);
|
||||
assertEquals(encrypted, (sampleHolder.flags & C.SAMPLE_FLAG_ENCRYPTED) != 0);
|
||||
if (encrypted) {
|
||||
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(100, sampleHolder.cryptoInfo.numBytesOfEncryptedData[0]);
|
||||
assertEquals(0, sampleHolder.cryptoInfo.numBytesOfClearData[0]);
|
||||
|
|
|
|||
Loading…
Reference in a new issue