mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
Rename MediaItem.DrmConfiguration.requestHeaders
to add license
Both license and provisioning requests could be considered 'DRM requests', and these headers are only sent on license requests, so rename them to reflect that. The old field remains deprecated for backwards compatibility. PiperOrigin-RevId: 397980021
This commit is contained in:
parent
9932c12d77
commit
dd39513a2e
@ -402,7 +402,7 @@ public class DownloadTracker {
|
|||||||
drmConfiguration.licenseUri.toString(),
|
drmConfiguration.licenseUri.toString(),
|
||||||
drmConfiguration.forceDefaultLicenseUri,
|
drmConfiguration.forceDefaultLicenseUri,
|
||||||
httpDataSourceFactory,
|
httpDataSourceFactory,
|
||||||
drmConfiguration.requestHeaders,
|
drmConfiguration.licenseRequestHeaders,
|
||||||
new DrmSessionEventListener.EventDispatcher());
|
new DrmSessionEventListener.EventDispatcher());
|
||||||
try {
|
try {
|
||||||
keySetId = offlineLicenseHelper.downloadLicense(format);
|
keySetId = offlineLicenseHelper.downloadLicense(format);
|
||||||
|
@ -212,9 +212,10 @@ public class IntentUtil {
|
|||||||
DRM_FORCE_DEFAULT_LICENSE_URI_EXTRA + extrasKeySuffix,
|
DRM_FORCE_DEFAULT_LICENSE_URI_EXTRA + extrasKeySuffix,
|
||||||
drmConfiguration.forceDefaultLicenseUri);
|
drmConfiguration.forceDefaultLicenseUri);
|
||||||
|
|
||||||
String[] drmKeyRequestProperties = new String[drmConfiguration.requestHeaders.size() * 2];
|
String[] drmKeyRequestProperties =
|
||||||
|
new String[drmConfiguration.licenseRequestHeaders.size() * 2];
|
||||||
int index = 0;
|
int index = 0;
|
||||||
for (Map.Entry<String, String> entry : drmConfiguration.requestHeaders.entrySet()) {
|
for (Map.Entry<String, String> entry : drmConfiguration.licenseRequestHeaders.entrySet()) {
|
||||||
drmKeyRequestProperties[index++] = entry.getKey();
|
drmKeyRequestProperties[index++] = entry.getKey();
|
||||||
drmKeyRequestProperties[index++] = entry.getValue();
|
drmKeyRequestProperties[index++] = entry.getValue();
|
||||||
}
|
}
|
||||||
|
@ -527,6 +527,6 @@ public class PlayerActivity extends AppCompatActivity
|
|||||||
@Nullable
|
@Nullable
|
||||||
private static Map<String, String> getDrmRequestHeaders(MediaItem item) {
|
private static Map<String, String> getDrmRequestHeaders(MediaItem item) {
|
||||||
MediaItem.DrmConfiguration drmConfiguration = item.playbackProperties.drmConfiguration;
|
MediaItem.DrmConfiguration drmConfiguration = item.playbackProperties.drmConfiguration;
|
||||||
return drmConfiguration != null ? drmConfiguration.requestHeaders : null;
|
return drmConfiguration != null ? drmConfiguration.licenseRequestHeaders : null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -146,7 +146,7 @@ public final class DefaultMediaItemConverter implements MediaItemConverter {
|
|||||||
JSONObject json = new JSONObject();
|
JSONObject json = new JSONObject();
|
||||||
json.put(KEY_UUID, drmConfiguration.scheme);
|
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.licenseRequestHeaders));
|
||||||
return json;
|
return json;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -173,8 +173,8 @@ public final class DefaultMediaItemConverter implements MediaItemConverter {
|
|||||||
if (drmConfiguration.licenseUri != null) {
|
if (drmConfiguration.licenseUri != null) {
|
||||||
exoPlayerConfigJson.put("licenseUrl", drmConfiguration.licenseUri);
|
exoPlayerConfigJson.put("licenseUrl", drmConfiguration.licenseUri);
|
||||||
}
|
}
|
||||||
if (!drmConfiguration.requestHeaders.isEmpty()) {
|
if (!drmConfiguration.licenseRequestHeaders.isEmpty()) {
|
||||||
exoPlayerConfigJson.put("headers", new JSONObject(drmConfiguration.requestHeaders));
|
exoPlayerConfigJson.put("headers", new JSONObject(drmConfiguration.licenseRequestHeaders));
|
||||||
}
|
}
|
||||||
|
|
||||||
return exoPlayerConfigJson;
|
return exoPlayerConfigJson;
|
||||||
|
@ -555,7 +555,7 @@ public final class MediaItem implements Bundleable {
|
|||||||
private Builder(DrmConfiguration drmConfiguration) {
|
private Builder(DrmConfiguration drmConfiguration) {
|
||||||
this.scheme = drmConfiguration.scheme;
|
this.scheme = drmConfiguration.scheme;
|
||||||
this.licenseUri = drmConfiguration.licenseUri;
|
this.licenseUri = drmConfiguration.licenseUri;
|
||||||
this.licenseRequestHeaders = drmConfiguration.requestHeaders;
|
this.licenseRequestHeaders = drmConfiguration.licenseRequestHeaders;
|
||||||
this.multiSession = drmConfiguration.multiSession;
|
this.multiSession = drmConfiguration.multiSession;
|
||||||
this.playClearContentWithoutKey = drmConfiguration.playClearContentWithoutKey;
|
this.playClearContentWithoutKey = drmConfiguration.playClearContentWithoutKey;
|
||||||
this.forceDefaultLicenseUri = drmConfiguration.forceDefaultLicenseUri;
|
this.forceDefaultLicenseUri = drmConfiguration.forceDefaultLicenseUri;
|
||||||
@ -690,8 +690,11 @@ public final class MediaItem implements Bundleable {
|
|||||||
*/
|
*/
|
||||||
@Nullable public final Uri licenseUri;
|
@Nullable public final Uri licenseUri;
|
||||||
|
|
||||||
/** The headers to attach to the request to the DRM license server. */
|
/** @deprecated Use {@link #licenseRequestHeaders} instead. */
|
||||||
public final ImmutableMap<String, String> requestHeaders;
|
@Deprecated public final ImmutableMap<String, String> requestHeaders;
|
||||||
|
|
||||||
|
/** The headers to attach to requests sent to the DRM license server. */
|
||||||
|
public final ImmutableMap<String, String> licenseRequestHeaders;
|
||||||
|
|
||||||
/** Whether the DRM configuration is multi session enabled. */
|
/** Whether the DRM configuration is multi session enabled. */
|
||||||
public final boolean multiSession;
|
public final boolean multiSession;
|
||||||
@ -713,12 +716,14 @@ public final class MediaItem implements Bundleable {
|
|||||||
|
|
||||||
@Nullable private final byte[] keySetId;
|
@Nullable private final byte[] keySetId;
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation") // Setting deprecated field
|
||||||
private DrmConfiguration(Builder builder) {
|
private DrmConfiguration(Builder builder) {
|
||||||
checkState(!(builder.forceDefaultLicenseUri && builder.licenseUri == null));
|
checkState(!(builder.forceDefaultLicenseUri && builder.licenseUri == null));
|
||||||
this.scheme = checkNotNull(builder.scheme);
|
this.scheme = checkNotNull(builder.scheme);
|
||||||
this.uuid = scheme;
|
this.uuid = scheme;
|
||||||
this.licenseUri = builder.licenseUri;
|
this.licenseUri = builder.licenseUri;
|
||||||
this.requestHeaders = builder.licenseRequestHeaders;
|
this.requestHeaders = builder.licenseRequestHeaders;
|
||||||
|
this.licenseRequestHeaders = builder.licenseRequestHeaders;
|
||||||
this.multiSession = builder.multiSession;
|
this.multiSession = builder.multiSession;
|
||||||
this.forceDefaultLicenseUri = builder.forceDefaultLicenseUri;
|
this.forceDefaultLicenseUri = builder.forceDefaultLicenseUri;
|
||||||
this.playClearContentWithoutKey = builder.playClearContentWithoutKey;
|
this.playClearContentWithoutKey = builder.playClearContentWithoutKey;
|
||||||
@ -752,7 +757,7 @@ public final class MediaItem implements Bundleable {
|
|||||||
DrmConfiguration other = (DrmConfiguration) obj;
|
DrmConfiguration other = (DrmConfiguration) obj;
|
||||||
return scheme.equals(other.scheme)
|
return scheme.equals(other.scheme)
|
||||||
&& Util.areEqual(licenseUri, other.licenseUri)
|
&& Util.areEqual(licenseUri, other.licenseUri)
|
||||||
&& Util.areEqual(requestHeaders, other.requestHeaders)
|
&& Util.areEqual(licenseRequestHeaders, other.licenseRequestHeaders)
|
||||||
&& multiSession == other.multiSession
|
&& multiSession == other.multiSession
|
||||||
&& forceDefaultLicenseUri == other.forceDefaultLicenseUri
|
&& forceDefaultLicenseUri == other.forceDefaultLicenseUri
|
||||||
&& playClearContentWithoutKey == other.playClearContentWithoutKey
|
&& playClearContentWithoutKey == other.playClearContentWithoutKey
|
||||||
@ -764,7 +769,7 @@ public final class MediaItem implements Bundleable {
|
|||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
int result = scheme.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 + licenseRequestHeaders.hashCode();
|
||||||
result = 31 * result + (multiSession ? 1 : 0);
|
result = 31 * result + (multiSession ? 1 : 0);
|
||||||
result = 31 * result + (forceDefaultLicenseUri ? 1 : 0);
|
result = 31 * result + (forceDefaultLicenseUri ? 1 : 0);
|
||||||
result = 31 * result + (playClearContentWithoutKey ? 1 : 0);
|
result = 31 * result + (playClearContentWithoutKey ? 1 : 0);
|
||||||
|
@ -86,7 +86,7 @@ public class MediaItemTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@SuppressWarnings("deprecation") // Testing deprecated methods
|
@SuppressWarnings("deprecation") // Testing deprecated methods and fields
|
||||||
public void builderSetDrmPropertiesIndividually() {
|
public void builderSetDrmPropertiesIndividually() {
|
||||||
Uri licenseUri = Uri.parse(URI_STRING);
|
Uri licenseUri = Uri.parse(URI_STRING);
|
||||||
Map<String, String> requestHeaders = new HashMap<>();
|
Map<String, String> requestHeaders = new HashMap<>();
|
||||||
@ -111,6 +111,8 @@ public class MediaItemTest {
|
|||||||
assertThat(mediaItem.playbackProperties.drmConfiguration.licenseUri).isEqualTo(licenseUri);
|
assertThat(mediaItem.playbackProperties.drmConfiguration.licenseUri).isEqualTo(licenseUri);
|
||||||
assertThat(mediaItem.playbackProperties.drmConfiguration.requestHeaders)
|
assertThat(mediaItem.playbackProperties.drmConfiguration.requestHeaders)
|
||||||
.isEqualTo(requestHeaders);
|
.isEqualTo(requestHeaders);
|
||||||
|
assertThat(mediaItem.playbackProperties.drmConfiguration.licenseRequestHeaders)
|
||||||
|
.isEqualTo(requestHeaders);
|
||||||
assertThat(mediaItem.playbackProperties.drmConfiguration.multiSession).isTrue();
|
assertThat(mediaItem.playbackProperties.drmConfiguration.multiSession).isTrue();
|
||||||
assertThat(mediaItem.playbackProperties.drmConfiguration.forceDefaultLicenseUri).isTrue();
|
assertThat(mediaItem.playbackProperties.drmConfiguration.forceDefaultLicenseUri).isTrue();
|
||||||
assertThat(mediaItem.playbackProperties.drmConfiguration.playClearContentWithoutKey).isTrue();
|
assertThat(mediaItem.playbackProperties.drmConfiguration.playClearContentWithoutKey).isTrue();
|
||||||
@ -120,7 +122,7 @@ public class MediaItemTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@SuppressWarnings("deprecation") // Testing deprecated methods
|
@SuppressWarnings("deprecation") // Testing deprecated methods and fields
|
||||||
public void builderSetDrmConfigurationOverwritesIndividualProperties() {
|
public void builderSetDrmConfigurationOverwritesIndividualProperties() {
|
||||||
Uri licenseUri = Uri.parse(URI_STRING);
|
Uri licenseUri = Uri.parse(URI_STRING);
|
||||||
Map<String, String> requestHeaders = new HashMap<>();
|
Map<String, String> requestHeaders = new HashMap<>();
|
||||||
@ -145,6 +147,7 @@ public class MediaItemTest {
|
|||||||
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();
|
||||||
|
assertThat(mediaItem.playbackProperties.drmConfiguration.licenseRequestHeaders).isEmpty();
|
||||||
assertThat(mediaItem.playbackProperties.drmConfiguration.multiSession).isFalse();
|
assertThat(mediaItem.playbackProperties.drmConfiguration.multiSession).isFalse();
|
||||||
assertThat(mediaItem.playbackProperties.drmConfiguration.forceDefaultLicenseUri).isFalse();
|
assertThat(mediaItem.playbackProperties.drmConfiguration.forceDefaultLicenseUri).isFalse();
|
||||||
assertThat(mediaItem.playbackProperties.drmConfiguration.playClearContentWithoutKey).isFalse();
|
assertThat(mediaItem.playbackProperties.drmConfiguration.playClearContentWithoutKey).isFalse();
|
||||||
@ -153,6 +156,7 @@ public class MediaItemTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@SuppressWarnings("deprecation") // Testing deprecated field
|
||||||
public void builderSetDrmConfiguration() {
|
public void builderSetDrmConfiguration() {
|
||||||
Uri licenseUri = Uri.parse(URI_STRING);
|
Uri licenseUri = Uri.parse(URI_STRING);
|
||||||
Map<String, String> requestHeaders = new HashMap<>();
|
Map<String, String> requestHeaders = new HashMap<>();
|
||||||
@ -179,6 +183,8 @@ public class MediaItemTest {
|
|||||||
assertThat(mediaItem.playbackProperties.drmConfiguration.licenseUri).isEqualTo(licenseUri);
|
assertThat(mediaItem.playbackProperties.drmConfiguration.licenseUri).isEqualTo(licenseUri);
|
||||||
assertThat(mediaItem.playbackProperties.drmConfiguration.requestHeaders)
|
assertThat(mediaItem.playbackProperties.drmConfiguration.requestHeaders)
|
||||||
.isEqualTo(requestHeaders);
|
.isEqualTo(requestHeaders);
|
||||||
|
assertThat(mediaItem.playbackProperties.drmConfiguration.licenseRequestHeaders)
|
||||||
|
.isEqualTo(requestHeaders);
|
||||||
assertThat(mediaItem.playbackProperties.drmConfiguration.multiSession).isTrue();
|
assertThat(mediaItem.playbackProperties.drmConfiguration.multiSession).isTrue();
|
||||||
assertThat(mediaItem.playbackProperties.drmConfiguration.forceDefaultLicenseUri).isTrue();
|
assertThat(mediaItem.playbackProperties.drmConfiguration.forceDefaultLicenseUri).isTrue();
|
||||||
assertThat(mediaItem.playbackProperties.drmConfiguration.playClearContentWithoutKey).isTrue();
|
assertThat(mediaItem.playbackProperties.drmConfiguration.playClearContentWithoutKey).isTrue();
|
||||||
|
@ -101,7 +101,7 @@ public final class DefaultDrmSessionManagerProvider implements DrmSessionManager
|
|||||||
drmConfiguration.licenseUri == null ? null : drmConfiguration.licenseUri.toString(),
|
drmConfiguration.licenseUri == null ? null : drmConfiguration.licenseUri.toString(),
|
||||||
drmConfiguration.forceDefaultLicenseUri,
|
drmConfiguration.forceDefaultLicenseUri,
|
||||||
dataSourceFactory);
|
dataSourceFactory);
|
||||||
for (Map.Entry<String, String> entry : drmConfiguration.requestHeaders.entrySet()) {
|
for (Map.Entry<String, String> entry : drmConfiguration.licenseRequestHeaders.entrySet()) {
|
||||||
httpDrmCallback.setKeyRequestProperty(entry.getKey(), entry.getValue());
|
httpDrmCallback.setKeyRequestProperty(entry.getKey(), entry.getValue());
|
||||||
}
|
}
|
||||||
DefaultDrmSessionManager drmSessionManager =
|
DefaultDrmSessionManager drmSessionManager =
|
||||||
|
Loading…
x
Reference in New Issue
Block a user