mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +00:00
Add flags to DrmSessionManager
PiperOrigin-RevId: 253006112
This commit is contained in:
parent
cc337a3e2d
commit
3fcae68432
1 changed files with 30 additions and 0 deletions
|
|
@ -16,13 +16,37 @@
|
||||||
package com.google.android.exoplayer2.drm;
|
package com.google.android.exoplayer2.drm;
|
||||||
|
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
|
import androidx.annotation.IntDef;
|
||||||
import com.google.android.exoplayer2.drm.DrmInitData.SchemeData;
|
import com.google.android.exoplayer2.drm.DrmInitData.SchemeData;
|
||||||
|
import java.lang.annotation.Documented;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Manages a DRM session.
|
* Manages a DRM session.
|
||||||
*/
|
*/
|
||||||
public interface DrmSessionManager<T extends ExoMediaCrypto> {
|
public interface DrmSessionManager<T extends ExoMediaCrypto> {
|
||||||
|
|
||||||
|
/** Flags that control the handling of DRM protected content. */
|
||||||
|
@Documented
|
||||||
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
|
@IntDef(
|
||||||
|
flag = true,
|
||||||
|
value = {FLAG_PLAY_CLEAR_SAMPLES_WITHOUT_KEYS})
|
||||||
|
@interface Flags {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* When this flag is set, clear samples of an encrypted region may be rendered when no keys are
|
||||||
|
* available.
|
||||||
|
*
|
||||||
|
* <p>Encrypted media may contain clear (un-encrypted) regions. For example a media file may start
|
||||||
|
* with a short clear region so as to allow playback to begin in parallel with key acquisition.
|
||||||
|
* When this flag is set, consumers of sample data are permitted to access the clear regions of
|
||||||
|
* encrypted media files when the associated {@link DrmSession} has not yet obtained the keys
|
||||||
|
* necessary for the encrypted regions of the media.
|
||||||
|
*/
|
||||||
|
int FLAG_PLAY_CLEAR_SAMPLES_WITHOUT_KEYS = 1;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns whether the manager is capable of acquiring a session for the given
|
* Returns whether the manager is capable of acquiring a session for the given
|
||||||
* {@link DrmInitData}.
|
* {@link DrmInitData}.
|
||||||
|
|
@ -45,4 +69,10 @@ public interface DrmSessionManager<T extends ExoMediaCrypto> {
|
||||||
* @return The DRM session.
|
* @return The DRM session.
|
||||||
*/
|
*/
|
||||||
DrmSession<T> acquireSession(Looper playbackLooper, DrmInitData drmInitData);
|
DrmSession<T> acquireSession(Looper playbackLooper, DrmInitData drmInitData);
|
||||||
|
|
||||||
|
/** Returns flags that control the handling of DRM protected content. */
|
||||||
|
@Flags
|
||||||
|
default int getFlags() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue