emby 4.8
This commit is contained in:
1
modules/flvjs/demux/amf-parser.js
Normal file
1
modules/flvjs/demux/amf-parser.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","../utils/logger.js","../utils/utf8-conv.js","../utils/exception.js"],function(_exports,_logger,_utf8Conv,_exception){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var AMF=function(){function AMF(){babelHelpers.classCallCheck(this,AMF)}return babelHelpers.createClass(AMF,null,[{key:"parseScriptData",value:function(arrayBuffer,dataOffset,dataSize){var data={};try{var name=AMF.parseValue(arrayBuffer,dataOffset,dataSize),value=AMF.parseValue(arrayBuffer,dataOffset+name.size,dataSize-name.size);data[name.data]=value.data}catch(e){_logger.default.e("AMF",e.toString())}return data}},{key:"parseObject",value:function(arrayBuffer,dataOffset,dataSize){if(dataSize<3)throw new _exception.IllegalStateException("Data not enough when parse ScriptDataObject");var name=AMF.parseString(arrayBuffer,dataOffset,dataSize),arrayBuffer=AMF.parseValue(arrayBuffer,dataOffset+name.size,dataSize-name.size),dataOffset=arrayBuffer.objectEnd;return{data:{name:name.data,value:arrayBuffer.data},size:name.size+arrayBuffer.size,objectEnd:dataOffset}}},{key:"parseVariable",value:function(arrayBuffer,dataOffset,dataSize){return AMF.parseObject(arrayBuffer,dataOffset,dataSize)}},{key:"parseString",value:function(arrayBuffer,dataOffset,dataSize){if(dataSize<2)throw new _exception.IllegalStateException("Data not enough when parse String");dataSize=new DataView(arrayBuffer,dataOffset,dataSize).getUint16(0,!1),arrayBuffer=0<dataSize?(0,_utf8Conv.default)(new Uint8Array(arrayBuffer,dataOffset+2,dataSize)):"";return{data:arrayBuffer,size:2+dataSize}}},{key:"parseLongString",value:function(arrayBuffer,dataOffset,dataSize){if(dataSize<4)throw new _exception.IllegalStateException("Data not enough when parse LongString");dataSize=new DataView(arrayBuffer,dataOffset,dataSize).getUint32(0,!1),arrayBuffer=0<dataSize?(0,_utf8Conv.default)(new Uint8Array(arrayBuffer,dataOffset+4,dataSize)):"";return{data:arrayBuffer,size:4+dataSize}}},{key:"parseDate",value:function(arrayBuffer,dataOffset,dataSize){if(dataSize<10)throw new _exception.IllegalStateException("Data size invalid when parse Date");arrayBuffer=new DataView(arrayBuffer,dataOffset,dataSize),dataOffset=arrayBuffer.getFloat64(0,!1);return dataOffset+=60*arrayBuffer.getInt16(8,!1)*1e3,{data:new Date(dataOffset),size:10}}},{key:"parseValue",value:function(arrayBuffer,dataOffset,dataSize){if(dataSize<1)throw new _exception.IllegalStateException("Data not enough when parse Value");var v=new DataView(arrayBuffer,dataOffset,dataSize),offset=1,type=v.getUint8(0),objectEnd=!1;try{switch(type){case 0:value=v.getFloat64(1,!1),offset+=8;break;case 1:var value=!!v.getUint8(1);offset+=1;break;case 2:var amfstr=AMF.parseString(arrayBuffer,dataOffset+1,dataSize-1);value=amfstr.data,offset+=amfstr.size;break;case 3:value={};var terminal=0;for(9==(16777215&v.getUint32(dataSize-4,!1))&&(terminal=3);offset<dataSize-4;){var amfobj=AMF.parseObject(arrayBuffer,dataOffset+offset,dataSize-offset-terminal);if(amfobj.objectEnd)break;value[amfobj.data.name]=amfobj.data.value,offset+=amfobj.size}offset<=dataSize-3&&9==(16777215&v.getUint32(offset-1,!1))&&(offset+=3);break;case 8:value={},offset+=4;var _terminal=0;for(9==(16777215&v.getUint32(dataSize-4,!1))&&(_terminal=3);offset<dataSize-8;){var amfvar=AMF.parseVariable(arrayBuffer,dataOffset+offset,dataSize-offset-_terminal);if(amfvar.objectEnd)break;value[amfvar.data.name]=amfvar.data.value,offset+=amfvar.size}offset<=dataSize-3&&9==(16777215&v.getUint32(offset-1,!1))&&(offset+=3);break;case 9:offset=1,objectEnd=!(value=void 0);break;case 10:value=[];var strictArrayLength=v.getUint32(1,!1);offset+=4;for(var i=0;i<strictArrayLength;i++){var val=AMF.parseValue(arrayBuffer,dataOffset+offset,dataSize-offset);value.push(val.data),offset+=val.size}break;case 11:var date=AMF.parseDate(arrayBuffer,dataOffset+1,dataSize-1);value=date.data,offset+=date.size;break;case 12:var amfLongStr=AMF.parseString(arrayBuffer,dataOffset+1,dataSize-1);value=amfLongStr.data,offset+=amfLongStr.size;break;default:offset=dataSize,_logger.default.w("AMF","Unsupported AMF value type "+type)}}catch(e){_logger.default.e("AMF",e.toString())}return{data:value,size:offset,objectEnd:objectEnd}}}]),AMF}();_exports.default=AMF});
|
||||
1
modules/flvjs/demux/demux-errors.js
Normal file
1
modules/flvjs/demux/demux-errors.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports"],function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;_exports.default={OK:"OK",FORMAT_ERROR:"FormatError",FORMAT_UNSUPPORTED:"FormatUnsupported",CODEC_UNSUPPORTED:"CodecUnsupported"}});
|
||||
1
modules/flvjs/demux/exp-golomb.js
Normal file
1
modules/flvjs/demux/exp-golomb.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports"],function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,_exports.default=function(){function ExpGolomb(data){babelHelpers.classCallCheck(this,ExpGolomb),this.data=data,this.bytesAvailable=data.byteLength,this.word=0,this.bitsAvailable=0}return babelHelpers.createClass(ExpGolomb,[{key:"loadWord",value:function(){var data=this.data,bytesAvailable=this.bytesAvailable,position=data.byteLength-bytesAvailable,workingBytes=new Uint8Array(4),bytesAvailable=Math.min(4,bytesAvailable);if(0===bytesAvailable)throw new Error("no bytes available");workingBytes.set(data.subarray(position,position+bytesAvailable)),this.word=new DataView(workingBytes.buffer).getUint32(0),this.bitsAvailable=8*bytesAvailable,this.bytesAvailable-=bytesAvailable}},{key:"skipBits",value:function(count){var skipBytes;this.bitsAvailable>count||(count=(count-=this.bitsAvailable)-((skipBytes=count>>3)>>3),this.bytesAvailable-=skipBytes,this.loadWord()),this.word<<=count,this.bitsAvailable-=count}},{key:"readBits",value:function(size){var bits=Math.min(this.bitsAvailable,size),valu=this.word>>>32-bits;return this.bitsAvailable-=bits,0<this.bitsAvailable?this.word<<=bits:0<this.bytesAvailable&&this.loadWord(),0<(bits=size-bits)&&this.bitsAvailable?valu<<bits|this.readBits(bits):valu}},{key:"skipLZ",value:function(){for(var leadingZeroCount=0;leadingZeroCount<this.bitsAvailable;++leadingZeroCount)if(0!=(this.word&2147483648>>>leadingZeroCount))return this.word<<=leadingZeroCount,this.bitsAvailable-=leadingZeroCount,leadingZeroCount;return this.loadWord(),leadingZeroCount+this.skipLZ()}},{key:"skipUEG",value:function(){this.skipBits(1+this.skipLZ())}},{key:"skipEG",value:function(){this.skipBits(1+this.skipLZ())}},{key:"readUEG",value:function(){var clz=this.skipLZ();return this.readBits(clz+1)-1}},{key:"readEG",value:function(){var valu=this.readUEG();return 1&valu?1+valu>>>1:-1*(valu>>>1)}},{key:"readBoolean",value:function(){return 1===this.readBits(1)}},{key:"readUByte",value:function(){return this.readBits(8)}},{key:"readUShort",value:function(){return this.readBits(16)}},{key:"readUInt",value:function(){return this.readBits(32)}},{key:"skipScalingList",value:function(count){for(var lastScale=8,nextScale=8,j=0;j<count;j++)lastScale=0===(nextScale=0!==nextScale?(lastScale+this.readEG()+256)%256:nextScale)?lastScale:nextScale}},{key:"readSPS",value:function(){var numRefFramesInPicOrderCntCycle,scalingListCount,i,frameCropLeftOffset=0,frameCropRightOffset=0,frameCropTopOffset=0,frameCropBottomOffset=0,readUByte=this.readUByte.bind(this),readBits=this.readBits.bind(this),readUEG=this.readUEG.bind(this),readBoolean=this.readBoolean.bind(this),skipBits=this.skipBits.bind(this),skipEG=this.skipEG.bind(this),skipUEG=this.skipUEG.bind(this),skipScalingList=this.skipScalingList.bind(this);if(readUByte(),profileIdc=readUByte(),readBits(5),skipBits(3),readUByte(),skipUEG(),100===profileIdc||110===profileIdc||122===profileIdc||244===profileIdc||44===profileIdc||83===profileIdc||86===profileIdc||118===profileIdc||128===profileIdc){var profileIdc=readUEG();if(3===profileIdc&&skipBits(1),skipUEG(),skipUEG(),skipBits(1),readBoolean())for(scalingListCount=3!==profileIdc?8:12,i=0;i<scalingListCount;i++)readBoolean()&&skipScalingList(i<6?16:64)}skipUEG();var profileIdc=readUEG();if(0===profileIdc)readUEG();else if(1===profileIdc)for(skipBits(1),skipEG(),skipEG(),numRefFramesInPicOrderCntCycle=readUEG(),i=0;i<numRefFramesInPicOrderCntCycle;i++)skipEG();skipUEG(),skipBits(1),profileIdc=readUEG(),skipUEG=readUEG(),0===(readBits=readBits(1))&&skipBits(1),skipBits(1),readBoolean()&&(frameCropLeftOffset=readUEG(),frameCropRightOffset=readUEG(),frameCropTopOffset=readUEG(),frameCropBottomOffset=readUEG());var pixelRatio=[1,1];if(readBoolean()&&readBoolean())switch(readUByte()){case 1:pixelRatio=[1,1];break;case 2:pixelRatio=[12,11];break;case 3:pixelRatio=[10,11];break;case 4:pixelRatio=[16,11];break;case 5:pixelRatio=[40,33];break;case 6:pixelRatio=[24,11];break;case 7:pixelRatio=[20,11];break;case 8:pixelRatio=[32,11];break;case 9:pixelRatio=[80,33];break;case 10:pixelRatio=[18,11];break;case 11:pixelRatio=[15,11];break;case 12:pixelRatio=[64,33];break;case 13:pixelRatio=[160,99];break;case 14:pixelRatio=[4,3];break;case 15:pixelRatio=[3,2];break;case 16:pixelRatio=[2,1];break;case 255:pixelRatio=[readUByte()<<8|readUByte(),readUByte()<<8|readUByte()]}return{width:Math.ceil(16*(profileIdc+1)-2*frameCropLeftOffset-2*frameCropRightOffset),height:(2-readBits)*(skipUEG+1)*16-(readBits?2:4)*(frameCropTopOffset+frameCropBottomOffset),pixelRatio:pixelRatio}}},{key:"readSliceType",value:function(){return this.readUByte(),this.readUEG(),this.readUEG()}}]),ExpGolomb}()});
|
||||
1
modules/flvjs/demux/flv-demuxer.js
Normal file
1
modules/flvjs/demux/flv-demuxer.js
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user