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

Thomas Guillem thomas at gllm.fr
Thu Nov 15 16:30:09 CET 2018


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).
> 
> 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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20181115/ae2136a3/attachment.html>


More information about the vlc-devel mailing list