3 lines
11 KiB
JavaScript
3 lines
11 KiB
JavaScript
|
/*! @name @videojs/vhs-utils @version 4.1.1 @license MIT */
|
||
|
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).vhsUtils=t()}(this,(function(){"use strict";const e={mp4:/^(av0?1|avc0?[1234]|vp0?9|flac|opus|mp3|mp4a|mp4v|stpp.ttml.im1t)/,webm:/^(vp0?[89]|av0?1|opus|vorbis)/,ogg:/^(vp0?[89]|theora|flac|opus|vorbis)/,video:/^(av0?1|avc0?[1234]|vp0?[89]|hvc1|hev1|theora|mp4v)/,audio:/^(mp4a|flac|vorbis|opus|ac-[34]|ec-3|alac|mp3|speex|aac)/,text:/^(stpp.ttml.im1t)/,muxerVideo:/^(avc0?1)/,muxerAudio:/^(mp4a)/,muxerText:/a^/},t=["video","audio","text"],r=["Video","Audio","Text"],n=function(e){return e?e.replace(/avc1\.(\d+)\.(\d+)/i,(function(e,t,r){return"avc1."+("00"+Number(t).toString(16)).slice(-2)+"00"+("00"+Number(r).toString(16)).slice(-2)})):e},o=function(e){return e.map(n)},i=function(r=""){const n=r.split(","),o=[];return n.forEach((function(r){let n;r=r.trim(),t.forEach((function(t){const i=e[t].exec(r.toLowerCase());if(!i||i.length<=1)return;n=t;const s=r.substring(0,i[1].length),a=r.replace(s,"");o.push({type:s,details:a,mediaType:t})})),n||o.push({type:r,details:"",mediaType:"unknown"})})),o},s=(t="")=>e.audio.test(t.trim().toLowerCase()),a=(t="")=>e.text.test(t.trim().toLowerCase()),c=t=>{if(!t||"string"!=typeof t)return;const r=t.toLowerCase().split(",").map((e=>n(e.trim())));let o="video";1===r.length&&s(r[0])?o="audio":1===r.length&&a(r[0])&&(o="application");let i="mp4";return r.every((t=>e.mp4.test(t)))?i="mp4":r.every((t=>e.webm.test(t)))?i="webm":r.every((t=>e.ogg.test(t)))&&(i="ogg"),`${o}/${i};codecs="${t}"`};var l=Object.freeze({__proto__:null,translateLegacyCodec:n,translateLegacyCodecs:o,mapLegacyAvcCodecs:function(e){return e.replace(/avc1\.(\d+)\.(\d+)/i,(e=>o([e])[0]))},parseCodecs:i,codecsFromDefault:(e,t)=>{if(!e.mediaGroups.AUDIO||!t)return null;const r=e.mediaGroups.AUDIO[t];if(!r)return null;for(const e in r){const t=r[e];if(t.default&&t.playlists)return i(t.playlists[0].attributes.CODECS)}return null},isVideoCodec:(t="")=>e.video.test(t.trim().toLowerCase()),isAudioCodec:s,isTextCodec:a,getMimeForCodec:c,browserSupportsCodec:(e="",t=!1)=>window.MediaSource&&window.MediaSource.isTypeSupported&&window.MediaSource.isTypeSupported(c(e))||t&&window.ManagedMediaSource&&window.ManagedMediaSource.isTypeSupported&&window.ManagedMediaSource.isTypeSupported(c(e))||!1,muxerSupportsCodec:(t="")=>t.toLowerCase().split(",").every((t=>{t=t.trim();for(let n=0;n<r.length;n++){if(e[`muxer${r[n]}`].test(t))return!0}return!1})),DEFAULT_AUDIO_CODEC:"mp4a.40.2",DEFAULT_VIDEO_CODEC:"avc1.4d400d"});const u=e=>e.toString(2).length,f=e=>Math.ceil(u(e)/8),p=(e,t,r=" ")=>(function(e,t){let r="";for(;t--;)r+=e;return r}(r,t)+e.toString()).slice(-t),h=e=>"function"===ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer,g=e=>h(e),y=function(e){return e instanceof Uint8Array?e:(Array.isArray(e)||g(e)||e instanceof ArrayBuffer||(e="number"!=typeof e||"number"==typeof e&&e!=e?0:[e]),new Uint8Array(e&&e.buffer||e,e&&e.byteOffset||0,e&&e.byteLength||0))},d=window.BigInt||Number,m=[d("0x1"),d("0x100"),d("0x10000"),d("0x1000000"),d("0x100000000"),d("0x10000000000"),d("0x1000000000000"),d("0x100000000000000"),d("0x10000000000000000")],b=function(){const e=new Uint16Array([65484]),t=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);return 255===t[0]?"big":204===t[0]?"little":"unknown"}(),v="big"===b,w="little"===b,A=function(e,{signed:t=!1,le:r=!1}={}){e=y(e);const n=r?"reduce":"reduceRight";let o=(e[n]?e[n]:Array.prototype[n]).call(e,(function(t,n,o){const i=r?o:Math.abs(o+1-e.length);return t+d(n)*m[i]}),d(0));if(t){const t=m[e.length]/d(2)-d(1);o=d(o),o>t&&(o-=t,o-=t,o-=d(2))}return Number(o)},S=function(e,{le:t=!1}={}){("bigint"!=typeof e&&"number"!=typeof e||"number"==typeof e&&e!=e)&&(e=0),e=d(e);const r=f(e),n=new Uint8Array(new ArrayBuffer(r));for(let o=0;o<r;o++){const r=t?o:Math.abs(o+1-n.length);n[r]=Number(e/m[o]&d(255)),e<0&&(n[r]=Math.abs(~n[r]),n[r]-=0===o?1:2)}return n},T=(e,t)=>{if("string"!=typeof e&&e&&"function"
|