[dvblast-devel] DTS handling

Christophe Massiot cmassiot at openheadend.tv
Thu Feb 3 22:22:56 CET 2011


Le 3 févr. 2011 à 10:56, Jaroslav Klaus a écrit :

>> DVBlast doesn't change the DTS or PCR inside TS packets (any version).
> 
> Hmm. I found the following in current trunk:
> 
> demux.c:SetDTS():
> 
> p_ts->i_dts = i_wallclock - i_duration * i / i_nb_ts;
> 
> and in output.c:output_Put():
> 
> p_packet->i_dts = p_block->i_dts;

These lines assign values to internal state variables of DVBlast, named "dts" by analogy with equivalent variables of the TS mux of VLC. Packets are stored in p_block->p_ts and are not changed (BTW we couldn't change scrambled packets, for instance).

>> The current TS mux of VLC is known to be non-compliant.
> 
> What about VLC demux? Is it also non-compliant. Is ffmpeg demux compliant?

VLC demux has the known problem that PIDs that are referenced in several (N) programs are ignored in N-1 programs, which can be a problem. Also it doesn't forward TS packets to decoders until the the full PES has been received, which is not compliant and can be problematic with huge PESes (I have seen encoders putting a whole GOP of video in the same PES).

I don't know FFmpeg demux.

> I have to set udp-caching and rtp-caching in VLC to 6s to play DVB-S streams from dvblast :-(

On all transponders or just one ?


More information about the dvblast-devel mailing list