diff options
author | Philippe Normand <philn@igalia.com> | 2016-11-04 09:56:33 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2016-11-04 17:04:59 +0200 |
commit | dd0c56b4a2a506bdb2168441c18b791bc1369fb1 (patch) | |
tree | 096fbbb13f1d6b1e6e9ff56a18a96c83a3b6252b /tests | |
parent | 4899bf09268d8af6f426e5e82baf13eef30dca64 (diff) | |
download | gstreamer-plugins-bad-dd0c56b4a2a506bdb2168441c18b791bc1369fb1.tar.gz |
mpdparser: MS PlayReady ContentProtection parsing
The "pro" (PlayReady Object) element contents are now base64-decoded
and properly stored in Protection events.
https://bugzilla.gnome.org/show_bug.cgi?id=773936
Diffstat (limited to 'tests')
-rw-r--r-- | tests/check/elements/dash_demux.c | 9 | ||||
-rw-r--r-- | tests/check/elements/dash_mpd.c | 6 |
2 files changed, 13 insertions, 2 deletions
diff --git a/tests/check/elements/dash_demux.c b/tests/check/elements/dash_demux.c index 7733044c1..ae89ced09 100644 --- a/tests/check/elements/dash_demux.c +++ b/tests/check/elements/dash_demux.c @@ -1380,6 +1380,9 @@ testContentProtectionDashdemuxSendsEvent (GstAdaptiveDemuxTestEngine * engine, fail_if (str == NULL); str = strstr (value, "</ContentProtection>"); fail_if (str == NULL); + } else if (g_strcmp0 (system_id, "9a04f079-9840-4286-ab92-e65be0885f95") == 0) { + fail_unless (g_strcmp0 (origin, "dash/mpd") == 0); + fail_unless (g_strcmp0 (value, "test") == 0); } else { fail ("unexpected content protection event '%s'", system_id); } @@ -1412,6 +1415,7 @@ GST_START_TEST (testContentProtection) "<?xml version=\"1.0\" encoding=\"utf-8\"?>" "<MPD xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" " xmlns=\"urn:mpeg:DASH:schema:MPD:2011\"" + " xmlns:mspr=\"urn:microsoft:playready\"" " xsi:schemaLocation=\"urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd\"" " profiles=\"urn:mpeg:dash:profile:isoff-on-demand:2011\"" " type=\"static\"" @@ -1444,6 +1448,9 @@ GST_START_TEST (testContentProtection) " <mas:MarlinContentId>urn:marlin:kid:02020202020202020202020202020202</mas:MarlinContentId>" " </mas:MarlinContentIds>" " </ContentProtection>" + " <ContentProtection schemeIdUri=\"urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95\" value=\"MSPR 2.0\">" + " <mspr:pro>dGVzdA==</mspr:pro>" + " </ContentProtection>" " <Representation id=\"242\"" " codecs=\"vp9\"" " width=\"426\"" @@ -1497,7 +1504,7 @@ GST_START_TEST (testContentProtection) gst_structure_get_uint (testData->countContentProtectionEvents, "video_00", &event_count); - fail_unless (event_count == 2); + fail_unless (event_count == 3); g_object_unref (testData); if (http_src_test_data.data) diff --git a/tests/check/elements/dash_mpd.c b/tests/check/elements/dash_mpd.c index 783ecae65..5585f4980 100644 --- a/tests/check/elements/dash_mpd.c +++ b/tests/check/elements/dash_mpd.c @@ -1301,6 +1301,7 @@ GST_START_TEST (dash_mpdparser_contentProtection_no_value) const gchar *xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\"" + " xmlns:mspr=\"urn:microsoft:playready\"" " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">" " <Period>" " <AdaptationSet>" @@ -1309,6 +1310,9 @@ GST_START_TEST (dash_mpdparser_contentProtection_no_value) " <mas:MarlinContentIds>" " <mas:MarlinContentId>urn:marlin:kid:02020202020202020202020202020202</mas:MarlinContentId>" " </mas:MarlinContentIds>" + " </ContentProtection>" + " <ContentProtection schemeIdUri=\"urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95\" value=\"MSPR 2.0\">" + " <mspr:pro>dGVzdA==</mspr:pro>" " </ContentProtection>" "</AdaptationSet></Period></MPD>"; gboolean ret; @@ -1321,7 +1325,7 @@ GST_START_TEST (dash_mpdparser_contentProtection_no_value) periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data; adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data; representationBase = adaptationSet->RepresentationBase; - assert_equals_int (g_list_length (representationBase->ContentProtection), 2); + assert_equals_int (g_list_length (representationBase->ContentProtection), 3); contentProtection = (GstDescriptorType *) g_list_nth (representationBase->ContentProtection, 1)->data; |