vlc/vlc-3.0 | branch: master | Thomas Guillem <[email protected]> | Tue Feb 20 17:59:00 2018 +0100| [0d51605125a763ef2353cfb26fbd8a4048ca4b9e] | committer: Thomas Guillem
chromecast: rework sout/demux_filter behavior This commit drastically improves the buffering speed when casting to a CC receiver. Indeed, some CC receivers need a 1minute buffer. Since the input thread was previously paced, you could wait 59.7 sec (1min - file-caching value) to get the playback started. To fix this issue, the CC sout can now control the pacing (ACCESS_OUT_CONTROLS_PACE = true). The input thread, via the cc demux-filter, is now paced by the CC sout. The input-thread is paced in order to avoid unresponsive controls. Indeed, we want to prevent the case when the input thread is waiting for the sout that is waiting for the http buffer to be emptied (via the fifo wait from input_DecoderDecode()). Now that the CC can buffer 1 minute of data before failing, the transcode fallback also needed to be reworked. It's now handled by the demux-filter that will seek back (if possible) to the last position before doing the fallback. The same goes when disabling the CC filter or when changing es tracks. This commit also improves the CC time report by comparing the system clock with the CC one. This commit also reworks seeking. We need to flush the sout (and the muxer) and request a new input. The previous method, using the seek command could not work well with live streaming. (cherry picked from commit aad025eb8b7addbc0af7b9bb756d01e0fab40d4b) Signed-off-by: Thomas Guillem <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=0d51605125a763ef2353cfb26fbd8a4048ca4b9e --- modules/stream_out/chromecast/cast.cpp | 365 +++++++++------------ modules/stream_out/chromecast/chromecast.h | 42 +-- modules/stream_out/chromecast/chromecast_common.h | 26 +- modules/stream_out/chromecast/chromecast_ctrl.cpp | 296 +++++++++-------- modules/stream_out/chromecast/chromecast_demux.cpp | 213 +++++++++--- 5 files changed, 523 insertions(+), 419 deletions(-) Diff: http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commitdiff;h=0d51605125a763ef2353cfb26fbd8a4048ca4b9e _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
