Rename MediaItem.DrmConfiguration.uuid to scheme

The type is already UUID so there's no need to duplicate that info in
the field name, and 'scheme' is a widely used term throughout both
ExoPlayer and android.os.MediaDrm documentation.

The old field remains deprecated for backwards compatibility.

The MediaItem.DrmConfiguration.Builder#setUuid method is renamed
directly (without deprecation) because it's not yet part of a released
ExoPlayer version.

PiperOrigin-RevId: 397961553
This commit is contained in:
ibaker 2021-09-21 12:11:07 +01:00 committed by Christos Tsilopoulos
parent ab484a4b11
commit e804df8c1f
6 changed files with 29 additions and 22 deletions

View File

@ -203,7 +203,7 @@ public class IntentUtil {
private static void addDrmConfigurationToIntent( private static void addDrmConfigurationToIntent(
MediaItem.DrmConfiguration drmConfiguration, Intent intent, String extrasKeySuffix) { MediaItem.DrmConfiguration drmConfiguration, Intent intent, String extrasKeySuffix) {
intent.putExtra(DRM_SCHEME_EXTRA + extrasKeySuffix, drmConfiguration.uuid.toString()); intent.putExtra(DRM_SCHEME_EXTRA + extrasKeySuffix, drmConfiguration.scheme.toString());
intent.putExtra( intent.putExtra(
DRM_LICENSE_URI_EXTRA + extrasKeySuffix, DRM_LICENSE_URI_EXTRA + extrasKeySuffix,
drmConfiguration.licenseUri != null ? drmConfiguration.licenseUri.toString() : null); drmConfiguration.licenseUri != null ? drmConfiguration.licenseUri.toString() : null);

View File

@ -329,7 +329,7 @@ public class PlayerActivity extends AppCompatActivity
showToast(R.string.error_drm_unsupported_before_api_18); showToast(R.string.error_drm_unsupported_before_api_18);
finish(); finish();
return Collections.emptyList(); return Collections.emptyList();
} else if (!FrameworkMediaDrm.isCryptoSchemeSupported(drmConfiguration.uuid)) { } else if (!FrameworkMediaDrm.isCryptoSchemeSupported(drmConfiguration.scheme)) {
showToast(R.string.error_drm_unsupported_scheme); showToast(R.string.error_drm_unsupported_scheme);
finish(); finish();
return Collections.emptyList(); return Collections.emptyList();

View File

@ -144,7 +144,7 @@ public final class DefaultMediaItemConverter implements MediaItemConverter {
private static JSONObject getDrmConfigurationJson(MediaItem.DrmConfiguration drmConfiguration) private static JSONObject getDrmConfigurationJson(MediaItem.DrmConfiguration drmConfiguration)
throws JSONException { throws JSONException {
JSONObject json = new JSONObject(); JSONObject json = new JSONObject();
json.put(KEY_UUID, drmConfiguration.uuid); json.put(KEY_UUID, drmConfiguration.scheme);
json.put(KEY_LICENSE_URI, drmConfiguration.licenseUri); json.put(KEY_LICENSE_URI, drmConfiguration.licenseUri);
json.put(KEY_REQUEST_HEADERS, new JSONObject(drmConfiguration.requestHeaders)); json.put(KEY_REQUEST_HEADERS, new JSONObject(drmConfiguration.requestHeaders));
return json; return json;
@ -159,9 +159,9 @@ public final class DefaultMediaItemConverter implements MediaItemConverter {
MediaItem.DrmConfiguration drmConfiguration = mediaItem.playbackProperties.drmConfiguration; MediaItem.DrmConfiguration drmConfiguration = mediaItem.playbackProperties.drmConfiguration;
String drmScheme; String drmScheme;
if (C.WIDEVINE_UUID.equals(drmConfiguration.uuid)) { if (C.WIDEVINE_UUID.equals(drmConfiguration.scheme)) {
drmScheme = "widevine"; drmScheme = "widevine";
} else if (C.PLAYREADY_UUID.equals(drmConfiguration.uuid)) { } else if (C.PLAYREADY_UUID.equals(drmConfiguration.scheme)) {
drmScheme = "playready"; drmScheme = "playready";
} else { } else {
return null; return null;

View File

@ -261,7 +261,7 @@ public final class MediaItem implements Bundleable {
*/ */
@Deprecated @Deprecated
public Builder setDrmUuid(@Nullable UUID uuid) { public Builder setDrmUuid(@Nullable UUID uuid) {
drmConfiguration.setNullableUuid(uuid); drmConfiguration.setNullableScheme(uuid);
return this; return this;
} }
@ -486,7 +486,7 @@ public final class MediaItem implements Bundleable {
/** Returns a new {@link MediaItem} instance with the current builder values. */ /** Returns a new {@link MediaItem} instance with the current builder values. */
public MediaItem build() { public MediaItem build() {
// TODO: remove this check once all the deprecated individual DRM setters are removed. // TODO: remove this check once all the deprecated individual DRM setters are removed.
checkState(drmConfiguration.licenseUri == null || drmConfiguration.uuid != null); checkState(drmConfiguration.licenseUri == null || drmConfiguration.scheme != null);
@Nullable PlaybackProperties playbackProperties = null; @Nullable PlaybackProperties playbackProperties = null;
@Nullable Uri uri = this.uri; @Nullable Uri uri = this.uri;
if (uri != null) { if (uri != null) {
@ -494,7 +494,7 @@ public final class MediaItem implements Bundleable {
new PlaybackProperties( new PlaybackProperties(
uri, uri,
mimeType, mimeType,
drmConfiguration.uuid != null ? drmConfiguration.build() : null, drmConfiguration.scheme != null ? drmConfiguration.build() : null,
adsConfiguration, adsConfiguration,
streamKeys, streamKeys,
customCacheKey, customCacheKey,
@ -522,7 +522,7 @@ public final class MediaItem implements Bundleable {
public static final class Builder { public static final class Builder {
// TODO remove @Nullable annotation when the deprecated zero-arg constructor is removed. // TODO remove @Nullable annotation when the deprecated zero-arg constructor is removed.
@Nullable private UUID uuid; @Nullable private UUID scheme;
@Nullable private Uri licenseUri; @Nullable private Uri licenseUri;
private ImmutableMap<String, String> licenseRequestHeaders; private ImmutableMap<String, String> licenseRequestHeaders;
private boolean multiSession; private boolean multiSession;
@ -534,10 +534,10 @@ public final class MediaItem implements Bundleable {
/** /**
* Constructs an instance. * Constructs an instance.
* *
* @param uuid The {@link UUID} of the protection scheme. * @param scheme The {@link UUID} of the protection scheme.
*/ */
public Builder(UUID uuid) { public Builder(UUID scheme) {
this.uuid = uuid; this.scheme = scheme;
this.licenseRequestHeaders = ImmutableMap.of(); this.licenseRequestHeaders = ImmutableMap.of();
this.sessionForClearTypes = ImmutableList.of(); this.sessionForClearTypes = ImmutableList.of();
} }
@ -553,7 +553,7 @@ public final class MediaItem implements Bundleable {
} }
private Builder(DrmConfiguration drmConfiguration) { private Builder(DrmConfiguration drmConfiguration) {
this.uuid = drmConfiguration.uuid; this.scheme = drmConfiguration.scheme;
this.licenseUri = drmConfiguration.licenseUri; this.licenseUri = drmConfiguration.licenseUri;
this.licenseRequestHeaders = drmConfiguration.requestHeaders; this.licenseRequestHeaders = drmConfiguration.requestHeaders;
this.multiSession = drmConfiguration.multiSession; this.multiSession = drmConfiguration.multiSession;
@ -564,8 +564,8 @@ public final class MediaItem implements Bundleable {
} }
/** Sets the {@link UUID} of the protection scheme. */ /** Sets the {@link UUID} of the protection scheme. */
public Builder setUuid(UUID uuid) { public Builder setScheme(UUID scheme) {
this.uuid = uuid; this.scheme = scheme;
return this; return this;
} }
@ -574,8 +574,8 @@ public final class MediaItem implements Bundleable {
* MediaItem.Builder#setDrmUuid(UUID)}. * MediaItem.Builder#setDrmUuid(UUID)}.
*/ */
@Deprecated @Deprecated
private Builder setNullableUuid(@Nullable UUID uuid) { private Builder setNullableScheme(@Nullable UUID scheme) {
this.uuid = uuid; this.scheme = scheme;
return this; return this;
} }
@ -679,7 +679,10 @@ public final class MediaItem implements Bundleable {
} }
/** The UUID of the protection scheme. */ /** The UUID of the protection scheme. */
public final UUID uuid; public final UUID scheme;
/** @deprecated Use {@link #scheme} instead. */
@Deprecated public final UUID uuid;
/** /**
* Optional default DRM license server {@link Uri}. If {@code null} then the DRM license server * Optional default DRM license server {@link Uri}. If {@code null} then the DRM license server
@ -712,7 +715,8 @@ public final class MediaItem implements Bundleable {
private DrmConfiguration(Builder builder) { private DrmConfiguration(Builder builder) {
checkState(!(builder.forceDefaultLicenseUri && builder.licenseUri == null)); checkState(!(builder.forceDefaultLicenseUri && builder.licenseUri == null));
this.uuid = checkNotNull(builder.uuid); this.scheme = checkNotNull(builder.scheme);
this.uuid = scheme;
this.licenseUri = builder.licenseUri; this.licenseUri = builder.licenseUri;
this.requestHeaders = builder.licenseRequestHeaders; this.requestHeaders = builder.licenseRequestHeaders;
this.multiSession = builder.multiSession; this.multiSession = builder.multiSession;
@ -746,7 +750,7 @@ public final class MediaItem implements Bundleable {
} }
DrmConfiguration other = (DrmConfiguration) obj; DrmConfiguration other = (DrmConfiguration) obj;
return uuid.equals(other.uuid) return scheme.equals(other.scheme)
&& Util.areEqual(licenseUri, other.licenseUri) && Util.areEqual(licenseUri, other.licenseUri)
&& Util.areEqual(requestHeaders, other.requestHeaders) && Util.areEqual(requestHeaders, other.requestHeaders)
&& multiSession == other.multiSession && multiSession == other.multiSession
@ -758,7 +762,7 @@ public final class MediaItem implements Bundleable {
@Override @Override
public int hashCode() { public int hashCode() {
int result = uuid.hashCode(); int result = scheme.hashCode();
result = 31 * result + (licenseUri != null ? licenseUri.hashCode() : 0); result = 31 * result + (licenseUri != null ? licenseUri.hashCode() : 0);
result = 31 * result + requestHeaders.hashCode(); result = 31 * result + requestHeaders.hashCode();
result = 31 * result + (multiSession ? 1 : 0); result = 31 * result + (multiSession ? 1 : 0);

View File

@ -106,6 +106,7 @@ public class MediaItemTest {
.build(); .build();
assertThat(mediaItem.playbackProperties.drmConfiguration).isNotNull(); assertThat(mediaItem.playbackProperties.drmConfiguration).isNotNull();
assertThat(mediaItem.playbackProperties.drmConfiguration.scheme).isEqualTo(C.WIDEVINE_UUID);
assertThat(mediaItem.playbackProperties.drmConfiguration.uuid).isEqualTo(C.WIDEVINE_UUID); assertThat(mediaItem.playbackProperties.drmConfiguration.uuid).isEqualTo(C.WIDEVINE_UUID);
assertThat(mediaItem.playbackProperties.drmConfiguration.licenseUri).isEqualTo(licenseUri); assertThat(mediaItem.playbackProperties.drmConfiguration.licenseUri).isEqualTo(licenseUri);
assertThat(mediaItem.playbackProperties.drmConfiguration.requestHeaders) assertThat(mediaItem.playbackProperties.drmConfiguration.requestHeaders)
@ -140,6 +141,7 @@ public class MediaItemTest {
.build(); .build();
assertThat(mediaItem.playbackProperties.drmConfiguration).isNotNull(); assertThat(mediaItem.playbackProperties.drmConfiguration).isNotNull();
assertThat(mediaItem.playbackProperties.drmConfiguration.scheme).isEqualTo(C.CLEARKEY_UUID);
assertThat(mediaItem.playbackProperties.drmConfiguration.uuid).isEqualTo(C.CLEARKEY_UUID); assertThat(mediaItem.playbackProperties.drmConfiguration.uuid).isEqualTo(C.CLEARKEY_UUID);
assertThat(mediaItem.playbackProperties.drmConfiguration.licenseUri).isNull(); assertThat(mediaItem.playbackProperties.drmConfiguration.licenseUri).isNull();
assertThat(mediaItem.playbackProperties.drmConfiguration.requestHeaders).isEmpty(); assertThat(mediaItem.playbackProperties.drmConfiguration.requestHeaders).isEmpty();
@ -172,6 +174,7 @@ public class MediaItemTest {
.build(); .build();
assertThat(mediaItem.playbackProperties.drmConfiguration).isNotNull(); assertThat(mediaItem.playbackProperties.drmConfiguration).isNotNull();
assertThat(mediaItem.playbackProperties.drmConfiguration.scheme).isEqualTo(C.WIDEVINE_UUID);
assertThat(mediaItem.playbackProperties.drmConfiguration.uuid).isEqualTo(C.WIDEVINE_UUID); assertThat(mediaItem.playbackProperties.drmConfiguration.uuid).isEqualTo(C.WIDEVINE_UUID);
assertThat(mediaItem.playbackProperties.drmConfiguration.licenseUri).isEqualTo(licenseUri); assertThat(mediaItem.playbackProperties.drmConfiguration.licenseUri).isEqualTo(licenseUri);
assertThat(mediaItem.playbackProperties.drmConfiguration.requestHeaders) assertThat(mediaItem.playbackProperties.drmConfiguration.requestHeaders)

View File

@ -107,7 +107,7 @@ public final class DefaultDrmSessionManagerProvider implements DrmSessionManager
DefaultDrmSessionManager drmSessionManager = DefaultDrmSessionManager drmSessionManager =
new DefaultDrmSessionManager.Builder() new DefaultDrmSessionManager.Builder()
.setUuidAndExoMediaDrmProvider( .setUuidAndExoMediaDrmProvider(
drmConfiguration.uuid, FrameworkMediaDrm.DEFAULT_PROVIDER) drmConfiguration.scheme, FrameworkMediaDrm.DEFAULT_PROVIDER)
.setMultiSession(drmConfiguration.multiSession) .setMultiSession(drmConfiguration.multiSession)
.setPlayClearSamplesWithoutKeys(drmConfiguration.playClearContentWithoutKey) .setPlayClearSamplesWithoutKeys(drmConfiguration.playClearContentWithoutKey)
.setUseDrmSessionsForClearContent(Ints.toArray(drmConfiguration.sessionForClearTypes)) .setUseDrmSessionsForClearContent(Ints.toArray(drmConfiguration.sessionForClearTypes))