Re: Bug with new interface dependencies on custom IStream with SDK 9.5?

Tech-Archive recommends: Fix windows errors by optimizing your registry



I wrote some code that dumps all of the objects in a WMV file so that I
could peek at what's in my files that may be triggering the DRM code in the
WMV decoder.

I based my code off of revision 01.20.03 (December 2004) of the ASF
specification that is available on Microsoft's website.

At first I suspected that my WMV's may have ASF_Content_Encryption_Object,
ASF_Extended_Content_Encryption_Object, or
ASF_Advanced_Content_Encryption_Object objects in it. That turned out to be
not true. BUT, my WMV's did have an ASF_Header_Extension_Object in them,
using the 9.5 encoder, when before, using the 8 encoder, they did not. I
thought that was curious and so I took a look at the payload in the header
extension object and sure enough, two objects popped out that aren't
documented in the version of the ASF spec that I have. I'd bet money that
the two undocumented objects are DRM related since the header extension
object is supposed to contain objects that extend the format while
maintaining backward compatibility.

Bellow is the dump of the little tool I wrote:

ASF Object: guidASFHeaderObject
Header Sub-Object: guidExtendedContentDescriptionObject
Header Sub-Object: guidContentDescriptionObject
Header Sub-Object: guidFilePropertiesObject
Header Sub-Object: guidHeaderExtensionObject
Extended Header Sub-Object: guidLanguageListObject
Extended Header Sub-Object: 26f18b5d - 4584 - 47ec - 9f5f -
0e651f0452c9
Extended Header Sub-Object: guidMetadataObject
Extended Header Sub-Object: guidPaddingObject
Extended Header Sub-Object: guidExtendedStreamProperties
Extended Header Sub-Object: d9aade20 - 7c17 - 4f9c - bc28 -
8555dd98e2a2
Header Sub-Object: guidCodecListObject
Header Sub-Object: guidStreamPropertiesObject
Header Sub-Object: guidStreamBitratePropertiesObject
ASF Object: guidASFDataObject
ASF Object: guidASFIndexObject

Notice that undocumented objects are shown using their GUID rather than a
name because they aren't documented in the version of the ASF spec I have.

My question is, if I strip out those objects from the header extension
object, will the 9.5 decoder work without querying my IStream object for the
undocumented DRM interface?

I need to find a way to get the 9.5 decoder to not query my custom IStream
object for a pointer to the undocumented DRM interface since no matter what
I return it always tries to dereference the pointer.

Sorry for another long message but this is really a thorn in my side.
Thanks for any help and suggestions you may have.

Dave


.