[vlc-devel] Pacing of demux_Demux?

Rémi Denis-Courmont rem at videolan.org
Sun Jan 18 12:58:35 CET 2009

Le vendredi 16 janvier 2009 21:12:39 Laurent Aimar, vous avez écrit :
>  In fact the pacing is not any more done by the demuxer but by the input
> thread. The time to sleep is computed from PCR value set by es_out_control
> from demuxer (search for es_out_GetWakeup in src/input/input.c).

>  A demuxer should not sleep on its own but should set the correct PCR for
> that (not all demuxer are yet fixed).

AFAICT, a true demuxer could only avoid sleeping if access data was pushed to 
it, rather than pulled from it. I am of course _not_ advocating such an 
architecture. It would not work. For instance, seeking would lie somewhere 
between awkward and impossible.

> > Now, I am getting confused. First, I don't understand how control
> > requests can be processed -timely- if the Demux callback is sleeping.
>  It should not on its own. The only reason they should take time to return
> is because of stream reading.

What if it's an access_demux?
What if the underlying access sleeps for a long time?

>  The PAUSE case is the only one I see that could use a more reactive
> solution. But that one is easy to fix if really wanted as the es_out layer
> is now re-entrant (for standard demuxer, the max delay is 1 frame with
> current scheme).

Pause. Seeking as well.

Rémi Denis-Courmont

More information about the vlc-devel mailing list