mirror of
https://github.com/samsonjs/media.git
synced 2026-04-04 11:05:47 +00:00
Pass explicit securityLevel into MediaDrm.requiresSecureDecoder
Previous to this change, `FrameworkMediaDrm.requiresSecureDecoder` ignores its `sessionId` parameter on API 31+, and uses only the `mimeType` parameter. This means the result [assumes the session is opened at the 'default security level'](https://developer.android.com/reference/android/media/MediaDrm#requiresSecureDecoder(java.lang.String)): > The default security level is defined as the highest security level > supported on the device. This change is a no-op in all (?) cases, because the `ExoMediaDrm` interface only exposes the zero-arg `openSession()` method, which in the framework case **also** assumes the highest security level is preferred: > By default, sessions are opened at the native security level of the > device. However, it seems more obviously correct to only make this "highest/native security level" assumption in one place (`openSession()`), and check the session's **actual** security level everywhere else. Issue: androidx/media#1603 PiperOrigin-RevId: 662872860
This commit is contained in:
parent
e9cfd72083
commit
9d62845c45
1 changed files with 5 additions and 3 deletions
|
|
@ -293,7 +293,8 @@ public final class FrameworkMediaDrm implements ExoMediaDrm {
|
|||
public boolean requiresSecureDecoder(byte[] sessionId, String mimeType) {
|
||||
boolean result;
|
||||
if (Util.SDK_INT >= 31 && isMediaDrmRequiresSecureDecoderImplemented()) {
|
||||
result = Api31.requiresSecureDecoder(mediaDrm, mimeType);
|
||||
result =
|
||||
Api31.requiresSecureDecoder(mediaDrm, mimeType, mediaDrm.getSecurityLevel(sessionId));
|
||||
} else {
|
||||
MediaCrypto mediaCrypto = null;
|
||||
try {
|
||||
|
|
@ -591,8 +592,9 @@ public final class FrameworkMediaDrm implements ExoMediaDrm {
|
|||
private Api31() {}
|
||||
|
||||
@DoNotInline
|
||||
public static boolean requiresSecureDecoder(MediaDrm mediaDrm, String mimeType) {
|
||||
return mediaDrm.requiresSecureDecoder(mimeType);
|
||||
public static boolean requiresSecureDecoder(
|
||||
MediaDrm mediaDrm, String mimeType, int securityLevel) {
|
||||
return mediaDrm.requiresSecureDecoder(mimeType, securityLevel);
|
||||
}
|
||||
|
||||
@DoNotInline
|
||||
|
|
|
|||
Loading…
Reference in a new issue