mirror of
https://github.com/samsonjs/media.git
synced 2026-04-02 10:45:51 +00:00
Remove unnecessary DefaultKeyStatus, DefaultKeyRequest and DefaultProvisionRequest.
Currently, we have KeyStatus, KeyRequest and ProvisionRequest as interface, so we can use custom implementation for purpose such as wrapping native objects. However, these interfaces and the corresponding default classes are only used to bundle data, and in all existing implementation (including native code), it's just as efficient to just use the Java default implementation. Therefore we can just get rid of the interfaces, and change the interfaces into classes with the default implementation. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=206765389
This commit is contained in:
parent
7ead310219
commit
377314a69f
2 changed files with 38 additions and 65 deletions
|
|
@ -105,101 +105,63 @@ public interface ExoMediaDrm<T extends ExoMediaCrypto> {
|
|||
boolean hasNewUsableKey);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see android.media.MediaDrm.KeyStatus
|
||||
*/
|
||||
interface KeyStatus {
|
||||
/** Returns the status code for the key. */
|
||||
int getStatusCode();
|
||||
/** Returns the id for the key. */
|
||||
byte[] getKeyId();
|
||||
}
|
||||
|
||||
/**
|
||||
* Default implementation of {@link KeyStatus}.
|
||||
*/
|
||||
final class DefaultKeyStatus implements KeyStatus {
|
||||
/** @see android.media.MediaDrm.KeyStatus */
|
||||
final class KeyStatus {
|
||||
|
||||
private final int statusCode;
|
||||
private final byte[] keyId;
|
||||
|
||||
DefaultKeyStatus(int statusCode, byte[] keyId) {
|
||||
public KeyStatus(int statusCode, byte[] keyId) {
|
||||
this.statusCode = statusCode;
|
||||
this.keyId = keyId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getStatusCode() {
|
||||
return statusCode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] getKeyId() {
|
||||
return keyId;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @see android.media.MediaDrm.KeyRequest
|
||||
*/
|
||||
interface KeyRequest {
|
||||
byte[] getData();
|
||||
String getDefaultUrl();
|
||||
}
|
||||
|
||||
/**
|
||||
* Default implementation of {@link KeyRequest}.
|
||||
*/
|
||||
final class DefaultKeyRequest implements KeyRequest {
|
||||
/** @see android.media.MediaDrm.KeyRequest */
|
||||
final class KeyRequest {
|
||||
|
||||
private final byte[] data;
|
||||
private final String defaultUrl;
|
||||
|
||||
public DefaultKeyRequest(byte[] data, String defaultUrl) {
|
||||
public KeyRequest(byte[] data, String defaultUrl) {
|
||||
this.data = data;
|
||||
this.defaultUrl = defaultUrl;
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDefaultUrl() {
|
||||
return defaultUrl;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @see android.media.MediaDrm.ProvisionRequest
|
||||
*/
|
||||
interface ProvisionRequest {
|
||||
byte[] getData();
|
||||
String getDefaultUrl();
|
||||
}
|
||||
|
||||
/**
|
||||
* Default implementation of {@link ProvisionRequest}.
|
||||
*/
|
||||
final class DefaultProvisionRequest implements ProvisionRequest {
|
||||
/** @see android.media.MediaDrm.ProvisionRequest */
|
||||
final class ProvisionRequest {
|
||||
|
||||
private final byte[] data;
|
||||
private final String defaultUrl;
|
||||
|
||||
public DefaultProvisionRequest(byte[] data, String defaultUrl) {
|
||||
public ProvisionRequest(byte[] data, String defaultUrl) {
|
||||
this.data = data;
|
||||
this.defaultUrl = defaultUrl;
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDefaultUrl() {
|
||||
return defaultUrl;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -94,20 +94,26 @@ public final class FrameworkMediaDrm implements ExoMediaDrm<FrameworkMediaCrypto
|
|||
if (Util.SDK_INT < 23) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
mediaDrm.setOnKeyStatusChangeListener(listener == null ? null
|
||||
: new MediaDrm.OnKeyStatusChangeListener() {
|
||||
@Override
|
||||
public void onKeyStatusChange(@NonNull MediaDrm md, @NonNull byte[] sessionId,
|
||||
@NonNull List<MediaDrm.KeyStatus> keyInfo, boolean hasNewUsableKey) {
|
||||
List<KeyStatus> exoKeyInfo = new ArrayList<>();
|
||||
for (MediaDrm.KeyStatus keyStatus : keyInfo) {
|
||||
exoKeyInfo.add(new DefaultKeyStatus(keyStatus.getStatusCode(), keyStatus.getKeyId()));
|
||||
}
|
||||
listener.onKeyStatusChange(FrameworkMediaDrm.this, sessionId, exoKeyInfo,
|
||||
hasNewUsableKey);
|
||||
}
|
||||
}, null);
|
||||
|
||||
mediaDrm.setOnKeyStatusChangeListener(
|
||||
listener == null
|
||||
? null
|
||||
: new MediaDrm.OnKeyStatusChangeListener() {
|
||||
@Override
|
||||
public void onKeyStatusChange(
|
||||
@NonNull MediaDrm md,
|
||||
@NonNull byte[] sessionId,
|
||||
@NonNull List<MediaDrm.KeyStatus> keyInfo,
|
||||
boolean hasNewUsableKey) {
|
||||
List<KeyStatus> exoKeyInfo = new ArrayList<>();
|
||||
for (MediaDrm.KeyStatus keyStatus : keyInfo) {
|
||||
exoKeyInfo.add(new KeyStatus(keyStatus.getStatusCode(), keyStatus.getKeyId()));
|
||||
}
|
||||
listener.onKeyStatusChange(
|
||||
FrameworkMediaDrm.this, sessionId, exoKeyInfo, hasNewUsableKey);
|
||||
}
|
||||
},
|
||||
null);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -121,8 +127,13 @@ public final class FrameworkMediaDrm implements ExoMediaDrm<FrameworkMediaCrypto
|
|||
}
|
||||
|
||||
@Override
|
||||
public KeyRequest getKeyRequest(byte[] scope, byte[] init, String mimeType, int keyType,
|
||||
HashMap<String, String> optionalParameters) throws NotProvisionedException {
|
||||
public KeyRequest getKeyRequest(
|
||||
byte[] scope,
|
||||
byte[] init,
|
||||
String mimeType,
|
||||
int keyType,
|
||||
HashMap<String, String> optionalParameters)
|
||||
throws NotProvisionedException {
|
||||
|
||||
// Prior to L the Widevine CDM required data to be extracted from the PSSH atom. Some Amazon
|
||||
// devices also required data to be extracted from the PSSH atom for PlayReady.
|
||||
|
|
@ -155,7 +166,7 @@ public final class FrameworkMediaDrm implements ExoMediaDrm<FrameworkMediaCrypto
|
|||
requestData = ClearKeyUtil.adjustRequestData(requestData);
|
||||
}
|
||||
|
||||
return new DefaultKeyRequest(requestData, request.getDefaultUrl());
|
||||
return new KeyRequest(requestData, request.getDefaultUrl());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -172,7 +183,7 @@ public final class FrameworkMediaDrm implements ExoMediaDrm<FrameworkMediaCrypto
|
|||
@Override
|
||||
public ProvisionRequest getProvisionRequest() {
|
||||
final MediaDrm.ProvisionRequest request = mediaDrm.getProvisionRequest();
|
||||
return new DefaultProvisionRequest(request.getData(), request.getDefaultUrl());
|
||||
return new ProvisionRequest(request.getData(), request.getDefaultUrl());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Reference in a new issue