Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Dan Sparacio committed Feb 4, 2016
1 parent 343d95b commit f3b34ea
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 27 deletions.
6 changes: 3 additions & 3 deletions src/streaming/controllers/AbrController.js
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ function AbrController() {
*/
function getInitialBitrateFor(type) {

let saveBitrate = domStorage.getSavedBitrateSettings(type);
let savedBitrate = domStorage.getSavedBitrateSettings(type);

if (!bitrateDict.hasOwnProperty(type)) {
if (ratioDict.hasOwnProperty(type)) {
Expand All @@ -145,8 +145,8 @@ function AbrController() {
} else {
bitrateDict[type] = 0;
}
} else if (!isNaN(saveBitrate)) {
bitrateDict[type] = saveBitrate;
} else if (!isNaN(savedBitrate)) {
bitrateDict[type] = savedBitrate;
} else {
bitrateDict[type] = (type === 'video') ? DEFAULT_VIDEO_BITRATE : DEFAULT_AUDIO_BITRATE;
}
Expand Down
41 changes: 18 additions & 23 deletions src/streaming/rules/scheduling/BufferLevelRule.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,11 @@ function BufferLevelRule(config) {
}

function execute(rulesContext, callback) {
var mediaInfo = rulesContext.getMediaInfo();
var mediaType = mediaInfo.type;
var metrics = metricsModel.getReadOnlyMetricsFor(mediaType);
var bufferLevel = metricsExt.getCurrentBufferLevel(metrics);
var fragmentCount;
let mediaInfo = rulesContext.getMediaInfo();
let mediaType = mediaInfo.type;
let metrics = metricsModel.getReadOnlyMetricsFor(mediaType);
let bufferLevel = metricsExt.getCurrentBufferLevel(metrics);
let fragmentCount;

fragmentCount = bufferLevel < getBufferTarget(rulesContext, mediaType) ? 1 : 0;

Expand All @@ -65,28 +65,23 @@ function BufferLevelRule(config) {
function reset() {}

function getBufferTarget(rulesContext, type) {
var streamProcessor = rulesContext.getStreamProcessor();
var streamInfo = rulesContext.getStreamInfo();
var abrController = streamProcessor.getABRController();
var duration = streamInfo.manifestInfo.duration;
var trackInfo = rulesContext.getTrackInfo();
var isDynamic = streamProcessor.isDynamic(); //TODO make is dynamic false if live stream is playing more than X seconds from live edge in DVR window. So it will act like VOD.
var isLongFormContent = (duration >= mediaPlayerModel.getLongFormContentDurationThreshold());
var bufferTarget = NaN;

if (!isDynamic && abrController.isPlayingAtTopQuality(streamInfo)) {//TODO || allow larger buffer targets if we stabilize on a non top quality for more than 30 seconds.
bufferTarget = isLongFormContent ? mediaPlayerModel.getBufferTimeAtTopQualityLongForm() : mediaPlayerModel.getBufferTimeAtTopQuality();
}else if (!isDynamic) {
//General VOD target non top quality and not stabilized on a given quality.
bufferTarget = mediaPlayerModel.getStableBufferTime();
} else {
bufferTarget = playbackController.getLiveDelay();
}
let streamProcessor = rulesContext.getStreamProcessor();
let streamInfo = rulesContext.getStreamInfo();
let trackInfo = rulesContext.getTrackInfo();
let abrController = streamProcessor.getABRController();
let duration = streamInfo.manifestInfo.duration;
let isLongFormContent = (duration >= mediaPlayerModel.getLongFormContentDurationThreshold());
let bufferTarget = NaN;

if (type === 'fragmentedText') {
bufferTarget = textSourceBuffer.getAllTracksAreDisabled() ? 0 : trackInfo.fragmentDuration;
} else {
if (abrController.isPlayingAtTopQuality(streamInfo)) {
bufferTarget = isLongFormContent ? mediaPlayerModel.getBufferTimeAtTopQualityLongForm() : mediaPlayerModel.getBufferTimeAtTopQuality();
}else {
bufferTarget = mediaPlayerModel.getStableBufferTime();
}
}

return bufferTarget;
}

Expand Down
2 changes: 1 addition & 1 deletion src/streaming/utils/DOMStorage.js
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ function DOMStorage() {

if (!isNaN(bitrate) && !isExpired) {
savedBitrate = bitrate;
log('Last save bitrate for ' + type + ' was ' + bitrate);
log('Last saved bitrate for ' + type + ' was ' + bitrate);
} else if (isExpired) {
localStorage.removeItem(key);
}
Expand Down

0 comments on commit f3b34ea

Please sign in to comment.