| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 | 
							- importScripts('libSystemTransform.js');
 
-     const RECORDRTP = 0;  //录制一份未经过转封装的码流原始数据,用于定位问题
 
-     let dataType = 1;
 
-     
 
-     // 转封装库回调函数
 
-     self.STCallBack = function (fileIndex,indexLen, data, dataLen)
 
-     {
 
-         //stFrameInfo的类型见DETAIL_FRAME_INFO
 
- 		let stFrameInfo = Module._GetDetialFrameInfo();
 
-         let nIsMp4Index = stFrameInfo.nIsMp4Index;
 
- 		//console.log("FrameType is " , stFrameInfo);	
 
- 		//console.log("nIsMp4Index is " + nIsMp4Index);
 
-         //debugger
 
-         var pData = null;
 
-         pData = new Uint8Array(dataLen);
 
-         pData.set(Module.HEAPU8.subarray(data, data + dataLen));
 
-         if (dataType === 1) {
 
-             if (pData[0] == 0x49 && pData[1] == 0x4d && pData[2] == 0x4b && pData[3] == 0x48) {//码流头丢掉
 
-                 return;
 
-             }
 
-             postMessage({type: "outputData", buf: pData, dType: 1});
 
-             dataType = 2;
 
-         } else {
 
-             if (nIsMp4Index) {
 
-                 postMessage({type: "outputData", buf: pData, dType: 6}); //6:索引类型
 
-             } else {
 
-                 postMessage({type: "outputData", buf: pData, dType: 2}); //2:码流
 
-             }
 
-         }
 
-         //stFrameInfo的类型见DETAIL_FRAME_INFO
 
- 		//let stFrameInfo = Module._GetDetialFrameInfo();
 
- 		//let stFrameType = stFrameInfo.nFrameType;
 
- 		//let nFrameNum = stFrameInfo.nFrameNum;
 
- 		//let nTimeStamp = stFrameInfo.nTimeStamp;
 
-         //let nIsMp4Index = stFrameInfo.nIsMp4Index;
 
- 		
 
- 		//console.log("FrameType is " + stFrameType);	
 
- 		//console.log("nIsMp4Index is " + nIsMp4Index);	
 
-         
 
-     }
 
-     // self.Module = { memoryInitializerRequest: loadMemInitFile(), TOTAL_MEMORY: 128*1024*1024 };
 
-     // importScripts('SystemTransform.js');
 
-     self.Module['onRuntimeInitialized'] = function (){
 
-         postMessage({type: "loaded"});
 
-     }
 
-     onmessage = function (e) {
 
-         var data = e.data;
 
-         if ("create" === data.type) {
 
-             if (RECORDRTP) {
 
-                 postMessage({type: "created"});
 
-                 postMessage({type: "outputData", buf: data.buf, dType: 1});
 
-             } else {
 
-                 var iHeadLen = data.len;
 
-                 var pHead = Module._malloc(iHeadLen);
 
-     
 
-                 self.writeArrayToMemory(new Uint8Array(data.buf), pHead);
 
-                 var iTransType = data.packType;//目标格式
 
-                 var iRet = Module._CreatHandle(pHead, iTransType, 4096);
 
-                 if (iRet != 0) {
 
-                     console.log("_CreatHandle failed!" + iRet);
 
-                 } else {
 
-                     iRet = Module._SysTransRegisterDataCallBack();			
 
-                     if(iRet != 0)
 
-                     {
 
-                         console.log("_SysTransRegisterDataCallBack Failed:" + iRet);
 
-                     }
 
-                     if (iTransType === 5) {//转mp4支持私有帧打入
 
-                         iRet = Module._SysTransEnableCapacity(7)
 
-                         if(iRet != 0)
 
-                         {
 
-                             console.log("_SysTransSetGlobalTime Failed:" + iRet);
 
-                         }
 
-                     }
 
-                     iRet = Module._SysTransStart(null, null);
 
-                     if(iRet != 0)
 
-                     {
 
-                         console.log("_SysTransStart Failed:" + iRet);
 
-                     }
 
-                     postMessage({type: "created"});
 
-                 }
 
-             }
 
-         } else if ("inputData" === data.type) {
 
-             if (RECORDRTP) {
 
-                 var aFileData = new Uint8Array(data.buf);  // 拷贝一份
 
-                 var iBufferLen = aFileData.length;
 
-                 var szBufferLen = iBufferLen.toString(16);
 
-                 if (szBufferLen.length === 1) {
 
-                     szBufferLen = "000" + szBufferLen;
 
-                 } else if (szBufferLen.length === 2) {
 
-                     szBufferLen = "00" + szBufferLen;
 
-                 } else if (szBufferLen.length === 3) {
 
-                     szBufferLen = "0" + szBufferLen;
 
-                 }
 
-                 var aData = [0, 0, parseInt(szBufferLen.substring(0, 2), 16), parseInt(szBufferLen.substring(2, 4), 16)];
 
-                 for(var iIndex = 0, iDataLength = aFileData.length; iIndex < iDataLength; iIndex++) {
 
-                     aData[iIndex + 4] = aFileData[iIndex]
 
-                 }
 
-                 var dataUint8 = new Uint8Array(aData);
 
-                 postMessage({type: "outputData", buf: dataUint8.buffer, dType: 2});
 
-             } else {
 
-                 let pInputDataBuf = Module._malloc(data.len);
 
-                 var idataLen = data.len;
 
-                 self.writeArrayToMemory(new Uint8Array(data.buf), pInputDataBuf);
 
-                     // 输入数据,每次最多2m
 
-                 let pp = Module._SysTransInputData(0, pInputDataBuf, idataLen);
 
-                 if(pp != 0) {
 
-                     //console.log("InputData Failed:" + pp);
 
-                 }
 
-                 Module._free(pInputDataBuf);
 
-             }
 
-         } else if ("release" === data.type) {
 
-             var iRet = Module._SysTransStop();
 
-             if (iRet != 0) {
 
-                 console.log("_SysTransStop Failed:", iRet);
 
-             }
 
-             Module._SysTransRelease();
 
-             if (iRet != 0) {
 
-                 console.log("_SysTransRelease Failed:", iRet);
 
-             }
 
-             close();
 
-         }
 
-     };
 
 
  |