[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