CfNebfuO.js 18 KB

1
  1. import{c as e,a as t}from"./D43TsmUs.js";var a=e((function(e,t){var a;self,a=()=>(()=>{var e={m:{},d:(t,a)=>{for(var r in a)e.o(a,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:a[r]})},u:e=>e+".ffmpeg.js"};e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),e.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var t;e.g.importScripts&&(t=e.g.location+"");var a=e.g.document;if(!t&&a&&(a.currentScript&&(t=a.currentScript.src),!t)){var r=a.getElementsByTagName("script");if(r.length)for(var i=r.length-1;i>-1&&!t;)t=r[i--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e.p=t})(),e.b=document.baseURI||self.location.href;var t,a={};e.r(a),e.d(a,{FFmpeg:()=>o}),function(e){e.LOAD="LOAD",e.EXEC="EXEC",e.WRITE_FILE="WRITE_FILE",e.READ_FILE="READ_FILE",e.DELETE_FILE="DELETE_FILE",e.RENAME="RENAME",e.CREATE_DIR="CREATE_DIR",e.LIST_DIR="LIST_DIR",e.DELETE_DIR="DELETE_DIR",e.ERROR="ERROR",e.DOWNLOAD="DOWNLOAD",e.PROGRESS="PROGRESS",e.LOG="LOG",e.MOUNT="MOUNT",e.UNMOUNT="UNMOUNT"}(t||(t={}));const r=(()=>{let e=0;return()=>e++})(),i=new Error("ffmpeg is not loaded, call `await ffmpeg.load()` first"),n=new Error("called FFmpeg.terminate()");class o{#e=null;#t={};#a={};#r=[];#i=[];loaded=!1;#n=()=>{this.#e&&(this.#e.onmessage=({data:{id:e,type:a,data:r}})=>{switch(a){case t.LOAD:this.loaded=!0,this.#t[e](r);break;case t.MOUNT:case t.UNMOUNT:case t.EXEC:case t.WRITE_FILE:case t.READ_FILE:case t.DELETE_FILE:case t.RENAME:case t.CREATE_DIR:case t.LIST_DIR:case t.DELETE_DIR:this.#t[e](r);break;case t.LOG:this.#r.forEach((e=>e(r)));break;case t.PROGRESS:this.#i.forEach((e=>e(r)));break;case t.ERROR:this.#a[e](r)}delete this.#t[e],delete this.#a[e]})};#o=({type:e,data:t},a=[],n)=>this.#e?new Promise(((i,o)=>{const s=r();this.#e&&this.#e.postMessage({id:s,type:e,data:t},a),this.#t[s]=i,this.#a[s]=o,n?.addEventListener("abort",(()=>{o(new DOMException(`Message # ${s} was aborted`,"AbortError"))}),{once:!0})})):Promise.reject(i);on(e,t){"log"===e?this.#r.push(t):"progress"===e&&this.#i.push(t)}off(e,t){"log"===e?this.#r=this.#r.filter((e=>e!==t)):"progress"===e&&(this.#i=this.#i.filter((e=>e!==t)))}load=({classWorkerURL:a,...r}={},{signal:i}={})=>(this.#e||(this.#e=a?new Worker(new URL(a,"file:///home/jeromewu/ffmpeg.wasm/packages/ffmpeg/dist/esm/classes.js"),{type:"module"}):new Worker(new URL(e.p+e.u(814),e.b),{type:void 0}),this.#n()),this.#o({type:t.LOAD,data:r},void 0,i));exec=(e,a=-1,{signal:r}={})=>this.#o({type:t.EXEC,data:{args:e,timeout:a}},void 0,r);terminate=()=>{const e=Object.keys(this.#a);for(const t of e)this.#a[t](n),delete this.#a[t],delete this.#t[t];this.#e&&(this.#e.terminate(),this.#e=null,this.loaded=!1)};writeFile=(e,a,{signal:r}={})=>{const i=[];return a instanceof Uint8Array&&i.push(a.buffer),this.#o({type:t.WRITE_FILE,data:{path:e,data:a}},i,r)};mount=(e,a,r)=>this.#o({type:t.MOUNT,data:{fsType:e,options:a,mountPoint:r}},[]);unmount=e=>this.#o({type:t.UNMOUNT,data:{mountPoint:e}},[]);readFile=(e,a="binary",{signal:r}={})=>this.#o({type:t.READ_FILE,data:{path:e,encoding:a}},void 0,r);deleteFile=(e,{signal:a}={})=>this.#o({type:t.DELETE_FILE,data:{path:e}},void 0,a);rename=(e,a,{signal:r}={})=>this.#o({type:t.RENAME,data:{oldPath:e,newPath:a}},void 0,r);createDir=(e,{signal:a}={})=>this.#o({type:t.CREATE_DIR,data:{path:e}},void 0,a);listDir=(e,{signal:a}={})=>this.#o({type:t.LIST_DIR,data:{path:e}},void 0,a);deleteDir=(e,{signal:a}={})=>this.#o({type:t.DELETE_DIR,data:{path:e}},void 0,a)}return a})(),e.exports=a()})),r=e((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.ERROR_INCOMPLETED_DOWNLOAD=t.ERROR_RESPONSE_BODY_READER=void 0,t.ERROR_RESPONSE_BODY_READER=new Error("failed to get response body reader"),t.ERROR_INCOMPLETED_DOWNLOAD=new Error("failed to complete download")})),i=e((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.HeaderContentLength=void 0,t.HeaderContentLength="Content-Length"})),n=e((function(e,a){var n=t&&t.__awaiter||function(e,t,a,r){return new(a||(a=Promise))((function(i,n){function o(e){try{l(r.next(e))}catch(e){n(e)}}function s(e){try{l(r.throw(e))}catch(e){n(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof a?t:new a((function(e){e(t)}))).then(o,s)}l((r=r.apply(e,t||[])).next())}))};Object.defineProperty(a,"__esModule",{value:!0}),a.toBlobURL=a.downloadWithProgress=a.importScript=a.fetchFile=void 0;a.fetchFile=e=>n(void 0,void 0,void 0,(function*(){let t;if("string"==typeof e)t=/data:_data\/([a-zA-Z]*);base64,([^"]*)/.test(e)?atob(e.split(",")[1]).split("").map((e=>e.charCodeAt(0))):yield(yield fetch(e)).arrayBuffer();else if(e instanceof URL)t=yield(yield fetch(e)).arrayBuffer();else{if(!(e instanceof File||e instanceof Blob))return new Uint8Array;t=yield(a=e,new Promise(((e,t)=>{const r=new FileReader;r.onload=()=>{const{result:t}=r;t instanceof ArrayBuffer?e(new Uint8Array(t)):e(new Uint8Array)},r.onerror=e=>{var a,r;t(Error(`File could not be read! Code=${(null===(r=null===(a=null==e?void 0:e.target)||void 0===a?void 0:a.error)||void 0===r?void 0:r.code)||-1}`))},r.readAsArrayBuffer(a)})))}var a;return new Uint8Array(t)}));a.importScript=e=>n(void 0,void 0,void 0,(function*(){return new Promise((t=>{const a=document.createElement("script"),r=()=>{a.removeEventListener("load",r),t()};a.src=e,a.type="text/javascript",a.addEventListener("load",r),document.getElementsByTagName("head")[0].appendChild(a)}))}));a.downloadWithProgress=(e,t)=>n(void 0,void 0,void 0,(function*(){var a;const n=yield fetch(e);let o;try{const s=parseInt(n.headers.get(i.HeaderContentLength)||"-1"),l=null===(a=n.body)||void 0===a?void 0:a.getReader();if(!l)throw r.ERROR_RESPONSE_BODY_READER;const c=[];let d=0;for(;;){const{done:a,value:i}=yield l.read(),n=i?i.length:0;if(a){if(-1!=s&&s!==d)throw r.ERROR_INCOMPLETED_DOWNLOAD;t&&t({url:e,total:s,received:d,delta:n,done:a});break}c.push(i),d+=n,t&&t({url:e,total:s,received:d,delta:n,done:a})}const p=new Uint8Array(d);let y=0;for(const e of c)p.set(e,y),y+=e.length;o=p.buffer}catch(a){console.log("failed to send download progress event: ",a),o=yield n.arrayBuffer(),t&&t({url:e,total:o.byteLength,received:o.byteLength,delta:0,done:!0})}return o}));a.toBlobURL=(e,t,r=!1,i)=>n(void 0,void 0,void 0,(function*(){const n=r?yield(0,a.downloadWithProgress)(e,i):yield(yield fetch(e)).arrayBuffer(),o=new Blob([n],{type:t});return URL.createObjectURL(o)}))}));const o=globalThis.showSaveFilePicker;globalThis.DataTransferItem&&!DataTransferItem.prototype.getAsFileSystemHandle&&(DataTransferItem.prototype.getAsFileSystemHandle=async function(){const e=this.webkitGetAsEntry(),[{FileHandle:t,FolderHandle:a},{FileSystemDirectoryHandle:r},{FileSystemFileHandle:i}]=await Promise.all([import("./DNrAGae2.js"),Promise.resolve().then((function(){return w})),Promise.resolve().then((function(){return R}))]);return e.isFile?new i(new t(e,!1)):new r(new a(e,!1))});const s={ReadableStream:globalThis.ReadableStream,WritableStream:globalThis.WritableStream,TransformStream:globalThis.TransformStream,DOMException:globalThis.DOMException,Blob:globalThis.Blob,File:globalThis.File},{WritableStream:l}=s;class c extends l{#s;constructor(e){super(e),this.#s=e,Object.setPrototypeOf(this,c.prototype),this._closed=!1}async close(){this._closed=!0;const e=this.getWriter(),t=e.close();return e.releaseLock(),t}seek(e){return this.write({type:"seek",position:e})}truncate(e){return this.write({type:"truncate",size:e})}write(e){if(this._closed)return Promise.reject(new TypeError("Cannot write to a CLOSED writable stream"));const t=this.getWriter(),a=t.write(e);return t.releaseLock(),a}}Object.defineProperty(c.prototype,Symbol.toStringTag,{value:"FileSystemWritableFileStream",writable:!1,enumerable:!1,configurable:!0}),Object.defineProperties(c.prototype,{close:{enumerable:!0},seek:{enumerable:!0},truncate:{enumerable:!0},write:{enumerable:!0}}),!globalThis.FileSystemFileHandle||globalThis.FileSystemFileHandle.prototype.createWritable||globalThis.FileSystemWritableFileStream||(globalThis.FileSystemWritableFileStream=c);const d=Symbol("adapter");class p{[d];name;kind;constructor(e){this.kind=e.kind,this.name=e.name,this[d]=e}async queryPermission(e={}){const{mode:t="read"}=e,a=this[d];if(a.queryPermission)return a.queryPermission({mode:t});if("read"===t)return"granted";if("readwrite"===t)return a.writable?"granted":"denied";throw new TypeError(`Mode ${t} must be 'read' or 'readwrite'`)}async requestPermission({mode:e="read"}={}){const t=this[d];if(t.requestPermission)return t.requestPermission({mode:e});if("read"===e)return"granted";if("readwrite"===e)return t.writable?"granted":"denied";throw new TypeError(`Mode ${e} must be 'read' or 'readwrite'`)}async remove(e={}){await this[d].remove(e)}async isSameEntry(e){return this===e||!(!e||"object"!=typeof e||this.kind!==e.kind||!e[d])&&this[d].isSameEntry(e[d])}}Object.defineProperty(p.prototype,Symbol.toStringTag,{value:"FileSystemHandle",writable:!1,enumerable:!1,configurable:!0}),globalThis.FileSystemHandle&&(globalThis.FileSystemHandle.prototype.queryPermission??=function(e){return"granted"});const y={INVALID:["seeking position failed.","InvalidStateError"],GONE:["A requested file or directory could not be found at the time an operation was processed.","NotFoundError"],MISMATCH:["The path supplied exists, but was not an entry of requested type.","TypeMismatchError"],MOD_ERR:["The object can not be modified in this way.","InvalidModificationError"],SYNTAX:e=>[`Failed to execute 'write' on 'UnderlyingSinkBase': Invalid params passed. ${e}`,"SyntaxError"],SECURITY:["It was determined that certain files are unsafe for access within a Web application, or that too many calls are being made on file resources.","SecurityError"],DISALLOWED:["The request is not allowed by the user agent or the platform in the current context.","NotAllowedError"]},{GONE:u,MOD_ERR:m}=y,h=Symbol("adapter");let f=class e extends p{[h];constructor(e){super(e),this[h]=e}async getDirectoryHandle(t,a={}){if(""===t)throw new TypeError("Name can't be an empty string.");if("."===t||".."===t||t.includes("/"))throw new TypeError("Name contains invalid characters.");a.create=!!a.create;const r=await this[h].getDirectoryHandle(t,a);return new e(r)}async*entries(){const{FileSystemFileHandle:t}=await Promise.resolve().then((function(){return R}));for await(const[a,r]of this[h].entries())yield[r.name,"file"===r.kind?new t(r):new e(r)]}async*getEntries(){const{FileSystemFileHandle:t}=await Promise.resolve().then((function(){return R}));console.warn("deprecated, use .entries() instead");for await(let a of this[h].entries())yield"file"===a.kind?new t(a):new e(a)}async getFileHandle(e,t={}){const{FileSystemFileHandle:a}=await Promise.resolve().then((function(){return R}));if(""===e)throw new TypeError("Name can't be an empty string.");if("."===e||".."===e||e.includes("/"))throw new TypeError("Name contains invalid characters.");t.create=!!t.create;return new a(await this[h].getFileHandle(e,t))}async removeEntry(e,t={}){if(""===e)throw new TypeError("Name can't be an empty string.");if("."===e||".."===e||e.includes("/"))throw new TypeError("Name contains invalid characters.");return t.recursive=!!t.recursive,this[h].removeEntry(e,t)}async resolve(e){if(await e.isSameEntry(this))return[];const t=[{handle:this,path:[]}];for(;t.length;){let{handle:a,path:r}=t.pop();for await(const i of a.values()){if(await i.isSameEntry(e))return[...r,i.name];"directory"===i.kind&&t.push({handle:i,path:[...r,i.name]})}}return null}async*keys(){for await(const[e]of this[h].entries())yield e}async*values(){for await(const[e,t]of this)yield t}[Symbol.asyncIterator](){return this.entries()}};if(Object.defineProperty(f.prototype,Symbol.toStringTag,{value:"FileSystemDirectoryHandle",writable:!1,enumerable:!1,configurable:!0}),Object.defineProperties(f.prototype,{getDirectoryHandle:{enumerable:!0},entries:{enumerable:!0},getFileHandle:{enumerable:!0},removeEntry:{enumerable:!0}}),globalThis.FileSystemDirectoryHandle){const L=globalThis.FileSystemDirectoryHandle.prototype;async function _(e){const t=await navigator.storage.getDirectory();if(null===await t.resolve(e))throw new DOMException(...u)}L.resolve=async function(e){if(await e.isSameEntry(this))return[];const t=[{handle:this,path:[]}];for(;t.length;){let{handle:a,path:r}=t.pop();for await(const i of a.values()){if(await i.isSameEntry(e))return[...r,i.name];"directory"===i.kind&&t.push({handle:i,path:[...r,i.name]})}}return null};const k=L.entries;L.entries=async function*(){await _(this),yield*k.call(this)},L[Symbol.asyncIterator]=async function*(){yield*this.entries()};const A=L.removeEntry;L.removeEntry=async function(e,t={}){return A.call(this,e,t).catch((async e=>{if(e instanceof DOMException&&"UnknownError"===e.name&&!t.recursive){if(!(await k.call(this).next()).done)throw new DOMException(...m)}throw e}))}}var w=Object.freeze({__proto__:null,FileSystemDirectoryHandle:f,default:f});const{INVALID:g,SYNTAX:E,GONE:b}=y,v=Symbol("adapter");class S extends p{[v];constructor(e){super(e),this[v]=e}async createWritable(e={}){return new c(await this[v].createWritable(e))}async getFile(){return this[v].getFile()}}if(Object.defineProperty(S.prototype,Symbol.toStringTag,{value:"FileSystemFileHandle",writable:!1,enumerable:!1,configurable:!0}),Object.defineProperties(S.prototype,{createWritable:{enumerable:!0},getFile:{enumerable:!0}}),globalThis.FileSystemFileHandle&&!globalThis.FileSystemFileHandle.prototype.createWritable){const I=new WeakMap;let P;const M=()=>{let e,t;onmessage=async a=>{const r=a.ports[0],i=a.data;switch(i.type){case"open":const a=i.name;let r=await navigator.storage.getDirectory();for(const e of i.path)r=await r.getDirectoryHandle(e);e=await r.getFileHandle(a),t=await e.createSyncAccessHandle();break;case"write":t.write(i.data,{at:i.position}),t.flush();break;case"truncate":t.truncate(i.size);break;case"abort":case"close":t.close()}r.postMessage(0)}};globalThis.FileSystemFileHandle.prototype.createWritable=async function(e){if(!P){const e=`(${M.toString()})()`,t=new Blob([e],{type:"text/javascript"});P=URL.createObjectURL(t)}const t=new Worker(P,{type:"module"});let a=0;const r=new TextEncoder;let i=await this.getFile().then((e=>e.size));const n=e=>new Promise(((a,r)=>{const i=new MessageChannel;i.port1.onmessage=e=>{e.data instanceof Error?r(e.data):a(e.data),i.port1.close(),i.port2.close(),i.port1.onmessage=null},t.postMessage(e,[i.port2])})),o=await navigator.storage.getDirectory(),s=await I.get(this),l=await o.resolve(s);if(null===l)throw new DOMException(...b);await n({type:"open",path:l,name:this.name}),!1===e?.keepExistingData&&(await n({type:"truncate",size:0}),i=0);return new c({start:e=>{},async write(e){if("write"===(e=e?.constructor===Object?{...e}:{type:"write",data:e,position:a}).type){if(!("data"in e))throw await n({type:"close"}),new DOMException(...E("write requires a data argument"));if(e.position??=a,"string"==typeof e.data)e.data=r.encode(e.data);else if(e.data instanceof ArrayBuffer)e.data=new Uint8Array(e.data);else if(e.data instanceof Uint8Array||!ArrayBuffer.isView(e.data)){if(!(e.data instanceof Uint8Array)){const t=await new Response(e.data).arrayBuffer();e.data=new Uint8Array(t)}}else e.data=new Uint8Array(e.data.buffer,e.data.byteOffset,e.data.byteLength);Number.isInteger(e.position)&&e.position>=0&&(a=e.position),a+=e.data.byteLength,i+=e.data.byteLength}else{if("seek"===e.type){if(Number.isInteger(e.position)&&e.position>=0){if(i<e.position)throw new DOMException(...g);return console.log("seeking",e),void(a=e.position)}throw await n({type:"close"}),new DOMException(...E("seek requires a position argument"))}if("truncate"===e.type){if(!(Number.isInteger(e.size)&&e.size>=0))throw await n({type:"close"}),new DOMException(...E("truncate requires a size argument"));i=e.size,a>i&&(a=i)}}await n(e)},async close(){await n({type:"close"}),t.terminate()},async abort(e){await n({type:"abort",reason:e}),t.terminate()}})};const N=FileSystemDirectoryHandle.prototype.getFileHandle;FileSystemDirectoryHandle.prototype.getFileHandle=async function(...e){const t=await N.call(this,...e);return I.set(t,this),t}}var R=Object.freeze({__proto__:null,FileSystemFileHandle:S,default:S});const D=new a.FFmpeg;function T(e){function t(e){return e<10?"0"+e:e}return`${e.getFullYear()}${t(e.getMonth()+1)}${t(e.getDate())}${t(e.getHours())}${t(e.getMinutes())}${t(e.getSeconds())}${e.getMilliseconds()}`}async function O(e,t){const a={suggestedName:t,types:[{"image/png":["png"]}]},r=await async function(e={}){if(o&&!e._preferPolyfill)return o(e);e._name&&(console.warn("deprecated _name, spec now have `suggestedName`"),e.suggestedName=e._name);const{FileSystemFileHandle:t}=await Promise.resolve().then((function(){return R})),{FileHandle:a}=await import("./Ca3LKSSa.js");return new t(new a(e.suggestedName))}(a),i=await r.createWritable();i.write(e),i.close()}function F(e,t,a,r=()=>{}){let i=document.querySelector(t);i=i.transferControlToOffscreen();const n=new Worker(new URL("BqCyEDfM.js",import.meta.url),{type:"module"});n.addEventListener("message",(e=>{"img"===e.data.type?O(e.data.img,`${T(new Date)}.png`):r()}));const o=new Worker(new URL("C0jiH7OH.js",import.meta.url).href,{type:"module"});return o.postMessage({url:e}),o.addEventListener("message",(async t=>{if("Opt"===t.data.DataType){t.data.data,n.postMessage({DataType:"Opt",data:t.data.data});let r="Start";n.postMessage({DataType:r,canvas:i,url:e,device:a},[i])}if("Track"===t.data.DataType){let e="Track",a=t.data.track.codec.startsWith("vp08")?"vp8":t.data.track.codec,r=t.data.track.video.height,i=t.data.track.video.width,o=t.data.tkinfo;n.postMessage({DataType:e,codec:a,codedHeight:r,codedWidth:i,description:o})}if("Samples"===t.data.DataType){let e="Samples",a=t.data.sample.is_sync?"key":"delta",r=1e6*t.data.sample.cts/t.data.sample.timescale,i=1e6*t.data.sample.duration/t.data.sample.timescale,o=t.data.sample.data,s=t.data.showData;n.postMessage({DataType:e,type:a,timestamp:r,duration:i,data:o,showData:s})}"lx"===t.data.DataType&&O(new Blob([t.data.Data],{type:"video/mp4"}),`${T(new Date)}.mp4`)})),{worker:n,WebSocketWork:o,close:()=>{o.terminate(),n.terminate()}}}(async()=>{await D.load({coreURL:await n.toBlobURL(new URL("./core/package/pkg/esm/ffmpeg-core.js",import.meta.url),"text/javascript"),wasmURL:await n.toBlobURL(new URL("./core/package/pkg/esm/ffmpeg-core.wasm",import.meta.url),"application/wasm"),classWorkerURL:new URL("QCSCNFjR.js",import.meta.url).toString()})})(),window.OmnimatrixVideoPayer=F;export{s as c,y as e,F as u};