asfdemux: Handle new type of DRM'd asf files.
authorEdward Hervey <edward.hervey@collabora.co.uk>
Tue, 11 Jan 2011 16:09:02 +0000 (17:09 +0100)
committerEdward Hervey <edward.hervey@collabora.co.uk>
Tue, 11 Jan 2011 16:51:31 +0000 (17:51 +0100)
These are produced by the new MS PlayReady system.

https://bugzilla.gnome.org/show_bug.cgi?id=639226

gst/asfdemux/asfheaders.c
gst/asfdemux/asfheaders.h
gst/asfdemux/gstasfdemux.c

index fdbf3d0..ae07639 100644 (file)
@@ -151,6 +151,13 @@ const ASFGuidHash asf_object_guids[] = {
   {ASF_OBJ_MARKER, "ASF_OBJ_MARKER",
         {0xf487cd01, 0x11cfa951, 0xc000e68e, 0x6553200c}
       },
+  /* This guid is definitely used for encryption (mentioned in MS smooth
+   * streaming docs) in new PlayReady (c) (tm) (wtf) system, but I haven't
+   * found a proper name for it.
+   * (Edward Jan 11 2011).*/
+  {ASF_OBJ_UNKNOWN_ENCRYPTION_OBJECT, "ASF_OBJ_UNKNOWN_ENCRYPTION_OBJECT",
+        {0x9a04f079, 0x42869840, 0x5be692ab, 0x955f88e0}
+      },
   {ASF_OBJ_UNDEFINED, "ASF_OBJ_UNDEFINED",
         {0, 0, 0, 0}
       }
index ff43fa6..db1101a 100644 (file)
@@ -67,7 +67,8 @@ typedef enum {
   ASF_OBJ_EXT_CONTENT_ENCRYPTION,
   ASF_OBJ_DIGITAL_SIGNATURE_OBJECT,
   ASF_OBJ_SCRIPT_COMMAND,
-  ASF_OBJ_MARKER
+  ASF_OBJ_MARKER,
+  ASF_OBJ_UNKNOWN_ENCRYPTION_OBJECT
 } AsfObjectID;
 
 typedef enum {
index 88bff47..3d32e0a 100644 (file)
@@ -3653,6 +3653,7 @@ gst_asf_demux_process_object (GstASFDemux * demux, guint8 ** p_data,
     case ASF_OBJ_CONTENT_ENCRYPTION:
     case ASF_OBJ_EXT_CONTENT_ENCRYPTION:
     case ASF_OBJ_DIGITAL_SIGNATURE_OBJECT:
+    case ASF_OBJ_UNKNOWN_ENCRYPTION_OBJECT:
       goto error_encrypted;
     case ASF_OBJ_CONCEAL_NONE:
     case ASF_OBJ_HEAD2: