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.
Showing
Please register or sign in to comment