[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