[vlc-devel] [PATCH 1/2] access/stream_filter: add libarchive

Rémi Denis-Courmont remi at remlab.net
Mon Jul 28 11:22:15 CEST 2014

Le 2014-07-28 11:49, Francois Cartegnie a écrit :
> zip & rar have a filter which only generates playlist and builds
> uri for their access which creates streams from those uri.
> filename is set from uri separator before creating streams.
> I see double scheme problem here.
> I thought the best option was to handle decompression in a stream
> filter, now that's confusing.

The job of a stream filter is to convert a byte stream into another 
byte stream. Pure decompression is prefectly fine in a stream filter, 
and it is *already* supported. It is however not meant to extract some 
data from a byte stream. In particular, the stream filter abstraction is 
not well suited to extract a single file out of an archive of multiple 

Now, there are two separate modules here: whole archive listing and 
single file extraction.

For listing, I would do an access *if* the underlying library does not 
support reading from custom callbacks, or *if* the callbacks cannot 
prevent deadlock when the underlying stream/access is starving (and user 
presses Stop). Otherwise, I think a demux is cleanest, but considering 
the current vlc.git architecture, a stream filter implementing readdir 
seems most reasonable.

For decompression, only access seems to really work in any case, 
notably because of URI passing issues.

>>> access/archive/module.c
>>> +libaccess_archive_plugin_la_LIBADD = $(ARCHIVE_LIBS)
>>> +access_LTLIBRARIES += libaccess_archive_plugin.la
> Any reason why .so build is silently skipped unless rpath is set when
> using the EXTRA syntax ?

I think libtool needs to know where the shared library is installed, 
due to Some Platforms. EXTRA does not specify it, hence the need for 
explicit -rpath. This sucks, but it has been that way at least since the 
libtool switch (0.8.5 or something?).

Rémi Denis-Courmont

More information about the vlc-devel mailing list