Fix a minor bug with AdaptiveTrackSelection.

When updating track selection, we should only revert back from ideal
track selection to current track selection if the currently selected
track is not black-listed.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=158135644
This commit is contained in:
hoangtc 2017-06-06 06:58:07 -07:00 committed by Oliver Woodman
parent 5c2c3c5c63
commit c1bfab3c23

View File

@ -156,13 +156,13 @@ public class AdaptiveTrackSelection extends BaseTrackSelection {
long nowMs = SystemClock.elapsedRealtime();
// Get the current and ideal selections.
int currentSelectedIndex = selectedIndex;
Format currentFormat = getSelectedFormat();
int idealSelectedIndex = determineIdealSelectedIndex(nowMs);
Format idealFormat = getFormat(idealSelectedIndex);
// Assume we can switch to the ideal selection.
selectedIndex = idealSelectedIndex;
// Revert back to the current selection if conditions are not suitable for switching.
if (currentFormat != null && !isBlacklisted(selectedIndex, nowMs)) {
if (!isBlacklisted(currentSelectedIndex, nowMs)) {
Format currentFormat = getFormat(currentSelectedIndex);
Format idealFormat = getFormat(idealSelectedIndex);
if (idealFormat.bitrate > currentFormat.bitrate
&& bufferedDurationUs < minDurationForQualityIncreaseUs) {
// The ideal track is a higher quality, but we have insufficient buffer to safely switch