montana/Russian/Site/messenger/dist/8764.4cf83ad7d453c5c9b819.js
2026-05-18 18:05:32 +03:00

2 lines
14 KiB
JavaScript

"use strict";(self.webpackChunkmontana_messenger=self.webpackChunkmontana_messenger||[]).push([[8764],{94481(e,t,a){a.d(t,{k:()=>f});var i=a(10718),s=a(17833),n=a(47675),r=a(80400),o=a(68191),h=a(74604);const l=s("music-metadata:parser:ID3");class f extends h.s{constructor(){super(...arguments),this.id3parser=new r.S}static async startsWithID3v2Header(e){return"ID3"===(await e.peekToken(n.yW)).fileIdentifier}async parse(){try{await this.parseID3v2()}catch(e){if(!(e instanceof i.d1))throw e;l("End-of-stream")}}finalize(){}async parseID3v2(){if(await this.tryReadId3v2Headers(),l("End of ID3v2 header, go to MPEG-parser: pos=%s",this.tokenizer.position),await this.postId3v2Parse(),this.options.skipPostHeaders&&this.metadata.hasAny())this.finalize();else{const e=new o.Bn(this.metadata,this.tokenizer,this.options);await e.parse(),this.finalize()}}async tryReadId3v2Headers(){if("ID3"===(await this.tokenizer.peekToken(n.yW)).fileIdentifier)return l("Found ID3v2 header, pos=%s",this.tokenizer.position),await this.id3parser.parse(this.metadata,this.tokenizer,this.options),this.tryReadId3v2Headers()}}},58764(e,t,a){a.r(t),a.d(t,{MpegContentError:()=>p,MpegParser:()=>b});var i=a(4017),s=a(10718),n=a(17833),r=a(56185),o=a(94481);const h=(e,t)=>{const a=r.f5(e,t,0,3),i=r.f5(e,t,6,1),s=r.f5(e,t,7,9)/10;if(a>0)return{type:r.f5(e,t,0,3),origin:r.f5(e,t,3,3),adjustment:i?-s:s}},l={len:27,get:(e,t)=>{const a=i.UINT32_BE.get(e,t+2);return{revision:r.f5(e,t,0,4),vbr_method:r.f5(e,t,4,4),lowpass_filter:100*i.UINT8.get(e,t+1),track_peak:0===a?null:a/2**23,track_gain:h(e,6),album_gain:h(e,8),music_length:i.UINT32_BE.get(e,t+20),music_crc:i.UINT8.get(e,t+24),header_crc:i.UINT16_BE.get(e,t+24)}}},f=new i.StringType(4,"ascii"),m=new i.StringType(6,"ascii"),c={len:4,get:(e,t)=>({frames:r.cD(e,t,31),bytes:r.cD(e,t,30),toc:r.cD(e,t,29),vbrScale:r.cD(e,t,28)})};var d=a(63324);const u=n("music-metadata:parser:mpeg");class p extends((0,d.fO)("MPEG")){}const g={AudioObjectTypes:["AAC Main","AAC LC","AAC SSR","AAC LTP"],SamplingFrequencies:[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350,null,null,-1]},k=[void 0,["front-center"],["front-left","front-right"],["front-center","front-left","front-right"],["front-center","front-left","front-right","back-center"],["front-center","front-left","front-right","back-left","back-right"],["front-center","front-left","front-right","back-left","back-right","LFE-channel"],["front-center","front-left","front-right","side-left","side-right","back-left","back-right","LFE-channel"]];class y{constructor(e,t){this.bitrateIndex=null,this.sampRateFreqIndex=null,this.padding=null,this.privateBit=null,this.channelModeIndex=null,this.modeExtension=null,this.isOriginalMedia=null,this.version=null,this.bitrate=null,this.samplingRate=null,this.frameLength=0,this.versionIndex=r.f5(e,t+1,3,2),this.layer=y.LayerDescription[r.f5(e,t+1,5,2)],this.versionIndex>1&&0===this.layer?this.parseAdtsHeader(e,t):this.parseMpegHeader(e,t),this.isProtectedByCRC=!r.cD(e,t+1,7)}calcDuration(e){return null==this.samplingRate?null:e*this.calcSamplesPerFrame()/this.samplingRate}calcSamplesPerFrame(){return y.samplesInFrameTable[1===this.version?0:1][this.layer]}calculateSideInfoLength(){if(3!==this.layer)return 2;if(3===this.channelModeIndex){if(1===this.version)return 17;if(2===this.version||2.5===this.version)return 9}else{if(1===this.version)return 32;if(2===this.version||2.5===this.version)return 17}return null}calcSlotSize(){return[null,4,1,1][this.layer]}parseMpegHeader(e,t){this.container="MPEG",this.bitrateIndex=r.f5(e,t+2,0,4),this.sampRateFreqIndex=r.f5(e,t+2,4,2),this.padding=r.cD(e,t+2,6),this.privateBit=r.cD(e,t+2,7),this.channelModeIndex=r.f5(e,t+3,0,2),this.modeExtension=r.f5(e,t+3,2,2),this.isCopyrighted=r.cD(e,t+3,4),this.isOriginalMedia=r.cD(e,t+3,5),this.emphasis=r.f5(e,t+3,7,2),this.version=y.VersionID[this.versionIndex],this.channelMode=y.ChannelMode[this.channelModeIndex],this.codec=`MPEG ${this.version} Layer ${this.layer}`;const a=this.calcBitrate();if(!a)throw new p("Cannot determine bit-rate");if(this.bitrate=1e3*a,this.samplingRate=this.calcSamplingRate(),null==this.samplingRate)throw new p("Cannot determine sampling-rate")}parseAdtsHeader(e,t){u("layer=0 => ADTS"),this.version=2===this.versionIndex?4:2,this.container=`ADTS/MPEG-${this.version}`;const a=r.f5(e,t+2,0,2);this.codec="AAC",this.codecProfile=g.AudioObjectTypes[a],u(`MPEG-4 audio-codec=${this.codec}`);const i=r.f5(e,t+2,2,4);this.samplingRate=g.SamplingFrequencies[i],u(`sampling-rate=${this.samplingRate}`);const s=r.f5(e,t+2,7,3);this.mp4ChannelConfig=k[s],u(`channel-config=${this.mp4ChannelConfig?this.mp4ChannelConfig.join("+"):"?"}`),this.frameLength=r.f5(e,t+3,6,2)<<11}calcBitrate(){if(0===this.bitrateIndex||15===this.bitrateIndex)return null;if(this.version&&this.bitrateIndex){const e=10*Math.floor(this.version)+this.layer;return y.bitrate_index[this.bitrateIndex][e]}return null}calcSamplingRate(){return 3===this.sampRateFreqIndex||null===this.version||null==this.sampRateFreqIndex?null:y.sampling_rate_freq_index[this.version][this.sampRateFreqIndex]}}y.SyncByte1=255,y.SyncByte2=224,y.VersionID=[2.5,null,2,1],y.LayerDescription=[0,3,2,1],y.ChannelMode=["stereo","joint_stereo","dual_channel","mono"],y.bitrate_index={1:{11:32,12:32,13:32,21:32,22:8,23:8},2:{11:64,12:48,13:40,21:48,22:16,23:16},3:{11:96,12:56,13:48,21:56,22:24,23:24},4:{11:128,12:64,13:56,21:64,22:32,23:32},5:{11:160,12:80,13:64,21:80,22:40,23:40},6:{11:192,12:96,13:80,21:96,22:48,23:48},7:{11:224,12:112,13:96,21:112,22:56,23:56},8:{11:256,12:128,13:112,21:128,22:64,23:64},9:{11:288,12:160,13:128,21:144,22:80,23:80},10:{11:320,12:192,13:160,21:160,22:96,23:96},11:{11:352,12:224,13:192,21:176,22:112,23:112},12:{11:384,12:256,13:224,21:192,22:128,23:128},13:{11:416,12:320,13:256,21:224,22:144,23:144},14:{11:448,12:384,13:320,21:256,22:160,23:160}},y.sampling_rate_freq_index={1:{0:44100,1:48e3,2:32e3},2:{0:22050,1:24e3,2:16e3},2.5:{0:11025,1:12e3,2:8e3}},y.samplesInFrameTable=[[0,384,1152,1152],[0,384,1152,576]];class b extends o.k{constructor(){super(...arguments),this.frameCount=0,this.syncFrameCount=-1,this.totalDataLength=0,this.bitrates=[],this.offset=0,this.frame_size=0,this.calculateEofDuration=!1,this.samplesPerFrame=null,this.buf_frame_header=new Uint8Array(4),this.mpegOffset=null,this.syncPeek={buf:new Uint8Array(1024),len:0}}async postId3v2Parse(){this.metadata.setFormat("lossless",!1),this.metadata.setAudioOnly();try{let e=!1;for(;!e;)await this.sync(),e=await this.parseCommonMpegHeader()}catch(e){if(!(e instanceof s.d1))throw e;if(u("End-of-stream"),this.calculateEofDuration&&null!==this.samplesPerFrame){const e=this.frameCount*this.samplesPerFrame;if(this.metadata.setFormat("numberOfSamples",e),this.metadata.format.sampleRate){const t=e/this.metadata.format.sampleRate;u(`Calculate duration at EOF: ${t} sec.`,t),this.metadata.setFormat("duration",t)}}}}finalize(){const e=this.metadata.format,t=!!this.metadata.native.ID3v1;if(null!==this.mpegOffset){if(e.duration&&this.tokenizer.fileInfo.size){const a=this.tokenizer.fileInfo.size-this.mpegOffset-(t?128:0);e.codecProfile&&"V"===e.codecProfile[0]&&this.metadata.setFormat("bitrate",8*a/e.duration)}if(this.tokenizer.fileInfo.size&&"CBR"===e.codecProfile){const a=this.tokenizer.fileInfo.size-this.mpegOffset-(t?128:0);if(null!==this.frame_size&&null!==this.samplesPerFrame){const t=Math.round(a/this.frame_size)*this.samplesPerFrame;if(this.metadata.setFormat("numberOfSamples",t),e.sampleRate&&!e.duration){const a=t/e.sampleRate;u("Calculate CBR duration based on file size: %s",a),this.metadata.setFormat("duration",a)}}}}}async sync(){let e=!1;for(;;){let t=0;if(this.syncPeek.len=await this.tokenizer.peekBuffer(this.syncPeek.buf,{length:1024,mayBeLess:!0}),this.syncPeek.len<=163)throw new s.d1;for(;;){if(e&&!(224&~this.syncPeek.buf[t]))return this.buf_frame_header[0]=y.SyncByte1,this.buf_frame_header[1]=this.syncPeek.buf[t],await this.tokenizer.ignore(t),u(`Sync at offset=${this.tokenizer.position-1}, frameCount=${this.frameCount}`),this.syncFrameCount===this.frameCount&&(u(`Re-synced MPEG stream, frameCount=${this.frameCount}`),this.frameCount=0,this.frame_size=0),void(this.syncFrameCount=this.frameCount);if(e=!1,t=this.syncPeek.buf.indexOf(y.SyncByte1,t),-1===t){if(this.syncPeek.len<this.syncPeek.buf.length)throw new s.d1;await this.tokenizer.ignore(this.syncPeek.len);break}++t,e=!0}}}async parseCommonMpegHeader(){let e;0===this.frameCount&&(this.mpegOffset=this.tokenizer.position-1),await this.tokenizer.peekBuffer(this.buf_frame_header.subarray(1),{length:3});try{t=this.buf_frame_header,e=new y(t,0)}catch(e){if(await this.tokenizer.ignore(1),e instanceof Error)return this.metadata.addWarning(`Parse error: ${e.message}`),!1;throw e}var t;return await this.tokenizer.ignore(3),this.metadata.setFormat("container",e.container),this.metadata.setFormat("codec",e.codec),this.metadata.setFormat("lossless",!1),this.metadata.setFormat("sampleRate",e.samplingRate),this.frameCount++,null!==e.version&&e.version>=2&&0===e.layer?this.parseAdts(e):this.parseAudioFrameHeader(e)}async parseAudioFrameHeader(e){this.metadata.setFormat("numberOfChannels","mono"===e.channelMode?1:2),this.metadata.setFormat("bitrate",e.bitrate),this.frameCount<2e5&&u("offset=%s MP%s bitrate=%s sample-rate=%s",this.tokenizer.position-4,e.layer,e.bitrate,e.samplingRate);const t=e.calcSlotSize();if(null===t)throw new p("invalid slot_size");const a=e.calcSamplesPerFrame();u(`samples_per_frame=${a}`);const i=a/8;if(null!==e.bitrate&&null!=e.samplingRate){const a=i*e.bitrate/e.samplingRate+(e.padding?t:0);this.frame_size=Math.floor(a)}if(this.audioFrameHeader=e,null!==e.bitrate&&this.bitrates.push(e.bitrate),1===this.frameCount)return this.offset=4,await this.skipSideInformation(),!1;if(4===this.frameCount){if(this.areAllSame(this.bitrates)){if(this.samplesPerFrame=a,this.metadata.setFormat("codecProfile","CBR"),this.tokenizer.fileInfo.size)return!0}else if(this.metadata.format.duration)return!0;if(!this.options.duration)return!0}return this.options.duration&&4===this.frameCount&&(this.samplesPerFrame=a,this.calculateEofDuration=!0),this.offset=4,e.isProtectedByCRC?(await this.parseCrc(),!1):(await this.skipSideInformation(),!1)}async parseAdts(e){const t=new Uint8Array(3);if(await this.tokenizer.readBuffer(t),e.frameLength+=r.f5(t,0,0,11),this.totalDataLength+=e.frameLength,this.samplesPerFrame=1024,null!==e.samplingRate){const t=e.samplingRate/this.samplesPerFrame,a=8*(0===this.frameCount?0:this.totalDataLength/this.frameCount)*t+.5;this.metadata.setFormat("bitrate",a),u(`frame-count=${this.frameCount}, size=${e.frameLength} bytes, bit-rate=${a}`)}if(await this.tokenizer.ignore(e.frameLength>7?e.frameLength-7:1),3===this.frameCount){if(this.metadata.setFormat("codecProfile",e.codecProfile),e.mp4ChannelConfig&&this.metadata.setFormat("numberOfChannels",e.mp4ChannelConfig.length),!this.options.duration)return!0;this.calculateEofDuration=!0}return!1}async parseCrc(){return await this.tokenizer.ignore(i.INT16_BE.len),this.offset+=i.INT16_BE.len,this.skipSideInformation()}async skipSideInformation(){if(this.audioFrameHeader){const e=this.audioFrameHeader.calculateSideInfoLength();if(null!==e)return await this.tokenizer.readToken(new i.Uint8ArrayType(e)),this.offset+=e,void await this.readXtraInfoHeader()}}async readXtraInfoHeader(){const e=await this.tokenizer.readToken(f);switch(this.offset+=f.len,e){case"Info":return this.metadata.setFormat("codecProfile","CBR"),this.readXingInfoHeader();case"Xing":{const e=await this.readXingInfoHeader();if(null!==e.vbrScale){const a=(t=e.vbrScale,`V${Math.floor((100-t)/10)}`);this.metadata.setFormat("codecProfile",a)}return null}case"Xtra":break;case"LAME":{const e=await this.tokenizer.readToken(m);if(null!==this.frame_size&&this.frame_size>=this.offset+m.len)return this.offset+=m.len,this.metadata.setFormat("tool",`LAME ${e}`),await this.skipFrameData(this.frame_size-this.offset),null;this.metadata.addWarning("Corrupt LAME header");break}}var t;const a=this.frame_size-this.offset;return a<0?this.metadata.addWarning(`Frame ${this.frameCount}corrupt: negative frameDataLeft`):await this.skipFrameData(a),null}async readXingInfoHeader(){const e=this.tokenizer.position,t=await async function(e){const t=await e.readToken(c),a={numFrames:null,streamSize:null,vbrScale:null};if(t.frames&&(a.numFrames=await e.readToken(i.UINT32_BE)),t.bytes&&(a.streamSize=await e.readToken(i.UINT32_BE)),t.toc&&(a.toc=new Uint8Array(100),await e.readBuffer(a.toc)),t.vbrScale&&(a.vbrScale=await e.readToken(i.UINT32_BE)),"LAME"===await e.peekToken(new i.StringType(4,"ascii"))){await e.ignore(4),a.lame={version:await e.readToken(new i.StringType(5,"ascii"))};const t=a.lame.version.match(/\d+.\d+/g);if(null!==t){const i=t[0].split(".").map(e=>Number.parseInt(e,10));i[0]>=3&&i[1]>=90&&(a.lame.extended=await e.readToken(l))}}return a}(this.tokenizer);if(this.offset+=this.tokenizer.position-e,t.lame&&(this.metadata.setFormat("tool",`LAME ${r.F6(t.lame.version)}`),t.lame.extended&&(this.metadata.setFormat("trackPeakLevel",t.lame.extended.track_peak),t.lame.extended.track_gain&&this.metadata.setFormat("trackGain",t.lame.extended.track_gain.adjustment),t.lame.extended.album_gain&&this.metadata.setFormat("albumGain",t.lame.extended.album_gain.adjustment),this.metadata.setFormat("duration",t.lame.extended.music_length/1e3))),t.streamSize&&this.audioFrameHeader&&null!==t.numFrames){const e=this.audioFrameHeader.calcDuration(t.numFrames);return this.metadata.setFormat("duration",e),u("Get duration from Xing header: %s",this.metadata.format.duration),t}const a=this.frame_size-this.offset;return await this.skipFrameData(a),t}async skipFrameData(e){if(e<0)throw new p("frame-data-left cannot be negative");await this.tokenizer.ignore(e)}areAllSame(e){const t=e[0];return e.every(e=>e===t)}}}}]);
//# sourceMappingURL=8764.4cf83ad7d453c5c9b819.js.map