mirror of
https://github.com/androidx/media.git
synced 2025-05-17 04:29:55 +08:00
[DASH][ClearKey] Parse ClearKey license URL in MPD.
This commit is contained in:
parent
6ac1306ec2
commit
cfd13ce6d9
@ -263,7 +263,7 @@ public final class DrmInitData implements Comparator<SchemeData>, Parcelable {
|
|||||||
*/
|
*/
|
||||||
public final UUID uuid;
|
public final UUID uuid;
|
||||||
/** The URL of the server to which license requests should be made. May be null if unknown. */
|
/** The URL of the server to which license requests should be made. May be null if unknown. */
|
||||||
@Nullable public final String licenseServerUrl;
|
@Nullable public String licenseServerUrl;
|
||||||
/** The mimeType of {@link #data}. */
|
/** The mimeType of {@link #data}. */
|
||||||
public final String mimeType;
|
public final String mimeType;
|
||||||
/** The initialization data. May be null for scheme support checks only. */
|
/** The initialization data. May be null for scheme support checks only. */
|
||||||
|
@ -429,6 +429,15 @@ public class DashManifestParser extends DefaultHandler
|
|||||||
drmSchemeType = contentProtection.first;
|
drmSchemeType = contentProtection.first;
|
||||||
}
|
}
|
||||||
if (contentProtection.second != null) {
|
if (contentProtection.second != null) {
|
||||||
|
// In case of clear key, update the licence server url of
|
||||||
|
// previously parsed common encryption drmSchemeData.
|
||||||
|
if (drmSchemeType != null && drmSchemeType == "clearkey") {
|
||||||
|
for (int i = 0;i<drmSchemeDatas.size();i++) {
|
||||||
|
if (drmSchemeDatas.get(i).uuid == C.COMMON_PSSH_UUID
|
||||||
|
&& drmSchemeDatas.get(i).licenseServerUrl == null)
|
||||||
|
drmSchemeDatas.get(i).licenseServerUrl = contentProtection.second.licenseServerUrl;
|
||||||
|
}
|
||||||
|
}
|
||||||
drmSchemeDatas.add(contentProtection.second);
|
drmSchemeDatas.add(contentProtection.second);
|
||||||
}
|
}
|
||||||
} else if (XmlPullParserUtil.isStartTag(xpp, "ContentComponent")) {
|
} else if (XmlPullParserUtil.isStartTag(xpp, "ContentComponent")) {
|
||||||
@ -597,6 +606,10 @@ public class DashManifestParser extends DefaultHandler
|
|||||||
case "urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed":
|
case "urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed":
|
||||||
uuid = C.WIDEVINE_UUID;
|
uuid = C.WIDEVINE_UUID;
|
||||||
break;
|
break;
|
||||||
|
case "urn:uuid:e2719d58-a985-b3c9-781a-b030af78d30e":
|
||||||
|
uuid = C.CLEARKEY_UUID;
|
||||||
|
schemeType = "clearkey";
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -604,7 +617,10 @@ public class DashManifestParser extends DefaultHandler
|
|||||||
|
|
||||||
do {
|
do {
|
||||||
xpp.next();
|
xpp.next();
|
||||||
if (XmlPullParserUtil.isStartTag(xpp, "ms:laurl")) {
|
if (XmlPullParserUtil.isStartTag(xpp, "clearkey:Laurl")
|
||||||
|
&& xpp.next() == XmlPullParser.TEXT) {
|
||||||
|
licenseServerUrl = xpp.getText();
|
||||||
|
} else if (XmlPullParserUtil.isStartTag(xpp, "ms:laurl")) {
|
||||||
licenseServerUrl = xpp.getAttributeValue(null, "licenseUrl");
|
licenseServerUrl = xpp.getAttributeValue(null, "licenseUrl");
|
||||||
} else if (data == null
|
} else if (data == null
|
||||||
&& XmlPullParserUtil.isStartTagIgnorePrefix(xpp, "pssh")
|
&& XmlPullParserUtil.isStartTagIgnorePrefix(xpp, "pssh")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user