SmartAudio/package/multimedia/gst1-plugins-bad/patches/0009-mssdemux-support-playr...

36 lines
1.3 KiB
Diff
Executable File

diff --git a/ext/smoothstreaming/gstmssdemux.c b/ext/smoothstreaming/gstmssdemux.c
index 85f0ec8..55304ed 100644
--- a/ext/smoothstreaming/gstmssdemux.c
+++ b/ext/smoothstreaming/gstmssdemux.c
@@ -385,6 +385,7 @@ _create_pad (GstMssDemux * mssdemux, GstMssStream * manifeststream)
return srcpad;
}
+#define PLAYREADY_SYSTEM_ID "9A04F079-9840-4286-AB92-E65BE0885F95"
static void
gst_mss_demux_apply_protection_system (GstCaps * caps,
const gchar * selected_system)
@@ -392,13 +393,16 @@ gst_mss_demux_apply_protection_system (GstCaps * caps,
GstStructure *s;
g_return_if_fail (selected_system);
- s = gst_caps_get_structure (caps, 0);
- gst_structure_set (s,
- "original-media-type", G_TYPE_STRING, gst_structure_get_name (s),
- GST_PROTECTION_SYSTEM_ID_CAPS_FIELD, G_TYPE_STRING, selected_system,
- NULL);
- gst_structure_set_name (s, "application/x-cenc");
+ /* if playready is encrypted, application/x-cenc is not set */
+ if (g_ascii_strcasecmp (selected_system, PLAYREADY_SYSTEM_ID) != 0) {
+ s = gst_caps_get_structure (caps, 0);
+ gst_structure_set (s,
+ "original-media-type", G_TYPE_STRING, gst_structure_get_name (s),
+ GST_PROTECTION_SYSTEM_ID_CAPS_FIELD, G_TYPE_STRING, selected_system,
+ NULL);
+ gst_structure_set_name (s, "application/x-cenc");
+ }
}
static gboolean