[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