Skip to main content

Topic: WASAPI output does not support pull/event/low-latency mode; why not? (Read 4434 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
  • jaro1
  • [*][*]
WASAPI output does not support pull/event/low-latency mode; why not?
I wanted to use the opportunity given by a few last comments related to Peter's own wasapi output component to ask a simple question. If a sound driver supports low latency mode (WaveRT, driver pulls the audio data from an application - thence "pull or event" mode), does this component automatically use this mode or only "push" mode (application pushes the data to the driver)? I ask because there are no settings available, thanks.

  • JimH
  • [*][*][*]
WASAPI output does not support pull/event/low-latency mode; why not?
Reply #1
If a sound driver supports low latency mode (WaveRT, driver pulls the audio data from an application - thence "pull or event" mode), does this component automatically use this mode or only "push" mode (application pushes the data to the driver)? I ask because there are no settings available, thanks.

My understanding is that, at least in the case of WASAPI, there are two modes.  One in which the driver "pulls" the data from the applicatioin, and the other in which the application "pushes" the data to the driver.

In our application, we provide two WASAPI modes, one for each type of data transfer.

  • tpijag
  • [*][*][*][*][*]
WASAPI output does not support pull/event/low-latency mode; why not?
Reply #2
Other than rewording exactly what the previous poster stated, how does this provide insight to his specific question about Peter's component?

  • kode54
  • [*][*][*][*][*]
  • Administrator
WASAPI output does not support pull/event/low-latency mode; why not?
Reply #3
Yeah, foobar2000 does not use the event style. I was under the mistaken impression that event style would require callbacks for pulling the data from the application.

I have also heard that event mode is semi-broken in Windows Vista 64-bit, in that 32-bit applications never receive the event triggers. This may not be correct.
  • Last Edit: 12 December, 2011, 11:08:14 AM by kode54

  • jaro1
  • [*][*]
WASAPI output does not support pull/event/low-latency mode; why not?
Reply #4
Thanks, if i understand it right, Peter's own wasapi component doesn't use event mode, even if supported by the driver. What are the reasons behind such a decision? While it is clear, that low latency mode brings advantages mainly for IM or real-time communication apps, but also better skip/glitch resilience for playback apps and audio endpoint thread uses less cpu cycles under event mode.
I hope Peter will create an updated version of this component sometime in the future.
On the other side, i don't understand how could JRMC use event mode under AC'97 or other non WaveRT supporting drivers.

  • JimH
  • [*][*][*]
WASAPI output does not support pull/event/low-latency mode; why not?
Reply #5
Thanks, if i understand it right, Peter's own wasapi component doesn't use event mode, even if supported by the driver.

That was the way we orginally implemented it and it worked for most devices.  Peter, if you would like to discuss it, Matt's address is matt at jriver.


  • jaro1
  • [*][*]
WASAPI output does not support pull/event/low-latency mode; why not?
Reply #6
Its a shame Peter didn't express to the question i asked, so i'll try it once more: what is behind the decision not to support low latency (event) mode in fb2k wasapi component, if supported by the driver? Somehow i don't believe the problem lies in technical difficulty or questionable reliability considering the fact, that W7 audio engine itself supports event mode when supported by the audio driver.
My comment is about reliability under some specific scenario and not about something related to audibility differencies!! Thanks
  • Last Edit: 13 December, 2011, 03:49:11 AM by jaro1

  • jaro1
  • [*][*]
WASAPI output does not support pull/event/low-latency mode; why not?
Reply #7
I split the threadjack about foobar2000’s WASAPI output component, and then I split a threadjack-within-a-threadjack. Voilà:
WASAPI output: glitch just before album ends, after prolonged playback
WASAPI output does not support push/event/low-latency mode; why not?


Only small correction:  ...pull/event/low-latency mode...
Nevertheless, I doubt Peter will ever answer that question. Anyway, thanks for this.
  • Last Edit: 13 December, 2011, 11:59:18 AM by jaro1