[vlc-devel] [RFC PATCHv2 0/6] Add vlc_renderer to cope with chromecast and next renderers

Thomas Guillem thomas at gllm.fr
Wed Mar 2 15:58:18 CET 2016


A lot of changes since the last version.

This was a really bad idea to attach a unique vlc_renderer to the libvlc,
that's not how you should do it. I took a closer at input resources and saw the
light.

Here are the step to run a renderer like chromecast:

When asked, the VLC desktop App or LibVLC starts all renderer discoverers (via
vlc_sd_GetName and the SD_CAT_RENDERER category). Renderer discoverers will
send all vlc_renderer_item via the event manager. For now, only the microdns
module can handle renderers, but avahi and bonjour will too.

User will be able to choose a renderer to start from a dialog. Here is the code
to setup a renderer from Qt:

`var_SetString( THEPL, "renderer", vlc_renderer_item_option( p_item ) );`

vlc_renderer_item_option returns a string that contains all information to
create and configure a renderer module (for example:
"chromecast{host=<host>,port=<port>...}").

When starting an input, InitSout from input.c will fetch the "renderer" option
and request a renderer to the input resource. The input resource will create a
new one or re-use a old one if the "renderer" option is the same (like for
sout). This will be done just before requesting a Sout. Therefore the renderer
module will be able to alter the sout option.

Steve Lhomme (1):
  modules: add SUBCAT_ADVANCED_RENDERER

Thomas Guillem (5):
  add a new type of module: vlc_renderer
  libvlc: add renderer module list option
  resource: handle vlc_renderer
  input: request a vlc_renderer when needed
  services_discovery: handle vlc_renderer_item

 include/vlc_common.h                            |   2 +
 include/vlc_events.h                            |  10 +
 include/vlc_input.h                             |   7 +
 include/vlc_plugin.h                            |   1 +
 include/vlc_renderer.h                          | 203 +++++++++++++++
 include/vlc_services_discovery.h                |   8 +-
 modules/gui/qt/components/playlist/selector.cpp |   3 +
 src/Makefile.am                                 |   2 +
 src/input/input.c                               |  25 ++
 src/input/input_internal.h                      |   1 +
 src/input/resource.c                            | 112 ++++++++
 src/input/resource.h                            |   5 +
 src/libvlc-module.c                             |   8 +
 src/libvlccore.sym                              |  16 ++
 src/misc/renderer.c                             | 323 ++++++++++++++++++++++++
 src/playlist/services_discovery.c               |  30 +++
 16 files changed, 754 insertions(+), 2 deletions(-)
 create mode 100644 include/vlc_renderer.h
 create mode 100644 src/misc/renderer.c

-- 
2.7.0



More information about the vlc-devel mailing list