[vlc-devel] [PATCH] es_out: merge es->i_id with es->fmt.i_id
Rémi Denis-Courmont
remi at remlab.net
Mon Aug 20 12:15:24 CEST 2018
Hello,
Yes, that is what I meant.
Although we probably will need to distinguish a single "strong" reference from es_out_Add/Del and any number of weak references from Hold/Release. For instance, the decoder should be tied to the strong ref, not all refs (so that it gets deleted at the right time).
Le 20 août 2018 10:43:05 GMT+03:00, Thomas Guillem <thomas at gllm.fr> a écrit :
>ahhh, missed the reference counted part. Indeed, it will work.
>
>I summarize what I understood then:
>
>- Create an opaque type to hold ES, like struct vlc_es.
>- Make it reference counted and expose vlc_es_Hold(),
>vlc_es_Release().- Also hold the es_format_t, title, and maybe other
>infos (to ease
> vlc_es propagation through events). These members will be available
> via vlc_es_getFmt() and vlc_es_GetTitle()
>I can add everything to the input/es_out now, but it won't be used now
>(waiting for input manager).API/Users will still be able to select en
>es via the fmt.i_id but the
>new preferred way will be ^^.
>When a vlc_es is selected via the future input manager, the vlc_es is
>held by the first call, and until the input thread handle this control
>Agree?
>
>On Sun, Aug 19, 2018, at 17:24, Rémi Denis-Courmont wrote:
>> I don't recall suggesting "void" pointers. I suggested reference-
>> counted (and thus, typed) pointers.>
>> Le 19 août 2018 11:16:19 GMT+03:00, Thomas Guillem <thomas at gllm.fr>
>> a écrit :>> I agree about keeping fmt.id for TS ES and using an
>unique ID for
>>> libvlc or the new input manager.>>
>>> Using a void* can be racy when deleting and creating an ES (the es
>>> can use the same pointer).>>
>>> An integer overflow is very unlikely to happen when creating an ES
>>> (and we can still check the overflw and fail if it happens).>>
>>> Do you still prefer using void* ?
>>>
>>> On Fri, Aug 17, 2018, at 19:03, Rémi Denis-Courmont wrote:
>>>> You cannot have more than uintptr_t references on an object in
>>>> memory (or even all objects).>>>
>>>> But as François pointed out, no matter how large the integer, you
>>>> can always overflow after long enough.>>>
>>>> I just don't see the point in using handles or IDs when you can use
>>>> pointers. Pointers are generally the easiest identifier in C.>>>
>>>> Le 17 août 2018 17:59:44 GMT+03:00, Thomas Guillem <thomas at gllm.fr>
>>>> a écrit :>>>> So, I plan to use a uintptr_t (on the allocated es)
>as a unique es
>>>>> identifier.
>>>>>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Fri, Aug 17, 2018, at 15:27, Francois Cartegnie wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> Le 17/08/2018 à 15:21, Francois Cartegnie a écrit :
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> You can't track usable ids unless you allocate UINTxx_MAX bits
>>>>>>> to
>>>>>>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> reference id usage, and add a worth case time of that number of
>>>>>>> bytes - 1.
>>>>>>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> worsT case time
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Hell.....
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> 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
--
Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20180820/3d9b3c26/attachment.html>
More information about the vlc-devel
mailing list