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(
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);

View File

@ -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();

View File

@ -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;

View File

@ -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<String, String> 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);

View File

@ -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)

View File

@ -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))