[vlc-commits] stream_filter: smooth: rewrite bw adaptation algorithm

Francois Cartegnie git at videolan.org
Mon Nov 10 12:59:22 CET 2014


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Sat Nov  8 19:12:17 2014 +0100| [50fc01a7bb58585dc1b0abd80d3bf3b19068e00e] | committer: Francois Cartegnie

stream_filter: smooth: rewrite bw adaptation algorithm

BW measurement must be per stream as receive window/transfert
rate will differ relatively to chunk size. There's no real
way to get an accurate Max BW with such small files, but it
is still accurate to predict the BW for a download of same
size.

A validation cursor is introduced to qualify bitrates.
Cursor evolves within a window of summed download times.
Adds duration to window if > bitrate, and opposite.
  -PROBE_TIME << cursor << PROBE_TIME
Negative values makes harder to select previously unqualified
bitrates.
Stream quality will rank up quality only if next candidate has
filled its own window.
Stream reselection only occurs when cursor <= 0.
In that way, we can tolerate temporary bitrate lowering or increase
and avoid the hiccup reselection problems we had until now.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=50fc01a7bb58585dc1b0abd80d3bf3b19068e00e
---

 modules/stream_filter/smooth/downloader.c |  166 +++++++++++++++++++----------
 modules/stream_filter/smooth/smooth.c     |    5 +-
 modules/stream_filter/smooth/smooth.h     |   32 +++---
 modules/stream_filter/smooth/utils.c      |   86 +++++----------
 4 files changed, 152 insertions(+), 137 deletions(-)

Diff:   http://git.videolan.org/gitweb.cgi/vlc.git/?a=commitdiff;h=50fc01a7bb58585dc1b0abd80d3bf3b19068e00e


More information about the vlc-commits mailing list