[vlc-devel] [PATCH 00/10] Chromecast timing with a demux-filter (v2)

Steve Lhomme robux4 at videolabs.io
Tue May 3 16:01:36 CEST 2016


The demux_filter_t code has been reworked so that calls to the real demuxer and
the demux filters cannot be mixed. Now the demuxer_t is a demux_filter_t with
p_next set to NULL. To avoid editing all the code due to the subclassing, the
shared part of their structure is done via a macro, the same way all
vlc_object_t share a common set of fields.

By default the core deals with the top demux_filter_t and in some cases where
it needs access to the demux_t fileds (attachements demuxer, stream) it can get
the one at the end of the chain.

As a side note, the adapative Demuxer seems like a good candidate to become
a demux-filter as it pretends to be a demuxer using a real demuxer underneath.

Steve Lhomme (10):
  [RFC] core: add demux-filter objects to intercept & filter demuxer
    calls
  chromecast: remove unused include
  chromecast: add a demux-filter to display better time
  chromecast: use the demux-filter to display the correct playback time
  chromecast: delay the Demux() call until the Chromecast is ready to
    receive data
  chromecast: fix the time displayed after seeking
  chromecast: send the volume and mute values when about to start
    playback
  chromecast: pause immediatly the device when pausing the player
  chromecast: pass the title/artwork to the Chromecast when starting
    playback
  [RFC] demux: allow default demux-filters

 NEWS                                               |   3 +
 include/vlc_common.h                               |   1 +
 include/vlc_demux.h                                |  71 ++++-
 modules/MODULES_LIST                               |   1 +
 modules/demux/adaptive/plumbing/Demuxer.cpp        |   8 +-
 modules/stream_out/Makefile.am                     |   5 +
 modules/stream_out/chromecast/cast.cpp             |   2 +-
 modules/stream_out/chromecast/chromecast.h         |  90 +++++-
 modules/stream_out/chromecast/chromecast_common.h  |  61 +++++
 modules/stream_out/chromecast/chromecast_ctrl.cpp  | 244 ++++++++++++++++-
 modules/stream_out/chromecast/chromecast_demux.cpp | 302 +++++++++++++++++++++
 src/input/demux.c                                  | 106 ++++++++
 src/input/input.c                                  |  69 +++--
 src/input/input_internal.h                         |   2 +-
 src/input/var.c                                    |   1 +
 src/libvlc-module.c                                |   5 +
 src/libvlc.c                                       |   2 +
 17 files changed, 912 insertions(+), 61 deletions(-)
 create mode 100644 modules/stream_out/chromecast/chromecast_common.h
 create mode 100644 modules/stream_out/chromecast/chromecast_demux.cpp

-- 
2.7.0



More information about the vlc-devel mailing list