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
@ -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…
x
Reference in New Issue
Block a user