[vlc-devel] How to slow down the demuxer?

Frédéric Yhuel yhuelf at gmail.com
Wed Oct 24 14:04:37 CEST 2012


Hello,

I moved the Smooth Streaming module into a demux module, which is
chained with mp4 demux.

I've got a problem with pace control. Usually, for a normal mp4 file,
Demux() is called approximately every 100 ms, thanks to PCR handling:

    es_out_Control( p_demux->out, ES_OUT_SET_PCR, VLC_TS_0 + p_sys->i_pcr );

I don't really understand how this mechanism works, but the fact is
that it doesn't work well with Smooth Streaming (implemented as a
demuxer).

Demux() would be call a dozen of times at close intervals (less than 1
ms), then an interval of 3 seconds, etc...

I guess it is related to the fact that DEMUX_GET_TIME request, which
the Smooth Streaming demux forwards to the mp4 demux through a call to
stream_DemuxControl(), returns a fairly imprecise result.

Indeed, mp4 demux answers a batch of these requests, then executes a
batch of Demux(), and so on... so usually time is not updated between
two requests.

what should I do to fix this problem?

Thanks in advance,

Frédéric



More information about the vlc-devel mailing list