1 line
1.8 KiB
JavaScript
1 line
1.8 KiB
JavaScript
define(["exports"],function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,_exports.default=function(){function MediaInfo(){babelHelpers.classCallCheck(this,MediaInfo),this.mimeType=null,this.duration=null,this.hasAudio=null,this.hasVideo=null,this.audioCodec=null,this.videoCodec=null,this.audioDataRate=null,this.videoDataRate=null,this.audioSampleRate=null,this.audioChannelCount=null,this.width=null,this.height=null,this.fps=null,this.profile=null,this.refFrames=null,this.chromaFormat=null,this.sarNum=null,this.sarDen=null,this.metadata=null,this.segments=null,this.segmentCount=null,this.hasKeyframesIndex=null,this.keyframesIndex=null}return babelHelpers.createClass(MediaInfo,[{key:"isComplete",value:function(){var audioInfoComplete=!1===this.hasAudio||!0===this.hasAudio&&null!=this.audioCodec&&null!=this.audioSampleRate&&null!=this.audioChannelCount,videoInfoComplete=!1===this.hasVideo||!0===this.hasVideo&&null!=this.videoCodec&&null!=this.width&&null!=this.height;return null!=this.mimeType&&null!=this.duration&&null!=this.metadata&&null!=this.hasKeyframesIndex&&audioInfoComplete&&videoInfoComplete}},{key:"isSeekable",value:function(){return!0===this.hasKeyframesIndex}},{key:"getNearestKeyframe",value:function(milliseconds){var table;return null==this.keyframesIndex?null:(table=this.keyframesIndex,{index:milliseconds=this._search(table.times,milliseconds),milliseconds:table.times[milliseconds],fileposition:table.filepositions[milliseconds]})}},{key:"_search",value:function(list,value){var mid,idx=0,last=list.length-1,lbound=0,ubound=last;for(value<list[0]&&(idx=0,lbound=ubound+1);lbound<=ubound;){if((mid=lbound+Math.floor((ubound-lbound)/2))===last||value>=list[mid]&&value<list[mid+1]){idx=mid;break}list[mid]<value?lbound=mid+1:ubound=mid-1}return idx}}]),MediaInfo}()}); |