[vlc-devel] [PATCH 1/4] es_out: add controls to cycle through ES tracks

Thomas Guillem thomas at gllm.fr
Thu Nov 15 17:28:36 CET 2018


On Thu, Nov 15, 2018, at 16:30, Thomas Guillem wrote:
> 
> On Thu, Nov 15, 2018, at 13:23, Rémi Denis-Courmont wrote:
>> Hi,
>> 
>> If the user cycles rapidly, e.g. by holding the hotkey, the input
>> control queue will overflow, AFAIR. So this series does not really
>> solve that corner case, AFAICT.>> 
>> If you really want a race free system, you need to store the signed
>> offset (in number of tracks) from the default selection to the user
>> selection in the ES output, and an accumulator in the input state to
>> avoid filling the control queue with multiple track change requests.>> This will have a major impact on the ES output internals though.
> 
> Hum sorry, I just received this answer but I already pushed.
> 
> I already thought about your solution, yes. It will avoid useless
> track change if the user spam the next button and will respect the
> number of time the user pressed it.> 
> I can revert the es_out part, and use the dumb way to cycle through
> tracks (waiting for a correct implementation).
I push forced (since it also broke the windows build).
The new version will have dumb cycle track/program functions without
es_out core changes.
> 
>> 
>> Le 14 novembre 2018 19:13:43 GMT+02:00, Thomas Guillem
>> <thomas at gllm.fr> a écrit :>>> 
>>> 
>>> 
>>> 
>>> 
>>> On Wed, Nov 14, 2018, at 17:59, Rémi Denis-Courmont wrote:
>>> 
>>> 
>>> 
>>> 
>>>> Le keskiviikkona 14. marraskuuta 2018, 18.50.15 EET Thomas Guillem
>>>> a écrit :
>>>>>>>> 
>>>> 
>>>> 
>>>>> With 2 new internal controls: ES_OUT_SET_ES_NEXT and
>>>>> ES_OUT_SET_ES_PREV.
>>>>>>>>>> 
>>>>> 
>>>>> 
>>>>> This will fix a TOCTOU issue when selecting next or previous
>>>>> tracks.
>>>>>>>>>> 
>>>>> 
>>>>> 
>>>> What ToCToU issue? If a track is added or removed at about the same
>>>> time as
>>>>>>>> 
>>>> 
>>>> 
>>>> the user cycles, there is an intrinsic race. Intrinsic races
>>>> can. by
>>>>>>>> 
>>>> 
>>>> 
>>>> definition, not be fixed.
>>>> 
>>>> 
>>>> 
>>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> TOCTOU if the user cycles tracks rapidly. Some controls could be
>>> dropped in that case. If the user press 3 times the next track
>>> button, you want to be sure to select the fourth track.
>>>>>> 
>>> 
>>> 
>>> This is far more visible with programs that can take a longer time
>>> to initialize.
>>>>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> This also prevent cycling if the es_out policy is
>>> ES_OUT_ES_POLICY_SIMULTANEOUS. You can't really do something clever
>>> if there are more than one tracks selected for a same category, so
>>> it's better to do nothing.
>>>>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> If this patch is not accepted, I'll have to cycle through ES tracks
>>> from the client side and this won't prevent weird behavior in case
>>> of ES_OUT_ES_POLICY_SIMULTANEOUS.
>>>>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> > 
>>> 
>>> 
>>> 
>>> 
>>>> For instance, this will still select a track one microsecond before
>>>> it ends.
>>>>>>>> 
>>>> 
>>>> 
>>>> From the user's point of view, that's no better than selecting a
>>>> track that
>>>>>>>> 
>>>> 
>>>> 
>>>> ended one microsecond ago.
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> Of coruse, the engine must be robust and must not trigger UB, not
>>>> even on
>>>>>>>> 
>>>> 
>>>> 
>>>> intrinsic races.  As far as I know, the new ES reference counting
>>>> already
>>>>>>>> 
>>>> 
>>>> 
>>>> solve that. But the timing-dependent behaviour cannot be avoided
>>>> here. So I
>>>>>>>> 
>>>> 
>>>> 
>>>> would rather not add hopeless complexity.
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> -- 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 雷米‧德尼-库尔蒙
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 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
>>> 
>>> 
>>> 
>>> 
>> 
>> -- 
>> 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
> 
> _________________________________________________
> 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/20181115/afb8493c/attachment.html>


More information about the vlc-devel mailing list