More on dropped samples
Jeffrey W. Baker
jwbaker at acm.org
Mon Oct 15 04:51:11 CEST 2001
My last mail was incorrect. It seems that vlc already decides the correct
amount of time for sleeping. The real problem is that vlc sometimes
spends too long in S16StereoPlay, and the bluk of the time is spent in
NextFrame.
I am examining timing output, and the majority of the time in NextFrame is
spent waiting on this condition (aout_common.h):
while ( p_fifo->l_next_frame == p_fifo->l_end_frame )
{
vlc_cond_wait( &p_fifo->data_wait, &p_fifo->data_lock );
if ( p_fifo->b_die )
{
vlc_mutex_unlock( &p_fifo->data_lock );
return( -1 );
}
}
Before a particular underrun, vlc spent 71ms in this loop, out of a 100ms
slice. S16StereoPlay overall took 81ms, some other stuff took a little
while, and the usleep spent slightly long that it should have. All
together, the next 100ms of audio arrived 2ms late. The underruns range
from 0-20ms.
Is there something that can be tweaked to make the data arrive on time?
-jwb
More information about the vlc-devel
mailing list