From: "Tomasen"
Post by Tomasengdcl version of WMV demuxer use WMReader and imeplement
IWMReaderCallback etc.
When reading begin, IWMStatusCallback::OnStatus received notify
WMT_ERROR , with hr = 0x8000ffff. Then the parsing stoped :(
Let me give you the full story of ASF and you'll decide what to do.
MS produced at least 3 ASF parsers used in WMP:
1. The first one was the old WindowsMediaSourceFilter for DirectShow,
used in WMP6.4,which could parse pretty much anything that looked like
an ASF, but was very bad at seeking (it was meant for streaming, not
local file playback). This is available from Win98SE to XP, but it was
dropped in Vista.
2. The second one was the WMReader object provided in the
WindowsMediaFormat runtime. With it came 2 DirectShow filters: the
public WMASFReader and the secret (and better) WMRenderer (or whatever
its exact name) used internally by WMP7 to WMP10. It is also the one
used by the GDCL filter. It seeks very well local files, but it will not
seek at all if the files have no index. And apparently it also refuses
to parse truncated files by throwing an E_UNEXPECTED.
3. Starting with WMP11 on Vista, WMP started using MediaFoundation for
ASF playback instead of DirectShow and so it used the new ASF parser
included in MF. WMP11 installs a private porting of MF on XP as well and
my guess is that it is using the MF ASF parser on XP, too, and that this
new parser is more forgiving than the WMReader in WMF.
You can try using the old WMSF, but it will *not* be avaiable on Vista
or newer.
Or you can try the MF ASF parser (or the MS ASF source in an actual MF
pipeline) but it will *only* be avaiable on Vista or newer. If it works,
you can try using it on XP, too, even though it is not officially
supported (but at least part of MF works on XP as long as WMP11 is
installed).
Or you can write your own ASF parser based on the ASF specs available on
the MS website. Not the easiest solution.
--
// Alessandro Angeli
// MVP :: DirectShow / MediaFoundation
// mvpnews at riseoftheants dot com
// http://www.riseoftheants.com/mmx/faq.htm