[vlc-devel] [PATCH 0/3] prevent implicit infinite preparsing

Filip Roséen filip at atch.se
Wed Jul 25 04:06:37 CEST 2018

These changes are a follow-up to what was discussed in the following
thread: https://mailman.videolan.org/pipermail/vlc-devel/2018-July/120453.html

The options are somewhat limited as we do not want to change the ABI
associated with the relevant function, nor can we realiable change the
behavior of libvlc_MetadataRequest without running into issues with
external developers relying on the behavior introduced in f9aab1fe34.

There are other ways of solving the problem, one involves pushing
straight into the preparser owned by libvlc, but as it relies on the
relevant implementation in src/playlist/item.c to use libvlc_priv(..), I
find such implementation less than ideal.

To be honest, everything I can come up with is ugly in one way or
another, and as we do not want to make too many changes (the fix is to
be backported to 3.0.x), I feel like my hands are tied. I really want to
see this broken behavior go away. One could argue that having
libvlc_MetadataRequest and vlc_MetadataRequest is confusing, but as the
behavior sadly must currently differ between external and internal use,
I find it quite understandable what is going on given the prefix.

Do note that an entry for libvlc_MetadataRequest exists in
src/libvlccore.sym, whereas vlc_MetadataRequest is only available

Filip Roséen (3):
  core: add vlc_MetadataRequest
  core: libvlc_MetadataRequest: use vlc_MetadataRequest
  playlist: item: playlist_Preparse: use vlc_MetadataRequest

 src/libvlc.c        | 26 ++++++++++++++++++++++----
 src/libvlc.h        |  6 ++++++
 src/playlist/item.c |  3 ++-
 3 files changed, 30 insertions(+), 5 deletions(-)


More information about the vlc-devel mailing list