Solves various ABR issues based on #1530.
Created by: dsparacio
Added cache detection to TP rule, fixes issues with Abandonment rules. Fixes issues on transfer from cached to not cached sections of presentation. Solves major oscillation issue in TP rule. All changes were confirmed with the ABR testing tool.
For Oscillations we now have an algorithm to detect variation in the average array and will increase or decrease the sample amount based on variation.
Some results: BOLA vs Traditional after major improvements in both ABR.
ABR bola default rebuffers (low/other quality) 0 (0/0) 0 (0/0) average rebuffer seconds 0.000 0.000 up switches (in Mbps) 4 (70.582) 9 (34.184) down switches (in Mbps) 6 (56.410) 5 (25.030) oscillations within 10s 9 1 average bitrate in Mbps 11.222 10.724 count q=0 (0.254Mbps) 0 0 count q=1 (0.507Mbps) 2 0 count q=2 (0.760Mbps) 1 1 count q=3 (1.013Mbps) 0 1 count q=4 (1.255Mbps) 0 0 count q=5 (1.884Mbps) 0 0 count q=6 (3.134Mbps) 2 1 count q=7 (4.953Mbps) 8 5 count q=8 (9.915Mbps) 27 45 count q=9 (14.932Mbps) 36 22
Cache Pollution solution. We now keep a last load if cached measurement VS the aver thoughput array. This allows ABR to still switch up if chunks are cached but will react much quicker once not cached. It will also allow us to not switch up if a few cache chunks skew the average.
Average Time
1468109 0.037
1468109 0.033
1468109 0.025
1468109 0.034
1468109 0.04
1468109 1.026
752526 1.061 FALSE reading
516388 1.025 FALSE reading
41997 0.836
43450 0.871
44535 0.946
1575767 33.001 1505165 34.001 1475513 26.001 1528010 30.001 -- NON CACHED CHUNKS - Immediately shows accurate info with no step down. 20784 2186.001 20769 1941.001 20780 1977.001 20764 2326.001 20778 1914.001 20779 2069.001