Example #1
0
        public void UpdateDrmConfiguration(DRMDescription drmDescription)
        {
            Logger.Info("");

            lock (clipDrmConfiguration)
            {
                var currentDescription = clipDrmConfiguration.FirstOrDefault(o => SchemeEquals(o.Scheme, drmDescription.Scheme));
                if (currentDescription == null)
                {
                    clipDrmConfiguration.Add(drmDescription);
                    return;
                }

                if (currentDescription.IsImmutable)
                {
                    Logger.Warn($"{currentDescription.Scheme} is immutable - ignoring update request");
                    return;
                }

                if (drmDescription.KeyRequestProperties != null)
                {
                    currentDescription.KeyRequestProperties = drmDescription.KeyRequestProperties;
                }
                if (drmDescription.LicenceUrl != null)
                {
                    currentDescription.LicenceUrl = drmDescription.LicenceUrl;
                }
            }
        }
Example #2
0
        private void ParseYoutubeScheme(ContentProtection descriptor)
        {
            var doc = new XmlDocument();

            try
            {
                doc.LoadXml(descriptor.Data);
            }
            catch (Exception)
            {
                return;
            }

            if (doc.FirstChild?.ChildNodes == null)
            {
                return;
            }

            foreach (XmlNode node in doc.FirstChild?.ChildNodes)
            {
                var type = node.Attributes?.GetNamedItem("type")?.Value;
                if (!CencUtils.SupportsType(type))
                {
                    continue;
                }

                var drmDescriptor = new DRMDescription
                {
                    LicenceUrl = node.InnerText,
                    Scheme     = type
                };
                setDrmConfigurationSubject.OnNext(drmDescriptor);
            }
        }
Example #3
0
        public IDrmSession CreateDRMSession(DRMInitData initData, DRMDescription drmDescription)
        {
            var iemeKeySystemName = CencUtils.GetKeySystemName(initData.SystemId);

            if (IEME.isKeySystemSupported(iemeKeySystemName) != Status.kSupported)
            {
                Logger.Warn($"Key System: {iemeKeySystemName} is not supported");
                return(null);
            }
            return(CencSession.Create(initData, drmDescription));
        }
Example #4
0
        private static DRMDescription CreateWidevineDrmDescription()
        {
            var licenceUrl    = "https://proxy.uat.widevine.com/proxy?provider=widevine_test";
            var configuration = new DRMDescription()
            {
                Scheme               = CencUtils.GetScheme(WidevineSystemId),
                LicenceUrl           = licenceUrl,
                KeyRequestProperties = new Dictionary <string, string>()
                {
                    { "Content-Type", "text/xml; charset=utf-8" }
                },
            };

            return(configuration);
        }
Example #5
0
        private static DRMDescription CreatePlayReadyDrmDescription()
        {
            var licenceUrl =
                "https://dash-mse-test.appspot.com/api/drm/playready?drm_system=playready&source=YOUTUBE&ip=0.0.0.0&ipbits=0&expire=19000000000&sparams=ip,ipbits,expire,drm_system,source,video_id&video_id=03681262dc412c06&signature=448279561E2755699618BE0A2402189D4A30B03B.0CD6A27286BD2DAF00577FFA21928665DCD320C2&key=test_key1";
            var configuration = new DRMDescription()
            {
                Scheme               = CencUtils.GetScheme(PlayreadySystemId),
                LicenceUrl           = licenceUrl,
                KeyRequestProperties = new Dictionary <string, string>()
                {
                    { "Content-Type", "text/xml; charset=utf-8" }
                },
            };

            return(configuration);
        }
Example #6
0
        private static DRMDescription CreatePlayReadyDrmDescription()
        {
            var licenceUrl =
                "http://dash-mse-test.appspot.com/api/drm/playready?drm_system=playready&source=YOUTUBE&video_id=03681262dc412c06&ip=0.0.0.0&ipbits=0&expire=19000000000&sparams=ip,ipbits,expire,drm_system,source,video_id&signature=3BB038322E72D0B027F7233A733CD67D518AF675.2B7C39053DA46498D23F3BCB87596EF8FD8B1669&key=test_key1";
            var configuration = new DRMDescription()
            {
                Scheme               = CencUtils.GetScheme(PlayreadySystemId),
                LicenceUrl           = licenceUrl,
                KeyRequestProperties = new Dictionary <string, string>()
                {
                    { "Content-Type", "text/xml; charset=utf-8" }
                },
            };

            return(configuration);
        }
Example #7
0
 public void OnSetDrmConfiguration(DRMDescription description)
 {
     drmManager?.UpdateDrmConfiguration(description);
 }