Skip to content

Commit

Permalink
update dist
Browse files Browse the repository at this point in the history
related to #1202
  • Loading branch information
mangui committed Jun 21, 2017
1 parent 1a03ea8 commit da4cf9b
Show file tree
Hide file tree
Showing 6 changed files with 214 additions and 94 deletions.
159 changes: 112 additions & 47 deletions dist/hls.js
Original file line number Diff line number Diff line change
Expand Up @@ -750,6 +750,8 @@ var AbrController = function (_EventHandler) {
_this.lastLoadedFragLevel = 0;
_this._nextAutoLevel = -1;
_this.hls = hls;
_this.timer = null;
_this._bwEstimator = null;
_this.onCheck = _this._abandonRulesCheck.bind(_this);
return _this;
}
Expand Down Expand Up @@ -934,10 +936,8 @@ var AbrController = function (_EventHandler) {
}, {
key: 'clearTimer',
value: function clearTimer() {
if (this.timer) {
clearInterval(this.timer);
this.timer = null;
}
clearInterval(this.timer);
this.timer = null;
}

// return next auto level
Expand Down Expand Up @@ -1274,6 +1274,9 @@ var AudioStreamController = function (_EventHandler) {
pos = this.media.currentTime;
} else {
pos = this.nextLoadPosition;
if (pos === undefined) {
break;
}
}
var media = this.mediaBuffer ? this.mediaBuffer : this.media,
bufferInfo = _bufferHelper2.default.bufferInfo(media, pos, config.maxBufferHole),
Expand Down Expand Up @@ -1574,7 +1577,6 @@ var AudioStreamController = function (_EventHandler) {
// if any URL found on new audio track, it is an alternate audio track
var altAudio = !!data.url;
this.trackId = data.id;
this.state = State.IDLE;

this.fragCurrent = null;
this.state = State.PAUSED;
Expand Down Expand Up @@ -5504,6 +5506,25 @@ var SubtitleTrackController = function (_EventHandler) {
}

_createClass(SubtitleTrackController, [{
key: '_onTextTracksChanged',
value: function _onTextTracksChanged() {
// Media is undefined when switching streams via loadSource()
if (!this.media) {
return;
}

var trackId = -1;
var tracks = filterSubtitleTracks(this.media.textTracks);
for (var id = 0; id < tracks.length; id++) {
if (tracks[id].mode === 'showing') {
trackId = id;
}
}

// Setting current subtitleTrack will invoke code.
this.subtitleTrack = trackId;
}
}, {
key: 'destroy',
value: function destroy() {
_eventHandler2.default.prototype.destroy.call(this);
Expand All @@ -5514,34 +5535,23 @@ var SubtitleTrackController = function (_EventHandler) {
}, {
key: 'onMediaAttached',
value: function onMediaAttached(data) {
var _this2 = this;

this.media = data.media;
if (!this.media) {
return;
}

this.media.textTracks.addEventListener('change', function () {
// Media is undefined when switching streams via loadSource()
if (!_this2.media) {
return;
}

var trackId = -1;
var tracks = filterSubtitleTracks(_this2.media.textTracks);
for (var id = 0; id < tracks.length; id++) {
if (tracks[id].mode === 'showing') {
trackId = id;
}
}
// Setting current subtitleTrack will invoke code.
_this2.subtitleTrack = trackId;
});
this.trackChangeListener = this._onTextTracksChanged.bind(this);
this.media.textTracks.addEventListener('change', this.trackChangeListener);
}
}, {
key: 'onMediaDetaching',
value: function onMediaDetaching() {
// TODO: Remove event listeners.
if (!this.media) {
return;
}

this.media.textTracks.removeEventListener('change', this.trackChangeListener);

this.media = undefined;
}

Expand All @@ -5559,7 +5569,7 @@ var SubtitleTrackController = function (_EventHandler) {
}, {
key: 'onManifestLoaded',
value: function onManifestLoaded(data) {
var _this3 = this;
var _this2 = this;

var tracks = data.subtitles || [];
var defaultFound = false;
Expand All @@ -5571,7 +5581,7 @@ var SubtitleTrackController = function (_EventHandler) {
// TODO: improve selection logic to handle forced, etc
tracks.forEach(function (track) {
if (track.default) {
_this3.subtitleTrack = track.id;
_this2.subtitleTrack = track.id;
defaultFound = true;
}
});
Expand Down Expand Up @@ -5599,7 +5609,7 @@ var SubtitleTrackController = function (_EventHandler) {
}, {
key: 'onSubtitleTrackLoaded',
value: function onSubtitleTrackLoaded(data) {
var _this4 = this;
var _this3 = this;

if (data.id < this.tracks.length) {
_logger.logger.log('subtitle track ' + data.id + ' loaded');
Expand All @@ -5609,7 +5619,7 @@ var SubtitleTrackController = function (_EventHandler) {
// if live playlist we will have to reload it periodically
// set reload period to playlist target duration
this.timer = setInterval(function () {
_this4.onTick();
_this3.onTick();
}, 1000 * data.details.targetduration, this);
}
if (!data.details.live && this.timer) {
Expand Down Expand Up @@ -6635,8 +6645,8 @@ var AACDemuxer = function () {
// Layer bits (position 14 and 15) in header should be always 0 for ADTS
// More info https://wiki.multimedia.cx/index.php?title=ADTS
for (offset = id3Data.length, length = Math.min(data.length - 1, offset + 100); offset < length; offset++) {
if (_adts2.default.isHeader(data, offset)) {
//logger.log('ADTS sync word found !');
if (_adts2.default.probe(data, offset)) {
_logger.logger.log('ADTS sync word found !');
return true;
}
}
Expand Down Expand Up @@ -6778,12 +6788,41 @@ var ADTS = {
return { config: config, samplerate: adtsSampleingRates[adtsSampleingIndex], channelCount: adtsChanelConfig, codec: 'mp4a.40.' + adtsObjectType, manifestCodec: manifestCodec };
},

isHeaderPattern: function isHeaderPattern(data, offset) {
return data[offset] === 0xff && (data[offset + 1] & 0xf6) === 0xf0;
},

getHeaderLength: function getHeaderLength(data, offset) {
return !!(data[offset + 1] & 0x01) ? 7 : 9;
},

getFullFrameLength: function getFullFrameLength(data, offset) {
return (data[offset + 3] & 0x03) << 11 | data[offset + 4] << 3 | (data[offset + 5] & 0xE0) >>> 5;
},

isHeader: function isHeader(data, offset) {
// Look for ADTS header | 1111 1111 | 1111 X00X | where X can be either 0 or 1
// Layer bits (position 14 and 15) in header should be always 0 for ADTS
// More info https://wiki.multimedia.cx/index.php?title=ADTS
if (offset + 1 < data.length) {
if (data[offset] === 0xff && (data[offset + 1] & 0xf6) === 0xf0) {
if (offset + 1 < data.length && this.isHeaderPattern(data, offset)) {
return true;
}
return false;
},

probe: function probe(data, offset) {
// same as isHeader but we also check that ADTS frame follows last ADTS frame
// or end of data is reached
if (offset + 1 < data.length && this.isHeaderPattern(data, offset)) {
// ADTS header Length
var headerLength = this.getHeaderLength(data, offset);
// ADTS frame Length
var frameLength = headerLength;
if (offset + 5 < data.length) {
frameLength = this.getFullFrameLength(data, offset);
}
var newOffset = offset + frameLength;
if (newOffset === data.length || newOffset + 1 < data.length && this.isHeaderPattern(data, newOffset)) {
return true;
}
}
Expand Down Expand Up @@ -6831,9 +6870,9 @@ var ADTS = {
var length = data.length;

// The protection skip bit tells us if we have 2 bytes of CRC data at the end of the ADTS header
headerLength = !!(data[offset + 1] & 0x01) ? 7 : 9;
headerLength = this.getHeaderLength(data, offset);
// retrieve frame size
frameLength = (data[offset + 3] & 0x03) << 11 | data[offset + 4] << 3 | (data[offset + 5] & 0xE0) >>> 5;
frameLength = this.getFullFrameLength(data, offset);
frameLength -= headerLength;

if (frameLength > 0 && offset + headerLength + frameLength <= length) {
Expand Down Expand Up @@ -6956,10 +6995,11 @@ var DemuxerInline = function () {
var observer = this.observer;
var typeSupported = this.typeSupported;
var config = this.config;
var muxConfig = [{ demux: _tsdemuxer2.default, remux: _mp4Remuxer2.default }, { demux: _mp3demuxer2.default, remux: _mp4Remuxer2.default }, { demux: _aacdemuxer2.default, remux: _mp4Remuxer2.default }, { demux: _mp4demuxer2.default, remux: _passthroughRemuxer2.default }];
// probing order is AAC/MP3/TS/MP4
var muxConfig = [{ demux: _aacdemuxer2.default, remux: _mp4Remuxer2.default }, { demux: _mp3demuxer2.default, remux: _mp4Remuxer2.default }, { demux: _tsdemuxer2.default, remux: _mp4Remuxer2.default }, { demux: _mp4demuxer2.default, remux: _passthroughRemuxer2.default }];

// probe for content type
for (var i in muxConfig) {
for (var i = 0, len = muxConfig.length; i < len; i++) {
var mux = muxConfig[i];
var probe = mux.demux.probe;
if (probe(data)) {
Expand Down Expand Up @@ -8053,6 +8093,8 @@ var _id = _dereq_(27);

var _id2 = _interopRequireDefault(_id);

var _logger = _dereq_(54);

var _mpegaudio = _dereq_(30);

var _mpegaudio2 = _interopRequireDefault(_mpegaudio);
Expand Down Expand Up @@ -8131,8 +8173,8 @@ var MP3Demuxer = function () {
// Layer bits (position 14 and 15) in header should be always different from 0 (Layer I or Layer II or Layer III)
// More info http://www.mp3-tech.org/programmer/frame_header.html
for (offset = id3Data.length, length = Math.min(data.length - 1, offset + 100); offset < length; offset++) {
if (_mpegaudio2.default.isHeader(data, offset)) {
//logger.log('MPEG sync word found !');
if (_mpegaudio2.default.probe(data, offset)) {
_logger.logger.log('MPEG Audio sync word found !');
return true;
}
}
Expand All @@ -8146,7 +8188,7 @@ var MP3Demuxer = function () {

exports.default = MP3Demuxer;

},{"27":27,"30":30}],29:[function(_dereq_,module,exports){
},{"27":27,"30":30,"54":54}],29:[function(_dereq_,module,exports){
'use strict';

Object.defineProperty(exports, "__esModule", {
Expand Down Expand Up @@ -8477,6 +8519,7 @@ exports.default = MP4Demuxer;
/**
* MPEG parser helper
*/

var MpegAudio = {

BitratesMap: [32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160],
Expand Down Expand Up @@ -8528,12 +8571,34 @@ var MpegAudio = {
return undefined;
},

isHeaderPattern: function isHeaderPattern(data, offset) {
return data[offset] === 0xff && (data[offset + 1] & 0xe0) === 0xe0 && (data[offset + 1] & 0x06) !== 0x00;
},

isHeader: function isHeader(data, offset) {
// Look for MPEG header | 1111 1111 | 111X XYZX | where X can be either 0 or 1 and Y or Z should be 1
// Layer bits (position 14 and 15) in header should be always different from 0 (Layer I or Layer II or Layer III)
// More info http://www.mp3-tech.org/programmer/frame_header.html
if (offset + 1 < data.length) {
if (data[offset] === 0xff && (data[offset + 1] & 0xe0) === 0xe0 && (data[offset + 1] & 0x06) !== 0x00) {
if (offset + 1 < data.length && this.isHeaderPattern(data, offset)) {
return true;
}
return false;
},

probe: function probe(data, offset) {
// same as isHeader but we also check that MPEG frame follows last MPEG frame
// or end of data is reached
if (offset + 1 < data.length && this.isHeaderPattern(data, offset)) {
// MPEG header Length
var headerLength = 4;
// MPEG frame Length
var header = this.parseHeader(data, offset);
var frameLength = headerLength;
if (header && header.frameLength) {
frameLength = header.frameLength;
}
var newOffset = offset + frameLength;
if (newOffset === data.length || newOffset + 1 < data.length && this.isHeaderPattern(data, newOffset)) {
return true;
}
}
Expand Down Expand Up @@ -9867,7 +9932,7 @@ var EventHandler = function () {
throw new Error('Forbidden event name: ' + event);
}
this.hls.on(event, this.onEvent);
}.bind(this));
}, this);
}
}
}, {
Expand All @@ -9876,7 +9941,7 @@ var EventHandler = function () {
if (this.isEventHandler()) {
this.handledEvents.forEach(function (event) {
this.hls.off(event, this.onEvent);
}.bind(this));
}, this);
}
}

Expand Down Expand Up @@ -10332,16 +10397,16 @@ var LevelHelper = {
module.exports = LevelHelper;

},{"54":54}],39:[function(_dereq_,module,exports){
/**
* HLS interface
*/
'use strict';

Object.defineProperty(exports, "__esModule", {
value: true
});

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /**
* HLS interface
*/


var _urlToolkit = _dereq_(2);

Expand Down
24 changes: 12 additions & 12 deletions dist/hls.js.map

Large diffs are not rendered by default.

Loading

0 comments on commit da4cf9b

Please sign in to comment.