From e804df8c1f577bc45d6bd3fd328da9f097895879 Mon Sep 17 00:00:00 2001 From: ibaker Date: Tue, 21 Sep 2021 12:11:07 +0100 Subject: [PATCH] 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 --- .../android/exoplayer2/demo/IntentUtil.java | 2 +- .../exoplayer2/demo/PlayerActivity.java | 2 +- .../ext/cast/DefaultMediaItemConverter.java | 6 ++-- .../google/android/exoplayer2/MediaItem.java | 36 ++++++++++--------- .../android/exoplayer2/MediaItemTest.java | 3 ++ .../drm/DefaultDrmSessionManagerProvider.java | 2 +- 6 files changed, 29 insertions(+), 22 deletions(-) diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/IntentUtil.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/IntentUtil.java index c679c871ae..ec0495202f 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/IntentUtil.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/IntentUtil.java @@ -203,7 +203,7 @@ public class IntentUtil { private static void addDrmConfigurationToIntent( 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( DRM_LICENSE_URI_EXTRA + extrasKeySuffix, drmConfiguration.licenseUri != null ? drmConfiguration.licenseUri.toString() : null); diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java index f8310066cd..43e134b565 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java @@ -329,7 +329,7 @@ public class PlayerActivity extends AppCompatActivity showToast(R.string.error_drm_unsupported_before_api_18); finish(); return Collections.emptyList(); - } else if (!FrameworkMediaDrm.isCryptoSchemeSupported(drmConfiguration.uuid)) { + } else if (!FrameworkMediaDrm.isCryptoSchemeSupported(drmConfiguration.scheme)) { showToast(R.string.error_drm_unsupported_scheme); finish(); return Collections.emptyList(); diff --git a/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/DefaultMediaItemConverter.java b/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/DefaultMediaItemConverter.java index e03c9a4a7c..d3ef14cf73 100644 --- a/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/DefaultMediaItemConverter.java +++ b/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/DefaultMediaItemConverter.java @@ -144,7 +144,7 @@ public final class DefaultMediaItemConverter implements MediaItemConverter { private static JSONObject getDrmConfigurationJson(MediaItem.DrmConfiguration drmConfiguration) throws JSONException { 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_REQUEST_HEADERS, new JSONObject(drmConfiguration.requestHeaders)); return json; @@ -159,9 +159,9 @@ public final class DefaultMediaItemConverter implements MediaItemConverter { MediaItem.DrmConfiguration drmConfiguration = mediaItem.playbackProperties.drmConfiguration; String drmScheme; - if (C.WIDEVINE_UUID.equals(drmConfiguration.uuid)) { + if (C.WIDEVINE_UUID.equals(drmConfiguration.scheme)) { drmScheme = "widevine"; - } else if (C.PLAYREADY_UUID.equals(drmConfiguration.uuid)) { + } else if (C.PLAYREADY_UUID.equals(drmConfiguration.scheme)) { drmScheme = "playready"; } else { return null; diff --git a/library/common/src/main/java/com/google/android/exoplayer2/MediaItem.java b/library/common/src/main/java/com/google/android/exoplayer2/MediaItem.java index 46fa2afa07..ad6167042f 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/MediaItem.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/MediaItem.java @@ -261,7 +261,7 @@ public final class MediaItem implements Bundleable { */ @Deprecated public Builder setDrmUuid(@Nullable UUID uuid) { - drmConfiguration.setNullableUuid(uuid); + drmConfiguration.setNullableScheme(uuid); return this; } @@ -486,7 +486,7 @@ public final class MediaItem implements Bundleable { /** Returns a new {@link MediaItem} instance with the current builder values. */ public MediaItem build() { // 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 Uri uri = this.uri; if (uri != null) { @@ -494,7 +494,7 @@ public final class MediaItem implements Bundleable { new PlaybackProperties( uri, mimeType, - drmConfiguration.uuid != null ? drmConfiguration.build() : null, + drmConfiguration.scheme != null ? drmConfiguration.build() : null, adsConfiguration, streamKeys, customCacheKey, @@ -522,7 +522,7 @@ public final class MediaItem implements Bundleable { public static final class Builder { // TODO remove @Nullable annotation when the deprecated zero-arg constructor is removed. - @Nullable private UUID uuid; + @Nullable private UUID scheme; @Nullable private Uri licenseUri; private ImmutableMap licenseRequestHeaders; private boolean multiSession; @@ -534,10 +534,10 @@ public final class MediaItem implements Bundleable { /** * 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) { - this.uuid = uuid; + public Builder(UUID scheme) { + this.scheme = scheme; this.licenseRequestHeaders = ImmutableMap.of(); this.sessionForClearTypes = ImmutableList.of(); } @@ -553,7 +553,7 @@ public final class MediaItem implements Bundleable { } private Builder(DrmConfiguration drmConfiguration) { - this.uuid = drmConfiguration.uuid; + this.scheme = drmConfiguration.scheme; this.licenseUri = drmConfiguration.licenseUri; this.licenseRequestHeaders = drmConfiguration.requestHeaders; this.multiSession = drmConfiguration.multiSession; @@ -564,8 +564,8 @@ public final class MediaItem implements Bundleable { } /** Sets the {@link UUID} of the protection scheme. */ - public Builder setUuid(UUID uuid) { - this.uuid = uuid; + public Builder setScheme(UUID scheme) { + this.scheme = scheme; return this; } @@ -574,8 +574,8 @@ public final class MediaItem implements Bundleable { * MediaItem.Builder#setDrmUuid(UUID)}. */ @Deprecated - private Builder setNullableUuid(@Nullable UUID uuid) { - this.uuid = uuid; + private Builder setNullableScheme(@Nullable UUID scheme) { + this.scheme = scheme; return this; } @@ -679,7 +679,10 @@ public final class MediaItem implements Bundleable { } /** 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 @@ -712,7 +715,8 @@ public final class MediaItem implements Bundleable { private DrmConfiguration(Builder builder) { checkState(!(builder.forceDefaultLicenseUri && builder.licenseUri == null)); - this.uuid = checkNotNull(builder.uuid); + this.scheme = checkNotNull(builder.scheme); + this.uuid = scheme; this.licenseUri = builder.licenseUri; this.requestHeaders = builder.licenseRequestHeaders; this.multiSession = builder.multiSession; @@ -746,7 +750,7 @@ public final class MediaItem implements Bundleable { } DrmConfiguration other = (DrmConfiguration) obj; - return uuid.equals(other.uuid) + return scheme.equals(other.scheme) && Util.areEqual(licenseUri, other.licenseUri) && Util.areEqual(requestHeaders, other.requestHeaders) && multiSession == other.multiSession @@ -758,7 +762,7 @@ public final class MediaItem implements Bundleable { @Override public int hashCode() { - int result = uuid.hashCode(); + int result = scheme.hashCode(); result = 31 * result + (licenseUri != null ? licenseUri.hashCode() : 0); result = 31 * result + requestHeaders.hashCode(); result = 31 * result + (multiSession ? 1 : 0); diff --git a/library/common/src/test/java/com/google/android/exoplayer2/MediaItemTest.java b/library/common/src/test/java/com/google/android/exoplayer2/MediaItemTest.java index 207a4ad28f..dc232c4bcf 100644 --- a/library/common/src/test/java/com/google/android/exoplayer2/MediaItemTest.java +++ b/library/common/src/test/java/com/google/android/exoplayer2/MediaItemTest.java @@ -106,6 +106,7 @@ public class MediaItemTest { .build(); 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.licenseUri).isEqualTo(licenseUri); assertThat(mediaItem.playbackProperties.drmConfiguration.requestHeaders) @@ -140,6 +141,7 @@ public class MediaItemTest { .build(); 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.licenseUri).isNull(); assertThat(mediaItem.playbackProperties.drmConfiguration.requestHeaders).isEmpty(); @@ -172,6 +174,7 @@ public class MediaItemTest { .build(); 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.licenseUri).isEqualTo(licenseUri); assertThat(mediaItem.playbackProperties.drmConfiguration.requestHeaders) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManagerProvider.java b/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManagerProvider.java index a11af2f8a0..e9cd7aa1de 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManagerProvider.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManagerProvider.java @@ -107,7 +107,7 @@ public final class DefaultDrmSessionManagerProvider implements DrmSessionManager DefaultDrmSessionManager drmSessionManager = new DefaultDrmSessionManager.Builder() .setUuidAndExoMediaDrmProvider( - drmConfiguration.uuid, FrameworkMediaDrm.DEFAULT_PROVIDER) + drmConfiguration.scheme, FrameworkMediaDrm.DEFAULT_PROVIDER) .setMultiSession(drmConfiguration.multiSession) .setPlayClearSamplesWithoutKeys(drmConfiguration.playClearContentWithoutKey) .setUseDrmSessionsForClearContent(Ints.toArray(drmConfiguration.sessionForClearTypes))