[vlc-devel] [PATCH 3/6] clock: add vlc_clock_SetDecoderLatency

Thomas Guillem thomas at gllm.fr
Thu Oct 3 14:46:58 CEST 2019


On Thu, Oct 3, 2019, at 14:39, Rémi Denis-Courmont wrote:
> Even a "moderate" increase in latency can break audio playback due to permanently too late buffers. 
Then, we could add a max gap that will be equals to the network-cache. So we will know that this latency has already been tested.

> 
> 
> And this will either do nothing or break in the case of dynamic (e.g. TS), dynamically enabled (e.g. multiple audio tracks), or irregular (e.g. voice codec) ES.

No, I already explained, this will do nothing for these cases, and not break it.

> 
> Le 3 octobre 2019 15:01:05 GMT+03:00, Thomas Guillem <thomas at gllm.fr> a écrit :
>> 
>> On Thu, Oct 3, 2019, at 13:49, Rémi Denis-Courmont wrote:
>>> As far as I can tell, this makes broken assumptions that will break playback in some cases.
>> 
>> Could you be more precise ? When will it break playback ? Which assumption is broken ?
>> 
>> In the worst case scenario, avcodec will continue anyway even if the latency induced by the threads is not handled.
>> In better case, avcodec will redure its number of threads.
>> In most common case, the input delay will be lightly increased.
>> 
>>> 
>>> Le 3 octobre 2019 10:37:52 GMT+03:00, Thomas Guillem <thomas at gllm.fr> a écrit :
>>>> Any last words ?
>>>> 
>>>> On Tue, Oct 1, 2019, at 14:33, Thomas Guillem wrote:
>>>> > 
>>>>> 
>>>>> On Mon, Sep 30, 2019, at 21:52, Rémi Denis-Courmont wrote:
>>>>>> Le torstaina 26. syyskuuta 2019, 17.38.11 EEST Thomas Guillem a écrit :
>>>>>>> The highest decoder latency of all clocks will be used to setup the initial
>>>>>>> dejitter delay.
>>>>>> We cannot generally, or even usually, measure the decoder latency.
>>>>> I agree, but we the avcodec module can guess it, according to its 
>>>>> thread_count and fps. It's not perfect but it's sufficient to fix all 
>>>>> problems we have with low fps samples (when you have a CPU with lot of 
>>>>> cores).
>>>>> 
>>>>>> On top of that, even if we could measure it, it does not even seem to mean 
>>>>>> anything if the set of active ES changes, or if for any reason the ES are not 
>>>>>> in sync (input slaves, multiple RTP sessions, etc).
>>>>> Yes, this is why this function can fail. vlc_clock_SetDecoderLatency() 
>>>>> won't be able to handle a big delay ( > 300ms = file-caching) if a 
>>>>> video track is enabled midstream. Everything is handled in avcodec:
>>>>> cf. 
>>>>> https://code.videolan.org/tguillem/vlc/commit/38206d600fe2eba78a72cc4b19749db087b6a408
>>>>> 
>>>>> This is not a perfect solution but it will fix most issues we have with 
>>>>> normal media samples (video starting near the audio).
>>>>> 
>>>>>> -- 
>>>>>> レミ・デニ-クールモン
>>>>>> http://www.remlab.net/vlc-devel mailing list
>>>>>> To unsubscribe or modify your subscription options:
>>>>>> https://mailman.videolan.org/listinfo/vlc-devel
>>>>> vlc-devel mailing list
>>>>> To unsubscribe or modify your subscription options:
>>>>> https://mailman.videolan.org/listinfo/vlc-devel
>>>> vlc-devel mailing list
>>>> To unsubscribe or modify your subscription options:
>>>> https://mailman.videolan.org/listinfo/vlc-devel
>>> 
>>> -- 
>>> Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté. 
>>> _______________________________________________
>>> vlc-devel mailing list
>>> To unsubscribe or modify your subscription options:
>>> https://mailman.videolan.org/listinfo/vlc-devel
>> 
> 
> -- 
> Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté. 
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20191003/e03fabc8/attachment.html>


More information about the vlc-devel mailing list