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(); long nowMs = SystemClock.elapsedRealtime();
// Get the current and ideal selections. // Get the current and ideal selections.
int currentSelectedIndex = selectedIndex; int currentSelectedIndex = selectedIndex;
Format currentFormat = getSelectedFormat();
int idealSelectedIndex = determineIdealSelectedIndex(nowMs); int idealSelectedIndex = determineIdealSelectedIndex(nowMs);
Format idealFormat = getFormat(idealSelectedIndex);
// Assume we can switch to the ideal selection. // Assume we can switch to the ideal selection.
selectedIndex = idealSelectedIndex; selectedIndex = idealSelectedIndex;
// Revert back to the current selection if conditions are not suitable for switching. // 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 if (idealFormat.bitrate > currentFormat.bitrate
&& bufferedDurationUs < minDurationForQualityIncreaseUs) { && bufferedDurationUs < minDurationForQualityIncreaseUs) {
// The ideal track is a higher quality, but we have insufficient buffer to safely switch // The ideal track is a higher quality, but we have insufficient buffer to safely switch