[vlc-devel] [PATCH] input: don't send ES_OUT_ *PCR/SET_NEXT_DISPLAY_TIME from slaves

Rémi Denis-Courmont remi at remlab.net
Thu Apr 5 17:30:38 CEST 2018


Le torstaina 5. huhtikuuta 2018, 18.21.56 EEST Denis Charmet a écrit :
> Hi,
> 
> On 2018-04-05 17:04, Thomas Guillem wrote:
> > This avoid having slaves messing up the timing of the main input.
> 
> I can't say that I agree with this.
> Slaves are kinda broken by design and with this you just hide
> everything under the carpet and hope for the best.
> IMO, the "proper" solution would to correctly implement the support of
> SET_DEMUX_NEXT_DISPLAY_TIME in all the demuxes and prevent them to call
> ES_OUT_(RE)SET_PCR if they receive this control.

That will not work either. Rate-incontrollable inputs such as capture devices 
get the data whenever they get the data. They cannot implement any kind of 
SET_DEMUX_TIME.

AFAICT, the correct solution is to compute the global PCR as the minimum of 
all input sources (the master and all or any slaves) and then extrapolated by 
the clock rate.

Of course, this will not work for TS streams with broken PCR. There are no 
ways to handle all arbitrary breakages.

-- 
雷米‧德尼-库尔蒙
https://www.remlab.net/



More information about the vlc-devel mailing list