UNPKG

@nethesis/phone-island

Version:
3 lines (2 loc) 8.12 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../_virtual/tools.js");require("../../../int64-buffer/int64-buffer.js");var t=require("./EBMLEncoder.js"),n=require("buffer"),r=require("./tools-ebml.js"),a=require("../../../ebml-block/index.js"),u=require("../../../../_virtual/int64-buffer.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var f,o=i(n);exports.__require=function(){return f||(f=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.convertEBMLDateToJSDate=e.createFloatBuffer=e.createIntBuffer=e.createUIntBuffer=e.encodeValueToBuffer=e.concat=e.putRefinedMetaData=e.extractElement=e.removeElement=e.makeMetadataSeekable=e.createRIFFChunk=e.VP8BitStreamToRiffWebPBuffer=e.WebPBlockFilter=e.encodeTag=e.readBlock=e.ebmlBlock=e.writeVint=e.readVint=e.Buffer=void 0;var n=u.__exports,i=t.__require(),f=o.default,s=r.__require(),c=a.default;function d(t,n){var r=new e.Buffer(4);return r.writeUInt32LE(n.byteLength,0),b([new e.Buffer(t.substr(0,4),"ascii"),r,n,new e.Buffer(n.byteLength%2==0?0:1)])}function p(e,t){for(var n=-1,r=0;r<t.length;r++){var a=t[r];if(a.name===e){if("m"!==a.type)return void t.splice(r,1);if(a.isEnd){if(-1==n)throw new Error("Detected ".concat(e," closing element before finding the start"));return void t.splice(n,r-n+1)}n=r}}}function m(e,t){for(var n=[],r=-1,a=0;a<t.length;a++){var u=t[a];if(u.name===e){if("m"!==u.type){n.push(t[a]);break}if(u.isEnd){if(-1==r)throw new Error("Detected ".concat(e," closing element before finding the start"));n=t.slice(r,a+1);break}r=a}}return n}function l(e){var t=new i.default;return e.reduce((function(e,n){return e.concat(t.encode([n]))}),[]).reduce((function(e,t){return e+t.byteLength}),0)}function h(t,n,r){var a=r.duration,u=r.clusterPtrs,i=r.cues,f=t.slice(0);if("number"==typeof a){var o=!1;f.forEach((function(e){"f"===e.type&&"Duration"===e.name&&(o=!0,e.data=k(a,8))})),o||y(f,"Info",[{name:"Duration",type:"f",data:k(a,8)}])}Array.isArray(i)&&y(f,"Cues",function(e,t){var n=[];return e.forEach((function(e){var r=e.CueTrack,a=e.CueClusterPosition,u=e.CueTime;n.push({name:"CuePoint",type:"m",isEnd:!1}),n.push({name:"CueTime",type:"u",data:E(u)}),n.push({name:"CueTrackPositions",type:"m",isEnd:!1}),n.push({name:"CueTrack",type:"u",data:E(r)}),n.push({name:"CueClusterPosition",type:"u",data:E(a+t)}),n.push({name:"CueTrackPositions",type:"m",isEnd:!0}),n.push({name:"CuePoint",type:"m",isEnd:!0})})),n}(i,n));var s=[];return Array.isArray(u)&&(console.warn("append cluster pointers to seekhead is deprecated. please use cues"),s=function(t,n){var r=[];return t.forEach((function(t){r.push({name:"Seek",type:"m",isEnd:!1}),r.push({name:"SeekID",type:"b",data:new e.Buffer([31,67,182,117])}),r.push({name:"SeekPosition",type:"u",data:E(t+n)}),r.push({name:"Seek",type:"m",isEnd:!0})})),r}(u,n)),y(f,"SeekHead",s,!0),f}function y(e,t,n,r){void 0===r&&(r=!1);for(var a=-1,u=0;u<e.length;u++){var i=e[u];if("m"===i.type&&i.name===t&&!1===i.isEnd){a=u;break}}a>=0?Array.prototype.splice.apply(e,[a+1,0].concat(n)):r?[].concat([{name:t,type:"m",isEnd:!1}],n,[{name:t,type:"m",isEnd:!0}]).reverse().forEach((function(t){e.unshift(t)})):(e.push({name:t,type:"m",isEnd:!1}),n.forEach((function(t){e.push(t)})),e.push({name:t,type:"m",isEnd:!0}))}function b(t){return e.Buffer.concat(t)}function E(t){for(var r=1;t>=Math.pow(2,8*r);r++);if(r>=7)return console.warn("7bit or more bigger uint not supported."),new n.Uint64BE(t).toBuffer();var a=new e.Buffer(r);return a.writeUIntBE(t,0,r),a}function w(t){for(var r=1;t>=Math.pow(2,8*r);r++);if(r>=7)return console.warn("7bit or more bigger uint not supported."),new n.Int64BE(t).toBuffer();var a=new e.Buffer(r);return a.writeIntBE(t,0,r),a}function k(t,n){var r;if(void 0===n&&(n=8),8===n)return(r=new e.Buffer(8)).writeDoubleBE(t,0),r;if(4===n)return(r=new e.Buffer(4)).writeFloatBE(t,0),r;throw new Error("float type bits must 4bytes or 8bytes")}e.Buffer=f.Buffer,e.readVint=s.default.readVint,e.writeVint=s.default.writeVint,e.ebmlBlock=c,e.readBlock=function(t){return(0,e.ebmlBlock)(new e.Buffer(t))},e.encodeTag=function(t,n,r){return void 0===r&&(r=!1),b([t,r?new e.Buffer("01ffffffffffffff","hex"):(0,e.writeVint)(n.length),n])},e.WebPBlockFilter=function(t){return t.reduce((function(t,n){return"b"!==n.type||"SimpleBlock"!==n.name?t:(0,e.ebmlBlock)(n.data).frames.some((function(e){return"9d012a"===e.slice(3,6).toString("hex")}))?t.concat(n):t}),[])},e.VP8BitStreamToRiffWebPBuffer=function(t){var n=d("VP8 ",t);return d("RIFF",b([new e.Buffer("WEBP","ascii"),n]))},e.createRIFFChunk=d,e.makeMetadataSeekable=function(t,n,r){var a=m("EBML",t),u=l(a)+12,f=t[t.length-1].dataEnd-u,o=m("Info",t);p("Duration",o),o.splice(1,0,{name:"Duration",type:"f",data:k(n,8)});for(var s=l(o),c=m("Tracks",t),d=l(c),h=47,y=[],b=5+15*r.length,w=[],B=-1,v=function(t){var n=h,a=n+s,i=a+d,o=i+b-f;if((y=[]).push({name:"SeekHead",type:"m",isEnd:!1}),y.push({name:"Seek",type:"m",isEnd:!1}),y.push({name:"SeekID",type:"b",data:new e.Buffer([21,73,169,102])}),y.push({name:"SeekPosition",type:"u",data:E(n)}),y.push({name:"Seek",type:"m",isEnd:!0}),y.push({name:"Seek",type:"m",isEnd:!1}),y.push({name:"SeekID",type:"b",data:new e.Buffer([22,84,174,107])}),y.push({name:"SeekPosition",type:"u",data:E(a)}),y.push({name:"Seek",type:"m",isEnd:!0}),y.push({name:"Seek",type:"m",isEnd:!1}),y.push({name:"SeekID",type:"b",data:new e.Buffer([28,83,187,107])}),y.push({name:"SeekPosition",type:"u",data:E(i)}),y.push({name:"Seek",type:"m",isEnd:!0}),y.push({name:"SeekHead",type:"m",isEnd:!0}),h=l(y),(w=[]).push({name:"Cues",type:"m",isEnd:!1}),r.forEach((function(e){var t=e.CueTrack,n=e.CueClusterPosition,r=e.CueTime;w.push({name:"CuePoint",type:"m",isEnd:!1}),w.push({name:"CueTime",type:"u",data:E(r)}),w.push({name:"CueTrackPositions",type:"m",isEnd:!1}),w.push({name:"CueTrack",type:"u",data:E(t)}),n-=u,n+=o,w.push({name:"CueClusterPosition",type:"u",data:E(n)}),w.push({name:"CueTrackPositions",type:"m",isEnd:!0}),w.push({name:"CuePoint",type:"m",isEnd:!0})})),w.push({name:"Cues",type:"m",isEnd:!0}),b=l(w),B===o)return"break";if(B=o,9===t)throw new Error("Failed to converge to a stable metadata size")},g=0;g<10;g++){if("break"===v(g))break}var S=[].concat.apply([],[a,{name:"Segment",type:"m",isEnd:!1,unknownSize:!0},y,o,c,w]);return(new i.default).encode(S)},e.removeElement=p,e.extractElement=m,e.putRefinedMetaData=function(t,n){Array.isArray(n.cueInfos)&&!Array.isArray(n.cues)&&(console.warn("putRefinedMetaData: info.cueInfos property is deprecated. please use info.cues"),n.cues=n.cueInfos);for(var r=[],a=[],u=0;u<t.length;u++){var f=t[u];if("m"===f.type&&"Segment"===f.name){if(r=t.slice(0,u),a=t.slice(u),f.unknownSize){a.shift();break}throw new Error("this metadata is not streaming webm file")}}if(!(a[a.length-1].dataEnd>0))throw new Error("metadata dataEnd has wrong number");var o=a[a.length-1].dataEnd,s=r[r.length-1].dataEnd,c=(new i.default).encode(r).byteLength-s,d=o-a[0].tagStart;a[0].tagStart,a[0].tagStart;var p,m=new e.Buffer([24,83,128,103]),l=new e.Buffer("01ffffffffffffff","hex"),y=m.byteLength+l.byteLength,b=d;for(p=1;p<20;p++){var E=h(a,c+(s+y+b-o),n),w=(new i.default).encode(E).byteLength;if(w===b)return(new i.default).encode([].concat(r,[{type:"m",name:"Segment",isEnd:!1,unknownSize:!0}],E));b=w}throw new Error("unable to refine metadata, stable size could not be found in "+p+" iterations!")},e.concat=b,e.encodeValueToBuffer=function(t){var r=new e.Buffer(0);if("m"===t.type)return t;switch(t.type){case"u":r=E(t.value);break;case"i":r=w(t.value);break;case"f":r=k(t.value);break;case"s":r=new e.Buffer(t.value,"ascii");break;case"8":r=new e.Buffer(t.value,"utf8");break;case"b":r=t.value;break;case"d":r=new n.Int64BE(t.value.getTime().toString()).toBuffer()}return Object.assign({},t,{data:r})},e.createUIntBuffer=E,e.createIntBuffer=w,e.createFloatBuffer=k,e.convertEBMLDateToJSDate=function(e){return e instanceof Date?e:new Date(new Date("2001-01-01T00:00:00.000Z").getTime()+Number(e)/1e3/1e3)}}(e.__exports)),e.__exports}; //# sourceMappingURL=tools.js.map