@antmedia/web_player 2.11.1 → 2.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/web_player.js +4 -6
- package/dist/es/{plugin-ca799d0d.js → plugin-50e1316e.js} +134 -144
- package/dist/es/{video.es-0951ae41.js → video.es-be70c095.js} +36 -41
- package/dist/es/{videojs-webrtc-plugin-327afa5e.js → videojs-webrtc-plugin-7054aa21.js} +1 -1
- package/dist/es/videojs-webrtc-plugin-f56e1f9e.js +3 -0
- package/dist/es/{video.es-22056625.js → videojs-webrtc-plugin.es-2a0dfc29.js} +14968 -5052
- package/dist/es/videojs-webrtc-plugin.es-333788d9.js +7673 -0
- package/dist/es/{videojs-webrtc-plugin.es-f41400f7.js → videojs-webrtc-plugin.es-777bf41a.js} +1747 -1697
- package/dist/es/{videojs-webrtc-plugin.es-bd0b1a6d.js → videojs-webrtc-plugin.es-9544f6e0.js} +1563 -1672
- package/dist/es/web_player.js +7 -9
- package/dist/index.d.ts +17 -1
- package/dist/{plugin-84ab2cdd.js → plugin-bec9dc4a.js} +136 -146
- package/dist/{video.es-474303e7.js → video.es-df9af03d.js} +36 -43
- package/dist/{videojs-webrtc-plugin-bdf9fa8b.js → videojs-webrtc-plugin-3becde8c.js} +1 -1
- package/dist/videojs-webrtc-plugin-77a9860b.js +5 -0
- package/dist/{videojs-webrtc-plugin.es-72234e77.js → videojs-webrtc-plugin.es-0787d11e.js} +1575 -1684
- package/dist/{video.es-72122d04.js → videojs-webrtc-plugin.es-493b195e.js} +14964 -5052
- package/dist/videojs-webrtc-plugin.es-8f4ea4e4.js +7675 -0
- package/dist/{videojs-webrtc-plugin.es-ac81d249.js → videojs-webrtc-plugin.es-ee6d0333.js} +1757 -1707
- package/dist/web_player.js +7 -9
- package/package.json +3 -5
- package/rollup.config.module.cjs +6 -2
- package/src/web_player.js +4 -6
- package/test/embedded-player.test.js +1 -1
- package/tsconfig.json +0 -1
- package/dist/aframe-master-42bb78a9.js +0 -7139
- package/dist/dash.all.min-84806d51.js +0 -36
- package/dist/es/aframe-master-a6146619.js +0 -7137
- package/dist/es/dash.all.min-4a2772b6.js +0 -34
- package/dist/es/inheritsLoose-91dc2acc.js +0 -15
- package/dist/es/video-js.min-8b4dfe88.js +0 -3
- package/dist/es/videojs-contrib-quality-levels.es-1ea32822.js +0 -276
- package/dist/es/videojs-contrib-quality-levels.es-5f5b5f23.js +0 -287
- package/dist/es/videojs-hls-quality-selector.es-3c54e1cd.js +0 -391
- package/dist/es/videojs-webrtc-plugin-b9e4da27.js +0 -3
- package/dist/inheritsLoose-281376c7.js +0 -17
- package/dist/video-js.min-7e4ae47a.js +0 -5
- package/dist/videojs-contrib-quality-levels.es-6c3be3eb.js +0 -278
- package/dist/videojs-contrib-quality-levels.es-ef3cec9e.js +0 -289
- package/dist/videojs-hls-quality-selector.es-562309df.js +0 -393
- package/dist/videojs-webrtc-plugin-d30c3e7a.js +0 -5
|
@@ -2,21 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
var _commonjsHelpers = require('./_commonjsHelpers-ed042b00.js');
|
|
4
4
|
|
|
5
|
-
function _extends$3() {
|
|
6
|
-
_extends$3 = Object.assign ? Object.assign.bind() : function (target) {
|
|
7
|
-
for (var i = 1; i < arguments.length; i++) {
|
|
8
|
-
var source = arguments[i];
|
|
9
|
-
for (var key in source) {
|
|
10
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
11
|
-
target[key] = source[key];
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
return target;
|
|
16
|
-
};
|
|
17
|
-
return _extends$3.apply(this, arguments);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
5
|
var win;
|
|
21
6
|
if (typeof window !== "undefined") {
|
|
22
7
|
win = window;
|
|
@@ -551,7 +536,7 @@ var safeParseTuple = /*@__PURE__*/_commonjsHelpers.getDefaultExportFromCjs(tuple
|
|
|
551
536
|
|
|
552
537
|
var lib = {exports: {}};
|
|
553
538
|
|
|
554
|
-
var _extends$
|
|
539
|
+
var _extends$3 = {exports: {}};
|
|
555
540
|
|
|
556
541
|
(function (module) {
|
|
557
542
|
function _extends() {
|
|
@@ -569,9 +554,9 @@ var _extends$2 = {exports: {}};
|
|
|
569
554
|
return _extends.apply(this, arguments);
|
|
570
555
|
}
|
|
571
556
|
module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
572
|
-
} (_extends$
|
|
557
|
+
} (_extends$3));
|
|
573
558
|
|
|
574
|
-
var _extendsExports = _extends$
|
|
559
|
+
var _extendsExports = _extends$3.exports;
|
|
575
560
|
|
|
576
561
|
var isFunction_1 = isFunction$1;
|
|
577
562
|
var toString$1 = Object.prototype.toString;
|
|
@@ -846,7 +831,7 @@ function getCharset(contentTypeHeader) {
|
|
|
846
831
|
var httpHandler = httpResponseHandler;
|
|
847
832
|
|
|
848
833
|
var window$2 = window_1;
|
|
849
|
-
var _extends$
|
|
834
|
+
var _extends$2 = _extendsExports;
|
|
850
835
|
var isFunction = isFunction_1;
|
|
851
836
|
var InterceptorsStorage = interceptors;
|
|
852
837
|
var RetryManager = retry;
|
|
@@ -914,7 +899,7 @@ function initParams(uri, options, callback) {
|
|
|
914
899
|
};
|
|
915
900
|
}
|
|
916
901
|
} else {
|
|
917
|
-
params = _extends$
|
|
902
|
+
params = _extends$2({}, options, {
|
|
918
903
|
uri: uri
|
|
919
904
|
});
|
|
920
905
|
}
|
|
@@ -2847,6 +2832,21 @@ if (!window$1.VTTCue) {
|
|
|
2847
2832
|
var browserIndexExports = browserIndex.exports;
|
|
2848
2833
|
var vtt = /*@__PURE__*/_commonjsHelpers.getDefaultExportFromCjs(browserIndexExports);
|
|
2849
2834
|
|
|
2835
|
+
function _extends$1() {
|
|
2836
|
+
_extends$1 = Object.assign ? Object.assign.bind() : function (target) {
|
|
2837
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
2838
|
+
var source = arguments[i];
|
|
2839
|
+
for (var key in source) {
|
|
2840
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
2841
|
+
target[key] = source[key];
|
|
2842
|
+
}
|
|
2843
|
+
}
|
|
2844
|
+
}
|
|
2845
|
+
return target;
|
|
2846
|
+
};
|
|
2847
|
+
return _extends$1.apply(this, arguments);
|
|
2848
|
+
}
|
|
2849
|
+
|
|
2850
2850
|
var urlToolkit = {exports: {}};
|
|
2851
2851
|
|
|
2852
2852
|
(function (module, exports) {
|
|
@@ -3435,7 +3435,7 @@ class ParseStream extends Stream {
|
|
|
3435
3435
|
}
|
|
3436
3436
|
match = /^#EXT-X-BYTERANGE:(.*)?$/.exec(newLine);
|
|
3437
3437
|
if (match) {
|
|
3438
|
-
event = _extends$
|
|
3438
|
+
event = _extends$1(parseByterange(match[1]), {
|
|
3439
3439
|
type: 'tag',
|
|
3440
3440
|
tagType: 'byterange'
|
|
3441
3441
|
});
|
|
@@ -4267,7 +4267,7 @@ class Parser extends Stream {
|
|
|
4267
4267
|
if (!currentUri.attributes) {
|
|
4268
4268
|
currentUri.attributes = {};
|
|
4269
4269
|
}
|
|
4270
|
-
_extends$
|
|
4270
|
+
_extends$1(currentUri.attributes, entry.attributes);
|
|
4271
4271
|
},
|
|
4272
4272
|
media() {
|
|
4273
4273
|
this.manifest.mediaGroups = this.manifest.mediaGroups || defaultMediaGroups;
|
|
@@ -4518,8 +4518,8 @@ class Parser extends Stream {
|
|
|
4518
4518
|
} // if tags with the same ID do not have conflicting attributes, merge them
|
|
4519
4519
|
|
|
4520
4520
|
const dateRangeWithSameId = this.manifest.dateRanges.findIndex(dateRangeToFind => dateRangeToFind.id === dateRange.id);
|
|
4521
|
-
this.manifest.dateRanges[dateRangeWithSameId] = _extends$
|
|
4522
|
-
dateRangeTags[dateRange.id] = _extends$
|
|
4521
|
+
this.manifest.dateRanges[dateRangeWithSameId] = _extends$1(this.manifest.dateRanges[dateRangeWithSameId], dateRange);
|
|
4522
|
+
dateRangeTags[dateRange.id] = _extends$1(dateRangeTags[dateRange.id], dateRange); // after merging, delete the duplicate dateRange that was added last
|
|
4523
4523
|
|
|
4524
4524
|
this.manifest.dateRanges.pop();
|
|
4525
4525
|
}
|
|
@@ -26359,7 +26359,7 @@ const phonyUri=`placeholder-uri-${i}`;main.playlists[i].uri=phonyUri;}}const aud
|
|
|
26359
26359
|
if(!properties.playlists||!properties.playlists.length){// If the manifest is audio only and this media group does not have a uri, check
|
|
26360
26360
|
// if the media group is located in the main list of playlists. If it is, don't add
|
|
26361
26361
|
// placeholder properties as it shouldn't be considered an alternate audio track.
|
|
26362
|
-
if(audioOnlyMain&&mediaType==='AUDIO'&&!properties.uri){for(let i=0;i<main.playlists.length;i++){const p=main.playlists[i];if(p.attributes&&p.attributes.AUDIO&&p.attributes.AUDIO===groupKey){return;}}}properties.playlists=[_extends$
|
|
26362
|
+
if(audioOnlyMain&&mediaType==='AUDIO'&&!properties.uri){for(let i=0;i<main.playlists.length;i++){const p=main.playlists[i];if(p.attributes&&p.attributes.AUDIO&&p.attributes.AUDIO===groupKey){return;}}}properties.playlists=[_extends$1({},properties)];}properties.playlists.forEach(function(p,i){const groupId=createGroupID(mediaType,groupKey,labelKey,p);const id=createPlaylistID(i,groupId);if(p.uri){p.resolvedUri=p.resolvedUri||resolveUrl(main.uri,p.uri);}else {// DEPRECATED, this has been added to prevent a breaking change.
|
|
26363
26363
|
// previously we only ever had a single media group playlist, so
|
|
26364
26364
|
// we mark the first playlist uri without prepending the index as we used to
|
|
26365
26365
|
// ideally we would do all of the playlists the same way.
|
|
@@ -26373,7 +26373,7 @@ if(this.offset_!==null){return;}// no segment to process
|
|
|
26373
26373
|
if(!segments.length){return;}const[firstSegment]=segments;// no program date time
|
|
26374
26374
|
if(firstSegment.programDateTime===undefined){return;}// Set offset as ProgramDateTime for the very first segment of the very first playlist load:
|
|
26375
26375
|
this.offset_=firstSegment.programDateTime/1000;}setPendingDateRanges(dateRanges=[]){if(!dateRanges.length){return;}const[dateRange]=dateRanges;const startTime=dateRange.startDate.getTime();this.trimProcessedDateRanges_(startTime);this.pendingDateRanges_=dateRanges.reduce((map,pendingDateRange)=>{map.set(pendingDateRange.id,pendingDateRange);return map;},new Map());}processDateRange(dateRange){this.pendingDateRanges_.delete(dateRange.id);this.processedDateRanges_.set(dateRange.id,dateRange);}getDateRangesToProcess(){if(this.offset_===null){return [];}const dateRangeClasses={};const dateRangesToProcess=[];this.pendingDateRanges_.forEach((dateRange,id)=>{if(this.processedDateRanges_.has(id)){return;}dateRange.startTime=dateRange.startDate.getTime()/1000-this.offset_;dateRange.processDateRange=()=>this.processDateRange(dateRange);dateRangesToProcess.push(dateRange);if(!dateRange.class){return;}if(dateRangeClasses[dateRange.class]){const length=dateRangeClasses[dateRange.class].push(dateRange);dateRange.classListIndex=length-1;}else {dateRangeClasses[dateRange.class]=[dateRange];dateRange.classListIndex=0;}});for(const dateRange of dateRangesToProcess){const classList=dateRangeClasses[dateRange.class]||[];if(dateRange.endDate){dateRange.endTime=dateRange.endDate.getTime()/1000-this.offset_;}else if(dateRange.endOnNext&&classList[dateRange.classListIndex+1]){dateRange.endTime=classList[dateRange.classListIndex+1].startTime;}else if(dateRange.duration){dateRange.endTime=dateRange.startTime+dateRange.duration;}else if(dateRange.plannedDuration){dateRange.endTime=dateRange.startTime+dateRange.plannedDuration;}else {dateRange.endTime=dateRange.startTime;}}return dateRangesToProcess;}trimProcessedDateRanges_(startTime){const copy=new Map(this.processedDateRanges_);copy.forEach((dateRange,id)=>{if(dateRange.startDate.getTime()<startTime){this.processedDateRanges_.delete(id);}});}}const QUOTA_EXCEEDED_ERR=22;const getStreamingNetworkErrorMetadata=({requestType,request,error,parseFailure})=>{const isBadStatus=request.status<200||request.status>299;const isFailure=request.status>=400&&request.status<=499;const errorMetadata={uri:request.uri,requestType};const isBadStatusOrParseFailure=isBadStatus&&!isFailure||parseFailure;if(error&&isFailure){// copy original error and add to the metadata.
|
|
26376
|
-
errorMetadata.error=_extends$
|
|
26376
|
+
errorMetadata.error=_extends$1({},error);errorMetadata.errorType=videojs.Error.NetworkRequestFailed;}else if(request.aborted){errorMetadata.errorType=videojs.Error.NetworkRequestAborted;}else if(request.timedout){errorMetadata.erroType=videojs.Error.NetworkRequestTimeout;}else if(isBadStatusOrParseFailure){const errorType=parseFailure?videojs.Error.NetworkBodyParserFailed:videojs.Error.NetworkBadStatus;errorMetadata.errorType=errorType;errorMetadata.status=request.status;errorMetadata.headers=request.headers;}return errorMetadata;};const{EventTarget:EventTarget$1}=videojs;const addLLHLSQueryDirectives=(uri,media)=>{if(media.endList||!media.serverControl){return uri;}const parameters={};if(media.serverControl.canBlockReload){const{preloadSegment}=media;// next msn is a zero based value, length is not.
|
|
26377
26377
|
let nextMSN=media.mediaSequence+media.segments.length;// If preload segment has parts then it is likely
|
|
26378
26378
|
// that we are going to request a part of that preload segment.
|
|
26379
26379
|
// the logic below is used to determine that.
|
|
@@ -26642,7 +26642,7 @@ main.playlists[playlistId]=playlist;main.playlists[uri]=playlist;this.createClon
|
|
|
26642
26642
|
// to the next media type.
|
|
26643
26643
|
if(!main.mediaGroups[mediaType]||main.mediaGroups[mediaType][id]){return;}for(const groupKey in main.mediaGroups[mediaType]){if(groupKey===baseID){// Create the group.
|
|
26644
26644
|
main.mediaGroups[mediaType][id]={};}else {// There is no need to iterate over label keys in this case.
|
|
26645
|
-
continue;}for(const labelKey in main.mediaGroups[mediaType][groupKey]){const oldMedia=main.mediaGroups[mediaType][groupKey][labelKey];main.mediaGroups[mediaType][id][labelKey]=_extends$
|
|
26645
|
+
continue;}for(const labelKey in main.mediaGroups[mediaType][groupKey]){const oldMedia=main.mediaGroups[mediaType][groupKey][labelKey];main.mediaGroups[mediaType][id][labelKey]=_extends$1({},oldMedia);const newMedia=main.mediaGroups[mediaType][id][labelKey];// update URIs on the media
|
|
26646
26646
|
const newUri=this.createCloneURI_(oldMedia.resolvedUri,clone);newMedia.resolvedUri=newUri;newMedia.uri=newUri;// Reset playlists in the new media group.
|
|
26647
26647
|
newMedia.playlists=[];// Create new playlists in the newly cloned media group.
|
|
26648
26648
|
oldMedia.playlists.forEach((p,i)=>{const oldMediaPlaylist=main.playlists[p.id];const group=groupID(mediaType,id,labelKey);const newPlaylistID=createPlaylistID(id,group);// Check to see if it already exists
|
|
@@ -29455,7 +29455,7 @@ data:buffer,// To recreate the original typed-array, we need information
|
|
|
29455
29455
|
// about what portion of the ArrayBuffer it was a view into
|
|
29456
29456
|
byteOffset,byteLength:bytes.byteLength},[buffer]);}if(isEndOfTimeline){transmuxer.postMessage({action:'endTimeline'});}// even if we didn't push any bytes, we have to make sure we flush in case we reached
|
|
29457
29457
|
// the end of the segment
|
|
29458
|
-
transmuxer.postMessage({action:'flush'});};const dequeue=transmuxer=>{transmuxer.currentTransmux=null;if(transmuxer.transmuxQueue.length){transmuxer.currentTransmux=transmuxer.transmuxQueue.shift();if(typeof transmuxer.currentTransmux==='function'){transmuxer.currentTransmux();}else {processTransmux(transmuxer.currentTransmux);}}};const processAction=(transmuxer,action)=>{transmuxer.postMessage({action});dequeue(transmuxer);};const enqueueAction=(action,transmuxer)=>{if(!transmuxer.currentTransmux){transmuxer.currentTransmux=action;processAction(transmuxer,action);return;}transmuxer.transmuxQueue.push(processAction.bind(null,transmuxer,action));};const reset=transmuxer=>{enqueueAction('reset',transmuxer);};const endTimeline=transmuxer=>{enqueueAction('endTimeline',transmuxer);};const transmux=options=>{if(!options.transmuxer.currentTransmux){options.transmuxer.currentTransmux=options;processTransmux(options);return;}options.transmuxer.transmuxQueue.push(options);};const createTransmuxer=options=>{const transmuxer=new TransmuxWorker();transmuxer.currentTransmux=null;transmuxer.transmuxQueue=[];const term=transmuxer.terminate;transmuxer.terminate=()=>{transmuxer.currentTransmux=null;transmuxer.transmuxQueue.length=0;return term.call(transmuxer);};transmuxer.postMessage({action:'init',options});return transmuxer;};var segmentTransmuxer={reset,endTimeline,transmux,createTransmuxer};const workerCallback=function(options){const transmuxer=options.transmuxer;const endAction=options.endAction||options.action;const callback=options.callback;const message=_extends$
|
|
29458
|
+
transmuxer.postMessage({action:'flush'});};const dequeue=transmuxer=>{transmuxer.currentTransmux=null;if(transmuxer.transmuxQueue.length){transmuxer.currentTransmux=transmuxer.transmuxQueue.shift();if(typeof transmuxer.currentTransmux==='function'){transmuxer.currentTransmux();}else {processTransmux(transmuxer.currentTransmux);}}};const processAction=(transmuxer,action)=>{transmuxer.postMessage({action});dequeue(transmuxer);};const enqueueAction=(action,transmuxer)=>{if(!transmuxer.currentTransmux){transmuxer.currentTransmux=action;processAction(transmuxer,action);return;}transmuxer.transmuxQueue.push(processAction.bind(null,transmuxer,action));};const reset=transmuxer=>{enqueueAction('reset',transmuxer);};const endTimeline=transmuxer=>{enqueueAction('endTimeline',transmuxer);};const transmux=options=>{if(!options.transmuxer.currentTransmux){options.transmuxer.currentTransmux=options;processTransmux(options);return;}options.transmuxer.transmuxQueue.push(options);};const createTransmuxer=options=>{const transmuxer=new TransmuxWorker();transmuxer.currentTransmux=null;transmuxer.transmuxQueue=[];const term=transmuxer.terminate;transmuxer.terminate=()=>{transmuxer.currentTransmux=null;transmuxer.transmuxQueue.length=0;return term.call(transmuxer);};transmuxer.postMessage({action:'init',options});return transmuxer;};var segmentTransmuxer={reset,endTimeline,transmux,createTransmuxer};const workerCallback=function(options){const transmuxer=options.transmuxer;const endAction=options.endAction||options.action;const callback=options.callback;const message=_extends$1({},options,{endAction:null,transmuxer:null,callback:null});const listenForEndEvent=event=>{if(event.data.action!==endAction){return;}transmuxer.removeEventListener('message',listenForEndEvent);// transfer ownership of bytes back to us.
|
|
29459
29459
|
if(event.data.data){event.data.data=new Uint8Array(event.data.data,options.byteOffset||0,options.byteLength||event.data.data.byteLength);if(options.data){options.data=event.data.data;}}callback(event.data);};transmuxer.addEventListener('message',listenForEndEvent);if(options.data){const isArrayBuffer=options.data instanceof ArrayBuffer;message.byteOffset=isArrayBuffer?0:options.data.byteOffset;message.byteLength=options.data.byteLength;const transfers=[isArrayBuffer?options.data:options.data.buffer];transmuxer.postMessage(message,transfers);}else {transmuxer.postMessage(message);}};const REQUEST_ERRORS={FAILURE:2,TIMEOUT:-101,ABORTED:-102};/**
|
|
29460
29460
|
* Abort all requests
|
|
29461
29461
|
*
|
|
@@ -30339,14 +30339,14 @@ this.cacheEncryptionKeys_=settings.cacheEncryptionKeys;this.keyCache_={};this.de
|
|
|
30339
30339
|
// between a time in the display time and a segment index within
|
|
30340
30340
|
// a playlist
|
|
30341
30341
|
this.syncController_=settings.syncController;this.syncPoint_={segmentIndex:0,time:0};this.transmuxer_=this.createTransmuxer_();this.triggerSyncInfoUpdate_=()=>this.trigger('syncinfoupdate');this.syncController_.on('syncinfoupdate',this.triggerSyncInfoUpdate_);this.mediaSource_.addEventListener('sourceopen',()=>{if(!this.isEndOfStream_()){this.ended_=false;}});// ...for determining the fetch location
|
|
30342
|
-
this.fetchAtBuffer_=false;this.logger_=logger(`SegmentLoader[${this.loaderType_}]`);Object.defineProperty(this,'state',{get(){return this.state_;},set(newState){if(newState!==this.state_){this.logger_(`${this.state_} -> ${newState}`);this.state_=newState;this.trigger('statechange');}}});this.sourceUpdater_.on('ready',()=>{if(this.hasEnoughInfoToAppend_()){this.processCallQueue_();}});this.sourceUpdater_.on('codecschange',metadata=>{this.trigger(_extends$
|
|
30342
|
+
this.fetchAtBuffer_=false;this.logger_=logger(`SegmentLoader[${this.loaderType_}]`);Object.defineProperty(this,'state',{get(){return this.state_;},set(newState){if(newState!==this.state_){this.logger_(`${this.state_} -> ${newState}`);this.state_=newState;this.trigger('statechange');}}});this.sourceUpdater_.on('ready',()=>{if(this.hasEnoughInfoToAppend_()){this.processCallQueue_();}});this.sourceUpdater_.on('codecschange',metadata=>{this.trigger(_extends$1({type:'codecschange'},metadata));});// Only the main loader needs to listen for pending timeline changes, as the main
|
|
30343
30343
|
// loader should wait for audio to be ready to change its timeline so that both main
|
|
30344
30344
|
// and audio timelines change together. For more details, see the
|
|
30345
30345
|
// shouldWaitForTimelineChange function.
|
|
30346
30346
|
if(this.loaderType_==='main'){this.timelineChangeController_.on('pendingtimelinechange',()=>{if(this.hasEnoughInfoToAppend_()){this.processCallQueue_();}});}// The main loader only listens on pending timeline changes, but the audio loader,
|
|
30347
30347
|
// since its loads follow main, needs to listen on timeline changes. For more details,
|
|
30348
30348
|
// see the shouldWaitForTimelineChange function.
|
|
30349
|
-
if(this.loaderType_==='audio'){this.timelineChangeController_.on('timelinechange',metadata=>{this.trigger(_extends$
|
|
30349
|
+
if(this.loaderType_==='audio'){this.timelineChangeController_.on('timelinechange',metadata=>{this.trigger(_extends$1({type:'timelinechange'},metadata));if(this.hasEnoughInfoToLoad_()){this.processLoadQueue_();}if(this.hasEnoughInfoToAppend_()){this.processCallQueue_();}});}}/**
|
|
30350
30350
|
* TODO: Current sync controller consists of many hls-specific strategies
|
|
30351
30351
|
* media sequence sync is also hls-specific, and we would like to be protocol-agnostic on this level
|
|
30352
30352
|
* this should be a part of the sync-controller and sync controller should expect different strategy list based on the protocol.
|
|
@@ -30837,7 +30837,7 @@ segment[timingInfoProperty].baseMediaDecodeTime=segmentTimingInfo.baseMediaDecod
|
|
|
30837
30837
|
* @private
|
|
30838
30838
|
*/loadSegment_(segmentInfo){this.state='WAITING';this.pendingSegment_=segmentInfo;this.trimBackBuffer_(segmentInfo);if(typeof segmentInfo.timestampOffset==='number'){if(this.transmuxer_){this.transmuxer_.postMessage({action:'clearAllMp4Captions'});}}if(!this.hasEnoughInfoToLoad_()){this.loadQueue_.push(()=>{// regenerate the audioAppendStart, timestampOffset, etc as they
|
|
30839
30839
|
// may have changed since this function was added to the queue.
|
|
30840
|
-
const options=_extends$
|
|
30840
|
+
const options=_extends$1({},segmentInfo,{forceTimestampOffset:true});_extends$1(segmentInfo,this.generateSegmentInfo_(options));this.isPendingTimestampOffset_=false;this.updateTransmuxerAndRequestSegment_(segmentInfo);});return;}this.updateTransmuxerAndRequestSegment_(segmentInfo);}updateTransmuxerAndRequestSegment_(segmentInfo){// We'll update the source buffer's timestamp offset once we have transmuxed data, but
|
|
30841
30841
|
// the transmuxer still needs to be updated before then.
|
|
30842
30842
|
//
|
|
30843
30843
|
// Even though keepOriginalTimestamps is set to true for the transmuxer, timestamp
|
|
@@ -32379,7 +32379,7 @@ if(updatedPlaylist.lastExcludeReason_==='playlist-unchanged'){return;}const play
|
|
|
32379
32379
|
// safe live point).
|
|
32380
32380
|
this.excludePlaylist({error:{message:'Playlist no longer updating.',reason:'playlist-unchanged'}});// useful for monitoring QoS
|
|
32381
32381
|
this.tech_.trigger('playliststuck');}});this.mainPlaylistLoader_.on('renditiondisabled',()=>{this.tech_.trigger({type:'usage',name:'vhs-rendition-disabled'});});this.mainPlaylistLoader_.on('renditionenabled',()=>{this.tech_.trigger({type:'usage',name:'vhs-rendition-enabled'});});const playlistLoaderEvents=['manifestrequeststart','manifestrequestcomplete','manifestparsestart','manifestparsecomplete','playlistrequeststart','playlistrequestcomplete','playlistparsestart','playlistparsecomplete','renditiondisabled','renditionenabled'];playlistLoaderEvents.forEach(eventName=>{this.mainPlaylistLoader_.on(eventName,metadata=>{// trigger directly on the player to ensure early events are fired.
|
|
32382
|
-
this.player_.trigger(_extends$
|
|
32382
|
+
this.player_.trigger(_extends$1({},metadata));});});}/**
|
|
32383
32383
|
* Given an updated media playlist (whether it was loaded for the first time, or
|
|
32384
32384
|
* refreshed for live playlists), update any relevant properties and state to reflect
|
|
32385
32385
|
* changes in the media that should be accounted for (e.g., cues and duration).
|
|
@@ -32413,7 +32413,7 @@ this.mainSegmentLoader_.load();}});// `progress` events are not reliable enough
|
|
|
32413
32413
|
// based ABR.
|
|
32414
32414
|
if(!this.bufferBasedABR){this.mainSegmentLoader_.on('progress',()=>{this.trigger('progress');});}this.mainSegmentLoader_.on('error',()=>{const error=this.mainSegmentLoader_.error();this.excludePlaylist({playlistToExclude:error.playlist,error});});this.mainSegmentLoader_.on('appenderror',()=>{this.error=this.mainSegmentLoader_.error_;this.trigger('error');});this.mainSegmentLoader_.on('syncinfoupdate',()=>{this.onSyncInfoUpdate_();});this.mainSegmentLoader_.on('timestampoffset',()=>{this.tech_.trigger({type:'usage',name:'vhs-timestamp-offset'});});this.audioSegmentLoader_.on('syncinfoupdate',()=>{this.onSyncInfoUpdate_();});this.audioSegmentLoader_.on('appenderror',()=>{this.error=this.audioSegmentLoader_.error_;this.trigger('error');});this.mainSegmentLoader_.on('ended',()=>{this.logger_('main segment loader ended');this.onEndOfStream();});this.mainSegmentLoader_.on('earlyabort',event=>{// never try to early abort with the new ABR algorithm
|
|
32415
32415
|
if(this.bufferBasedABR){return;}this.delegateLoaders_('all',['abort']);this.excludePlaylist({error:{message:'Aborted early because there isn\'t enough bandwidth to complete '+'the request without rebuffering.'},playlistExclusionDuration:ABORT_EARLY_EXCLUSION_SECONDS});});const updateCodecs=()=>{if(!this.sourceUpdater_.hasCreatedSourceBuffers()){return this.tryToCreateSourceBuffers_();}const codecs=this.getCodecsOrExclude_();// no codecs means that the playlist was excluded
|
|
32416
|
-
if(!codecs){return;}this.sourceUpdater_.addOrChangeSourceBuffers(codecs);};this.mainSegmentLoader_.on('trackinfo',updateCodecs);this.audioSegmentLoader_.on('trackinfo',updateCodecs);this.mainSegmentLoader_.on('fmp4',()=>{if(!this.triggeredFmp4Usage){this.tech_.trigger({type:'usage',name:'vhs-fmp4'});this.triggeredFmp4Usage=true;}});this.audioSegmentLoader_.on('fmp4',()=>{if(!this.triggeredFmp4Usage){this.tech_.trigger({type:'usage',name:'vhs-fmp4'});this.triggeredFmp4Usage=true;}});this.audioSegmentLoader_.on('ended',()=>{this.logger_('audioSegmentLoader ended');this.onEndOfStream();});const segmentLoaderEvents=['segmentselected','segmentloadstart','segmentloaded','segmentkeyloadstart','segmentkeyloadcomplete','segmentdecryptionstart','segmentdecryptioncomplete','segmenttransmuxingstart','segmenttransmuxingcomplete','segmenttransmuxingtrackinfoavailable','segmenttransmuxingtiminginfoavailable','segmentappendstart','appendsdone','bandwidthupdated','timelinechange','codecschange'];segmentLoaderEvents.forEach(eventName=>{this.mainSegmentLoader_.on(eventName,metadata=>{this.player_.trigger(_extends$
|
|
32416
|
+
if(!codecs){return;}this.sourceUpdater_.addOrChangeSourceBuffers(codecs);};this.mainSegmentLoader_.on('trackinfo',updateCodecs);this.audioSegmentLoader_.on('trackinfo',updateCodecs);this.mainSegmentLoader_.on('fmp4',()=>{if(!this.triggeredFmp4Usage){this.tech_.trigger({type:'usage',name:'vhs-fmp4'});this.triggeredFmp4Usage=true;}});this.audioSegmentLoader_.on('fmp4',()=>{if(!this.triggeredFmp4Usage){this.tech_.trigger({type:'usage',name:'vhs-fmp4'});this.triggeredFmp4Usage=true;}});this.audioSegmentLoader_.on('ended',()=>{this.logger_('audioSegmentLoader ended');this.onEndOfStream();});const segmentLoaderEvents=['segmentselected','segmentloadstart','segmentloaded','segmentkeyloadstart','segmentkeyloadcomplete','segmentdecryptionstart','segmentdecryptioncomplete','segmenttransmuxingstart','segmenttransmuxingcomplete','segmenttransmuxingtrackinfoavailable','segmenttransmuxingtiminginfoavailable','segmentappendstart','appendsdone','bandwidthupdated','timelinechange','codecschange'];segmentLoaderEvents.forEach(eventName=>{this.mainSegmentLoader_.on(eventName,metadata=>{this.player_.trigger(_extends$1({},metadata));});this.audioSegmentLoader_.on(eventName,metadata=>{this.player_.trigger(_extends$1({},metadata));});this.subtitleSegmentLoader_.on(eventName,metadata=>{this.player_.trigger(_extends$1({},metadata));});});}mediaSecondsLoaded_(){return Math.max(this.audioSegmentLoader_.mediaSecondsLoaded+this.mainSegmentLoader_.mediaSecondsLoaded);}/**
|
|
32417
32417
|
* Call load on our SegmentLoaders
|
|
32418
32418
|
*/load(){this.mainSegmentLoader_.load();if(this.mediaTypes_.AUDIO.activePlaylistLoader){this.audioSegmentLoader_.load();}if(this.mediaTypes_.SUBTITLES.activePlaylistLoader){this.subtitleSegmentLoader_.load();}}/**
|
|
32419
32419
|
* Re-tune playback quality level for the current player
|
|
@@ -32709,7 +32709,7 @@ this.tech_.one('canplay',()=>{this.contentSteeringController_.requestSteeringMan
|
|
|
32709
32709
|
* Reset the content steering controller and re-init.
|
|
32710
32710
|
*/resetContentSteeringController_(){this.contentSteeringController_.clearAvailablePathways();this.contentSteeringController_.dispose();this.initContentSteeringController_();}/**
|
|
32711
32711
|
* Attaches the listeners for content steering.
|
|
32712
|
-
*/attachContentSteeringListeners_(){this.contentSteeringController_.on('content-steering',this.excludeThenChangePathway_.bind(this));const contentSteeringEvents=['contentsteeringloadstart','contentsteeringloadcomplete','contentsteeringparsed'];contentSteeringEvents.forEach(eventName=>{this.contentSteeringController_.on(eventName,metadata=>{this.trigger(_extends$
|
|
32712
|
+
*/attachContentSteeringListeners_(){this.contentSteeringController_.on('content-steering',this.excludeThenChangePathway_.bind(this));const contentSteeringEvents=['contentsteeringloadstart','contentsteeringloadcomplete','contentsteeringparsed'];contentSteeringEvents.forEach(eventName=>{this.contentSteeringController_.on(eventName,metadata=>{this.trigger(_extends$1({},metadata));});});if(this.sourceType_==='dash'){this.mainPlaylistLoader_.on('loadedplaylist',()=>{const main=this.main();// check if steering tag or pathways changed.
|
|
32713
32713
|
const didDashTagChange=this.contentSteeringController_.didDASHTagChange(main.uri,main.contentSteering);const didPathwaysChange=()=>{const availablePathways=this.contentSteeringController_.getAvailablePathways();const newPathways=[];for(const playlist of main.playlists){const serviceLocation=playlist.attributes.serviceLocation;if(serviceLocation){newPathways.push(serviceLocation);if(!availablePathways.has(serviceLocation)){return true;}}}// If we have no new serviceLocations and previously had availablePathways
|
|
32714
32714
|
if(!newPathways.length&&availablePathways.size){return true;}return false;};if(didDashTagChange||didPathwaysChange()){this.resetContentSteeringController_();}});}}/**
|
|
32715
32715
|
* Simple exclude and change playlist logic for content steering.
|
|
@@ -33313,7 +33313,7 @@ seekToProgramTime(programTime,callback,pauseAfterSeek=true,retryCount=2){return
|
|
|
33313
33313
|
*/this.xhr.offResponse=callback=>{removeOnResponseHook(this.xhr,callback);};// Trigger an event on the player to notify the user that vhs is ready to set xhr hooks.
|
|
33314
33314
|
// This allows hooks to be set before the source is set to vhs when handleSource is called.
|
|
33315
33315
|
this.player_.trigger('xhr-hooks-ready');}attachStreamingEventListeners_(){const playlistControllerEvents=['seekablerangeschanged','bufferedrangeschanged','contentsteeringloadstart','contentsteeringloadcomplete','contentsteeringparsed'];const playbackWatcher=['gapjumped','playedrangeschanged'];// re-emit streaming events and payloads on the player.
|
|
33316
|
-
playlistControllerEvents.forEach(eventName=>{this.playlistController_.on(eventName,metadata=>{this.player_.trigger(_extends$
|
|
33316
|
+
playlistControllerEvents.forEach(eventName=>{this.playlistController_.on(eventName,metadata=>{this.player_.trigger(_extends$1({},metadata));});});playbackWatcher.forEach(eventName=>{this.playbackWatcher_.on(eventName,metadata=>{this.player_.trigger(_extends$1({},metadata));});});}}/**
|
|
33317
33317
|
* The Source Handler object, which informs video.js what additional
|
|
33318
33318
|
* MIME types are supported and sets up playback. It is registered
|
|
33319
33319
|
* automatically to the appropriate tech based on the capabilities of
|
|
@@ -33327,11 +33327,4 @@ playlistControllerEvents.forEach(eventName=>{this.playlistController_.on(eventNa
|
|
|
33327
33327
|
*/const supportsNativeMediaSources=()=>{return browserSupportsCodec('avc1.4d400d,mp4a.40.2');};// register source handlers with the appropriate techs
|
|
33328
33328
|
if(supportsNativeMediaSources()){videojs.getTech('Html5').registerSourceHandler(VhsSourceHandler,0);}videojs.VhsHandler=VhsHandler;videojs.VhsSourceHandler=VhsSourceHandler;videojs.Vhs=Vhs;if(!videojs.use){videojs.registerComponent('Vhs',Vhs);}videojs.options.vhs=videojs.options.vhs||{};if(!videojs.getPlugin||!videojs.getPlugin('reloadSourceOnError')){videojs.registerPlugin('reloadSourceOnError',reloadSourceOnError);}
|
|
33329
33329
|
|
|
33330
|
-
|
|
33331
|
-
__proto__: null,
|
|
33332
|
-
default: videojs
|
|
33333
|
-
});
|
|
33334
|
-
|
|
33335
|
-
exports._extends = _extends$3;
|
|
33336
|
-
exports.video_es = video_es;
|
|
33337
|
-
exports.videojs = videojs;
|
|
33330
|
+
exports.default = videojs;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var videojsWebrtcPlugin = "/*! @name @antmedia/videojs-webrtc-plugin @version 1.3.0 @license MIT */\n.vjs-custom-spinner{position:absolute;top:50%;transform:translateY(-50%) translateX(-50%);left:50%;width:80px;height:80px}.vjs-custom-spinner:after{content:\" \";display:block;width:64px;height:64px;margin:8px;border-radius:50%;border:6px solid #fff;border-color:#fff transparent
|
|
3
|
+
var videojsWebrtcPlugin = "/*! @name @antmedia/videojs-webrtc-plugin @version 1.3.0 @license MIT */\n.vjs-custom-spinner{position:absolute;top:50%;transform:translateY(-50%) translateX(-50%);left:50%;width:80px;height:80px}.vjs-custom-spinner:after{content:\" \";display:block;width:64px;height:64px;margin:8px;border-radius:50%;border:6px solid #fff;border-color:#fff transparent;animation:vjs-spinner-spin 1.1s cubic-bezier(.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite}";
|
|
4
4
|
|
|
5
5
|
exports.default = videojsWebrtcPlugin;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var videojsWebrtcPlugin = "/*! @name @antmedia/videojs-webrtc-plugin @version 1.3.1 @license MIT */\n.vjs-custom-spinner{position:absolute;top:50%;transform:translateY(-50%) translateX(-50%);left:50%;width:80px;height:80px}.vjs-custom-spinner:after{content:\" \";display:block;width:64px;height:64px;margin:8px;border-radius:50%;border:6px solid #fff;border-color:#fff transparent;animation:vjs-spinner-spin 1.1s cubic-bezier(.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite}";
|
|
4
|
+
|
|
5
|
+
exports.default = videojsWebrtcPlugin;
|