mirror of
https://github.com/samsonjs/media.git
synced 2026-03-27 09:45:47 +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;
|
||||
|
||||
import android.os.Looper;
|
||||
import androidx.annotation.IntDef;
|
||||
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.
|
||||
*/
|
||||
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
|
||||
* {@link DrmInitData}.
|
||||
|
|
@ -45,4 +69,10 @@ public interface DrmSessionManager<T extends ExoMediaCrypto> {
|
|||
* @return The DRM session.
|
||||
*/
|
||||
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