[vlc-devel] Pacing of demux_Demux?
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.
More information about the vlc-devel