[vlc-devel] [RFC PATCH 00/13] Expose picture attachment through libvlc
Hugo Beauzée-Luyssen
hugo at beauzee.fr
Fri Nov 6 13:55:47 CET 2020
On Fri, Nov 6, 2020, at 1:47 PM, Thomas Guillem wrote:
> Hello,
>
> This set looks very good to me. Just one point.
>
> We need to ensure that demux modules don't update an attachment
> (asserts or document it).
>
> Indeed, attachments are now read via VLC CORE API from any threads, so
> they can't be updated unless you add a mutex for each attachment.
>
> On Fri, Nov 6, 2020, at 10:22, Hugo Beauzée-Luyssen wrote:
> > This patchset is an RFC that aims at exposing picture attachments (at
> > least) to users through libvlc
> > This is initially motivated by the fact that we need to be able to
> > handle various tracks belonging to the same album, but with different
> > embedded artwork.
> > Currently, VLC will cache embedded artworks as they are found in
> > cachefolder/artist/date/album meaning that the first track artwork
> > will be cached, and later ones will be considered already cached, even
> > though they are different.
> >
> > Additionally, this introduces refcounting to the attachments, allowing
> > us to save a deep copy every time the attachments are fetched. This
> > could also allow us to fetch attachments using a unique identifier
> > instead of their names, as the name unicity is currently no guaranteed
> >
> > Hugo Beauzée-Luyssen (13):
> > input: Move attachment functions in their own source file
> > input: attachment: Add a private structure
> > input: Refcount attachments
> > mkv: Use input_attachment_t directly
> > mp4: Extract attachments once
> > input: Simplify AppendAttachment prototype
> > input: Compare attachments themselves when updating them
> > input: Remove now unused attachment_demux
> > input: Move attachment to input_item_t
> > input: Manage attachment through the item
> > core: Expose input_item_GetAttachments
> > lib: Add a picture from attachment constructor
> > lib: media: Expose attached pictures
> >
> > include/vlc/libvlc_media.h | 5 +
> > include/vlc_input.h | 49 +------
> > include/vlc_input_item.h | 7 +
> > lib/libvlc.sym | 1 +
> > lib/media.c | 38 ++++++
> > lib/picture.c | 51 +++++++
> > lib/picture_internal.h | 2 +
> > modules/access/bluray.c | 6 +-
> > modules/codec/libass.c | 2 +-
> > modules/codec/subsusf.c | 2 +-
> > modules/demux/avformat/demux.c | 6 +-
> > modules/demux/avi/avi.c | 4 +-
> > modules/demux/flac.c | 4 +-
> > modules/demux/mkv/demux.cpp | 2 -
> > modules/demux/mkv/demux.hpp | 5 +-
> > modules/demux/mkv/matroska_segment_parse.cpp | 37 +++---
> > modules/demux/mkv/mkv.cpp | 9 +-
> > modules/demux/mkv/mkv.hpp | 30 -----
> > modules/demux/mp4/attachments.c | 5 +-
> > modules/demux/mp4/attachments.h | 2 +-
> > modules/demux/mp4/mp4.c | 18 ++-
> > modules/demux/mpeg/ts.c | 4 +-
> > modules/demux/ogg.c | 4 +-
> > modules/text_renderer/freetype/freetype.c | 8 +-
> > src/Makefile.am | 1 +
> > src/input/access.c | 5 +-
> > src/input/attachment.c | 90 +++++++++++++
> > src/input/es_out.c | 4 +-
> > src/input/input.c | 132 +++++--------------
> > src/input/input_internal.h | 9 --
> > src/input/item.c | 45 +++++++
> > src/input/meta.c | 4 +-
> > src/input/stream_memory.c | 2 +-
> > src/libvlccore.sym | 4 +
> > src/video_output/vout_subpictures.c | 3 +-
> > 35 files changed, 356 insertions(+), 244 deletions(-)
> > create mode 100644 src/input/attachment.c
> >
> > --
> > 2.28.0
> >
> > _______________________________________________
> > 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
Good point, I'll add some documentation.
I thought of enforcing the const-ness of attachments but that would mean hold/release would also be passed a const input_attachment_t*, which seems wrong, while technically doable.
Also, I suppose input_attachment_t should be renamed input_item_attachment(_t) ?
--
Hugo Beauzée-Luyssen
hugo at beauzee.fr
More information about the vlc-devel
mailing list