[vlc-devel] [PATCH 0/2] Libvlc formatted log callback

Steve Lhomme robux4 at ycbcr.xyz
Mon May 20 14:18:11 CEST 2019


On 2019-05-20 14:03, Rémi Denis-Courmont wrote:
> I don't see how passing va_list to whatever is the appropriate 
> formatting function for your logging system, is a PITA.

The order or the elements in the va_list is completely arbitrary and 
entirely depends on the format string it's tied to. There's no way the 
libvlc host can actually make sense of which parameter does what and 
reformat this.

IMO we can just replace this by the formatted string and everyone will 
be happy. Nothing will be lost.


> Certainly, implementing printf() by hand is a PITA, but why the heck 
> would you do that??
> 
> Le 20 mai 2019 10:41:07 GMT+03:00, Steve Lhomme <robux4 at ycbcr.xyz> a écrit :
> 
>     On 2019-05-19 8:32, Rémi Denis-Courmont wrote:
> 
>         Le lauantaina 18. toukokuuta 2019, 23.12.30 EEST Jeremy
>         Vignelles a écrit :
> 
>             Hi Rémi,
> 
>             Thanks for your review.
> 
>                 Le 18 mai 2019 à 09:18, Rémi Denis-Courmont
>                 <remi at remlab.net> a écrit :
> 
>                 Le perjantaina 17. toukokuuta 2019, 11.04.59 EEST Jérémy
>                 VIGNELLES a écrit
> 
>         :
> 
>                     Hi,
> 
>                     In libvlc, there is currently a `libvlc_log_set`
>                     function, that can
>                     register log callback in a vprintf style, that is,
>                     with a `va_list`
>                     argument.
> 
>                     This is nice when you are trying to call from C, but
>                     when using other
>                     languages like C# or Java, va_list is impossible to
>                     get right, and even
>                     if
>                     it did, those languages do not provide ways to
>                     format that kind of
>                     stuff.
> 
>                 We already tried to adapt to foreign function interfaces
>                 and failed, and
>                 realized that the FFI just could not handle it across
>                 the broad set of
>                 platforms that VLC supports.
> 
>                 Then we took the logical decision going forward: to
>                 reject that sort of
>                 patchsets.
> 
>             As of today, every libvlc API that made sense to expose are
>             implemented in
>             LibVLCSharp, with the only exception of that specific
>             logging API. I don't
>             know if there is something missing for other languages on
>             specific APIs,
>             but as far as .net is concerned, the other functions are
>             correctly
>             supported.
> 
>         And? The point is, we decided to *stop* vainly trying to support
>         the DotNet
>         DllImport natively, because we want char, bool, size_t, va_list,
>         etc. and
>         becausewe found out that it ws anyway not possible to import
>         LibVLC without
>         platform-specific code even if the type system were watered-down.
> 
> 
>     I followed the conversation and still don't understand why it's wrong to
>     replace a "format string + va_list" by a "formatted string" in the API.
>     Even in C handling a va_list is a PITA. If you want to peek into it, you
>     need to copy it. Let alone the typing of the variables in the va_list.
>     ------------------------------------------------------------------------
>     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
> 


More information about the vlc-devel mailing list