[vlc-devel] [RFC 00/10] Adding stream-extractor module type

Filip Roséen filip at atch.se
Mon Nov 28 03:22:19 CET 2016

These changes are all related to a new module type that will be used to extract
partial content from a stream. The goto example is handling of data within a
compressed archive, and extracting data that denotes a single entity (among
several) within the archive in question.

I hope the doxygen comments will answer any further questions, but if not I will
do my best to explain the rationale behind the implementation.

: Disclaimer

Given that all of these changes are part of a far bigger branch, I really hope
that the rebasing related to this patch-batch does not introduce misleading
information (or simply misses something that, by mistake, is then part of later

I have tried to verify this myself numerous times, but the more who could help
review this, the better.

: Future patches

Code has already been written that uses the module type introduced by the
patches in this patch-batch, such as:

    - a compressed archive stream-extractor (replacing the somewhat obsolete
      implementations currently present within the codebase).

    - a torrent stream-extractor

As another example, lua-bindings have also been written, but in order to not
completely flood the mailing list with a trillion patches, what has been
mentioned will be sent at a later time (when these changes has, hopefully, been

: Why the (standalone) documentation?

The patches matching `^doc: ` are not too important, but I decided to leave them
in this patch-set because they might help to further understand what these
changes are about.

When/if merged, those changes can be dropped - even though I personally feel we
should document all entities related to VLC (including MRLs).

: Frog in a blender

  According to http://www.chris.com/ascii/index.php?art=objects/blender, the
  below is a "frog in a blender". I'm not sure if it is at all relevant to the
  contents of this patch-batch.. but I thought it was a little funny.

      |    (o)(0)   |
      |  o.(.--).o  |
      \  O` ) : `o  /
       | o.( _).O  |
        \O' `- 'o /
         |  >|<  |
     / o o o o o o o \ LGB

Best Regards,
Filip Roséen

Filip Roséen (10):
  doc: add location for standalone documentation
  doc: document Media Resource Locator
  core: add stream_extractor module type
  stream_extractor: add vlc_stream_extractor_Attach
  stream_extractor: add vlc_stream_extractor_CreateMRL
  input/demux: prepare input_DemuxNew for future functionality
  input/demux: handle MRL-sections in src/input/demux.c
  input/mrl_helpers: add mrl_FragmentSplit
  input/demux: input_DemuxNew: add support for mrl-fragment-identifiers
  doc: document changes in MRL-handling

 doc/Doxyfile.in                      |   1 +
 doc/standalone/mrl.dox               | 142 +++++++++++++++++++++
 include/vlc_stream_extractor.h       | 118 ++++++++++++++++++
 modules/Makefile.am                  |   1 +
 modules/stream_extractor/Makefile.am |   0
 src/Makefile.am                      |   2 +
 src/input/demux.c                    | 148 +++++++++++++++++++---
 src/input/demux.h                    |   5 +-
 src/input/input.c                    |  73 +----------
 src/input/mrl_helpers.h              | 139 +++++++++++++++++++++
 src/input/stream_extractor.c         | 232 +++++++++++++++++++++++++++++++++++
 src/libvlccore.sym                   |   2 +
 12 files changed, 776 insertions(+), 87 deletions(-)
 create mode 100644 doc/standalone/mrl.dox
 create mode 100644 include/vlc_stream_extractor.h
 create mode 100644 modules/stream_extractor/Makefile.am
 create mode 100644 src/input/mrl_helpers.h
 create mode 100644 src/input/stream_extractor.c


More information about the vlc-devel mailing list