[wdmaudiodev] Re: MediaPlayer improves USB DPC timing

  • From: "Martin Puryear" <martinp@xxxxxxxxxxxxxxxxxxxxx>
  • To: <bart@xxxxxxxxxxxxx>, "WDM list" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Fri, 25 Jul 2003 01:42:31 -0700

Hi Bart,

I should let the list field this one, but it seems to have anticompetitive 
undertones so I can't help myself.

As far as I know there is NOTHING in Windows Media Player that uses anything 
other than fully documented OS services.  This should not be at all surprising 
since WMP is legally considered middleware by U.S. District Court.  There's no 
leeway here.  

It's actually a little funny to hear you suggest a cozy relationship between 
the WMP team and the kernel audio team.  It isn't like that.  If anything, it 
more resembles stories I've heard a few years back of the "relationship" 
between Apple's sound drivers/Sound Manager teams and their QuickTime team.  As 
always, we infrastructure people fight for the respect we deserve - we are more 
than just plumbers, just as upper-layer folks provide more than just UI fluff.  
I suspect it is the same story as driver writers vis-à-vis application writers.

Back to the topic.  I suspect, if anything, WMP uses the venerable Time APIs to 
turn up the timer resolution; I don't know for sure.  Maybe it isn't WMP at 
all, though - have you tried RealPlayer or MusicMatch, or even MPlay32?  There 
is code in the WDM audio stack that tries to make the system work better for 
all multimedia apps.  It's probably that, as opposed to anything from a 
user-mode client like WMP.

Martin Puryear
Development Manager
Microsoft Windows Audio/Video Devices Group

This posting is provided "AS IS" with no warranties, and confers no rights 
(especially my QT stories from days gone by!).
Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vous 
confère aucun droit (particulièrement mes vielles histoires de QT!). Vous 
assumez tous les risques liés à son utilisation.

-----Original Message-----
From: bart@xxxxxxxxx [mailto:bart@xxxxxxxxx] On Behalf Of bart@xxxxxxxxxxxxx
Sent: Friday, July 25, 2003 12:57 AM
To: WDM list
Cc: Ron Kuper; Martin Puryear
Subject: MediaPlayer improves USB DPC timing


I observed a very strange effect on a USB (sound) device I am developping. In 
my driver the URB/IRP pairs are recycled in the completion routine evey 3 msec. 
Once in a while (aprox 10 seconds) the completion routine is not called for 
more as 12 msec causing data underrun when I play audio using MME with WaveLab 
(XP sp1). I measured this by toggling a printer port pin.

When I play audio with the Windows Media Player using the same driver (without 
reloading) this problem does not appear. When I stop the Media Player (not exit 
it) and then play with WaveLab the problem also is gone. When I then play using 
the ASIO driver with WaveLab the problem still stays away. Then when I exit the 
Media Player the problem immediatly comes back again. This effect is 
repeatable, as soon as the Media Player has played a bit the timing behaviour 
of the (at least USB involved) DPC's improves dramaticly.

The only conclusion I can draw from this that the Media Player switches the XP 
kernel to a 'realtime mode' such that the DPC timing improves. Is this a known 
'feature'? I don't want to suggest this is a way MS makes its software better 
perform as 3d party software.
Do I missing something obvious?

Best regards,


WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx


Other related posts: