[vlc-devel] [PATCH 1/2] libvlc: added a formatted log callback
Thomas Guillem
thomas at gllm.fr
Mon May 20 08:31:50 CEST 2019
On Sat, May 18, 2019, at 09:29, Rémi Denis-Courmont wrote:
> Le perjantaina 17. toukokuuta 2019, 11.05.00 EEST Jérémy VIGNELLES a écrit :
> > ---
> > include/vlc/libvlc.h | 64 ++++++++++++++++++++++++++++++++++++++++++++
> > lib/libvlc.sym | 3 +++
> > lib/log.c | 55 +++++++++++++++++++++++++++++++++++++
> > 3 files changed, 122 insertions(+)
> >
> > diff --git a/include/vlc/libvlc.h b/include/vlc/libvlc.h
> > index 1c2550fe3b..1b21c2da66 100644
> > --- a/include/vlc/libvlc.h
> > +++ b/include/vlc/libvlc.h
> > @@ -433,6 +433,26 @@ LIBVLC_API void libvlc_log_get_object(const
> > libvlc_log_t *ctx, typedef void (*libvlc_log_cb)(void *data, int level,
> > const libvlc_log_t *ctx, const char *fmt, va_list args);
> >
> > +/**
> > + * Callback prototype for LibVLC preformatted log message handler.
> > + *
> > + * \param data data pointer as given to libvlc_log_set()
> > + * \param level message level (@ref libvlc_log_level)
> > + * \param ctx message context (meta-information about the message)
> > + * \param message the message, already formatted
> > + * \note Log message handlers <b>must</b> be thread-safe.
> > + * \warning The message context pointer, and the message string parameters
> > + * are only valid until the callback returns.
> > + */
> > +typedef void (*libvlc_log_preformatted_cb)(void *data, int level, const
> > libvlc_log_t *ctx, + const char *message);
>
> There is no logic there. Many languages will either not support callbacks at
> all, or have no ways to make them thread safe, or will be unable to marshall
> pointers from callbacks, etc.
>
> And the libvlc_log_t is definitely not supported in higher level languages,
> neither are many other compound types. In fact, even 'int' is iffy, since
> typically only fixed-size types are handeld.
>
> We *used* to have a log API that was "easy" to call from other languages. We
> removed it because it was so incredibly broken and intrinsically unfixable.
>
> LibVLC is not, or rather no longer for a decade or so, meant to be called
> directly from foreign interfaces.
I completely disagree. You should not decide that alone.
>
> --
> Rémi Denis-Courmont
> http://www.remlab.net/
>
>
>
> _______________________________________________
> 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