[vlc-devel] [PATCH 2/3] wasapi: enable event-driven buffering

Thomas Guillem thomas at gllm.fr
Tue Oct 1 11:07:46 CEST 2019

On Mon, Sep 30, 2019, at 21:38, Rémi Denis-Courmont wrote:
> Le maanantaina 30. syyskuuta 2019, 17.26.10 EEST Thomas Guillem a écrit :
> > And remove the sleep in case of full buffer. This will improve low delay
> > rendering.
> I don't really see why. Low delay does not imply short buffers - so in fact, in 
> low delay case, the buffer should never be even close to full, and thus there 
> never should be a need to wait.

What if you are playing one second of audio, that is the case with some ogg files. Waiting from Play should not happen in most cases but it can happen anyway (if you increase the rate, or depending on the input).

By the way, Pulse audio is the only module that doesn't wait and trigger an overflow with flushing in that case (that is not very common I concede).

> And if there is a need to way because of "high" delay / advance, then the 
> thread will be descheduled, whether it is for a time-out, or for an event.
> This patches just forces an interrupt, which potentially inhibits power 
> management.

The WaitForSingleObject() will be executed only if the audio buffer is full. As I said, this case should not happen often.
I don't see how the interrupt is forced in that case.

Waiting for audio, without a guessed sleep, is a necessary step for VLC 5.0 where we may set all aout modules asynchronous (In that case, the wait will be done from an aout module own thread).

> -- 
> レミ・デニ-クールモン
> http://www.remlab.net/
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel

More information about the vlc-devel mailing list