TelegramPWA/dist/6438.a78fd5265caed22c4ba0.js
Alexander Zinchuk fb411a3125 [Build]
2025-06-04 20:43:36 +02:00

2 lines
5.6 KiB
JavaScript

"use strict";(self.webpackChunktelegram_t=self.webpackChunktelegram_t||[]).push([[6438],{66438:(e,t,a)=>{a.r(t),a.d(t,{WaveParser:()=>C});var i=a(93853),n=a(4017),s=a(17833);const r={len:8,get:(e,t)=>({chunkID:new n.StringType(4,"latin1").get(e,t),chunkSize:n.UINT32_LE.get(e,t+4)})};class o{constructor(e){this.tagHeader=e,this.len=e.chunkSize,this.len+=1&this.len}get(e,t){return new n.StringType(this.tagHeader.chunkSize,"ascii").get(e,t)}}var h=a(63324);class c extends((0,h.fO)("Wave")){}const k=1,d=2,g=3,m=5632,l=5634,u=255,I=146,T=8192,S=576,f=577,p=9,w=8193,z=80,F={[k]:"PCM",[d]:"ADPCM",[g]:"IEEE_FLOAT",[m]:"MPEG_ADTS_AAC",[l]:"MPEG_LOAS",[u]:"RAW_AAC1",[I]:"DOLBY_AC3_SPDIF",[T]:"DVM",[S]:"RAW_SPORT",[f]:"ESST_AC3",[p]:"DRM",[w]:"DTS2",[z]:"MPEG"};class L{constructor(e){if(e.chunkSize<16)throw new c("Invalid chunk size");this.len=e.chunkSize}get(e,t){return{wFormatTag:n.UINT16_LE.get(e,t),nChannels:n.UINT16_LE.get(e,t+2),nSamplesPerSec:n.UINT32_LE.get(e,t+4),nAvgBytesPerSec:n.UINT32_LE.get(e,t+8),nBlockAlign:n.UINT16_LE.get(e,t+12),wBitsPerSample:n.UINT16_LE.get(e,t+14)}}}class A{constructor(e){if(e.chunkSize<4)throw new c("Invalid fact chunk size.");this.len=e.chunkSize}get(e,t){return{dwSampleLength:n.UINT32_LE.get(e,t)}}}var E=a(78621),R=a(56185),_=a(5031),b=a(74604);const D={len:420,get:(e,t)=>({description:(0,R.F6)(new n.StringType(256,"ascii").get(e,t)).trim(),originator:(0,R.F6)(new n.StringType(32,"ascii").get(e,t+256)).trim(),originatorReference:(0,R.F6)(new n.StringType(32,"ascii").get(e,t+288)).trim(),originationDate:(0,R.F6)(new n.StringType(10,"ascii").get(e,t+320)).trim(),originationTime:(0,R.F6)(new n.StringType(8,"ascii").get(e,t+330)).trim(),timeReferenceLow:n.UINT32_LE.get(e,t+338),timeReferenceHigh:n.UINT32_LE.get(e,t+342),version:n.UINT16_LE.get(e,t+346),umid:new n.Uint8ArrayType(64).get(e,t+348),loudnessValue:n.UINT16_LE.get(e,t+412),maxTruePeakLevel:n.UINT16_LE.get(e,t+414),maxMomentaryLoudness:n.UINT16_LE.get(e,t+416),maxShortTermLoudness:n.UINT16_LE.get(e,t+418)})},y=s("music-metadata:parser:RIFF");class C extends b.s{constructor(){super(...arguments),this.blockAlign=0}async parse(){const e=await this.tokenizer.readToken(r);if(y(`pos=${this.tokenizer.position}, parse: chunkID=${e.chunkID}`),"RIFF"===e.chunkID)return this.parseRiffChunk(e.chunkSize).catch((e=>{if(!(e instanceof i.d1))throw e}))}async parseRiffChunk(e){const t=await this.tokenizer.readToken(_.e);if(this.metadata.setFormat("container",t),"WAVE"===t)return this.readWaveChunk(e-_.e.len);throw new c(`Unsupported RIFF format: RIFF/${t}`)}async readWaveChunk(e){for(;e>=r.len;){const t=await this.tokenizer.readToken(r);switch(e-=r.len+t.chunkSize,t.chunkSize>e&&this.metadata.addWarning("Data chunk size exceeds file size"),this.header=t,y(`pos=${this.tokenizer.position}, readChunk: chunkID=RIFF/WAVE/${t.chunkID}`),t.chunkID){case"LIST":await this.parseListTag(t);break;case"fact":this.metadata.setFormat("lossless",!1),this.fact=await this.tokenizer.readToken(new A(t));break;case"fmt ":{const e=await this.tokenizer.readToken(new L(t));let a=F[e.wFormatTag];a||(y(`WAVE/non-PCM format=${e.wFormatTag}`),a=`non-PCM (${e.wFormatTag})`),this.metadata.setFormat("codec",a),this.metadata.setFormat("bitsPerSample",e.wBitsPerSample),this.metadata.setFormat("sampleRate",e.nSamplesPerSec),this.metadata.setFormat("numberOfChannels",e.nChannels),this.metadata.setFormat("bitrate",e.nBlockAlign*e.nSamplesPerSec*8),this.blockAlign=e.nBlockAlign;break}case"id3 ":case"ID3 ":{const e=await this.tokenizer.readToken(new n.Uint8ArrayType(t.chunkSize)),a=i.vY(e);await(new E.S).parse(this.metadata,a,this.options);break}case"data":{!1!==this.metadata.format.lossless&&this.metadata.setFormat("lossless",!0);let e=t.chunkSize;if(this.tokenizer.fileInfo.size){const t=this.tokenizer.fileInfo.size-this.tokenizer.position;t<e&&(this.metadata.addWarning("data chunk length exceeding file length"),e=t)}const a=this.fact?this.fact.dwSampleLength:4294967295===e?void 0:e/this.blockAlign;a&&(this.metadata.setFormat("numberOfSamples",a),this.metadata.format.sampleRate&&this.metadata.setFormat("duration",a/this.metadata.format.sampleRate)),"ADPCM"===this.metadata.format.codec?this.metadata.setFormat("bitrate",352e3):this.metadata.format.sampleRate&&this.metadata.setFormat("bitrate",this.blockAlign*this.metadata.format.sampleRate*8),await this.tokenizer.ignore(t.chunkSize);break}case"bext":{const e=await this.tokenizer.readToken(D);Object.keys(e).forEach((t=>{this.metadata.addTag("exif",`bext.${t}`,e[t])}));const a=t.chunkSize-D.len;await this.tokenizer.ignore(a);break}case"\0\0\0\0":y(`Ignore padding chunk: RIFF/${t.chunkID} of ${t.chunkSize} bytes`),this.metadata.addWarning(`Ignore chunk: RIFF/${t.chunkID}`),await this.tokenizer.ignore(t.chunkSize);break;default:y(`Ignore chunk: RIFF/${t.chunkID} of ${t.chunkSize} bytes`),this.metadata.addWarning(`Ignore chunk: RIFF/${t.chunkID}`),await this.tokenizer.ignore(t.chunkSize)}this.header.chunkSize%2==1&&(y("Read odd padding byte"),await this.tokenizer.ignore(1))}}async parseListTag(e){const t=await this.tokenizer.readToken(new n.StringType(4,"latin1"));return y("pos=%s, parseListTag: chunkID=RIFF/WAVE/LIST/%s",this.tokenizer.position,t),"INFO"===t?this.parseRiffInfoTags(e.chunkSize-4):(this.metadata.addWarning(`Ignore chunk: RIFF/WAVE/LIST/${t}`),y(`Ignoring chunkID=RIFF/WAVE/LIST/${t}`),this.tokenizer.ignore(e.chunkSize-4).then())}async parseRiffInfoTags(e){for(;e>=8;){const t=await this.tokenizer.readToken(r),a=new o(t),i=await this.tokenizer.readToken(a);this.addTag(t.chunkID,R.F6(i)),e-=8+a.len}if(0!==e)throw new c(`Illegal remaining size: ${e}`)}addTag(e,t){this.metadata.addTag("exif",e,t)}}}}]);
//# sourceMappingURL=6438.a78fd5265caed22c4ba0.js.map