mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +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);
|
boolean hasNewUsableKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** @see android.media.MediaDrm.KeyStatus */
|
||||||
* @see android.media.MediaDrm.KeyStatus
|
final class 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 {
|
|
||||||
|
|
||||||
private final int statusCode;
|
private final int statusCode;
|
||||||
private final byte[] keyId;
|
private final byte[] keyId;
|
||||||
|
|
||||||
DefaultKeyStatus(int statusCode, byte[] keyId) {
|
public KeyStatus(int statusCode, byte[] keyId) {
|
||||||
this.statusCode = statusCode;
|
this.statusCode = statusCode;
|
||||||
this.keyId = keyId;
|
this.keyId = keyId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getStatusCode() {
|
public int getStatusCode() {
|
||||||
return statusCode;
|
return statusCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public byte[] getKeyId() {
|
public byte[] getKeyId() {
|
||||||
return keyId;
|
return keyId;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** @see android.media.MediaDrm.KeyRequest */
|
||||||
* @see android.media.MediaDrm.KeyRequest
|
final class KeyRequest {
|
||||||
*/
|
|
||||||
interface KeyRequest {
|
|
||||||
byte[] getData();
|
|
||||||
String getDefaultUrl();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Default implementation of {@link KeyRequest}.
|
|
||||||
*/
|
|
||||||
final class DefaultKeyRequest implements KeyRequest {
|
|
||||||
|
|
||||||
private final byte[] data;
|
private final byte[] data;
|
||||||
private final String defaultUrl;
|
private final String defaultUrl;
|
||||||
|
|
||||||
public DefaultKeyRequest(byte[] data, String defaultUrl) {
|
public KeyRequest(byte[] data, String defaultUrl) {
|
||||||
this.data = data;
|
this.data = data;
|
||||||
this.defaultUrl = defaultUrl;
|
this.defaultUrl = defaultUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public byte[] getData() {
|
public byte[] getData() {
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getDefaultUrl() {
|
public String getDefaultUrl() {
|
||||||
return defaultUrl;
|
return defaultUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** @see android.media.MediaDrm.ProvisionRequest */
|
||||||
* @see android.media.MediaDrm.ProvisionRequest
|
final class ProvisionRequest {
|
||||||
*/
|
|
||||||
interface ProvisionRequest {
|
|
||||||
byte[] getData();
|
|
||||||
String getDefaultUrl();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Default implementation of {@link ProvisionRequest}.
|
|
||||||
*/
|
|
||||||
final class DefaultProvisionRequest implements ProvisionRequest {
|
|
||||||
|
|
||||||
private final byte[] data;
|
private final byte[] data;
|
||||||
private final String defaultUrl;
|
private final String defaultUrl;
|
||||||
|
|
||||||
public DefaultProvisionRequest(byte[] data, String defaultUrl) {
|
public ProvisionRequest(byte[] data, String defaultUrl) {
|
||||||
this.data = data;
|
this.data = data;
|
||||||
this.defaultUrl = defaultUrl;
|
this.defaultUrl = defaultUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public byte[] getData() {
|
public byte[] getData() {
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getDefaultUrl() {
|
public String getDefaultUrl() {
|
||||||
return defaultUrl;
|
return defaultUrl;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -94,20 +94,26 @@ public final class FrameworkMediaDrm implements ExoMediaDrm<FrameworkMediaCrypto
|
||||||
if (Util.SDK_INT < 23) {
|
if (Util.SDK_INT < 23) {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
|
|
||||||
mediaDrm.setOnKeyStatusChangeListener(listener == null ? null
|
mediaDrm.setOnKeyStatusChangeListener(
|
||||||
: new MediaDrm.OnKeyStatusChangeListener() {
|
listener == null
|
||||||
@Override
|
? null
|
||||||
public void onKeyStatusChange(@NonNull MediaDrm md, @NonNull byte[] sessionId,
|
: new MediaDrm.OnKeyStatusChangeListener() {
|
||||||
@NonNull List<MediaDrm.KeyStatus> keyInfo, boolean hasNewUsableKey) {
|
@Override
|
||||||
List<KeyStatus> exoKeyInfo = new ArrayList<>();
|
public void onKeyStatusChange(
|
||||||
for (MediaDrm.KeyStatus keyStatus : keyInfo) {
|
@NonNull MediaDrm md,
|
||||||
exoKeyInfo.add(new DefaultKeyStatus(keyStatus.getStatusCode(), keyStatus.getKeyId()));
|
@NonNull byte[] sessionId,
|
||||||
}
|
@NonNull List<MediaDrm.KeyStatus> keyInfo,
|
||||||
listener.onKeyStatusChange(FrameworkMediaDrm.this, sessionId, exoKeyInfo,
|
boolean hasNewUsableKey) {
|
||||||
hasNewUsableKey);
|
List<KeyStatus> exoKeyInfo = new ArrayList<>();
|
||||||
}
|
for (MediaDrm.KeyStatus keyStatus : keyInfo) {
|
||||||
}, null);
|
exoKeyInfo.add(new KeyStatus(keyStatus.getStatusCode(), keyStatus.getKeyId()));
|
||||||
|
}
|
||||||
|
listener.onKeyStatusChange(
|
||||||
|
FrameworkMediaDrm.this, sessionId, exoKeyInfo, hasNewUsableKey);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -121,8 +127,13 @@ public final class FrameworkMediaDrm implements ExoMediaDrm<FrameworkMediaCrypto
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public KeyRequest getKeyRequest(byte[] scope, byte[] init, String mimeType, int keyType,
|
public KeyRequest getKeyRequest(
|
||||||
HashMap<String, String> optionalParameters) throws NotProvisionedException {
|
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
|
// 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.
|
// 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);
|
requestData = ClearKeyUtil.adjustRequestData(requestData);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new DefaultKeyRequest(requestData, request.getDefaultUrl());
|
return new KeyRequest(requestData, request.getDefaultUrl());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -172,7 +183,7 @@ public final class FrameworkMediaDrm implements ExoMediaDrm<FrameworkMediaCrypto
|
||||||
@Override
|
@Override
|
||||||
public ProvisionRequest getProvisionRequest() {
|
public ProvisionRequest getProvisionRequest() {
|
||||||
final MediaDrm.ProvisionRequest request = mediaDrm.getProvisionRequest();
|
final MediaDrm.ProvisionRequest request = mediaDrm.getProvisionRequest();
|
||||||
return new DefaultProvisionRequest(request.getData(), request.getDefaultUrl());
|
return new ProvisionRequest(request.getData(), request.getDefaultUrl());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue