[vlc-devel] [PATCH 00/12] Chromecast with dynamic stream_ouput

Steve Lhomme robux4 at videolabs.io
Mon Apr 25 17:46:04 CEST 2016


Following the discussions on how to handle Chromecast properly, it was decided
that we should stick to a stream_output module that would adjust playback based
on the es_format_t that are added/deleted.

This series of patches changes the behaviour of the current Chromecast stream
output to work that way. The temporary control interface code is reused as the
class that controls the talking and the lifecycle of the Chromecast. Each time a
file is loaded in the player a new "sub-sout" is created with the proper MIME
type, and muxing/transcoding configuration according to the source.

Playing consecutive files work. Skipping to the next file during playback has
a buffering issue, the Chromecast will play everything it had in its buffer
before switching to the next file. Switching different audio/video tracks during
playback is not supported yet.

These patches require the following patches to work:
https://patches.videolan.org/patch/13063/
https://patches.videolan.org/patch/13064/
https://patches.videolan.org/patch/13065/
https://patches.videolan.org/patch/13066/

Steve Lhomme (12):
  chromecast: var_GetNonEmptyString() cannot return a "" string
  chromecast: use a local sout_stream_id_sys_t containing the
    es_format_t
  chromecast: wait until we know all the ES is use before using sending
    data downstream
  chromecast: only create the sub-sout when we know the ES in use
  chromecast: chromecast_ctrl is no longer an interface plugin
  chromecasst: the device ip/port is constant during the chromecast_ctrl
    lifetime
  chromecast: start the communication when the control class is created
  chromecast: tell the control class when there's a file to play or not
  chromecast: use the device ip/port to create the control class
  chromecast: tell the control class when to tell the Chromecast to load
    content
  chromecast: cleaner release of the device on exit
  chromecast: EOF is when the Chromecast is finished reading all sent
    data

 modules/stream_out/Makefile.am                    |  17 +-
 modules/stream_out/chromecast/cast.cpp            | 313 +++++++++++++++++++++-
 modules/stream_out/chromecast/chromecast.h        |  23 +-
 modules/stream_out/chromecast/chromecast_ctrl.cpp | 280 ++++++++-----------
 4 files changed, 435 insertions(+), 198 deletions(-)

-- 
2.7.0



More information about the vlc-devel mailing list