diff --git a/src/App.vue b/src/App.vue index e4e35a8..523c89d 100644 --- a/src/App.vue +++ b/src/App.vue @@ -14,7 +14,7 @@ font-family: Avenir, Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; - text-align: center; + /* text-align: center; */ color: #2c3e50; } diff --git a/src/plugin/xml-digital-teaching/lib/catalog.js b/src/plugin/xml-digital-teaching/lib/catalog.js index 6cb3bc3..6a751d1 100644 --- a/src/plugin/xml-digital-teaching/lib/catalog.js +++ b/src/plugin/xml-digital-teaching/lib/catalog.js @@ -1,6 +1,6 @@ /* * XmlDigitalTeaching v0.0.1 -* Copyright ©Wed Jun 19 2024 19:48:48 GMT+0800 (中国标准时间) smile +* Copyright ©Fri Jun 21 2024 13:16:29 GMT+0800 (中国标准时间) smile * Released under the ISC License. */ // diff --git a/src/plugin/xml-digital-teaching/lib/ebook.js b/src/plugin/xml-digital-teaching/lib/ebook.js index cc1fc94..05c430a 100644 --- a/src/plugin/xml-digital-teaching/lib/ebook.js +++ b/src/plugin/xml-digital-teaching/lib/ebook.js @@ -1,6 +1,6 @@ /* * XmlDigitalTeaching v0.0.1 -* Copyright ©Wed Jun 19 2024 19:48:48 GMT+0800 (中国标准时间) smile +* Copyright ©Fri Jun 21 2024 13:16:29 GMT+0800 (中国标准时间) smile * Released under the ISC License. */ // diff --git a/src/plugin/xml-digital-teaching/lib/group.js b/src/plugin/xml-digital-teaching/lib/group.js index bdb747c..0251996 100644 --- a/src/plugin/xml-digital-teaching/lib/group.js +++ b/src/plugin/xml-digital-teaching/lib/group.js @@ -1,6 +1,6 @@ /* * XmlDigitalTeaching v0.0.1 -* Copyright ©Wed Jun 19 2024 19:48:48 GMT+0800 (中国标准时间) smile +* Copyright ©Fri Jun 21 2024 13:16:29 GMT+0800 (中国标准时间) smile * Released under the ISC License. */ // diff --git a/src/plugin/xml-digital-teaching/lib/html.js b/src/plugin/xml-digital-teaching/lib/html.js index 8305907..6b9e7bd 100644 --- a/src/plugin/xml-digital-teaching/lib/html.js +++ b/src/plugin/xml-digital-teaching/lib/html.js @@ -1,6 +1,6 @@ /* * XmlDigitalTeaching v0.0.1 -* Copyright ©Wed Jun 19 2024 19:48:48 GMT+0800 (中国标准时间) smile +* Copyright ©Fri Jun 21 2024 13:16:29 GMT+0800 (中国标准时间) smile * Released under the ISC License. */ // diff --git a/src/plugin/xml-digital-teaching/lib/image.css b/src/plugin/xml-digital-teaching/lib/image.css index 198afdc..c7b0ba6 100644 --- a/src/plugin/xml-digital-teaching/lib/image.css +++ b/src/plugin/xml-digital-teaching/lib/image.css @@ -4,15 +4,15 @@ } -.el-image__inner[data-v-755c322e] { +.el-image__inner[data-v-fb4f6862] { width: 100% !important; } -.xml-image-ping-pu-h5[data-v-755c322e] { +.xml-image-ping-pu-h5[data-v-fb4f6862] { display: flex; flex-direction: column; align-items: center; } -.xml-image-hua-lang[data-v-755c322e] { +.xml-image-hua-lang[data-v-fb4f6862] { display: flex; flex-direction: column; align-items: center; diff --git a/src/plugin/xml-digital-teaching/lib/image.js b/src/plugin/xml-digital-teaching/lib/image.js index 2e400cd..6684fa3 100644 --- a/src/plugin/xml-digital-teaching/lib/image.js +++ b/src/plugin/xml-digital-teaching/lib/image.js @@ -1,6 +1,6 @@ /* * XmlDigitalTeaching v0.0.1 -* Copyright ©Wed Jun 19 2024 19:48:48 GMT+0800 (中国标准时间) smile +* Copyright ©Fri Jun 21 2024 13:16:29 GMT+0800 (中国标准时间) smile * Released under the ISC License. */ import Vue from 'vue'; @@ -893,13 +893,17 @@ var script$1 = { return; } if (this.clickEffect === 'dian-ji-fang-da') { + let imgList = []; + this.previewSrcList.map((item, index) => { + imgList.push({ + url: item, + title: this.title[index] + }); + }); this.$xmlImgPreview({ multiple: true, - nowImgIndex: 0, - imgList: [{ - url: this.previewSrcList[0], - title: this.self.title - }] + nowImgIndex: this.current, + imgList }); } if (isByTitle) { @@ -1000,7 +1004,7 @@ var __vue_render__$2 = function () { ? _c( "div", { - staticClass: "image-title--lay image-title--on", + staticClass: "xml-image-title image-title--lay image-title--on", style: { textAlign: _vm.titleAlign || "left" }, }, [_vm._v("\n " + _vm._s(_vm.self.title) + "\n ")] @@ -1061,7 +1065,8 @@ var __vue_render__$2 = function () { ? _c( "div", { - staticClass: "image-title--fixed image-title--bottom", + staticClass: + "xml-image-title image-title--fixed image-title--bottom", style: { textAlign: _vm.titleAlign || "left" }, on: { click: function ($event) { @@ -1077,7 +1082,8 @@ var __vue_render__$2 = function () { ? _c( "div", { - staticClass: "image-title--fixed image-title--top", + staticClass: + "xml-image-title image-title--fixed image-title--top", style: { textAlign: _vm.titleAlign || "left" }, on: { click: function ($event) { @@ -1096,7 +1102,8 @@ var __vue_render__$2 = function () { ? _c( "div", { - staticClass: "image-title--lay image-title--under", + staticClass: + "xml-image-title image-title--lay image-title--under", style: { textAlign: _vm.titleAlign || "left" }, }, [_vm._v("\n " + _vm._s(_vm.self.title) + "\n ")] @@ -1112,7 +1119,7 @@ __vue_render__$2._withStripped = true; /* style */ const __vue_inject_styles__$1 = undefined; /* scoped */ - const __vue_scope_id__$1 = "data-v-755c322e"; + const __vue_scope_id__$1 = "data-v-fb4f6862"; /* module identifier */ const __vue_module_identifier__$1 = undefined; /* functional template */ diff --git a/src/plugin/xml-digital-teaching/lib/image.min.css b/src/plugin/xml-digital-teaching/lib/image.min.css index 5499fbb..4771ff0 100644 --- a/src/plugin/xml-digital-teaching/lib/image.min.css +++ b/src/plugin/xml-digital-teaching/lib/image.min.css @@ -1 +1 @@ -.xml-image-lun-bo .el-carousel__item{text-align:center}.el-image__inner[data-v-755c322e]{width:100%!important}.xml-image-ping-pu-h5[data-v-755c322e]{display:flex;flex-direction:column;align-items:center}.xml-image-hua-lang[data-v-755c322e]{display:flex;flex-direction:column;align-items:center} \ No newline at end of file +.xml-image-lun-bo .el-carousel__item{text-align:center}.el-image__inner[data-v-fb4f6862]{width:100%!important}.xml-image-ping-pu-h5[data-v-fb4f6862]{display:flex;flex-direction:column;align-items:center}.xml-image-hua-lang[data-v-fb4f6862]{display:flex;flex-direction:column;align-items:center} \ No newline at end of file diff --git a/src/plugin/xml-digital-teaching/lib/imageText.css b/src/plugin/xml-digital-teaching/lib/imageText.css index bc84a37..344a610 100644 --- a/src/plugin/xml-digital-teaching/lib/imageText.css +++ b/src/plugin/xml-digital-teaching/lib/imageText.css @@ -3,33 +3,25 @@ /*# sourceMappingURL=fifth.vue.map */ -/*# sourceMappingURL=third.vue.map */ +/*# sourceMappingURL=sixth.vue.map */ /*# sourceMappingURL=fourth.vue.map */ -/*# sourceMappingURL=seventh.vue.map */ +/*# sourceMappingURL=first.vue.map */ -/*# sourceMappingURL=sixth.vue.map */ +/*# sourceMappingURL=third.vue.map */ /*# sourceMappingURL=eighth.vue.map */ -/*# sourceMappingURL=first.vue.map */ +/*# sourceMappingURL=seventh.vue.map */ /*# sourceMappingURL=second.vue.map */ - -.xml-text-h5[data-v-5d93942a] { -} -.xml-text-pc[data-v-5d93942a] { -} -.xml-text-h5[data-v-5d93942a] { -} - .xml-text-h5 .inline-audio-wrap, .xml-text-h5 .inline-link-wrap { align-items: center; @@ -101,6 +93,14 @@ /*# sourceMappingURL=XmlText.vue.map */ +.xml-text-h5[data-v-5d93942a] { +} +.xml-text-pc[data-v-5d93942a] { +} +.xml-text-h5[data-v-5d93942a] { +} + + .xml-image-lun-bo .el-carousel__item { text-align: center; } @@ -692,15 +692,15 @@ -.el-image__inner[data-v-755c322e] { +.el-image__inner[data-v-fb4f6862] { width: 100% !important; } -.xml-image-ping-pu-h5[data-v-755c322e] { +.xml-image-ping-pu-h5[data-v-fb4f6862] { display: flex; flex-direction: column; align-items: center; } -.xml-image-hua-lang[data-v-755c322e] { +.xml-image-hua-lang[data-v-fb4f6862] { display: flex; flex-direction: column; align-items: center; diff --git a/src/plugin/xml-digital-teaching/lib/imageText.js b/src/plugin/xml-digital-teaching/lib/imageText.js index 5d59927..76c8b4e 100644 --- a/src/plugin/xml-digital-teaching/lib/imageText.js +++ b/src/plugin/xml-digital-teaching/lib/imageText.js @@ -1,6 +1,6 @@ /* * XmlDigitalTeaching v0.0.1 -* Copyright ©Wed Jun 19 2024 19:48:48 GMT+0800 (中国标准时间) smile +* Copyright ©Fri Jun 21 2024 13:16:29 GMT+0800 (中国标准时间) smile * Released under the ISC License. */ import Vue from 'vue'; @@ -893,13 +893,17 @@ var script$d = { return; } if (this.clickEffect === 'dian-ji-fang-da') { + let imgList = []; + this.previewSrcList.map((item, index) => { + imgList.push({ + url: item, + title: this.title[index] + }); + }); this.$xmlImgPreview({ multiple: true, - nowImgIndex: 0, - imgList: [{ - url: this.previewSrcList[0], - title: this.self.title - }] + nowImgIndex: this.current, + imgList }); } if (isByTitle) { @@ -1000,7 +1004,7 @@ var __vue_render__$e = function () { ? _c( "div", { - staticClass: "image-title--lay image-title--on", + staticClass: "xml-image-title image-title--lay image-title--on", style: { textAlign: _vm.titleAlign || "left" }, }, [_vm._v("\n " + _vm._s(_vm.self.title) + "\n ")] @@ -1061,7 +1065,8 @@ var __vue_render__$e = function () { ? _c( "div", { - staticClass: "image-title--fixed image-title--bottom", + staticClass: + "xml-image-title image-title--fixed image-title--bottom", style: { textAlign: _vm.titleAlign || "left" }, on: { click: function ($event) { @@ -1077,7 +1082,8 @@ var __vue_render__$e = function () { ? _c( "div", { - staticClass: "image-title--fixed image-title--top", + staticClass: + "xml-image-title image-title--fixed image-title--top", style: { textAlign: _vm.titleAlign || "left" }, on: { click: function ($event) { @@ -1096,7 +1102,8 @@ var __vue_render__$e = function () { ? _c( "div", { - staticClass: "image-title--lay image-title--under", + staticClass: + "xml-image-title image-title--lay image-title--under", style: { textAlign: _vm.titleAlign || "left" }, }, [_vm._v("\n " + _vm._s(_vm.self.title) + "\n ")] @@ -1112,7 +1119,7 @@ __vue_render__$e._withStripped = true; /* style */ const __vue_inject_styles__$d = undefined; /* scoped */ - const __vue_scope_id__$d = "data-v-755c322e"; + const __vue_scope_id__$d = "data-v-fb4f6862"; /* module identifier */ const __vue_module_identifier__$d = undefined; /* functional template */ @@ -12010,1441 +12017,1083 @@ var recorder_mp3_min = createCommonjsModule(function (module) { https://github.com/xiangyuecn/Recorder src: recorder-core.js,engine/mp3.js,engine/mp3-engine.js */ -!function (e) { - var t = "object" == typeof window && !!window.document, - a = t ? window : Object; - !function (e, w) { +!function (y) { - var S = function () {}, - f = function (e) { - return "number" == typeof e; - }, - N = function (e) { - return new l(e); - }, - M = N.LM = "2024-04-09 19:15", - y = "https://github.com/xiangyuecn/Recorder", - R = "Recorder", - A = "getUserMedia", - V = "srcSampleRate", - D = "sampleRate", - i = "bitRate", - x = "catch", - t = e[R]; - if (t && t.LM == M) return t.CLog(t.i18n.$T("K8zP::重复导入{1}", 0, R), 3); - N.IsOpen = function () { - var e = N.Stream; - if (e) { - var t = e.getTracks && e.getTracks() || e.audioTracks || [], - a = t[0]; - if (a) { - var n = a.readyState; - return "live" == n || n == a.LIVE; - } - } - return !1; - }, N.BufferSize = 4096, N.Destroy = function () { - for (var e in O(R + " Destroy"), L(), a) a[e](); + var v = function () {}, + V = function (e) { + return new t(e); }; - var a = {}; - N.BindDestroy = function (e, t) { - a[e] = t; - }, N.Support = function () { - if (!w) return !1; - var e = navigator.mediaDevices || {}; - return e[A] || (e = navigator)[A] || (e[A] = e.webkitGetUserMedia || e.mozGetUserMedia || e.msGetUserMedia), !!e[A] && (N.Scope = e, !!N.GetContext()); - }, N.GetContext = function (e) { - if (!w) return null; - var t = window.AudioContext; - if (t || (t = window.webkitAudioContext), !t) return null; - var a = N.Ctx; - if (a && "closed" != a.state || (a = N.Ctx = new t(), N.NewCtxs = N.NewCtxs || [], N.BindDestroy("Ctx", function () { - var e = N.Ctx; - e && e.close && (s(e), N.Ctx = 0); - var t = N.NewCtxs; - N.NewCtxs = []; - for (var a = 0; a < t.length; a++) s(t[a]); - })), e && a.close) try { - a = new t(), N.NewCtxs.push(a); - } catch (e) { - O("GetContext tryNew Error", 1, e); + V.LM = "2023-02-01 18:05"; + var T = "Recorder", + d = "getUserMedia", + O = "srcSampleRate", + N = "sampleRate", + x = "catch"; + V.IsOpen = function () { + var e = V.Stream; + if (e) { + var t = e.getTracks && e.getTracks() || e.audioTracks || [], + a = t[0]; + if (a) { + var s = a.readyState; + return "live" == s || s == a.LIVE; } - return a; - }, N.CloseNewCtx = function (e) { - if (e && e != N.Ctx) { - s(e); - for (var t = N.NewCtxs || [], a = t.length, n = 0; n < t.length; n++) if (t[n] == e) { - t.splice(n, 1); - break; - } - O(z("mSxV::剩{1}个GetContext未close", 0, a + "-1=" + t.length), t.length ? 3 : 0); - } - }; - var s = function (e) { - if (e && e.close) { - e._isC = 1; - try { - e.close(); - } catch (e) { - O("ctx close err", 1, e); - } - } - }, - B = N.ResumeCtx = function (a, n, s, r) { - var i = 0, - o = 0, - _ = 0, - l = 0, - f = "EventListener", - c = "ResumeCtx ", - u = function (e, t) { - o && h(), i || (i = 1, e && r(e, l), t && s(l)), t && (!a._LsSC && a["add" + f] && a["add" + f]("statechange", b), a._LsSC = 1, _ = 1); - }, - h = function (e) { - if (!e || !o) { - o = e ? 1 : 0; - for (var t = ["focus", "mousedown", "mouseup", "touchstart", "touchend"], a = 0; a < t.length; a++) window[(e ? "add" : "remove") + f](t[a], b, !0); - } - }, - b = function () { - var e = a.state, - t = p(e); - if (!i && !n(t ? ++l : l)) return u(); - t ? (_ && O(c + "sc " + e, 3), h(1), a.resume().then(function () { - _ && O(c + "sc " + a.state), u(0, 1); - })[x](function (e) { - O(c + "error", 1, e), p(a.state) || u(e.message || "error"); - })) : "closed" == e ? (_ && !a._isC && O(c + "sc " + e, 1), u("ctx closed")) : u(0, 1); - }; - b(); - }, - p = N.CtxSpEnd = function (e) { - return "suspended" == e || "interrupted" == e; - }, - k = function (e) { - var t = e.state, - a = "ctx.state=" + t; - return p(t) && (a += z("nMIy::(注意:ctx不是running状态,rec.open和start至少要有一个在用户操作(触摸、点击等)时进行调用,否则将在rec.start时尝试进行ctx.resume,可能会产生兼容性问题(仅iOS),请参阅文档中runningContext配置)")), a; - }, - T = "ConnectEnableWebM"; - N[T] = !0; - var E = "ConnectEnableWorklet"; - N[E] = !1; - var C = function (e, _) { - var l = e.BufferSize || N.BufferSize, - f = e.Stream, - c = f._RC || f._c || N.GetContext(!0); - f._c = c; - var u, - a, - h, - i = function (e) { - var t = f._m = c.createMediaStreamSource(f), - a = c.destination, - n = "createMediaStreamDestination"; - c[n] && (a = f._d = c[n]()), t.connect(e), e.connect(a); - }, - b = "", - p = f._call, - m = function (e) { - for (var t in p) { - for (var a = e.length, n = new Int16Array(a), s = 0, r = 0; r < a; r++) { - var i = Math.max(-1, Math.min(1, e[r])); - i = i < 0 ? 32768 * i : 32767 * i, n[r] = i, s += Math.abs(i); - } - for (var o in p) p[o](n, s); - return; - } - }, - v = "ScriptProcessor", - d = "audioWorklet", - o = R + " " + d, - g = "RecProc", - w = "MediaRecorder", - S = w + ".WebM.PCM", - M = c.createScriptProcessor || c.createJavaScriptNode, - y = z("ZGlf::。由于{1}内部1秒375次回调,在移动端可能会有性能问题导致回调丢失录音变短,PC端无影响,暂不建议开启{1}。", 0, d), - A = function () { - a = f.isWorklet = !1, n(f), O(z("7TU0::Connect采用老的{1},", 0, v) + Y.get(z(N[E] ? "JwCL::但已设置{1}尝试启用{2}" : "VGjB::可设置{1}尝试启用{2}", 2), [R + "." + E + "=true", d]) + b + y, 3); - var e = f._p = M.call(c, l, 1, 1); - i(e), e.onaudioprocess = function (e) { - var t = e.inputBuffer.getChannelData(0); - m(t); - }; - }, - k = function () { - u = f.isWebM = !1, I(f), a = f.isWorklet = !M || N[E]; - var t = window.AudioWorkletNode; - if (a && c[d] && t) { - var n = function () { - return a && f._na; - }, - s = f._na = function () { - "" !== h && (clearTimeout(h), h = setTimeout(function () { - h = 0, n() && (O(z("MxX1::{1}未返回任何音频,恢复使用{2}", 0, d, v), 3), M && A()); - }, 500)); - }, - r = function () { - if (n()) { - var e = f._n = new t(c, g, { - processorOptions: { - bufferSize: l - } - }); - i(e), e.port.onmessage = function (e) { - h && (clearTimeout(h), h = ""), n() ? m(e.data.val) : a || O(z("XUap::{1}多余回调", 0, d), 3); - }, O(z("yOta::Connect采用{1},设置{2}可恢复老式{3}", 0, d, R + "." + E + "=false", v) + b + y, 3); - } - }, - e = function () { - if (n()) if (c[g]) r();else { - var e, - t, - a = (t = "class " + g + " extends AudioWorkletProcessor{", t += "constructor " + (e = function (e) { - return e.toString().replace(/^function|DEL_/g, "").replace(/\$RA/g, o); - })(function (e) { - DEL_super(e); - var t = this, - a = e.processorOptions.bufferSize; - t.bufferSize = a, t.buffer = new Float32Array(2 * a), t.pos = 0, t.port.onmessage = function (e) { - e.data.kill && (t.kill = !0, $C.log("$RA kill call")); - }, $C.log("$RA .ctor call", e); - }), t += "process " + e(function (e, t, a) { - var n = this, - s = n.bufferSize, - r = n.buffer, - i = n.pos; - if ((e = (e[0] || [])[0] || []).length) { - r.set(e, i); - var o = ~~((i += e.length) / s) * s; - if (o) { - this.port.postMessage({ - val: r.slice(0, o) - }); - var _ = r.subarray(o, i); - (r = new Float32Array(2 * s)).set(_), i = _.length, n.buffer = r; - } - n.pos = i; - } - return !n.kill; - }), t = (t += '}try{registerProcessor("' + g + '", ' + g + ')}catch(e){$C.error("' + o + ' Reg Error",e)}').replace(/\$C\./g, "console."), "data:text/javascript;base64," + btoa(unescape(encodeURIComponent(t)))); - c[d].addModule(a).then(function (e) { - n() && (c[g] = 1, r(), h && s()); - })[x](function (e) { - O(d + ".addModule Error", 1, e), n() && A(); - }); - } - }; - B(c, function () { - return n(); - }, e, e); - } else A(); - }; - !function () { - var e = window[w], - t = "ondataavailable", - a = "audio/webm; codecs=pcm"; - u = f.isWebM = N[T]; - var n = e && t in e.prototype && e.isTypeSupported(a); - if (b = n ? "" : z("VwPd::(此浏览器不支持{1})", 0, S), !_ || !u || !n) return k(); - var s = function () { - return u && f._ra; - }, - r = (f._ra = function () { - "" !== h && (clearTimeout(h), h = setTimeout(function () { - s() && (O(z("vHnb::{1}未返回任何音频,降级使用{2}", 0, w, d), 3), k()); - }, 500)); - }, Object.assign({ - mimeType: a - }, N.ConnectWebMOptions)), - i = f._r = new e(f, r), - o = f._rd = { - sampleRate: c[D] - }; - i[t] = function (e) { - var t = new FileReader(); - t.onloadend = function () { - if (s()) { - var e = P(new Uint8Array(t.result), o); - if (!e) return; - if (-1 == e) return void k(); - h && (clearTimeout(h), h = ""), m(e); - } else u || O(z("O9P7::{1}多余回调", 0, w), 3); - }, t.readAsArrayBuffer(e.data); - }, i.start(~~(l / 48)), O(z("LMEm::Connect采用{1},设置{2}可恢复使用{3}或老式{4}", 0, S, R + "." + T + "=false", d, v)); - }(); - }, - r = function (e) { - e._na && e._na(), e._ra && e._ra(); - }, - n = function (e) { - e._na = null, e._n && (e._n.port.postMessage({ - kill: !0 - }), e._n.disconnect(), e._n = null); - }, - I = function (e) { - if (e._ra = null, e._r) { - try { - e._r.stop(); - } catch (e) { - O("mr stop err", 1, e); - } - e._r = null; - } - }, - L = function (e) { - var t = (e = e || N) == N, - a = e.Stream; - a && (a._m && (a._m.disconnect(), a._m = null), !a._RC && a._c && N.CloseNewCtx(a._c), a._RC = null, a._c = null, a._d && (o(a._d.stream), a._d = null), a._p && (a._p.disconnect(), a._p.onaudioprocess = a._p = null), n(a), I(a), t && o(a)), e.Stream = 0; - }, - o = N.StopS_ = function (e) { - for (var t = e.getTracks && e.getTracks() || e.audioTracks || [], a = 0; a < t.length; a++) { - var n = t[a]; - n.stop && n.stop(); - } - e.stop && e.stop(); - }; - N.SampleData = function (e, t, a, n, s) { - var r = "SampleData"; - n || (n = {}); - var i = n.index || 0, - o = n.offset || 0, - _ = n.filter; - if (_ && _.fn && _.sr != t && (_ = null, O(z("d48C::{1}的filter采样率变了,重设滤波", 0, r), 3)), !_) { - var l = 3 * t / 4 < a ? 0 : a / 2 * 3 / 4; - _ = { - fn: l ? N.IIRFilter(!0, t, l) : 0 - }; - } - _.sr = t; - var f = _.fn, - c = n.frameNext || []; - s || (s = {}); - var u = s.frameSize || 1; - s.frameType && (u = "mp3" == s.frameType ? 1152 : 1); - var h = e.length; - h + 1 < i && O(z("tlbC::{1}似乎传入了未重置chunk {2}", 0, r, i + ">" + h), 3); - for (var b = 0, p = i; p < h; p++) b += e[p].length; - b = Math.max(0, b - Math.floor(o)); - var m = t / a; - 1 < m ? b = Math.floor(b / m) : (m = 1, a = t), b += c.length; - for (var v = new Int16Array(b), d = 0, p = 0; p < c.length; p++) v[d] = c[p], d++; - for (; i < h; i++) { - for (var g = e[i], p = o, w = g.length, S = f && f.Embed, M = 0, y = 0, A = 0, k = 0, R = 0, x = 0; R < w; R++, x++) if (x < w && (S ? (A = g[x], k = S.b0 * A + S.b1 * S.x1 + S.b0 * S.x2 - S.a1 * S.y1 - S.a2 * S.y2, S.x2 = S.x1, S.x1 = A, S.y2 = S.y1, S.y1 = k) : k = f ? f(g[x]) : g[x]), M = y, y = k, 0 != x) { - var B = Math.floor(p); - if (R == B) { - var T = Math.ceil(p), - E = p - B, - C = M, - I = T < w ? y : C, - L = C + (I - C) * E; - 32767 < L ? L = 32767 : L < -32768 && (L = -32768), v[d] = L, d++, p += m; - } - } else R--; - o = Math.max(0, p - w); - } - c = null; - var P = v.length % u; - if (0 < P) { - var H = 2 * (v.length - P); - c = new Int16Array(v.buffer.slice(H)), v = new Int16Array(v.buffer.slice(0, H)); - } - return { - index: i, - offset: o, - filter: _, - frameNext: c, - sampleRate: a, - data: v - }; - }, N.IIRFilter = function (e, t, a) { - var n = 2 * Math.PI * a / t, - s = Math.sin(n), - r = Math.cos(n), - i = s / 2, - o = 1 + i, - _ = -2 * r / o, - l = (1 - i) / o; - if (e) var f = (1 - r) / 2 / o, - c = (1 - r) / o;else var f = (1 + r) / 2 / o, - c = -(1 + r) / o; - var u = 0, - h = 0, - b = 0, - p = 0, - m = 0, - v = function (e) { - return b = f * e + c * u + f * h - _ * p - l * m, h = u, u = e, m = p, p = b; - }; - return v.Embed = { - x1: 0, - x2: 0, - y1: 0, - y2: 0, - b0: f, - b1: c, - a1: _, - a2: l - }, v; - }, N.PowerLevel = function (e, t) { - var a = e / t || 0; - return a < 1251 ? Math.round(a / 1250 * 10) : Math.round(Math.min(100, Math.max(0, 100 * (1 + Math.log(a / 1e4) / Math.log(10))))); - }, N.PowerDBFS = function (e) { - var t = Math.max(.1, e || 0); - return t = Math.min(t, 32767), t = 20 * Math.log(t / 32767) / Math.log(10), Math.max(-100, Math.round(t)); - }, N.CLog = function (e, t) { - if ("object" == typeof console) { - var a = new Date(), - n = ("0" + a.getMinutes()).substr(-2) + ":" + ("0" + a.getSeconds()).substr(-2) + "." + ("00" + a.getMilliseconds()).substr(-3), - s = this && this.envIn && this.envCheck && this.id, - r = ["[" + n + " " + R + (s ? ":" + s : "") + "]" + e], - i = arguments, - o = N.CLog, - _ = 2, - l = o.log || console.log; - for (f(t) ? l = 1 == t ? o.error || console.error : 3 == t ? o.warn || console.warn : l : _ = 1; _ < i.length; _++) r.push(i[_]); - c ? l && l("[IsLoser]" + r[0], 1 < r.length ? r : "") : l.apply(console, r); - } - }; - var O = function () { - N.CLog.apply(this, arguments); - }, - c = !0; - try { - c = !console.log.apply; - } catch (e) {} - var _ = 0; - function l(e) { - var t = this; - t.id = ++_, u(); - var a = { - type: "mp3", - onProcess: S - }; - for (var n in e) a[n] = e[n]; - var s = (t.set = a)[i], - r = a[D]; - (s && !f(s) || r && !f(r)) && t.CLog(z.G("IllegalArgs-1", [z("VtS4::{1}和{2}必须是数值", 0, D, i)]), 1, e), a[i] = +s || 16, a[D] = +r || 16e3, t.state = 0, t._S = 9, t.Sync = { - O: 9, - C: 9 - }; } - N.Sync = { + return !1; + }, V.BufferSize = 4096, V.Destroy = function () { + for (var e in H(T + " Destroy"), S(), a) a[e](); + }; + var a = {}; + V.BindDestroy = function (e, t) { + a[e] = t; + }, V.Support = function () { + var e = navigator.mediaDevices || {}; + return e[d] || (e = navigator)[d] || (e[d] = e.webkitGetUserMedia || e.mozGetUserMedia || e.msGetUserMedia), !!e[d] && (V.Scope = e, !!V.GetContext()); + }, V.GetContext = function () { + var e = y.AudioContext; + return e || (e = y.webkitAudioContext), e ? (V.Ctx && "closed" != V.Ctx.state || (V.Ctx = new e(), V.BindDestroy("Ctx", function () { + var e = V.Ctx; + e && e.close && (e.close(), V.Ctx = 0); + })), V.Ctx) : null; + }; + var E = "ConnectEnableWebM"; + V[E] = !0; + var P = "ConnectEnableWorklet"; + V[P] = !1; + var g = function (e, _) { + var l, + i, + f, + c = e.BufferSize || V.BufferSize, + h = V.Ctx, + u = e.Stream, + o = function (e) { + var t = u._m = h.createMediaStreamSource(u), + a = h.destination, + s = "createMediaStreamDestination"; + h[s] && (a = h[s]()), t.connect(e), e.connect(a); + }, + m = "", + p = u._call, + b = function (e) { + for (var t in p) { + for (var a = e.length, s = new Int16Array(a), n = 0, r = 0; r < a; r++) { + var i = Math.max(-1, Math.min(1, e[r])); + i = i < 0 ? 32768 * i : 32767 * i, s[r] = i, n += Math.abs(i); + } + for (var o in p) p[o](s, n); + return; + } + }, + v = "ScriptProcessor", + d = "audioWorklet", + g = T + " " + d, + S = "RecProc", + M = "MediaRecorder", + w = M + ".WebM.PCM", + R = h.createScriptProcessor || h.createJavaScriptNode, + A = "。由于" + d + "内部1秒375次回调,在移动端可能会有性能问题导致回调丢失录音变短,PC端无影响,暂不建议开启" + d + "。", + B = function () { + i = u.isWorklet = !1, L(u), H("Connect采用老的" + v + "," + (V[P] ? "但已" : "可") + "设置" + T + "." + P + "=true尝试启用" + d + m + A, 3); + var e = u._p = R.call(h, c, 1, 1); + o(e); + var t = "_D220626", + a = V[t]; + a && H("Use " + T + "." + t, 3), e.onaudioprocess = function (e) { + var t = e.inputBuffer.getChannelData(0); + a ? (t = new Float32Array(t), setTimeout(function () { + b(t); + })) : b(t); + }; + }, + k = function () { + l = u.isWebM = !1, I(u), i = u.isWorklet = !R || V[P]; + var t = y.AudioWorkletNode; + if (i && h[d] && t) { + var s = function () { + return i && u._na; + }, + n = u._na = function () { + "" !== f && (clearTimeout(f), f = setTimeout(function () { + f = 0, s() && (H(d + "未返回任何音频,恢复使用" + v, 3), R && B()); + }, 500)); + }, + r = function () { + if (s()) { + var e = u._n = new t(h, S, { + processorOptions: { + bufferSize: c + } + }); + o(e), e.port.onmessage = function (e) { + f && (clearTimeout(f), f = ""), s() ? b(e.data.val) : i || H(d + "多余回调", 3); + }, H("Connect采用" + d + ",设置" + T + "." + P + "=false可恢复老式" + v + m + A, 3); + } + }; + h.resume()[p && "finally"](function () { + if (s()) if (h[S]) r();else { + var e, + t, + a = (t = "class " + S + " extends AudioWorkletProcessor{", t += "constructor " + (e = function (e) { + return e.toString().replace(/^function|DEL_/g, "").replace(/\$RA/g, g); + })(function (e) { + DEL_super(e); + var t = this, + a = e.processorOptions.bufferSize; + t.bufferSize = a, t.buffer = new Float32Array(2 * a), t.pos = 0, t.port.onmessage = function (e) { + e.data.kill && (t.kill = !0, console.log("$RA kill call")); + }, console.log("$RA .ctor call", e); + }), t += "process " + e(function (e, t, a) { + var s = this, + n = s.bufferSize, + r = s.buffer, + i = s.pos; + if ((e = (e[0] || [])[0] || []).length) { + r.set(e, i); + var o = ~~((i += e.length) / n) * n; + if (o) { + this.port.postMessage({ + val: r.slice(0, o) + }); + var _ = r.subarray(o, i); + (r = new Float32Array(2 * n)).set(_), i = _.length, s.buffer = r; + } + s.pos = i; + } + return !s.kill; + }), t += '}try{registerProcessor("' + S + '", ' + S + ')}catch(e){console.error("' + g + '注册失败",e)}', "data:text/javascript;base64," + btoa(unescape(encodeURIComponent(t)))); + h[d].addModule(a).then(function (e) { + s() && (h[S] = 1, r(), f && n()); + })[x](function (e) { + H(d + ".addModule失败", 1, e), s() && B(); + }); + } + }); + } else B(); + }; + !function () { + var e = y[M], + t = "ondataavailable", + a = "audio/webm; codecs=pcm"; + l = u.isWebM = V[E]; + var s = e && t in e.prototype && e.isTypeSupported(a); + if (m = s ? "" : "(此浏览器不支持" + w + ")", !_ || !l || !s) return k(); + var n = function () { + return l && u._ra; + }, + r = (u._ra = function () { + "" !== f && (clearTimeout(f), f = setTimeout(function () { + n() && (H(M + "未返回任何音频,降级使用" + d, 3), k()); + }, 500)); + }, Object.assign({ + mimeType: a + }, V.ConnectWebMOptions)), + i = u._r = new e(u, r), + o = u._rd = { + sampleRate: h[N] + }; + i[t] = function (e) { + var t = new FileReader(); + t.onloadend = function () { + if (n()) { + var e = C(new Uint8Array(t.result), o); + if (!e) return; + if (-1 == e) return void k(); + f && (clearTimeout(f), f = ""), b(e); + } else l || H(M + "多余回调", 3); + }, t.readAsArrayBuffer(e.data); + }, i.start(~~(c / 48)), H("Connect采用" + w + ",设置" + T + "." + E + "=false可恢复使用" + d + "或老式" + v); + }(); + }, + L = function (e) { + e._na = null, e._n && (e._n.port.postMessage({ + kill: !0 + }), e._n.disconnect(), e._n = null); + }, + I = function (e) { + e._ra = null, e._r && (e._r.stop(), e._r = null); + }, + S = function (e) { + var t = (e = e || V) == V, + a = e.Stream; + if (a && (a._m && (a._m.disconnect(), a._m = null), a._p && (a._p.disconnect(), a._p.onaudioprocess = a._p = null), L(a), I(a), t)) { + for (var s = a.getTracks && a.getTracks() || a.audioTracks || [], n = 0; n < s.length; n++) { + var r = s[n]; + r.stop && r.stop(); + } + a.stop && a.stop(); + } + e.Stream = 0; + }; + V.SampleData = function (e, t, a, s, n) { + s || (s = {}); + var r = s.index || 0, + i = s.offset || 0, + o = s.frameNext || []; + n || (n = {}); + var _ = n.frameSize || 1; + n.frameType && (_ = "mp3" == n.frameType ? 1152 : 1); + var l = e.length; + l + 1 < r && H("SampleData似乎传入了未重置chunk " + r + ">" + l, 3); + for (var f = 0, c = r; c < l; c++) f += e[c].length; + f = Math.max(0, f - Math.floor(i)); + var h = t / a; + 1 < h ? f = Math.floor(f / h) : (h = 1, a = t), f += o.length; + for (var u = new Int16Array(f), m = 0, c = 0; c < o.length; c++) u[m] = o[c], m++; + for (; r < l; r++) { + for (var p = e[r], c = i, b = p.length; c < b;) { + var v = Math.floor(c), + d = Math.ceil(c), + g = c - v, + S = p[v], + M = d < b ? p[d] : (e[r + 1] || [S])[0] || 0; + u[m] = S + (M - S) * g, m++, c += h; + } + i = c - b; + } + o = null; + var w = u.length % _; + if (0 < w) { + var R = 2 * (u.length - w); + o = new Int16Array(u.buffer.slice(R)), u = new Int16Array(u.buffer.slice(0, R)); + } + return { + index: r, + offset: i, + frameNext: o, + sampleRate: a, + data: u + }; + }, V.PowerLevel = function (e, t) { + var a = e / t || 0; + return a < 1251 ? Math.round(a / 1250 * 10) : Math.round(Math.min(100, Math.max(0, 100 * (1 + Math.log(a / 1e4) / Math.log(10))))); + }, V.PowerDBFS = function (e) { + var t = Math.max(.1, e || 0); + return t = Math.min(t, 32767), t = 20 * Math.log(t / 32767) / Math.log(10), Math.max(-100, Math.round(t)); + }, V.CLog = function (e, t) { + var a = new Date(), + s = ("0" + a.getMinutes()).substr(-2) + ":" + ("0" + a.getSeconds()).substr(-2) + "." + ("00" + a.getMilliseconds()).substr(-3), + n = this && this.envIn && this.envCheck && this.id, + r = ["[" + s + " " + T + (n ? ":" + n : "") + "]" + e], + i = arguments, + o = y.console || {}, + _ = 2, + l = o.log; + for ("number" == typeof t ? l = 1 == t ? o.error : 3 == t ? o.warn : l : _ = 1; _ < i.length; _++) r.push(i[_]); + f ? l && l("[IsLoser]" + r[0], 1 < r.length ? r : "") : l.apply(o, r); + }; + var H = function () { + V.CLog.apply(this, arguments); + }, + f = !0; + try { + f = !console.log.apply; + } catch (e) {} + var s = 0; + function t(e) { + this.id = ++s, r(); + var t = { + type: "mp3", + bitRate: 16, + sampleRate: 16e3, + onProcess: v + }; + for (var a in e) t[a] = e[a]; + this.set = t, this._S = 9, this.Sync = { O: 9, C: 9 - }, N.prototype = l.prototype = { - CLog: O, - _streamStore: function () { - return this.set.sourceStream ? this : N; - }, - _streamCtx: function () { - var e = this._streamStore().Stream; - return e && e._c; - }, - open: function (e, a) { - var n = this, - s = n.set, - r = n._streamStore(), - i = 0; - e = e || S; - var o = function (e, t) { - t = !!t, n.CLog(z("5tWi::录音open失败:") + e + ",isUserNotAllow:" + t, 1), i && N.CloseNewCtx(i), a && a(e, t); - }; - n._streamTag = A; - var _ = function () { - n.CLog("open ok, id:" + n.id + " stream:" + n._streamTag), e(), n._SO = 0; - }, - l = r.Sync, - f = ++l.O, - c = l.C; - n._O = n._O_ = f, n._SO = n._S; - if (w) { - var t = n.envCheck({ - envName: "H5", - canProcess: !0 - }); - if (t) o(z("A5bm::不能录音:") + t);else if (s.sourceStream) { - if (n._streamTag = "set.sourceStream", !N.GetContext()) return void o(z("1iU7::不支持此浏览器从流中获取录音")); - L(r); - var u = n.Stream = s.sourceStream; - u._RC = s.runningContext, u._call = {}; - try { - C(r); - } catch (e) { - return L(r), void o(z("BTW2::从流中打开录音失败:") + e.message); - } - _(); - } else { - var h = function (e, t) { - try { - window.top.a; - } catch (e) { - return void o(z("Nclz::无权录音(跨域,请尝试给iframe添加麦克风访问策略,如{1})", 0, 'allow="camera;microphone"')); - } - /Permission|Allow/i.test(e) ? o(z("gyO5::用户拒绝了录音权限"), !0) : !1 === window.isSecureContext ? o(z("oWNo::浏览器禁止不安全页面录音,可开启https解决")) : /Found/i.test(e) ? o(t + z("jBa9::,无可用麦克风")) : o(t); - }; - if (N.IsOpen()) _();else if (N.Support()) { - var b = s.runningContext; - b || (b = i = N.GetContext(!0)); - var p = function (t) { - setTimeout(function () { - t._call = {}; - var e = N.Stream; - e && (L(), t._call = e._call), (N.Stream = t)._c = b, t._RC = s.runningContext, function () { - if (c != l.C || !n._O) { - var e = z("dFm8::open被取消"); - return f == l.O ? n.close() : e = z("VtJO::open被中断"), o(e), !0; - } - }() || (N.IsOpen() ? (e && n.CLog(z("upb8::发现同时多次调用open"), 1), C(r, 1), _()) : o(z("Q1GA::录音功能无效:无音频流"))); - }, 100); - }, - m = function (e) { - var t = e.name || e.message || e.code + ":" + e; - n.CLog(z("xEQR::请求录音权限错误"), 1, e), h(t, z("bDOG::无法录音:") + t); - }, - v = s.audioTrackSet || {}; - v[D] = b[D]; - var d = { - audio: v - }; - try { - var g = N.Scope[A](d, p, m); - } catch (e) { - n.CLog(A, 3, e), d = { - audio: !0 - }, g = N.Scope[A](d, p, m); - } - n.CLog(A + "(" + JSON.stringify(d) + ") " + k(b) + z("RiWe::,未配置noiseSuppression和echoCancellation时浏览器可能会自动打开降噪和回声消除,移动端可能会降低系统播放音量(关闭录音后可恢复),请参阅文档中audioTrackSet配置") + "(" + y + ") LM:" + M + " UA:" + navigator.userAgent), g && g.then && g.then(p)[x](m); - } else h("", z("COxc::此浏览器不支持录音")); - } - } else o(z.G("NonBrowser-1", ["open"]) + z("EMJq::,可尝试使用RecordApp解决方案") + "(" + y + "/tree/master/app-support-sample)"); - }, - close: function (e) { - e = e || S; - var t = this, - a = t._streamStore(); - t._stop(); - var n = " stream:" + t._streamTag, - s = a.Sync; - if (t._O = 0, t._O_ != s.O) return t.CLog(z("hWVz::close被忽略(因为同时open了多个rec,只有最后一个会真正close)") + n, 3), void e(); - s.C++, L(a), t.CLog("close," + n), e(); - }, - mock: function (e, t) { - var a = this; - return a._stop(), a.isMock = 1, a.mockEnvInfo = null, a.buffers = [e], a.recSize = e.length, a._setSrcSR(t), a._streamTag = "mock", a; - }, - _setSrcSR: function (e) { - var t = this.set, - a = t[D]; - e < a ? t[D] = e : a = 0, this[V] = e, this.CLog(V + ": " + e + " set." + D + ": " + t[D] + (a ? " " + z("UHvm::忽略") + ": " + a : ""), a ? 3 : 0); - }, - envCheck: function (e) { - var t, - a = this.set, - n = "CPU_BE"; - if (t || N[n] || "function" != typeof Int8Array || new Int8Array(new Int32Array([1]).buffer)[0] || (u(n), t = z("Essp::不支持{1}架构", 0, n)), !t) { - var s = a.type, - r = this[s + "_envCheck"]; - a.takeoffEncodeChunk && (r ? e.canProcess || (t = z("7uMV::{1}环境不支持实时处理", 0, e.envName)) : t = z("2XBl::{1}类型不支持设置takeoffEncodeChunk", 0, s) + (this[s] ? "" : z("LG7e::(未加载编码器)"))), !t && r && (t = this[s + "_envCheck"](e, a)); + }; + } + V.Sync = { + O: 9, + C: 9 + }, V.prototype = t.prototype = { + CLog: H, + _streamStore: function () { + return this.set.sourceStream ? this : V; + }, + open: function (e, a) { + var s = this, + n = s._streamStore(); + e = e || v; + var r = function (e, t) { + t = !!t, s.CLog("录音open失败:" + e + ",isUserNotAllow:" + t, 1), a && a(e, t); + }, + i = function () { + s.CLog("open ok id:" + s.id), e(), s._SO = 0; + }, + o = n.Sync, + _ = ++o.O, + l = o.C; + s._O = s._O_ = _, s._SO = s._S; + var t = s.envCheck({ + envName: "H5", + canProcess: !0 + }); + if (t) r("不能录音:" + t);else if (s.set.sourceStream) { + if (!V.GetContext()) return void r("不支持此浏览器从流中获取录音"); + S(n), s.Stream = s.set.sourceStream, s.Stream._call = {}; + try { + g(n); + } catch (e) { + return void r("从流中打开录音失败:" + e.message); } - return t || ""; - }, - envStart: function (e, t) { - var a = this, - n = a.set; - if (a.isMock = e ? 1 : 0, a.mockEnvInfo = e, a.buffers = [], a.recSize = 0, e && (a._streamTag = "env$" + e.envName), a.state = 1, a.envInLast = 0, a.envInFirst = 0, a.envInFix = 0, a.envInFixTs = [], a._setSrcSR(t), a.engineCtx = 0, a[n.type + "_start"]) { - var s = a.engineCtx = a[n.type + "_start"](n); - s && (s.pcmDatas = [], s.pcmSize = 0); - } - }, - envResume: function () { - this.envInFixTs = []; - }, - envIn: function (e, t) { - var s = this, - r = s.set, - i = s.engineCtx; - if (1 == s.state) { - var a = s[V], - n = e.length, - o = N.PowerLevel(t, n), - _ = s.buffers, - l = _.length; - _.push(e); - var f = _, - c = l, - u = Date.now(), - h = Math.round(n / a * 1e3); - s.envInLast = u, 1 == s.buffers.length && (s.envInFirst = u - h); - var b = s.envInFixTs; - b.splice(0, 0, { - t: u, - d: h - }); - for (var p = u, m = 0, v = 0; v < b.length; v++) { - var d = b[v]; - if (3e3 < u - d.t) { - b.length = v; - break; - } - p = d.t, m += d.d; - } - var g = b[1], - w = u - p, - S = w - m; - if (w / 3 < S && (g && 1e3 < w || 6 <= b.length)) { - var M = u - g.t - h; - if (h / 5 < M) { - var y = !r.disableEnvInFix; - if (s.CLog("[" + u + "]" + Y.get(z(y ? "4Kfd::补偿{1}ms" : "bM5i::未补偿{1}ms", 1), [M]), 3), s.envInFix += M, y) { - var A = new Int16Array(M * a / 1e3); - n += A.length, _.push(A); - } - } - } - var k = s.recSize, - R = n, - x = k + R; - if (s.recSize = x, i) { - var B = N.SampleData(_, a, r[D], i.chunkInfo); - i.chunkInfo = B, k = i.pcmSize, R = B.data.length, x = k + R, i.pcmSize = x, _ = i.pcmDatas, l = _.length, _.push(B.data), a = B[D]; - } - var T = Math.round(x / a * 1e3), - E = _.length, - C = f.length, - I = function () { - for (var e = L ? 0 : -R, t = null == _[0], a = l; a < E; a++) { - var n = _[a]; - null == n ? t = 1 : (e += n.length, i && n.length && s[r.type + "_encode"](i, n)); - } - if (t && i) { - var a = c; - for (f[0] && (a = 0); a < C; a++) f[a] = null; - } - t && (e = L ? R : 0, _[0] = null), i ? i.pcmSize += e : s.recSize += e; - }, - L = 0, - P = "rec.set.onProcess"; + i(); + } else { + var f = function (e, t) { try { - L = r.onProcess(_, o, T, a, l, I); + y.top.a; } catch (e) { - console.error(P + z("gFUF::回调出错是不允许的,需保证不会抛异常"), e); + return void r('无权录音(跨域,请尝试给iframe添加麦克风访问策略,如allow="camera;microphone")'); } - var H = Date.now() - u; - if (10 < H && 1e3 < s.envInFirst - u && s.CLog(P + z("2ghS::低性能,耗时{1}ms", 0, H), 3), !0 === L) { - for (var O = 0, v = l; v < E; v++) null == _[v] ? O = 1 : _[v] = new Int16Array(0); - O ? s.CLog(z("ufqH::未进入异步前不能清除buffers"), 3) : i ? i.pcmSize -= R : s.recSize -= R; - } else I(); - } else s.state || s.CLog("envIn at state=0", 3); - }, - start: function () { - var t = this, - e = 1; - if (t.set.sourceStream ? t.Stream || (e = 0) : N.IsOpen() || (e = 0), e) { - var a = t._streamCtx(); - if (t.CLog(z("kLDN::start 开始录音,") + k(a) + " stream:" + t._streamTag), t._stop(), t.envStart(null, a[D]), t.state = 3, t._SO && t._SO + 1 != t._S) t.CLog(z("Bp2y::start被中断"), 3);else { - t._SO = 0; - var n = function () { - 3 == t.state && (t.state = 1, t.resume()); - }, - s = "AudioContext resume: "; - B(a, function (e) { - return e && t.CLog(s + "wait..."), 3 == t.state; - }, function (e) { - e && t.CLog(s + a.state), n(); - }, function (e) { - t.CLog(s + a.state + z("upkE::,可能无法录音:") + e, 1), n(); - }); + /Permission|Allow/i.test(e) ? r("用户拒绝了录音权限", !0) : !1 === y.isSecureContext ? r("浏览器禁止不安全页面录音,可开启https解决") : /Found/i.test(e) ? r(t + ",无可用麦克风") : r(t); + }; + if (V.IsOpen()) i();else if (V.Support()) { + var c = function (t) { + setTimeout(function () { + t._call = {}; + var e = V.Stream; + e && (S(), t._call = e._call), V.Stream = t, function () { + if (l != o.C || !s._O) { + var e = "open被取消"; + return _ == o.O ? s.close() : e = "open被中断", r(e), !0; + } + }() || (V.IsOpen() ? (e && s.CLog("发现同时多次调用open", 1), g(n, 1), i()) : r("录音功能无效:无音频流")); + }, 100); + }, + h = function (e) { + var t = e.name || e.message || e.code + ":" + e; + s.CLog("请求录音权限错误", 1, e), f(t, "无法录音:" + t); + }, + u = { + noiseSuppression: !1, + echoCancellation: !1 + }, + m = s.set.audioTrackSet; + for (var p in m) u[p] = m[p]; + u.sampleRate = V.Ctx.sampleRate; + try { + var b = V.Scope[d]({ + audio: u + }, c, h); + } catch (e) { + s.CLog(d, 3, e), b = V.Scope[d]({ + audio: !0 + }, c, h); } - } else t.CLog(z("6WmN::start失败:未open"), 1); - }, - pause: function () { - var e = this, - t = e._streamStore().Stream; - e.state && (e.state = 2, e.CLog("pause"), t && delete t._call[e.id]); - }, - resume: function () { - var a = this, - t = a._streamStore().Stream, - n = "resume(wait ctx)"; - if (3 == a.state) a.CLog(n);else if (a.state) { - a.state = 1, a.CLog("resume"), a.envResume(), t && (t._call[a.id] = function (e, t) { - 1 == a.state && a.envIn(e, t); - }, r(t)); - var s = a._streamCtx(); - s && B(s, function (e) { - return e && a.CLog(n + "..."), 1 == a.state; - }, function (e) { - e && a.CLog(n + s.state), r(t); - }, function (e) { - a.CLog(n + s.state + "[err]" + e, 1); - }); + b && b.then && b.then(c)[x](h); + } else f("", "此浏览器不支持录音"); + } + }, + close: function (e) { + e = e || v; + var t = this, + a = t._streamStore(); + t._stop(); + var s = a.Sync; + if (t._O = 0, t._O_ != s.O) return t.CLog("close被忽略(因为同时open了多个rec,只有最后一个会真正close)", 3), void e(); + s.C++, S(a), t.CLog("close"), e(); + }, + mock: function (e, t) { + var a = this; + return a._stop(), a.isMock = 1, a.mockEnvInfo = null, a.buffers = [e], a.recSize = e.length, a[O] = t, a; + }, + envCheck: function (e) { + var t, + a = this.set, + s = "CPU_BE"; + if (t || V[s] || !y.Int8Array || new Int8Array(new Int32Array([1]).buffer)[0] || (r(s), t = "不支持CPU_BE架构"), !t) { + var n = a.type; + this[n + "_envCheck"] ? t = this[n + "_envCheck"](e, a) : a.takeoffEncodeChunk && (t = n + "类型" + (this[n] ? "" : "(未加载编码器)") + "不支持设置takeoffEncodeChunk"); + } + return t || ""; + }, + envStart: function (e, t) { + var a = this, + s = a.set; + a.isMock = e ? 1 : 0, a.mockEnvInfo = e, a.buffers = [], a.recSize = 0, a.envInLast = 0, a.envInFirst = 0, a.envInFix = 0, a.envInFixTs = []; + var n = s[N]; + if (t < n ? s[N] = t : n = 0, a[O] = t, a.CLog(O + ": " + t + " set." + N + ": " + s[N] + (n ? " 忽略" + n : ""), n ? 3 : 0), a.engineCtx = 0, a[s.type + "_start"]) { + var r = a.engineCtx = a[s.type + "_start"](s); + r && (r.pcmDatas = [], r.pcmSize = 0); + } + }, + envResume: function () { + this.envInFixTs = []; + }, + envIn: function (e, t) { + var n = this, + r = n.set, + i = n.engineCtx, + a = n[O], + s = e.length, + o = V.PowerLevel(t, s), + _ = n.buffers, + l = _.length; + _.push(e); + var f = _, + c = l, + h = Date.now(), + u = Math.round(s / a * 1e3); + n.envInLast = h, 1 == n.buffers.length && (n.envInFirst = h - u); + var m = n.envInFixTs; + m.splice(0, 0, { + t: h, + d: u + }); + for (var p = h, b = 0, v = 0; v < m.length; v++) { + var d = m[v]; + if (3e3 < h - d.t) { + m.length = v; + break; } - }, - _stop: function (e) { - var t = this, - a = t.set; - t.isMock || t._S++, t.state && (t.pause(), t.state = 0), !e && t[a.type + "_stop"] && (t[a.type + "_stop"](t.engineCtx), t.engineCtx = 0); - }, - stop: function (c, t, e) { - var u, - h = this, - b = h.set, - a = h.envInLast - h.envInFirst, - n = a && h.buffers.length; - h.CLog(z("Xq4s::stop 和start时差:") + (a ? a + "ms " + z("3CQP::补偿:") + h.envInFix + "ms envIn:" + n + " fps:" + (n / a * 1e3).toFixed(1) : "-") + " stream:" + h._streamTag + " (" + y + ") LM:" + M); - var p = function () { - h._stop(), e && h.close(); - }, - m = function (e) { - h.CLog(z("u8JG::结束录音失败:") + e, 1), t && t(e), p(); - }, - s = function (e, t, a) { - var n = "arraybuffer", - s = "dataType", - r = "DefaultDataType", - i = h[s] || N[r] || "blob", - o = s + "=" + i, - _ = e instanceof ArrayBuffer, - l = 0, - f = _ ? e.byteLength : e.size; - if (i == n ? _ || (l = 1) : "blob" == i ? "function" != typeof Blob ? l = z.G("NonBrowser-1", [o]) + z("1skY::,请设置{1}", 0, R + "." + r + '="' + n + '"') : (_ && (e = new Blob([e], { - type: t - })), e instanceof Blob || (l = 1), t = e.type || t) : l = z.G("NotSupport-1", [o]), h.CLog(z("Wv7l::结束录音 编码花{1}ms 音频时长{2}ms 文件大小{3}b", 0, Date.now() - u, a, f) + " " + o + "," + t), l) m(1 != l ? l : z("Vkbd::{1}编码器返回的不是{2}", 0, b.type, i) + ", " + o);else { - if (b.takeoffEncodeChunk) h.CLog(z("QWnr::启用takeoffEncodeChunk后stop返回的blob长度为0不提供音频数据"), 3);else if (f < Math.max(50, a / 5)) return void m(z("Sz2H::生成的{1}无效", 0, b.type)); - c && c(e, a, t), p(); - } + p = d.t, b += d.d; + } + var g = m[1], + S = h - p; + if (S / 3 < S - b && (g && 1e3 < S || 6 <= m.length)) { + var M = h - g.t - u; + if (u / 5 < M) { + var w = !r.disableEnvInFix; + if (n.CLog("[" + h + "]" + (w ? "" : "未") + "补偿" + M + "ms", 3), n.envInFix += M, w) { + var R = new Int16Array(M * a / 1e3); + s += R.length, _.push(R); + } + } + } + var A = n.recSize, + B = s, + k = A + B; + if (n.recSize = k, i) { + var y = V.SampleData(_, a, r[N], i.chunkInfo); + i.chunkInfo = y, k = (A = i.pcmSize) + (B = y.data.length), i.pcmSize = k, _ = i.pcmDatas, l = _.length, _.push(y.data), a = y[N]; + } + var T = Math.round(k / a * 1e3), + x = _.length, + E = f.length, + P = function () { + for (var e = L ? 0 : -B, t = null == _[0], a = l; a < x; a++) { + var s = _[a]; + null == s ? t = 1 : (e += s.length, i && s.length && n[r.type + "_encode"](i, s)); + } + if (t && i) for (a = c, f[0] && (a = 0); a < E; a++) f[a] = null; + t && (e = L ? B : 0, _[0] = null), i ? i.pcmSize += e : n.recSize += e; + }, + L = 0, + I = "rec.set.onProcess"; + try { + L = r.onProcess(_, o, T, a, l, P); + } catch (e) { + console.error(I + "回调出错是不允许的,需保证不会抛异常", e); + } + var H = Date.now() - h; + if (10 < H && 1e3 < n.envInFirst - h && n.CLog(I + "低性能,耗时" + H + "ms", 3), !0 === L) { + var C = 0; + for (v = l; v < x; v++) null == _[v] ? C = 1 : _[v] = new Int16Array(0); + C ? n.CLog("未进入异步前不能清除buffers", 3) : i ? i.pcmSize -= B : n.recSize -= B; + } else P(); + }, + start: function () { + var t = this, + a = V.Ctx, + e = 1; + if (t.set.sourceStream ? t.Stream || (e = 0) : V.IsOpen() || (e = 0), e) { + if (t.CLog("开始录音"), t._stop(), t.state = 3, t.envStart(null, a[N]), t._SO && t._SO + 1 != t._S) t.CLog("start被中断", 3);else { + t._SO = 0; + var s = function () { + 3 == t.state && (t.state = 1, t.resume()); }; - if (!h.isMock) { - var r = 3 == h.state; - if (!h.state || r) return void m(z("wf9t::未开始录音") + (r ? z("Dl2c::,开始录音前无用户交互导致AudioContext未运行") : "")); + if ("suspended" == a.state) { + var n = "AudioContext resume: "; + t.CLog(n + "wait..."), a.resume().then(function () { + t.CLog(n + a.state), s(); + })[x](function (e) { + t.CLog(n + a.state + " 可能无法录音:" + e.message, 1, e), s(); + }); + } else s(); } - h._stop(!0); - var i = h.recSize; - if (i) { - if (h[b.type]) { - if (h.isMock) { - var o = h.envCheck(h.mockEnvInfo || { + } else t.CLog("未open", 1); + }, + pause: function () { + var e = this; + e.state && (e.state = 2, e.CLog("pause"), delete e._streamStore().Stream._call[e.id]); + }, + resume: function () { + var e, + a = this; + if (a.state) { + a.state = 1, a.CLog("resume"), a.envResume(); + var t = a._streamStore().Stream; + t._call[a.id] = function (e, t) { + 1 == a.state && a.envIn(e, t); + }, (e = t)._na && e._na(), e._ra && e._ra(); + } + }, + _stop: function (e) { + var t = this, + a = t.set; + t.isMock || t._S++, t.state && (t.pause(), t.state = 0), !e && t[a.type + "_stop"] && (t[a.type + "_stop"](t.engineCtx), t.engineCtx = 0); + }, + stop: function (a, t, e) { + var s, + n = this, + r = n.set, + i = n.envInLast - n.envInFirst, + o = i && n.buffers.length; + n.CLog("stop 和start时差" + (i ? i + "ms 补偿" + n.envInFix + "ms envIn:" + o + " fps:" + (o / i * 1e3).toFixed(1) : "-")); + var _ = function () { + n._stop(), e && n.close(); + }, + l = function (e) { + n.CLog("结束录音失败:" + e, 1), t && t(e), _(); + }, + f = function (e, t) { + if (n.CLog("结束录音 编码花" + (Date.now() - s) + "ms 音频时长" + t + "ms 文件大小" + e.size + "b"), r.takeoffEncodeChunk) n.CLog("启用takeoffEncodeChunk后stop返回的blob长度为0不提供音频数据", 3);else if (e.size < Math.max(100, t / 2)) return void l("生成的" + r.type + "无效"); + a && a(e, t), _(); + }; + if (!n.isMock) { + var c = 3 == n.state; + if (!n.state || c) return void l("未开始录音" + (c ? ",开始录音前无用户交互导致AudioContext未运行" : "")); + n._stop(!0); + } + var h = n.recSize; + if (h) { + if (n.buffers[0]) { + if (n[r.type]) { + if (n.isMock) { + var u = n.envCheck(n.mockEnvInfo || { envName: "mock", canProcess: !1 }); - if (o) return void m(z("AxOH::录音错误:") + o); + if (u) return void l("录音错误:" + u); } - var _ = h.engineCtx; - if (h[b.type + "_complete"] && _) { - var l = Math.round(_.pcmSize / b[D] * 1e3); - return u = Date.now(), void h[b.type + "_complete"](_, function (e, t) { - s(e, t, l); - }, m); + var m = n.engineCtx; + if (n[r.type + "_complete"] && m) { + var p = Math.round(m.pcmSize / r[N] * 1e3); + return s = Date.now(), void n[r.type + "_complete"](m, function (e) { + f(e, p); + }, l); } - if (u = Date.now(), h.buffers[0]) { - var f = N.SampleData(h.buffers, h[V], b[D]); - b[D] = f[D]; - var v = f.data, - l = Math.round(v.length / b[D] * 1e3); - h.CLog(z("CxeT::采样:{1} 花:{2}ms", 0, i + "->" + v.length, Date.now() - u)), setTimeout(function () { - u = Date.now(), h[b.type](v, function (e, t) { - s(e, t, l); - }, function (e) { - m(e); - }); + s = Date.now(); + var b = V.SampleData(n.buffers, n[O], r[N]); + r[N] = b[N]; + var v = b.data; + p = Math.round(v.length / r[N] * 1e3), n.CLog("采样" + h + "->" + v.length + " 花:" + (Date.now() - s) + "ms"), setTimeout(function () { + s = Date.now(), n[r.type](v, function (e) { + f(e, p); + }, function (e) { + l(e); }); - } else m(z("xkKd::音频buffers被释放")); - } else m(z("xGuI::未加载{1}编码器,请尝试到{2}的src/engine内找到{1}的编码器并加载", 0, b.type, R)); - } else m(z("Ltz3::未采集到录音")); - } - }; - var P = function (e, t) { - t.pos || (t.pos = [0], t.tracks = {}, t.bytes = []); - var a = t.tracks, - n = [t.pos[0]], - s = function () { - t.pos[0] = n[0]; - }, - r = t.bytes.length, - i = new Uint8Array(r + e.length); - if (i.set(t.bytes), i.set(e, r), t.bytes = i, !t._ht) { - if (j(i, n), X(i, n), !H(j(i, n), [24, 83, 128, 103])) return; - for (j(i, n); n[0] < i.length;) { - var o = j(i, n), - _ = X(i, n), - l = [0], - f = 0; - if (!_) return; - if (H(o, [22, 84, 174, 107])) { - for (; l[0] < _.length;) { - var c = j(_, l), - u = X(_, l), - h = [0], - b = { - channels: 0, - sampleRate: 0 - }; - if (H(c, [174])) for (; h[0] < u.length;) { - var p = j(u, h), - m = X(u, h), - v = [0]; - if (H(p, [215])) { - var d = F(m); - b.number = d, a[d] = b; - } else if (H(p, [131])) { - var d = F(m); - 1 == d ? b.type = "video" : 2 == d ? (b.type = "audio", f || (t.track0 = b), b.idx = f++) : b.type = "Type-" + d; - } else if (H(p, [134])) { - for (var g = "", w = 0; w < m.length; w++) g += String.fromCharCode(m[w]); - b.codec = g; - } else if (H(p, [225])) for (; v[0] < m.length;) { - var S = j(m, v), - M = X(m, v); - if (H(S, [181])) { - var d = 0, - y = new Uint8Array(M.reverse()).buffer; - 4 == M.length ? d = new Float32Array(y)[0] : 8 == M.length ? d = new Float64Array(y)[0] : O("WebM Track !Float", 1, M), b[D] = Math.round(d); - } else H(S, [98, 100]) ? b.bitDepth = F(M) : H(S, [159]) && (b.channels = F(M)); - } + }); + } else l("未加载" + r.type + "编码器"); + } else l("音频buffers被释放"); + } else l("未采集到录音"); + } + }, y[T] && (H("重复引入" + T, 3), y[T].Destroy()), y[T] = V; + var C = function (e, t) { + t.pos || (t.pos = [0], t.tracks = {}, t.bytes = []); + var a = t.tracks, + s = [t.pos[0]], + n = function () { + t.pos[0] = s[0]; + }, + r = t.bytes.length, + i = new Uint8Array(r + e.length); + if (i.set(t.bytes), i.set(e, r), t.bytes = i, !t._ht) { + if (X(i, s), q(i, s), !D(X(i, s), [24, 83, 128, 103])) return; + for (X(i, s); s[0] < i.length;) { + var o = X(i, s), + _ = q(i, s), + l = [0], + f = 0; + if (!_) return; + if (D(o, [22, 84, 174, 107])) { + for (; l[0] < _.length;) { + var c = X(_, l), + h = q(_, l), + u = [0], + m = { + channels: 0, + sampleRate: 0 + }; + if (D(c, [174])) for (; u[0] < h.length;) { + var p = X(h, u), + b = q(h, u), + v = [0]; + if (D(p, [215])) { + var d = Y(b); + m.number = d, a[d] = m; + } else if (D(p, [131])) { + var d = Y(b); + 1 == d ? m.type = "video" : 2 == d ? (m.type = "audio", f || (t.track0 = m), m.idx = f++) : m.type = "Type-" + d; + } else if (D(p, [134])) { + for (var g = "", S = 0; S < b.length; S++) g += String.fromCharCode(b[S]); + m.codec = g; + } else if (D(p, [225])) for (; v[0] < b.length;) { + var M = X(b, v), + w = q(b, v); + if (D(M, [181])) { + var d = 0, + R = new Uint8Array(w.reverse()).buffer; + 4 == w.length ? d = new Float32Array(R)[0] : 8 == w.length ? d = new Float64Array(R)[0] : H("WebM Track !Float", 1, w), m[N] = Math.round(d); + } else D(M, [98, 100]) ? m.bitDepth = Y(w) : D(M, [159]) && (m.channels = Y(w)); } } - t._ht = 1, O("WebM Tracks", a), s(); - break; } - } - } - var A = t.track0; - if (A) { - if (16 == A.bitDepth && /FLOAT/i.test(A.codec) && (A.bitDepth = 32, O("WebM 16->32 bit", 3)), A[D] != t[D] || 32 != A.bitDepth || A.channels < 1 || !/(\b|_)PCM\b/i.test(A.codec)) return t.bytes = [], t.bad || O("WebM Track Unexpected", 3, t), -(t.bad = 1); - for (var k = [], R = 0; n[0] < i.length;) { - var c = j(i, n), - u = X(i, n); - if (!u) break; - if (H(c, [163])) { - var x = 15 & u[0], - b = a[x]; - if (b) { - if (0 === b.idx) { - for (var B = new Uint8Array(u.length - 4), w = 4; w < u.length; w++) B[w - 4] = u[w]; - k.push(B), R += B.length; - } - } else O("WebM !Track" + x, 1, a); - } - s(); - } - if (R) { - var T = new Uint8Array(i.length - t.pos[0]); - T.set(i.subarray(t.pos[0])), t.bytes = T, t.pos[0] = 0; - for (var B = new Uint8Array(R), w = 0, E = 0; w < k.length; w++) B.set(k[w], E), E += k[w].length; - var y = new Float32Array(B.buffer); - if (1 < A.channels) { - for (var C = [], w = 0; w < y.length;) C.push(y[w]), w += A.channels; - y = new Float32Array(C); - } - return y; - } - } - }, - H = function (e, t) { - if (!e || e.length != t.length) return !1; - if (1 == e.length) return e[0] == t[0]; - for (var a = 0; a < e.length; a++) if (e[a] != t[a]) return !1; - return !0; - }, - F = function (e) { - for (var t = "", a = 0; a < e.length; a++) { - var n = e[a]; - t += (n < 16 ? "0" : "") + n.toString(16); - } - return parseInt(t, 16) || 0; - }, - j = function (e, t, a) { - var n = t[0]; - if (!(n >= e.length)) { - var s = e[n], - r = ("0000000" + s.toString(2)).substr(-8), - i = /^(0*1)(\d*)$/.exec(r); - if (i) { - var o = i[1].length, - _ = []; - if (!(n + o > e.length)) { - for (var l = 0; l < o; l++) _[l] = e[n], n++; - return a && (_[0] = parseInt(i[2] || "0", 2)), t[0] = n, _; - } - } - } - }, - X = function (e, t) { - var a = j(e, t, 1); - if (a) { - var n = F(a), - s = t[0], - r = []; - if (n < 2147483647) { - if (s + n > e.length) return; - for (var i = 0; i < n; i++) r[i] = e[s], s++; - } - return t[0] = s, r; - } - }, - Y = N.i18n = { - lang: "zh-CN", - alias: { - "zh-CN": "zh", - "en-US": "en" - }, - locales: {}, - data: {}, - put: function (e, t) { - var a = R + ".i18n.put: ", - n = e.overwrite; - n = null == n || n; - var s = e.lang; - if (!(s = Y.alias[s] || s)) throw new Error(a + "set.lang?"); - var r = Y.locales[s]; - r || (r = {}, Y.locales[s] = r); - for (var i, o = /^([\w\-]+):/, _ = 0; _ < t.length; _++) { - var l = t[_]; - if (i = o.exec(l)) { - var f = i[1], - l = l.substr(f.length + 1); - !n && r[f] || (r[f] = l); - } else O(a + "'key:'? " + l, 3, e); - } - }, - get: function () { - return Y.v_G.apply(null, arguments); - }, - v_G: function (n, s, e) { - s = s || [], e = e || Y.lang, e = Y.alias[e] || e; - var t = Y.locales[e], - r = t && t[n] || ""; - return r || "zh" == e ? (Y.lastLang = e, "=Empty" == r ? "" : r.replace(/\{(\d+)(\!?)\}/g, function (e, t, a) { - return e = s[(t = +t || 0) - 1], (t < 1 || t > s.length) && (e = "{?}", O("i18n[" + n + "] no {" + t + "}: " + r, 3)), a ? "" : e; - })) : "en" == e ? Y.v_G(n, s, "zh") : Y.v_G(n, s, "en"); - }, - $T: function () { - return Y.v_T.apply(null, arguments); - }, - v_T: function () { - for (var e, t = arguments, a = "", n = [], s = 0, r = R + ".i18n.$T:", i = /^([\w\-]*):/, o = 0; o < t.length; o++) { - var _ = t[o]; - if (0 == o) { - if (e = i.exec(_), !(a = e && e[1])) throw new Error(r + "0 'key:'?"); - _ = _.substr(a.length + 1); - } - if (-1 === s) n.push(_);else { - if (s) throw new Error(r + " bad args"); - if (0 === _) s = -1;else if (f(_)) { - if (_ < 1) throw new Error(r + " bad args"); - s = _; - } else { - var l = 1 == o ? "en" : o ? "" : "zh"; - if ((e = i.exec(_)) && (l = e[1] || l, _ = _.substr(e[1].length + 1)), !e || !l) throw new Error(r + o + " 'lang:'?"); - Y.put({ - lang: l, - overwrite: !1 - }, [a + ":" + _]); - } - } - } - return a ? 0 < s ? a : Y.v_G(a, n) : ""; - } - }, - z = Y.$T; - z.G = Y.get, z("NonBrowser-1::非浏览器环境,不支持{1}", 1), z("IllegalArgs-1::参数错误:{1}", 1), z("NeedImport-2::调用{1}需要先导入{2}", 2), z("NotSupport-1::不支持:{1}", 1), N.TrafficImgUrl = "//ia.51.la/go1?id=20469973&pvFlag=1"; - var u = N.Traffic = function (e) { - if (w) { - e = e ? "/" + R + "/Report/" + e : ""; - var t = N.TrafficImgUrl; - if (t) { - var a = N.Traffic, - n = /^(https?:..[^\/#]*\/?)[^#]*/i.exec(location.href) || [], - s = n[1] || "http://file/", - r = (n[0] || s) + e; - if (0 == t.indexOf("//") && (t = /^https:/i.test(r) ? "https:" + t : "http:" + t), e && (t = t + "&cu=" + encodeURIComponent(s + e)), !a[r]) { - a[r] = 1; - var i = new Image(); - i.src = t, O("Traffic Analysis Image: " + (e || R + ".TrafficImgUrl=" + N.TrafficImgUrl)); + t._ht = 1, H("WebM Tracks", a), n(); + break; } } } + var A = t.track0; + if (A) { + if (16 == A.bitDepth && /FLOAT/i.test(A.codec) && (A.bitDepth = 32, H("WebM 16改32位", 3)), A[N] != t[N] || 32 != A.bitDepth || A.channels < 1 || !/(\b|_)PCM\b/i.test(A.codec)) return t.bytes = [], t.bad || H("WebM Track非预期", 3, t), -(t.bad = 1); + for (var B = [], k = 0; s[0] < i.length;) { + var c = X(i, s), + h = q(i, s); + if (!h) break; + if (D(c, [163])) { + var y = 15 & h[0], + m = a[y]; + if (m) { + if (0 === m.idx) { + for (var T = new Uint8Array(h.length - 4), S = 4; S < h.length; S++) T[S - 4] = h[S]; + B.push(T), k += T.length; + } + } else H("WebM !Track" + y, 1, a); + } + n(); + } + if (k) { + var x = new Uint8Array(i.length - t.pos[0]); + x.set(i.subarray(t.pos[0])), t.bytes = x, t.pos[0] = 0; + for (var T = new Uint8Array(k), S = 0, E = 0; S < B.length; S++) T.set(B[S], E), E += B[S].length; + var R = new Float32Array(T.buffer); + if (1 < A.channels) { + for (var P = [], S = 0; S < R.length;) P.push(R[S]), S += A.channels; + R = new Float32Array(P); + } + return R; + } + } + }, + D = function (e, t) { + if (!e || e.length != t.length) return !1; + if (1 == e.length) return e[0] == t[0]; + for (var a = 0; a < e.length; a++) if (e[a] != t[a]) return !1; + return !0; + }, + Y = function (e) { + for (var t = "", a = 0; a < e.length; a++) { + var s = e[a]; + t += (s < 16 ? "0" : "") + s.toString(16); + } + return parseInt(t, 16) || 0; + }, + X = function (e, t, a) { + var s = t[0]; + if (!(s >= e.length)) { + var n = e[s], + r = ("0000000" + n.toString(2)).substr(-8), + i = /^(0*1)(\d*)$/.exec(r); + if (i) { + var o = i[1].length, + _ = []; + if (!(s + o > e.length)) { + for (var l = 0; l < o; l++) _[l] = e[s], s++; + return a && (_[0] = parseInt(i[2] || "0", 2)), t[0] = s, _; + } + } + } + }, + q = function (e, t) { + var a = X(e, t, 1); + if (a) { + var s = Y(a), + n = t[0], + r = []; + if (s < 2147483647) { + if (n + s > e.length) return; + for (var i = 0; i < s; i++) r[i] = e[n], n++; + } + return t[0] = n, r; + } }; - t && (O(z("8HO5::覆盖导入{1}", 0, R), 1), t.Destroy()); - e[R] = N; - }(a, t), module.exports && (module.exports = a.Recorder); -}(), function (e) { - var t = "object" == typeof window && !!window.document, - a = (t ? window : Object).Recorder, - n = a.i18n; - !function (m, e, u, t) { + V.TrafficImgUrl = "//ia.51.la/go1?id=20469973&pvFlag=1"; + var r = V.Traffic = function (e) { + e = e ? "/" + T + "/Report/" + e : ""; + var t = V.TrafficImgUrl; + if (t) { + var a = V.Traffic, + s = /^(https?:..[^\/#]*\/?)[^#]*/i.exec(location.href) || [], + n = s[1] || "http://file/", + r = (s[0] || n) + e; + if (0 == t.indexOf("//") && (t = /^https:/i.test(r) ? "https:" + t : "http:" + t), e && (t = t + "&cu=" + encodeURIComponent(n + e)), !a[r]) { + a[r] = 1; + var i = new Image(); + i.src = t, H("Traffic Analysis Image: " + (e || T + ".TrafficImgUrl=" + V.TrafficImgUrl)); + } + } + }; +}(window), module.exports && (module.exports = Recorder), function () { - var o = "48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000", - _ = "8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 192, 224, 256, 320"; - m.prototype.enc_mp3 = { - stable: !0, - takeEC: "full", - getTestMsg: function () { - return u("Zm7L::采样率范围:{1};比特率范围:{2}(不同比特率支持的采样率范围不同,小于32kbps时采样率需小于32000)", 0, o, _); - } - }; - var h, - v = function (e) { - var t = e.bitRate, - a = e.sampleRate, - n = a; - if (-1 == (" " + _ + ",").indexOf(" " + t + ",") && m.CLog(u("eGB9::{1}不在mp3支持的取值范围:{2}", 0, "bitRate=" + t, _), 3), -1 == (" " + o + ",").indexOf(" " + a + ",")) { - for (var s = o.split(", "), r = [], i = 0; i < s.length; i++) r.push({ - v: +s[i], - s: Math.abs(s[i] - a) - }); - r.sort(function (e, t) { - return e.s - t.s; - }), n = r[0].v, e.sampleRate = n, m.CLog(u("zLTa::sampleRate已更新为{1},因为{2}不在mp3支持的取值范围:{3}", 0, n, a, o), 3); + var i; + Recorder.prototype.enc_mp3 = { + stable: !0, + testmsg: "采样率范围48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000" + }, Recorder.prototype.mp3 = function (a, s, e) { + var n = this.set, + r = a.length, + t = this.mp3_start(n); + if (t) return this.mp3_encode(t, a), void this.mp3_complete(t, s, e, 1); + var i = new Recorder.lamejs.Mp3Encoder(1, n.sampleRate, n.bitRate), + o = [], + _ = 0, + l = 0, + f = function () { + if (_ < r) { + 0 < (e = i.encodeBuffer(a.subarray(_, _ + 57600))).length && (l += e.buffer.byteLength, o.push(e.buffer)), _ += 57600, setTimeout(f); + } else { + var e; + 0 < (e = i.flush()).length && (l += e.buffer.byteLength, o.push(e.buffer)); + var t = c.fn(o, l, r, n.sampleRate); + h(t, n), s(new Blob(o, { + type: "audio/mp3" + })); } - }, - n = function () { - return u.G("NeedImport-2", ["mp3.js", "src/engine/mp3-engine.js"]); - }, - d = t && "function" == typeof Worker; - m.prototype.mp3 = function (r, i, o) { - var e = this, - _ = e.set, - l = r.length; - if (m.lamejs) { - if (d) { - var t = e.mp3_start(_); - if (t) { - if (t.isW) return e.mp3_encode(t, r), void e.mp3_complete(t, i, o, 1); - e.mp3_stop(t); - } - } - v(_); - var f = new m.lamejs.Mp3Encoder(1, _.sampleRate, _.bitRate), - c = new Int8Array(5e5), - u = 0, - h = 0, - b = 0, - p = function () { - try { - if (h < l) var e = f.encodeBuffer(r.subarray(h, h + 57600));else { - b = 1; - var e = f.flush(); - } - } catch (e) { - if (console.error(e), !b) try { - f.flush(); - } catch (e) { - console.error(e); - } - return void o("MP3 Encoder: " + e.message); - } - var t = e.length; - if (0 < t) { - if (u + t > c.length) { - var a = new Int8Array(c.length + Math.max(5e5, t)); - a.set(c.subarray(0, u)), c = a; - } - c.set(e, u), u += t; - } - if (h < l) h += 57600, setTimeout(p);else { - var n = [c.buffer.slice(0, u)], - s = g.fn(n, u, l, _.sampleRate); - w(s, _), i(n[0] || new ArrayBuffer(0), "audio/mp3"); - } - }; - p(); - } else o(n()); - }, m.BindDestroy("mp3Worker", function () { - h && (m.CLog("mp3Worker Destroy"), h.terminate(), h = null); - }), m.prototype.mp3_envCheck = function (e, t) { - var a = ""; - return t.takeoffEncodeChunk && (p() || (a = u("yhUs::当前浏览器版本太低,无法实时处理"))), a || m.lamejs || (a = n()), a; - }, m.prototype.mp3_start = function (e) { - return p(e); - }; - var b = { - id: 0 - }, - p = function (t, e) { - var f, - a = function (e) { + }; + f(); + }, Recorder.BindDestroy("mp3Worker", function () { + Recorder.CLog("mp3Worker Destroy"), i && i.terminate(), i = null; + }), Recorder.prototype.mp3_envCheck = function (e, t) { + var a = ""; + return t.takeoffEncodeChunk && (e.canProcess ? s() || (a = "当前浏览器版本太低,无法实时处理") : a = e.envName + "环境不支持实时处理"), a; + }, Recorder.prototype.mp3_start = function (e) { + return s(e); + }; + var o = { + id: 0 + }, + s = function (e) { + var t = i; + try { + if (!t) { + var a = ");wk_lame();var wk_ctxs={};self.onmessage=" + function (e) { var t = e.data, - a = f.wkScope.wk_ctxs, - n = f.wkScope.wk_lame, - s = f.wkScope.wk_mp3TrimFix, - r = a[t.id]; - if ("init" == t.action) a[t.id] = { + a = wk_ctxs[t.id]; + if ("init" == t.action) wk_ctxs[t.id] = { sampleRate: t.sampleRate, bitRate: t.bitRate, takeoff: t.takeoff, + mp3Size: 0, pcmSize: 0, - memory: new Int8Array(5e5), - mOffset: 0, - encObj: new n.Mp3Encoder(1, t.sampleRate, t.bitRate) - };else if (!r) return; - var i = function (e) { - var t = e.length; - if (r.mOffset + t > r.memory.length) { - var a = new Int8Array(r.memory.length + Math.max(5e5, t)); - a.set(r.memory.subarray(0, r.mOffset)), r.memory = a; - } - r.memory.set(e, r.mOffset), r.mOffset += t; - }; + encArr: [], + encObj: new wk_lame.Mp3Encoder(1, t.sampleRate, t.bitRate) + };else if (!a) return; switch (t.action) { case "stop": - if (!r.isCp) try { - r.encObj.flush(); - } catch (e) { - console.error(e); - } - r.encObj = null, delete a[t.id]; + a.encObj = null, delete wk_ctxs[t.id]; break; case "encode": - if (r.isCp) break; - r.pcmSize += t.pcm.length; - try { - var o = r.encObj.encodeBuffer(t.pcm); - } catch (e) { - r.err = e, console.error(e); - } - o && 0 < o.length && (r.takeoff ? c.onmessage({ + a.pcmSize += t.pcm.length, 0 < (s = a.encObj.encodeBuffer(t.pcm)).length && (a.takeoff ? self.postMessage({ action: "takeoff", id: t.id, - chunk: o - }) : i(o)); + chunk: s + }) : (a.mp3Size += s.buffer.byteLength, a.encArr.push(s.buffer))); break; case "complete": - r.isCp = 1; - try { - var o = r.encObj.flush(); - } catch (e) { - r.err = e, console.error(e); - } - if (o && 0 < o.length && (r.takeoff ? c.onmessage({ + var s; + 0 < (s = a.encObj.flush()).length && (a.takeoff ? self.postMessage({ action: "takeoff", id: t.id, - chunk: o - }) : i(o)), r.err) { - c.onmessage({ - action: t.action, - id: t.id, - err: "MP3 Encoder: " + r.err.message - }); - break; - } - var _ = [r.memory.buffer.slice(0, r.mOffset)], - l = s.fn(_, r.mOffset, r.pcmSize, r.sampleRate); - c.onmessage({ + chunk: s + }) : (a.mp3Size += s.buffer.byteLength, a.encArr.push(s.buffer))); + var n = wk_mp3TrimFix.fn(a.encArr, a.mp3Size, a.pcmSize, a.sampleRate); + self.postMessage({ action: t.action, id: t.id, - blob: _[0] || new ArrayBuffer(0), - meta: l + blob: new Blob(a.encArr, { + type: "audio/mp3" + }), + meta: n }); } - }, - n = function (n) { - c.onmessage = function (e) { - var t = e; - n && (t = e.data); - var a = b[t.id]; - a && ("takeoff" == t.action ? a.set.takeoffEncodeChunk(new Uint8Array(t.chunk.buffer)) : (a.call && a.call(t), a.call = null)); - }; - }, - s = function () { - var e = { - worker: c, - set: t - }; - return t ? (e.id = ++b.id, b[e.id] = e, v(t), c.postMessage({ - action: "init", - id: e.id, - sampleRate: t.sampleRate, - bitRate: t.bitRate, - takeoff: !!t.takeoffEncodeChunk, - x: new Int16Array(5) - })) : c.postMessage({ - x: new Int16Array(5) - }), e; - }, - c = h; - if (e || !d) return m.CLog(u("k9PT::当前环境不支持Web Worker,mp3实时编码器运行在主线程中"), 3), c = { - postMessage: function (e) { - a({ - data: e - }); - } - }, f = { - wkScope: { - wk_ctxs: {}, - wk_lame: m.lamejs, - wk_mp3TrimFix: g - } - }, n(), s(); - try { - if (!c) { - var r = (a + "").replace(/[\w\$]+\.onmessage/g, "self.postMessage"), - i = ");wk_lame();self.onmessage=" + (r = r.replace(/[\w\$]+\.wkScope/g, "wkScope")); - i += ";var wkScope={ wk_ctxs:{},wk_lame:wk_lame", i += ",wk_mp3TrimFix:{rm:" + g.rm + ",fn:" + g.fn + "} }"; - var o = m.lamejs.toString(), - _ = (window.URL || webkitURL).createObjectURL(new Blob(["var wk_lame=(", o, i], { - type: "text/javascript" - })); - c = new Worker(_), setTimeout(function () { - (window.URL || webkitURL).revokeObjectURL(_); - }, 1e4), n(1); - } - var l = s(); - return l.isW = 1, h = c, l; - } catch (e) { - return c && c.terminate(), console.error(e), p(t, 1); - } - }; - m.prototype.mp3_stop = function (e) { - if (e && e.worker) { - e.worker.postMessage({ - action: "stop", - id: e.id - }), e.worker = null, delete b[e.id]; - var t = -1; - for (var a in b) t++; - t && m.CLog(u("fT6M::mp3 worker剩{1}个未stop", 0, t), 3); - } - }, m.prototype.mp3_encode = function (e, t) { - e && e.worker && e.worker.postMessage({ - action: "encode", - id: e.id, - pcm: t - }); - }, m.prototype.mp3_complete = function (t, a, n, s) { - var r = this; - t && t.worker ? (t.call = function (e) { - s && r.mp3_stop(t), e.err ? n(e.err) : (w(e.meta, t.set), a(e.blob, "audio/mp3")); - }, t.worker.postMessage({ - action: "complete", - id: t.id - })) : n(u("mPxH::mp3编码器未start")); - }, m.mp3ReadMeta = function (e, t) { - var a = "undefined" != typeof window && window.parseInt || "undefined" != typeof self && self.parseInt || parseInt, - n = new Uint8Array(e[0] || []); - if (n.length < 4) return null; - var s = function (e, t) { - return ("0000000" + ((t || n)[e] || 0).toString(2)).substr(-8); - }, - r = s(0) + s(1), - i = s(2) + s(3); - if (!/^1{11}/.test(r)) return null; - var o = { - "00": 2.5, - 10: 2, - 11: 1 - }[r.substr(11, 2)], - _ = { - "01": 3 - }[r.substr(13, 2)], - l = { - 1: [44100, 48e3, 32e3], - 2: [22050, 24e3, 16e3], - 2.5: [11025, 12e3, 8e3] - }[o]; - l && (l = l[a(i.substr(4, 2), 2)]); - var f = [[0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160], [0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320]][1 == o ? 1 : 0][a(i.substr(0, 4), 2)]; - if (!(o && _ && f && l)) return null; - for (var c = Math.round(8 * t / f), u = 1 == _ ? 384 : 2 == _ ? 1152 : 1 == o ? 1152 : 576, h = u / l * 1e3, b = Math.floor(u * f / 8 / l * 1e3), p = 0, m = 0, v = 0; v < e.length; v++) { - var d = e[v]; - if (m += d.byteLength, b + 3 <= m) { - var g = new Uint8Array(d), - w = d.byteLength - (m - (b + 3) + 1), - S = s(w, g); - p = "1" == S.charAt(6); - break; - } - } - return p && b++, { - version: o, - layer: _, - sampleRate: l, - bitRate: f, - duration: c, - size: t, - hasPadding: p, - frameSize: b, - frameDurationFloat: h - }; - }; - var g = { - rm: m.mp3ReadMeta, - fn: function (e, t, a, n) { - var s = this.rm(e, t); - if (!s) return { - err: "mp3 unknown format" }; - var r = Math.round(a / n * 1e3), - i = Math.floor((s.duration - r) / s.frameDurationFloat); - if (0 < i) { - var o = i * s.frameSize - (s.hasPadding ? 1 : 0); - t -= o; - for (var _ = 0, l = [], f = 0; f < e.length; f++) { - var c = e[f]; - if (o <= 0) break; - o >= c.byteLength ? (o -= c.byteLength, l.push(c), e.splice(f, 1), f--) : (e[f] = c.slice(o), _ = c, o = 0); - } - var u = this.rm(e, t); - if (!u) { - _ && (e[0] = _); - for (var f = 0; f < l.length; f++) e.splice(f, 0, l[f]); - s.err = "mp3 fix error: 已还原,错误原因不明"; - } - var h = s.trimFix = {}; - h.remove = i, h.removeDuration = Math.round(i * s.frameDurationFloat), h.duration = Math.round(8 * t / s.bitRate); - } - return s; + a += ";var wk_mp3TrimFix={rm:" + c.rm + ",fn:" + c.fn + "}"; + var s = Recorder.lamejs.toString(), + n = (window.URL || webkitURL).createObjectURL(new Blob(["var wk_lame=(", s, a], { + type: "text/javascript" + })); + t = new Worker(n), setTimeout(function () { + (window.URL || webkitURL).revokeObjectURL(n); + }, 1e4), t.onmessage = function (e) { + var t = e.data, + a = o[t.id]; + a && ("takeoff" == t.action ? a.set.takeoffEncodeChunk(new Uint8Array(t.chunk.buffer)) : (a.call && a.call(t), a.call = null)); + }; } + var r = { + worker: t, + set: e, + takeoffQueue: [] + }; + return e ? (r.id = ++o.id, o[r.id] = r, t.postMessage({ + action: "init", + id: r.id, + sampleRate: e.sampleRate, + bitRate: e.bitRate, + takeoff: !!e.takeoffEncodeChunk, + x: new Int16Array(5) + })) : t.postMessage({ + x: new Int16Array(5) + }), i = t, r; + } catch (e) { + return t && t.terminate(), console.error(e), null; + } + }; + Recorder.prototype.mp3_stop = function (e) { + if (e && e.worker) { + e.worker.postMessage({ + action: "stop", + id: e.id + }), e.worker = null, delete o[e.id]; + var t = -1; + for (var a in o) t++; + t && Recorder.CLog("mp3 worker剩" + t + "个在串行等待", 3); + } + }, Recorder.prototype.mp3_encode = function (e, t) { + e && e.worker && e.worker.postMessage({ + action: "encode", + id: e.id, + pcm: t + }); + }, Recorder.prototype.mp3_complete = function (t, a, e, s) { + var n = this; + t && t.worker ? (t.call = function (e) { + h(e.meta, t.set), a(e.blob), s && n.mp3_stop(t); + }, t.worker.postMessage({ + action: "complete", + id: t.id + })) : e("mp3编码器未打开"); + }, Recorder.mp3ReadMeta = function (e, t) { + var a = "object" == typeof window ? window.parseInt : self.parseInt, + s = new Uint8Array(e[0] || []); + if (s.length < 4) return null; + var n = function (e, t) { + return ("0000000" + ((t || s)[e] || 0).toString(2)).substr(-8); }, - w = function (e, t) { - var a = "MP3 Info: "; - (e.sampleRate && e.sampleRate != t.sampleRate || e.bitRate && e.bitRate != t.bitRate) && (m.CLog(a + u("uY9i::和设置的不匹配{1},已更新成{2}", 0, "set:" + t.bitRate + "kbps " + t.sampleRate + "hz", "set:" + e.bitRate + "kbps " + e.sampleRate + "hz"), 3, t), t.sampleRate = e.sampleRate, t.bitRate = e.bitRate); - var n = e.trimFix; - n ? (a += u("iMSm::Fix移除{1}帧", 0, n.remove) + " " + n.removeDuration + "ms -> " + n.duration + "ms", 2 < n.remove && (e.err = (e.err ? e.err + ", " : "") + u("b9zm::移除帧数过多"))) : a += (e.duration || "-") + "ms", e.err ? m.CLog(a, 1, e.err, e) : m.CLog(a, e); - }; - }(a, 0, n.$T, t); -}(), function (e) { + r = n(0) + n(1), + i = n(2) + n(3); + if (!/^1{11}/.test(r)) return null; + var o = { + "00": 2.5, + 10: 2, + 11: 1 + }[r.substr(11, 2)], + _ = { + "01": 3 + }[r.substr(13, 2)], + l = { + 1: [44100, 48e3, 32e3], + 2: [22050, 24e3, 16e3], + 2.5: [11025, 12e3, 8e3] + }[o]; + l && (l = l[a(i.substr(4, 2), 2)]); + var f = [[0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160], [0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320]][1 == o ? 1 : 0][a(i.substr(0, 4), 2)]; + if (!(o && _ && f && l)) return null; + for (var c = Math.round(8 * t / f), h = 1 == _ ? 384 : 2 == _ ? 1152 : 1 == o ? 1152 : 576, u = h / l * 1e3, m = Math.floor(h * f / 8 / l * 1e3), p = 0, b = 0, v = 0; v < e.length; v++) { + var d = e[v]; + if (m + 3 <= (b += d.byteLength)) { + var g = new Uint8Array(d); + p = "1" == n(d.byteLength - (b - (m + 3) + 1), g).charAt(6); + break; + } + } + return p && m++, { + version: o, + layer: _, + sampleRate: l, + bitRate: f, + duration: c, + size: t, + hasPadding: p, + frameSize: m, + frameDurationFloat: u + }; + }; + var c = { + rm: Recorder.mp3ReadMeta, + fn: function (e, t, a, s) { + var n = this.rm(e, t); + if (!n) return { + err: "mp3非预定格式" + }; + var r = Math.round(a / s * 1e3), + i = Math.floor((n.duration - r) / n.frameDurationFloat); + if (0 < i) { + var o = i * n.frameSize - (n.hasPadding ? 1 : 0); + t -= o; + for (var _ = 0, l = [], f = 0; f < e.length; f++) { + var c = e[f]; + if (o <= 0) break; + o >= c.byteLength ? (o -= c.byteLength, l.push(c), e.splice(f, 1), f--) : (e[f] = c.slice(o), _ = c, o = 0); + } + if (!this.rm(e, t)) { + _ && (e[0] = _); + for (f = 0; f < l.length; f++) e.splice(f, 0, l[f]); + n.err = "fix后数据错误,已还原,错误原因不明"; + } + var h = n.trimFix = {}; + h.remove = i, h.removeDuration = Math.round(i * n.frameDurationFloat), h.duration = Math.round(8 * t / n.bitRate); + } + return n; + } + }, + h = function (e, t) { + var a = "MP3信息 "; + (e.sampleRate && e.sampleRate != t.sampleRate || e.bitRate && e.bitRate != t.bitRate) && (Recorder.CLog(a + "和设置的不匹配set:" + t.bitRate + "kbps " + t.sampleRate + "hz,已更新set:" + e.bitRate + "kbps " + e.sampleRate + "hz", 3, t), t.sampleRate = e.sampleRate, t.bitRate = e.bitRate); + var s = e.trimFix; + s ? (a += "Fix移除" + s.remove + "帧" + s.removeDuration + "ms -> " + s.duration + "ms", 2 < s.remove && (e.err = (e.err ? e.err + ", " : "") + "移除帧数过多")) : a += (e.duration || "-") + "ms", e.err ? Recorder.CLog(a, 1, e.err, e) : Recorder.CLog(a, e); + }; +}(), function () { function t() { - var d = function (e) { - return Math.log(e) / Math.log(10); - }, - me = function (e) { - throw new Error("abort(" + e + ")"); - }; - function S(e) { + var B = function (e) { + return Math.log(e) / Math.log(10); + }; + function A(e) { return new Int8Array(e); } - function s(e) { + function n(e) { return new Int16Array(e); } - function ve(e) { + function Ae(e) { return new Int32Array(e); } - function de(e) { + function Be(e) { return new Float32Array(e); } - function n(e) { + function s(e) { return new Float64Array(e); } - function ge(e) { - if (1 == e.length) return de(e[0]); + function ke(e) { + if (1 == e.length) return Be(e[0]); var t = e[0]; e = e.slice(1); - for (var a = [], n = 0; n < t; n++) a.push(ge(e)); + for (var a = [], s = 0; s < t; s++) a.push(ke(e)); return a; } - function w(e) { - if (1 == e.length) return ve(e[0]); + function Y(e) { + if (1 == e.length) return Ae(e[0]); var t = e[0]; e = e.slice(1); - for (var a = [], n = 0; n < t; n++) a.push(w(e)); + for (var a = [], s = 0; s < t; s++) a.push(Y(e)); return a; } - function M(e) { - if (1 == e.length) return s(e[0]); + function p(e) { + if (1 == e.length) return n(e[0]); var t = e[0]; e = e.slice(1); - for (var a = [], n = 0; n < t; n++) a.push(M(e)); + for (var a = [], s = 0; s < t; s++) a.push(p(e)); return a; } - function E(e) { + function O(e) { if (1 == e.length) return new Array(e[0]); var t = e[0]; e = e.slice(1); - for (var a = [], n = 0; n < t; n++) a.push(E(e)); + for (var a = [], s = 0; s < t; s++) a.push(O(e)); return a; } - var we = { - fill: function (e, t, a, n) { - if (2 == arguments.length) for (var s = 0; s < e.length; s++) e[s] = t;else for (var s = t; s < a; s++) e[s] = n; + var ye = { + fill: function (e, t, a, s) { + if (2 == arguments.length) for (var n = 0; n < e.length; n++) e[n] = t;else for (n = t; n < a; n++) e[n] = s; } }, - I = { - arraycopy: function (e, t, a, n, s) { - for (var r = t + s; t < r;) a[n++] = e[t++]; + $ = { + arraycopy: function (e, t, a, s, n) { + for (var r = t + n; t < r;) a[s++] = e[t++]; } }, - V = {}; - function Se(e) { + ee = {}; + function Te(e) { this.ordinal = e; } - V.SQRT2 = 1.4142135623730951, V.FAST_LOG10 = function (e) { - return d(e); - }, V.FAST_LOG10_X = function (e, t) { - return d(e) * t; - }, Se.short_block_allowed = new Se(0), Se.short_block_coupled = new Se(1), Se.short_block_dispensed = new Se(2), Se.short_block_forced = new Se(3); - var D = {}; - function Me(e) { + ee.SQRT2 = 1.4142135623730951, ee.FAST_LOG10 = function (e) { + return B(e); + }, ee.FAST_LOG10_X = function (e, t) { + return B(e) * t; + }, Te.short_block_allowed = new Te(0), Te.short_block_coupled = new Te(1), Te.short_block_dispensed = new Te(2), Te.short_block_forced = new Te(3); + var K = {}; + function xe(e) { this.ordinal = e; } - function ye(e) { + K.MAX_VALUE = 3.4028235e38, xe.vbr_off = new xe(0), xe.vbr_mt = new xe(1), xe.vbr_rh = new xe(2), xe.vbr_abr = new xe(3), xe.vbr_mtrh = new xe(4), xe.vbr_default = xe.vbr_mtrh; + function Ee(e) { var t = e; this.ordinal = function () { return t; }; } - function A() { - var S = null; + function k() { + var M = null; function v(e) { this.bits = 0 | e; } this.qupvt = null, this.setModules = function (e) { - this.qupvt = e, S = e; + this.qupvt = e, M = e; }; - var s = [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 1], [1, 1], [1, 1], [1, 2], [2, 2], [2, 3], [2, 3], [3, 4], [3, 4], [3, 4], [4, 5], [4, 5], [4, 6], [5, 6], [5, 6], [5, 7], [6, 7], [6, 7]]; - function M(e, t, a, n, s, r) { + var n = [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 1], [1, 1], [1, 1], [1, 2], [2, 2], [2, 3], [2, 3], [3, 4], [3, 4], [3, 4], [4, 5], [4, 5], [4, 6], [5, 6], [5, 6], [5, 7], [6, 7], [6, 7]]; + function w(e, t, a, s, n, r) { var i = .5946 / t; - for (e >>= 1; 0 != e--;) s[r++] = i > a[n++] ? 0 : 1, s[r++] = i > a[n++] ? 0 : 1; + for (e >>= 1; 0 != e--;) n[r++] = i > a[s++] ? 0 : 1, n[r++] = i > a[s++] ? 0 : 1; } - function y(e, t, a, n, s, r) { + function R(e, t, a, s, n, r) { var i = (e >>= 1) % 2; for (e >>= 1; 0 != e--;) { - var o, _, l, f, c, u, h, b; - o = a[n++] * t, _ = a[n++] * t, c = 0 | o, l = a[n++] * t, u = 0 | _, f = a[n++] * t, h = 0 | l, o += S.adj43[c], b = 0 | f, _ += S.adj43[u], s[r++] = 0 | o, l += S.adj43[h], s[r++] = 0 | _, f += S.adj43[b], s[r++] = 0 | l, s[r++] = 0 | f; + var o, _, l, f, c, h, u, m; + o = a[s++] * t, _ = a[s++] * t, c = 0 | o, l = a[s++] * t, h = 0 | _, f = a[s++] * t, u = 0 | l, o += M.adj43[c], m = 0 | f, _ += M.adj43[h], n[r++] = 0 | o, l += M.adj43[u], n[r++] = 0 | _, f += M.adj43[m], n[r++] = 0 | l, n[r++] = 0 | f; } - 0 != i && (o = a[n++] * t, _ = a[n++] * t, c = 0 | o, u = 0 | _, o += S.adj43[c], _ += S.adj43[u], s[r++] = 0 | o, s[r++] = 0 | _); + 0 != i && (c = 0 | (o = a[s++] * t), h = 0 | (_ = a[s++] * t), o += M.adj43[c], _ += M.adj43[h], n[r++] = 0 | o, n[r++] = 0 | _); } var o = [1, 2, 5, 7, 7, 10, 10, 13, 13, 13, 13, 13, 13, 13, 13]; - function d(e, t, a, n) { - var s = function (e, t, a) { - var n = 0, - s = 0; + function d(e, t, a, s) { + var n = function (e, t, a) { + var s = 0, + n = 0; do { var r = e[t++], i = e[t++]; - n < r && (n = r), s < i && (s = i); + s < r && (s = r), n < i && (n = i); } while (t < a); - return n < s && (n = s), n; + return s < n && (s = n), s; }(e, t, a); - switch (s) { + switch (n) { case 0: - return s; + return n; case 1: - return function (e, t, a, n) { - var s = 0, - r = k.ht[1].hlen; + return function (e, t, a, s) { + var n = 0, + r = F.ht[1].hlen; do { var i = 2 * e[t + 0] + e[t + 1]; - t += 2, s += r[i]; + t += 2, n += r[i]; } while (t < a); - return n.bits += s, 1; - }(e, t, a, n); + return s.bits += n, 1; + }(e, t, a, s); case 2: case 3: - return function (e, t, a, n, s) { + return function (e, t, a, s, n) { var r, i, o = 0, - _ = k.ht[n].xlen; - i = 2 == n ? k.table23 : k.table56; + _ = F.ht[s].xlen; + i = 2 == s ? F.table23 : F.table56; do { var l = e[t + 0] * _ + e[t + 1]; t += 2, o += i[l]; } while (t < a); - return (r = 65535 & o) < (o >>= 16) && (o = r, n++), s.bits += o, n; - }(e, t, a, o[s - 1], n); + return (r = 65535 & o) < (o >>= 16) && (o = r, s++), n.bits += o, s; + }(e, t, a, o[n - 1], s); case 4: case 5: case 6: @@ -13457,84 +13106,86 @@ src: recorder-core.js,engine/mp3.js,engine/mp3-engine.js case 13: case 14: case 15: - return function (e, t, a, n, s) { + return function (e, t, a, s, n) { var r = 0, i = 0, o = 0, - _ = k.ht[n].xlen, - l = k.ht[n].hlen, - f = k.ht[n + 1].hlen, - c = k.ht[n + 2].hlen; + _ = F.ht[s].xlen, + l = F.ht[s].hlen, + f = F.ht[s + 1].hlen, + c = F.ht[s + 2].hlen; do { - var u = e[t + 0] * _ + e[t + 1]; - t += 2, r += l[u], i += f[u], o += c[u]; + var h = e[t + 0] * _ + e[t + 1]; + t += 2, r += l[h], i += f[h], o += c[h]; } while (t < a); - var h = n; - return i < r && (r = i, h++), o < r && (r = o, h = n + 2), s.bits += r, h; - }(e, t, a, o[s - 1], n); + var u = s; + return i < r && (r = i, u++), o < r && (r = o, u = s + 2), n.bits += r, u; + }(e, t, a, o[n - 1], s); default: + if (x.IXMAX_VAL < n) return s.bits = x.LARGE_BITS, -1; var r, i; - for (T.IXMAX_VAL < s && me(), s -= 15, r = 24; r < 32 && !(k.ht[r].linmax >= s); r++); - for (i = r - 8; i < 24 && !(k.ht[i].linmax >= s); i++); - return function (e, t, a, n, s, r) { + for (n -= 15, r = 24; r < 32 && !(F.ht[r].linmax >= n); r++); + for (i = r - 8; i < 24 && !(F.ht[i].linmax >= n); i++); + return function (e, t, a, s, n, r) { var i, - o = 65536 * k.ht[n].xlen + k.ht[s].xlen, + o = 65536 * F.ht[s].xlen + F.ht[n].xlen, _ = 0; do { var l = e[t++], f = e[t++]; - 0 != l && (14 < l && (l = 15, _ += o), l *= 16), 0 != f && (14 < f && (f = 15, _ += o), l += f), _ += k.largetbl[l]; + 0 != l && (14 < l && (l = 15, _ += o), l *= 16), 0 != f && (14 < f && (f = 15, _ += o), l += f), _ += F.largetbl[l]; } while (t < a); - return (i = 65535 & _) < (_ >>= 16) && (_ = i, n = s), r.bits += _, n; - }(e, t, a, i, r, n); + return (i = 65535 & _) < (_ >>= 16) && (_ = i, s = n), r.bits += _, s; + }(e, t, a, i, r, s); } } - function h(e, t, a, n, s, r, i, o) { - for (var _ = t.big_values, l = 2; l < Ae.SBMAX_l + 1; l++) { + function u(e, t, a, s, n, r, i, o) { + for (var _ = t.big_values, l = 2; l < Pe.SBMAX_l + 1; l++) { var f = e.scalefac_band.l[l]; if (_ <= f) break; - var c = s[l - 2] + t.count1bits; + var c = n[l - 2] + t.count1bits; if (a.part2_3_length <= c) break; - var u = new v(c), - h = d(n, f, _, u); - c = u.bits, a.part2_3_length <= c || (a.assign(t), a.part2_3_length = c, a.region0_count = r[l - 2], a.region1_count = l - 2 - r[l - 2], a.table_select[0] = i[l - 2], a.table_select[1] = o[l - 2], a.table_select[2] = h); + var h = new v(c), + u = d(s, f, _, h); + c = h.bits, a.part2_3_length <= c || (a.assign(t), a.part2_3_length = c, a.region0_count = r[l - 2], a.region1_count = l - 2 - r[l - 2], a.table_select[0] = i[l - 2], a.table_select[1] = o[l - 2], a.table_select[2] = u); } } this.noquant_count_bits = function (e, t, a) { - var n = t.l3_enc, - s = Math.min(576, t.max_nonzero_coeff + 2 >> 1 << 1); - for (null != a && (a.sfb_count1 = 0); 1 < s && 0 == (n[s - 1] | n[s - 2]); s -= 2); - t.count1 = s; - for (var r = 0, i = 0; 3 < s; s -= 4) { + var s = t.l3_enc, + n = Math.min(576, t.max_nonzero_coeff + 2 >> 1 << 1); + for (null != a && (a.sfb_count1 = 0); 1 < n && 0 == (s[n - 1] | s[n - 2]); n -= 2); + t.count1 = n; + for (var r = 0, i = 0; 3 < n; n -= 4) { var o; - if (1 < (2147483647 & (n[s - 1] | n[s - 2] | n[s - 3] | n[s - 4]))) break; - o = 2 * (2 * (2 * n[s - 4] + n[s - 3]) + n[s - 2]) + n[s - 1], r += k.t32l[o], i += k.t33l[o]; + if (1 < (2147483647 & (s[n - 1] | s[n - 2] | s[n - 3] | s[n - 4]))) break; + o = 2 * (2 * (2 * s[n - 4] + s[n - 3]) + s[n - 2]) + s[n - 1], r += F.t32l[o], i += F.t33l[o]; } var _ = r; - if (t.count1table_select = 0, i < r && (_ = i, t.count1table_select = 1), t.count1bits = _, 0 == (t.big_values = s)) return _; - if (t.block_type == Ae.SHORT_TYPE) (r = 3 * e.scalefac_band.s[3]) > t.big_values && (r = t.big_values), i = t.big_values;else if (t.block_type == Ae.NORM_TYPE) { - if (r = t.region0_count = e.bv_scf[s - 2], i = t.region1_count = e.bv_scf[s - 1], i = e.scalefac_band.l[r + i + 2], r = e.scalefac_band.l[r + 1], i < s) { + if (t.count1table_select = 0, i < r && (_ = i, t.count1table_select = 1), t.count1bits = _, 0 == (t.big_values = n)) return _; + if (t.block_type == Pe.SHORT_TYPE) (r = 3 * e.scalefac_band.s[3]) > t.big_values && (r = t.big_values), i = t.big_values;else if (t.block_type == Pe.NORM_TYPE) { + if (r = t.region0_count = e.bv_scf[n - 2], i = t.region1_count = e.bv_scf[n - 1], i = e.scalefac_band.l[r + i + 2], r = e.scalefac_band.l[r + 1], i < n) { var l = new v(_); - t.table_select[2] = d(n, i, s, l), _ = l.bits; + t.table_select[2] = d(s, i, n, l), _ = l.bits; } - } else t.region0_count = 7, t.region1_count = Ae.SBMAX_l - 1 - 7 - 1, r = e.scalefac_band.l[8], (i = s) < r && (r = i); - if (r = Math.min(r, s), i = Math.min(i, s), 0 < r) { - var l = new v(_); - t.table_select[0] = d(n, 0, r, l), _ = l.bits; + } else t.region0_count = 7, t.region1_count = Pe.SBMAX_l - 1 - 7 - 1, (i = n) < (r = e.scalefac_band.l[8]) && (r = i); + if (r = Math.min(r, n), i = Math.min(i, n), 0 < r) { + l = new v(_); + t.table_select[0] = d(s, 0, r, l), _ = l.bits; } if (r < i) { - var l = new v(_); - t.table_select[1] = d(n, r, i, l), _ = l.bits; + l = new v(_); + t.table_select[1] = d(s, r, i, l), _ = l.bits; } - if (2 == e.use_best_huffman && me(), null != a && t.block_type == Ae.NORM_TYPE) { + if (2 == e.use_best_huffman && (t.part2_3_length = _, best_huffman_divide(e, t), _ = t.part2_3_length), null != a && t.block_type == Pe.NORM_TYPE) { for (var f = 0; e.scalefac_band.l[f] < t.big_values;) f++; a.sfb_count1 = f; } return _; - }, this.count_bits = function (e, t, a, n) { - var s = a.l3_enc, - r = T.IXMAX_VAL / S.IPOW20(a.global_gain); - return a.xrpow_max > r ? T.LARGE_BITS : (function (e, t, a, n, s) { + }, this.count_bits = function (e, t, a, s) { + var n = a.l3_enc, + r = x.IXMAX_VAL / M.IPOW20(a.global_gain); + if (a.xrpow_max > r) return x.LARGE_BITS; + if (function (e, t, a, s, n) { var r, i, o, @@ -13542,123 +13193,127 @@ src: recorder-core.js,engine/mp3.js,engine/mp3-engine.js l = 0, f = 0, c = 0, - u = t, - h = 0, - b = u, + h = t, + u = 0, + m = h, p = 0, - m = e, + b = e, v = 0; - for (o = null != s && n.global_gain == s.global_gain, i = n.block_type == Ae.SHORT_TYPE ? 38 : 21, r = 0; r <= i; r++) { + for (o = null != n && s.global_gain == n.global_gain, i = s.block_type == Pe.SHORT_TYPE ? 38 : 21, r = 0; r <= i; r++) { var d = -1; - if ((o || n.block_type == Ae.NORM_TYPE) && (d = n.global_gain - (n.scalefac[r] + (0 != n.preflag ? S.pretab[r] : 0) << n.scalefac_scale + 1) - 8 * n.subblock_gain[n.window[r]]), o && s.step[r] == d) 0 != l && (y(l, a, m, v, b, p), l = 0), 0 != f && me();else { + if ((o || s.block_type == Pe.NORM_TYPE) && (d = s.global_gain - (s.scalefac[r] + (0 != s.preflag ? M.pretab[r] : 0) << s.scalefac_scale + 1) - 8 * s.subblock_gain[s.window[r]]), o && n.step[r] == d) 0 != l && (R(l, a, b, v, m, p), l = 0), 0 != f && (w(f, a, b, v, m, p), f = 0);else { var g, - w = n.width[r]; - if (_ + n.width[r] > n.max_nonzero_coeff && (g = n.max_nonzero_coeff - _ + 1, we.fill(t, n.max_nonzero_coeff, 576, 0), (w = g) < 0 && (w = 0), r = i + 1), 0 == l && 0 == f && (b = u, p = h, m = e, v = c), null != s && 0 < s.sfb_count1 && r >= s.sfb_count1 && 0 < s.step[r] && d >= s.step[r] ? (0 != l && (y(l, a, m, v, b, p), l = 0, b = u, p = h, m = e, v = c), f += w) : (0 != f && (M(f, a, m, v, b, p), f = 0, b = u, p = h, m = e, v = c), l += w), w <= 0) { - 0 != f && me(), 0 != l && me(); + S = s.width[r]; + if (_ + s.width[r] > s.max_nonzero_coeff && (g = s.max_nonzero_coeff - _ + 1, ye.fill(t, s.max_nonzero_coeff, 576, 0), (S = g) < 0 && (S = 0), r = i + 1), 0 == l && 0 == f && (m = h, p = u, b = e, v = c), null != n && 0 < n.sfb_count1 && r >= n.sfb_count1 && 0 < n.step[r] && d >= n.step[r] ? (0 != l && (R(l, a, b, v, m, p), l = 0, m = h, p = u, b = e, v = c), f += S) : (0 != f && (w(f, a, b, v, m, p), f = 0, m = h, p = u, b = e, v = c), l += S), S <= 0) { + 0 != f && (w(f, a, b, v, m, p), f = 0), 0 != l && (R(l, a, b, v, m, p), l = 0); break; } } - r <= i && (h += n.width[r], c += n.width[r], _ += n.width[r]); + r <= i && (u += s.width[r], c += s.width[r], _ += s.width[r]); } - 0 != l && (y(l, a, m, v, b, p), l = 0), 0 != f && me(); - }(t, s, S.IPOW20(a.global_gain), a, n), 0 != (2 & e.substep_shaping) && me(), this.noquant_count_bits(e, a, n)); + 0 != l && (R(l, a, b, v, m, p), l = 0), 0 != f && (w(f, a, b, v, m, p), f = 0); + }(t, n, M.IPOW20(a.global_gain), a, s), 0 != (2 & e.substep_shaping)) for (var i = 0, o = a.global_gain + a.scalefac_scale, _ = .634521682242439 / M.IPOW20(o), l = 0; l < a.sfbmax; l++) { + var f, + c = a.width[l]; + if (0 == e.pseudohalf[l]) i += c;else for (f = i, i += c; f < i; ++f) n[f] = t[f] >= _ ? n[f] : 0; + } + return this.noquant_count_bits(e, a, s); }, this.best_huffman_divide = function (e, t) { - var a = new B(), - n = t.l3_enc, - s = ve(23), - r = ve(23), - i = ve(23), - o = ve(23); - if (t.block_type != Ae.SHORT_TYPE || 1 != e.mode_gr) { - a.assign(t), t.block_type == Ae.NORM_TYPE && (function (e, t, a, n, s, r, i) { - for (var o = t.big_values, _ = 0; _ <= 22; _++) n[_] = T.LARGE_BITS; - for (var _ = 0; _ < 16; _++) { + var a = new T(), + s = t.l3_enc, + n = Ae(23), + r = Ae(23), + i = Ae(23), + o = Ae(23); + if (t.block_type != Pe.SHORT_TYPE || 1 != e.mode_gr) { + a.assign(t), t.block_type == Pe.NORM_TYPE && (!function (e, t, a, s, n, r, i) { + for (var o = t.big_values, _ = 0; _ <= 22; _++) s[_] = x.LARGE_BITS; + for (_ = 0; _ < 16; _++) { var l = e.scalefac_band.l[_ + 1]; if (o <= l) break; var f = 0, c = new v(f), - u = d(a, 0, l, c); + h = d(a, 0, l, c); f = c.bits; - for (var h = 0; h < 8; h++) { - var b = e.scalefac_band.l[_ + h + 2]; - if (o <= b) break; - var p = f; - c = new v(p); - var m = d(a, l, b, c); - p = c.bits, n[_ + h] > p && (n[_ + h] = p, s[_ + h] = _, r[_ + h] = u, i[_ + h] = m); + for (var u = 0; u < 8; u++) { + var m = e.scalefac_band.l[_ + u + 2]; + if (o <= m) break; + var p = f, + b = d(a, l, m, c = new v(p)); + p = c.bits, s[_ + u] > p && (s[_ + u] = p, r[(n[_ + u] = _) + u] = h, i[_ + u] = b); } } - }(e, t, n, s, r, i, o), h(e, a, t, n, s, r, i, o)); + }(e, t, s, n, r, i, o), u(e, a, t, s, n, r, i, o)); var _ = a.big_values; - if (!(0 == _ || 1 < (n[_ - 2] | n[_ - 1]) || 576 < (_ = t.count1 + 2))) { + if (!(0 == _ || 1 < (s[_ - 2] | s[_ - 1]) || 576 < (_ = t.count1 + 2))) { a.assign(t), a.count1 = _; for (var l = 0, f = 0; _ > a.big_values; _ -= 4) { - var c = 2 * (2 * (2 * n[_ - 4] + n[_ - 3]) + n[_ - 2]) + n[_ - 1]; - l += k.t32l[c], f += k.t33l[c]; + var c = 2 * (2 * (2 * s[_ - 4] + s[_ - 3]) + s[_ - 2]) + s[_ - 1]; + l += F.t32l[c], f += F.t33l[c]; } - if (a.big_values = _, a.count1table_select = 0, f < l && (l = f, a.count1table_select = 1), a.count1bits = l, a.block_type == Ae.NORM_TYPE) h(e, a, t, n, s, r, i, o);else { - if (a.part2_3_length = l, l = e.scalefac_band.l[8], _ < l && (l = _), 0 < l) { - var u = new v(a.part2_3_length); - a.table_select[0] = d(n, 0, l, u), a.part2_3_length = u.bits; + if (a.big_values = _, a.count1table_select = 0, f < l && (l = f, a.count1table_select = 1), a.count1bits = l, a.block_type == Pe.NORM_TYPE) u(e, a, t, s, n, r, i, o);else { + if (a.part2_3_length = l, _ < (l = e.scalefac_band.l[8]) && (l = _), 0 < l) { + var h = new v(a.part2_3_length); + a.table_select[0] = d(s, 0, l, h), a.part2_3_length = h.bits; } if (l < _) { - var u = new v(a.part2_3_length); - a.table_select[1] = d(n, l, _, u), a.part2_3_length = u.bits; + h = new v(a.part2_3_length); + a.table_select[1] = d(s, l, _, h), a.part2_3_length = h.bits; } t.part2_3_length > a.part2_3_length && t.assign(a); } } } }; - var u = [1, 1, 1, 1, 8, 2, 2, 2, 4, 4, 4, 8, 8, 8, 16, 16], - b = [1, 2, 4, 8, 1, 2, 4, 8, 2, 4, 8, 2, 4, 8, 4, 8], + var h = [1, 1, 1, 1, 8, 2, 2, 2, 4, 4, 4, 8, 8, 8, 16, 16], + m = [1, 2, 4, 8, 1, 2, 4, 8, 2, 4, 8, 2, 4, 8, 4, 8], p = [0, 0, 0, 0, 3, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4], - m = [0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3]; - A.slen1_tab = p, A.slen2_tab = m, this.best_scalefac_store = function (e, t, a, n) { - var s, + b = [0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3]; + k.slen1_tab = p, k.slen2_tab = b, this.best_scalefac_store = function (e, t, a, s) { + var n, r, i, o, - _ = n.tt[t][a], + _ = s.tt[t][a], l = 0; - for (s = i = 0; s < _.sfbmax; s++) { - var f = _.width[s]; + for (n = i = 0; n < _.sfbmax; n++) { + var f = _.width[n]; for (i += f, o = -f; o < 0 && 0 == _.l3_enc[o + i]; o++); - 0 == o && (_.scalefac[s] = l = -2); + 0 == o && (_.scalefac[n] = l = -2); } if (0 == _.scalefac_scale && 0 == _.preflag) { var c = 0; - for (s = 0; s < _.sfbmax; s++) 0 < _.scalefac[s] && (c |= _.scalefac[s]); + for (n = 0; n < _.sfbmax; n++) 0 < _.scalefac[n] && (c |= _.scalefac[n]); if (0 == (1 & c) && 0 != c) { - for (s = 0; s < _.sfbmax; s++) 0 < _.scalefac[s] && (_.scalefac[s] >>= 1); + for (n = 0; n < _.sfbmax; n++) 0 < _.scalefac[n] && (_.scalefac[n] >>= 1); _.scalefac_scale = l = 1; } } - if (0 == _.preflag && _.block_type != Ae.SHORT_TYPE && 2 == e.mode_gr) { - for (s = 11; s < Ae.SBPSY_l && !(_.scalefac[s] < S.pretab[s] && -2 != _.scalefac[s]); s++); - if (s == Ae.SBPSY_l) { - for (s = 11; s < Ae.SBPSY_l; s++) 0 < _.scalefac[s] && (_.scalefac[s] -= S.pretab[s]); + if (0 == _.preflag && _.block_type != Pe.SHORT_TYPE && 2 == e.mode_gr) { + for (n = 11; n < Pe.SBPSY_l && !(_.scalefac[n] < M.pretab[n] && -2 != _.scalefac[n]); n++); + if (n == Pe.SBPSY_l) { + for (n = 11; n < Pe.SBPSY_l; n++) 0 < _.scalefac[n] && (_.scalefac[n] -= M.pretab[n]); _.preflag = l = 1; } } - for (r = 0; r < 4; r++) n.scfsi[a][r] = 0; - for (2 == e.mode_gr && 1 == t && n.tt[0][a].block_type != Ae.SHORT_TYPE && n.tt[1][a].block_type != Ae.SHORT_TYPE && (function (e, t) { - for (var a, n = t.tt[1][e], s = t.tt[0][e], r = 0; r < k.scfsi_band.length - 1; r++) { - for (a = k.scfsi_band[r]; a < k.scfsi_band[r + 1] && !(s.scalefac[a] != n.scalefac[a] && 0 <= n.scalefac[a]); a++); - if (a == k.scfsi_band[r + 1]) { - for (a = k.scfsi_band[r]; a < k.scfsi_band[r + 1]; a++) n.scalefac[a] = -1; + for (r = 0; r < 4; r++) s.scfsi[a][r] = 0; + for (2 == e.mode_gr && 1 == t && s.tt[0][a].block_type != Pe.SHORT_TYPE && s.tt[1][a].block_type != Pe.SHORT_TYPE && (!function (e, t) { + for (var a, s = t.tt[1][e], n = t.tt[0][e], r = 0; r < F.scfsi_band.length - 1; r++) { + for (a = F.scfsi_band[r]; a < F.scfsi_band[r + 1] && !(n.scalefac[a] != s.scalefac[a] && 0 <= s.scalefac[a]); a++); + if (a == F.scfsi_band[r + 1]) { + for (a = F.scfsi_band[r]; a < F.scfsi_band[r + 1]; a++) s.scalefac[a] = -1; t.scfsi[e][r] = 1; } } var i = 0, o = 0; - for (a = 0; a < 11; a++) -1 != n.scalefac[a] && (o++, i < n.scalefac[a] && (i = n.scalefac[a])); - for (var _ = 0, l = 0; a < Ae.SBPSY_l; a++) -1 != n.scalefac[a] && (l++, _ < n.scalefac[a] && (_ = n.scalefac[a])); - for (var r = 0; r < 16; r++) if (i < u[r] && _ < b[r]) { - var f = p[r] * o + m[r] * l; - n.part2_length > f && (n.part2_length = f, n.scalefac_compress = r); + for (a = 0; a < 11; a++) -1 != s.scalefac[a] && (o++, i < s.scalefac[a] && (i = s.scalefac[a])); + for (var _ = 0, l = 0; a < Pe.SBPSY_l; a++) -1 != s.scalefac[a] && (l++, _ < s.scalefac[a] && (_ = s.scalefac[a])); + for (r = 0; r < 16; r++) if (i < h[r] && _ < m[r]) { + var f = p[r] * o + b[r] * l; + s.part2_length > f && (s.part2_length = f, s.scalefac_compress = r); } - }(a, n), l = 0), s = 0; s < _.sfbmax; s++) -2 == _.scalefac[s] && (_.scalefac[s] = 0); + }(a, s), l = 0), n = 0; n < _.sfbmax; n++) -2 == _.scalefac[n] && (_.scalefac[n] = 0); 0 != l && (2 == e.mode_gr ? this.scale_bitcount(_) : this.scale_bitcount_lsf(e, _)); }; var _ = [0, 18, 36, 54, 54, 36, 54, 72, 54, 72, 90, 72, 90, 108, 108, 126], @@ -13667,458 +13322,476 @@ src: recorder-core.js,engine/mp3.js,engine/mp3-engine.js this.scale_bitcount = function (e) { var t, a, - n, - s = 0, + s, + n = 0, r = 0, i = e.scalefac; - if (e.block_type == Ae.SHORT_TYPE) n = _, 0 != e.mixed_block_flag && (n = l);else if (n = f, 0 == e.preflag) { - for (a = 11; a < Ae.SBPSY_l && !(i[a] < S.pretab[a]); a++); - if (a == Ae.SBPSY_l) for (e.preflag = 1, a = 11; a < Ae.SBPSY_l; a++) i[a] -= S.pretab[a]; + if (e.block_type == Pe.SHORT_TYPE) s = _, 0 != e.mixed_block_flag && (s = l);else if (s = f, 0 == e.preflag) { + for (a = 11; a < Pe.SBPSY_l && !(i[a] < M.pretab[a]); a++); + if (a == Pe.SBPSY_l) for (e.preflag = 1, a = 11; a < Pe.SBPSY_l; a++) i[a] -= M.pretab[a]; } - for (a = 0; a < e.sfbdivide; a++) s < i[a] && (s = i[a]); + for (a = 0; a < e.sfbdivide; a++) n < i[a] && (n = i[a]); for (; a < e.sfbmax; a++) r < i[a] && (r = i[a]); - for (e.part2_length = T.LARGE_BITS, t = 0; t < 16; t++) s < u[t] && r < b[t] && e.part2_length > n[t] && (e.part2_length = n[t], e.scalefac_compress = t); - return e.part2_length == T.LARGE_BITS; + for (e.part2_length = x.LARGE_BITS, t = 0; t < 16; t++) n < h[t] && r < m[t] && e.part2_length > s[t] && (e.part2_length = s[t], e.scalefac_compress = t); + return e.part2_length == x.LARGE_BITS; }; var g = [[15, 15, 7, 7], [15, 15, 7, 0], [7, 3, 0, 0], [15, 31, 31, 0], [7, 7, 7, 0], [3, 3, 0, 0]]; this.scale_bitcount_lsf = function (e, t) { var a, - n, s, + n, r, i, o, _, l, - f = ve(4), + f = Ae(4), c = t.scalefac; for (a = 0 != t.preflag ? 2 : 0, _ = 0; _ < 4; _++) f[_] = 0; - if (t.block_type == Ae.SHORT_TYPE) { - n = 1; - var u = S.nr_of_sfb_block[a][n]; - for (s = l = 0; s < 4; s++) for (r = u[s] / 3, _ = 0; _ < r; _++, l++) for (i = 0; i < 3; i++) c[3 * l + i] > f[s] && (f[s] = c[3 * l + i]); + if (t.block_type == Pe.SHORT_TYPE) { + s = 1; + var h = M.nr_of_sfb_block[a][s]; + for (n = l = 0; n < 4; n++) for (r = h[n] / 3, _ = 0; _ < r; _++, l++) for (i = 0; i < 3; i++) c[3 * l + i] > f[n] && (f[n] = c[3 * l + i]); } else { - n = 0; - var u = S.nr_of_sfb_block[a][n]; - for (s = l = 0; s < 4; s++) for (r = u[s], _ = 0; _ < r; _++, l++) c[l] > f[s] && (f[s] = c[l]); + s = 0; + h = M.nr_of_sfb_block[a][s]; + for (n = l = 0; n < 4; n++) for (r = h[n], _ = 0; _ < r; _++, l++) c[l] > f[n] && (f[n] = c[l]); } - for (o = !1, s = 0; s < 4; s++) f[s] > g[a][s] && (o = !0); + for (o = !1, n = 0; n < 4; n++) f[n] > g[a][n] && (o = !0); if (!o) { - var h, b, p, m; - for (t.sfb_partition_table = S.nr_of_sfb_block[a][n], s = 0; s < 4; s++) t.slen[s] = w[f[s]]; - switch (h = t.slen[0], b = t.slen[1], p = t.slen[2], m = t.slen[3], a) { + var u, m, p, b; + for (t.sfb_partition_table = M.nr_of_sfb_block[a][s], n = 0; n < 4; n++) t.slen[n] = S[f[n]]; + switch (u = t.slen[0], m = t.slen[1], p = t.slen[2], b = t.slen[3], a) { case 0: - t.scalefac_compress = (5 * h + b << 4) + (p << 2) + m; + t.scalefac_compress = (5 * u + m << 4) + (p << 2) + b; break; case 1: - t.scalefac_compress = 400 + (5 * h + b << 2) + p; + t.scalefac_compress = 400 + (5 * u + m << 2) + p; break; case 2: - t.scalefac_compress = 500 + 3 * h + b; + t.scalefac_compress = 500 + 3 * u + m; + break; + default: + $.err.printf("intensity stereo not implemented yet\n"); } } - if (!o) for (t.part2_length = 0, s = 0; s < 4; s++) t.part2_length += t.slen[s] * t.sfb_partition_table[s]; + if (!o) for (n = t.part2_length = 0; n < 4; n++) t.part2_length += t.slen[n] * t.sfb_partition_table[n]; return o; }; - var w = [0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4]; + var S = [0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4]; this.huffman_init = function (e) { for (var t = 2; t <= 576; t += 2) { - for (var a, n = 0; e.scalefac_band.l[++n] < t;); - for (a = s[n][0]; e.scalefac_band.l[a + 1] > t;) a--; - for (a < 0 && (a = s[n][0]), e.bv_scf[t - 2] = a, a = s[n][1]; e.scalefac_band.l[a + e.bv_scf[t - 2] + 2] > t;) a--; - a < 0 && (a = s[n][1]), e.bv_scf[t - 1] = a; + for (var a, s = 0; e.scalefac_band.l[++s] < t;); + for (a = n[s][0]; e.scalefac_band.l[a + 1] > t;) a--; + for (a < 0 && (a = n[s][0]), e.bv_scf[t - 2] = a, a = n[s][1]; e.scalefac_band.l[a + e.bv_scf[t - 2] + 2] > t;) a--; + a < 0 && (a = n[s][1]), e.bv_scf[t - 1] = a; } }; } - function O() {} - function y() { - this.setModules = function (e, t, a) {}; + function X() {} + function M() { + this.setModules = function (e, t, a) { + }; var o = [0, 49345, 49537, 320, 49921, 960, 640, 49729, 50689, 1728, 1920, 51009, 1280, 50625, 50305, 1088, 52225, 3264, 3456, 52545, 3840, 53185, 52865, 3648, 2560, 51905, 52097, 2880, 51457, 2496, 2176, 51265, 55297, 6336, 6528, 55617, 6912, 56257, 55937, 6720, 7680, 57025, 57217, 8e3, 56577, 7616, 7296, 56385, 5120, 54465, 54657, 5440, 55041, 6080, 5760, 54849, 53761, 4800, 4992, 54081, 4352, 53697, 53377, 4160, 61441, 12480, 12672, 61761, 13056, 62401, 62081, 12864, 13824, 63169, 63361, 14144, 62721, 13760, 13440, 62529, 15360, 64705, 64897, 15680, 65281, 16320, 16e3, 65089, 64001, 15040, 15232, 64321, 14592, 63937, 63617, 14400, 10240, 59585, 59777, 10560, 60161, 11200, 10880, 59969, 60929, 11968, 12160, 61249, 11520, 60865, 60545, 11328, 58369, 9408, 9600, 58689, 9984, 59329, 59009, 9792, 8704, 58049, 58241, 9024, 57601, 8640, 8320, 57409, 40961, 24768, 24960, 41281, 25344, 41921, 41601, 25152, 26112, 42689, 42881, 26432, 42241, 26048, 25728, 42049, 27648, 44225, 44417, 27968, 44801, 28608, 28288, 44609, 43521, 27328, 27520, 43841, 26880, 43457, 43137, 26688, 30720, 47297, 47489, 31040, 47873, 31680, 31360, 47681, 48641, 32448, 32640, 48961, 32e3, 48577, 48257, 31808, 46081, 29888, 30080, 46401, 30464, 47041, 46721, 30272, 29184, 45761, 45953, 29504, 45313, 29120, 28800, 45121, 20480, 37057, 37249, 20800, 37633, 21440, 21120, 37441, 38401, 22208, 22400, 38721, 21760, 38337, 38017, 21568, 39937, 23744, 23936, 40257, 24320, 40897, 40577, 24128, 23040, 39617, 39809, 23360, 39169, 22976, 22656, 38977, 34817, 18624, 18816, 35137, 19200, 35777, 35457, 19008, 19968, 36545, 36737, 20288, 36097, 19904, 19584, 35905, 17408, 33985, 34177, 17728, 34561, 18368, 18048, 34369, 33281, 17088, 17280, 33601, 16640, 33217, 32897, 16448]; - this.updateMusicCRC = function (e, t, a, n) { - for (var s = 0; s < n; ++s) e[0] = (r = t[a + s], i = (i = e[0]) >> 8 ^ o[255 & (i ^ r)]); + this.updateMusicCRC = function (e, t, a, s) { + for (var n = 0; n < s; ++n) e[0] = (r = t[a + n], i = (i = e[0]) >> 8 ^ o[255 & (i ^ r)]); var r, i; }; } - function N() { - var i = this, + function q() { + var _ = this, + s = 32773, + c = null, + h = null, r = null, - o = null; - this.setModules = function (e, t, a, n) { - r = a, o = n; + u = null; + this.setModules = function (e, t, a, s) { + c = e, h = t, r = a, u = s; }; - var _ = null, + var m = null, l = 0, - f = 0, - c = 0; + p = 0, + b = 0; function v(e, t, a) { for (; 0 < a;) { - var n; - 0 == c && (c = 8, f++, e.header[e.w_ptr].write_timing == l && (s = e, I.arraycopy(s.header[s.w_ptr].buf, 0, _, f, s.sideinfo_len), f += s.sideinfo_len, l += 8 * s.sideinfo_len, s.w_ptr = s.w_ptr + 1 & j.MAX_HEADER_BUF - 1), _[f] = 0), n = Math.min(a, c), a -= n, c -= n, _[f] |= t >> a << c, l += n; + var s; + 0 == b && (b = 8, p++, e.header[e.w_ptr].write_timing == l && (n = e, $.arraycopy(n.header[n.w_ptr].buf, 0, m, p, n.sideinfo_len), p += n.sideinfo_len, l += 8 * n.sideinfo_len, n.w_ptr = n.w_ptr + 1 & Z.MAX_HEADER_BUF - 1), m[p] = 0), a -= s = Math.min(a, b), b -= s, m[p] |= t >> a << b, l += s; } - var s; + var n; } - function u(e, t) { + function i(e, t, a) { + for (; 0 < a;) { + var s; + 0 == b && (b = 8, m[++p] = 0), a -= s = Math.min(a, b), b -= s, m[p] |= t >> a << b, l += s; + } + } + function o(e, t) { var a, - n = e.internal_flags; - if (8 <= t && (v(n, 76, 8), t -= 8), 8 <= t && (v(n, 65, 8), t -= 8), 8 <= t && (v(n, 77, 8), t -= 8), 8 <= t && (v(n, 69, 8), t -= 8), 32 <= t) { - var s = r.getLameShortVersion(); - if (32 <= t) for (a = 0; a < s.length && 8 <= t; ++a) t -= 8, v(n, s.charCodeAt(a), 8); + s = e.internal_flags; + if (8 <= t && (v(s, 76, 8), t -= 8), 8 <= t && (v(s, 65, 8), t -= 8), 8 <= t && (v(s, 77, 8), t -= 8), 8 <= t && (v(s, 69, 8), t -= 8), 32 <= t) { + var n = r.getLameShortVersion(); + if (32 <= t) for (a = 0; a < n.length && 8 <= t; ++a) t -= 8, v(s, n.charCodeAt(a), 8); } - for (; 1 <= t; t -= 1) v(n, n.ancillary_flag, 1), n.ancillary_flag ^= e.disable_reservoir ? 0 : 1; + for (; 1 <= t; t -= 1) v(s, s.ancillary_flag, 1), s.ancillary_flag ^= e.disable_reservoir ? 0 : 1; } - function h(e, t, a) { - for (var n = e.header[e.h_ptr].ptr; 0 < a;) { - var s = Math.min(a, 8 - (7 & n)); - a -= s, e.header[e.h_ptr].buf[n >> 3] |= t >> a << 8 - (7 & n) - s, n += s; + function f(e, t, a) { + for (var s = e.header[e.h_ptr].ptr; 0 < a;) { + var n = Math.min(a, 8 - (7 & s)); + a -= n, e.header[e.h_ptr].buf[s >> 3] |= t >> a << 8 - (7 & s) - n, s += n; } - e.header[e.h_ptr].ptr = n; + e.header[e.h_ptr].ptr = s; } - function m(e, t) { + function n(e, t) { + e <<= 8; + for (var a = 0; a < 8; a++) 0 != (65536 & ((t <<= 1) ^ (e <<= 1))) && (t ^= s); + return t; + } + function d(e, t) { var a, - n = k.ht[t.count1table_select + 32], - s = 0, + s = F.ht[t.count1table_select + 32], + n = 0, r = t.big_values, i = t.big_values; for (a = (t.count1 - t.big_values) / 4; 0 < a; --a) { var o = 0, _ = 0; - 0 != t.l3_enc[r + 0] && (_ += 8, t.xr[i + 0] < 0 && o++), 0 != t.l3_enc[r + 1] && (_ += 4, o *= 2, t.xr[i + 1] < 0 && o++), 0 != t.l3_enc[r + 2] && (_ += 2, o *= 2, t.xr[i + 2] < 0 && o++), 0 != t.l3_enc[r + 3] && (_++, o *= 2, t.xr[i + 3] < 0 && o++), r += 4, i += 4, v(e, o + n.table[_], n.hlen[_]), s += n.hlen[_]; + 0 != t.l3_enc[r + 0] && (_ += 8, t.xr[i + 0] < 0 && o++), 0 != t.l3_enc[r + 1] && (_ += 4, o *= 2, t.xr[i + 1] < 0 && o++), 0 != t.l3_enc[r + 2] && (_ += 2, o *= 2, t.xr[i + 2] < 0 && o++), 0 != t.l3_enc[r + 3] && (_++, o *= 2, t.xr[i + 3] < 0 && o++), r += 4, i += 4, v(e, o + s.table[_], s.hlen[_]), n += s.hlen[_]; } - return s; + return n; } - function b(e, t, a, n, s) { - var r = k.ht[t], + function g(e, t, a, s, n) { + var r = F.ht[t], i = 0; if (0 == t) return i; - for (var o = a; o < n; o += 2) { + for (var o = a; o < s; o += 2) { var _ = 0, l = 0, f = r.xlen, c = r.xlen, - u = 0, - h = s.l3_enc[o], - b = s.l3_enc[o + 1]; - if (0 != h && (s.xr[o] < 0 && u++, _--), 15 < t) { - if (14 < h) { - var p = h - 15; - u |= p << 1, l = f, h = 15; - } - if (14 < b) { - var m = b - 15; - u <<= f, u |= m, l += f, b = 15; - } + h = 0, + u = n.l3_enc[o], + m = n.l3_enc[o + 1]; + if (0 != u && (n.xr[o] < 0 && h++, _--), 15 < t) { + if (14 < u) h |= u - 15 << 1, l = f, u = 15; + if (14 < m) h <<= f, h |= m - 15, l += f, m = 15; c = 16; } - 0 != b && (u <<= 1, s.xr[o + 1] < 0 && u++, _--), h = h * c + b, l -= _, _ += r.hlen[h], v(e, r.table[h], _), v(e, u, l), i += _ + l; + 0 != m && (h <<= 1, n.xr[o + 1] < 0 && h++, _--), u = u * c + m, l -= _, _ += r.hlen[u], v(e, r.table[u], _), v(e, h, l), i += _ + l; } return i; } - function d(e, t) { + function S(e, t) { var a = 3 * e.scalefac_band.s[3]; a > t.big_values && (a = t.big_values); - var n = b(e, t.table_select[0], 0, a, t); - return n += b(e, t.table_select[1], a, t.big_values, t); + var s = g(e, t.table_select[0], 0, a, t); + return s += g(e, t.table_select[1], a, t.big_values, t); } - function g(e, t) { - var a, n, s, r; + function M(e, t) { + var a, s, n, r; a = t.big_values; var i = t.region0_count + 1; - return s = e.scalefac_band.l[i], i += t.region1_count + 1, r = e.scalefac_band.l[i], a < s && (s = a), a < r && (r = a), n = b(e, t.table_select[0], 0, s, t), n += b(e, t.table_select[1], s, r, t), n += b(e, t.table_select[2], r, a, t); + return n = e.scalefac_band.l[i], i += t.region1_count + 1, a < n && (n = a), a < (r = e.scalefac_band.l[i]) && (r = a), s = g(e, t.table_select[0], 0, n, t), s += g(e, t.table_select[1], n, r, t), s += g(e, t.table_select[2], r, a, t); } - function p() { + function w() { this.total = 0; } - function w(e, t) { + function R(e, t) { var a, - n, s, - r = e.internal_flags; - return r.w_ptr, -1 == (s = r.h_ptr - 1) && (s = j.MAX_HEADER_BUF - 1), a = r.header[s].write_timing - l, 0 <= (t.total = a) && me(), n = i.getframebits(e), a += n, t.total += n, t.total % 8 != 0 ? t.total = 1 + t.total / 8 : t.total = t.total / 8, t.total += f + 1, a; + n, + r, + i, + o = e.internal_flags; + return i = o.w_ptr, -1 == (r = o.h_ptr - 1) && (r = Z.MAX_HEADER_BUF - 1), a = o.header[r].write_timing - l, 0 <= (t.total = a) && (s = 1 + r - i, r < i && (s = 1 + r - i + Z.MAX_HEADER_BUF), a -= 8 * s * o.sideinfo_len), a += n = _.getframebits(e), t.total += n, t.total % 8 != 0 ? t.total = 1 + t.total / 8 : t.total = t.total / 8, t.total += p + 1, a < 0 && $.err.println("strange error flushing buffer ... \n"), a; } this.getframebits = function (e) { var t, a = e.internal_flags; - t = 0 != a.bitrate_index ? k.bitrate_table[e.version][a.bitrate_index] : e.brate; - var n = 0 | 72e3 * (e.version + 1) * t / e.out_samplerate + a.padding; - return 8 * n; + return t = 0 != a.bitrate_index ? F.bitrate_table[e.version][a.bitrate_index] : e.brate, 8 * (0 | 72e3 * (e.version + 1) * t / e.out_samplerate + a.padding); + }, this.CRC_writeheader = function (e, t) { + var a = 65535; + a = n(255 & t[2], a), a = n(255 & t[3], a); + for (var s = 6; s < e.sideinfo_len; s++) a = n(255 & t[s], a); + t[4] = byte(a >> 8), t[5] = byte(255 & a); }, this.flush_bitstream = function (e) { var t, a, - n = e.internal_flags; - n.h_ptr - 1; - t = n.l3_side, (a = w(e, new p())) < 0 || (u(e, a), n.ResvSize = 0, t.main_data_begin = 0, n.findReplayGain && me(), n.findPeakSample && me()); + s = e.internal_flags; + s.h_ptr - 1; + if (t = s.l3_side, !((a = R(e, new w())) < 0)) { + if (o(e, a), s.ResvSize = 0, t.main_data_begin = 0, s.findReplayGain) { + var r = c.GetTitleGain(s.rgdata); + s.RadioGain = 0 | Math.floor(10 * r + .5); + } + s.findPeakSample && (s.noclipGainChange = 0 | Math.ceil(20 * B(s.PeakSample / 32767) * 10), 0 < s.noclipGainChange && (EQ(e.scale, 1) || EQ(e.scale, 0)) ? s.noclipScale = Math.floor(32767 / s.PeakSample * 100) / 100 : s.noclipScale = -1); + } + }, this.add_dummy_byte = function (e, t, a) { + for (var s, n = e.internal_flags; 0 < a--;) for (i(0, t, 8), s = 0; s < Z.MAX_HEADER_BUF; ++s) n.header[s].write_timing += 8; }, this.format_bitstream = function (e) { var t, a = e.internal_flags; t = a.l3_side; - var n = this.getframebits(e); - u(e, t.resvDrain_pre), function (e, t) { + var s = this.getframebits(e); + o(e, t.resvDrain_pre), function (e, t) { var a, - n, s, + n, r = e.internal_flags; - if (a = r.l3_side, r.header[r.h_ptr].ptr = 0, we.fill(r.header[r.h_ptr].buf, 0, r.sideinfo_len, 0), e.out_samplerate < 16e3 ? h(r, 4094, 12) : h(r, 4095, 12), h(r, e.version, 1), h(r, 1, 2), h(r, e.error_protection ? 0 : 1, 1), h(r, r.bitrate_index, 4), h(r, r.samplerate_index, 2), h(r, r.padding, 1), h(r, e.extension, 1), h(r, e.mode.ordinal(), 2), h(r, r.mode_ext, 2), h(r, e.copyright, 1), h(r, e.original, 1), h(r, e.emphasis, 2), e.error_protection && h(r, 0, 16), 1 == e.version) { - for (h(r, a.main_data_begin, 9), 2 == r.channels_out ? h(r, a.private_bits, 3) : h(r, a.private_bits, 5), s = 0; s < r.channels_out; s++) { + if (a = r.l3_side, r.header[r.h_ptr].ptr = 0, ye.fill(r.header[r.h_ptr].buf, 0, r.sideinfo_len, 0), e.out_samplerate < 16e3 ? f(r, 4094, 12) : f(r, 4095, 12), f(r, e.version, 1), f(r, 1, 2), f(r, e.error_protection ? 0 : 1, 1), f(r, r.bitrate_index, 4), f(r, r.samplerate_index, 2), f(r, r.padding, 1), f(r, e.extension, 1), f(r, e.mode.ordinal(), 2), f(r, r.mode_ext, 2), f(r, e.copyright, 1), f(r, e.original, 1), f(r, e.emphasis, 2), e.error_protection && f(r, 0, 16), 1 == e.version) { + for (f(r, a.main_data_begin, 9), 2 == r.channels_out ? f(r, a.private_bits, 3) : f(r, a.private_bits, 5), n = 0; n < r.channels_out; n++) { var i; - for (i = 0; i < 4; i++) h(r, a.scfsi[s][i], 1); + for (i = 0; i < 4; i++) f(r, a.scfsi[n][i], 1); } - for (n = 0; n < 2; n++) for (s = 0; s < r.channels_out; s++) { - var o = a.tt[n][s]; - h(r, o.part2_3_length + o.part2_length, 12), h(r, o.big_values / 2, 9), h(r, o.global_gain, 8), h(r, o.scalefac_compress, 4), o.block_type != Ae.NORM_TYPE ? (h(r, 1, 1), h(r, o.block_type, 2), h(r, o.mixed_block_flag, 1), 14 == o.table_select[0] && (o.table_select[0] = 16), h(r, o.table_select[0], 5), 14 == o.table_select[1] && (o.table_select[1] = 16), h(r, o.table_select[1], 5), h(r, o.subblock_gain[0], 3), h(r, o.subblock_gain[1], 3), h(r, o.subblock_gain[2], 3)) : (h(r, 0, 1), 14 == o.table_select[0] && (o.table_select[0] = 16), h(r, o.table_select[0], 5), 14 == o.table_select[1] && (o.table_select[1] = 16), h(r, o.table_select[1], 5), 14 == o.table_select[2] && (o.table_select[2] = 16), h(r, o.table_select[2], 5), h(r, o.region0_count, 4), h(r, o.region1_count, 3)), h(r, o.preflag, 1), h(r, o.scalefac_scale, 1), h(r, o.count1table_select, 1); - } - } else for (h(r, a.main_data_begin, 8), h(r, a.private_bits, r.channels_out), s = n = 0; s < r.channels_out; s++) { - var o = a.tt[n][s]; - h(r, o.part2_3_length + o.part2_length, 12), h(r, o.big_values / 2, 9), h(r, o.global_gain, 8), h(r, o.scalefac_compress, 9), o.block_type != Ae.NORM_TYPE ? (h(r, 1, 1), h(r, o.block_type, 2), h(r, o.mixed_block_flag, 1), 14 == o.table_select[0] && (o.table_select[0] = 16), h(r, o.table_select[0], 5), 14 == o.table_select[1] && (o.table_select[1] = 16), h(r, o.table_select[1], 5), h(r, o.subblock_gain[0], 3), h(r, o.subblock_gain[1], 3), h(r, o.subblock_gain[2], 3)) : (h(r, 0, 1), 14 == o.table_select[0] && (o.table_select[0] = 16), h(r, o.table_select[0], 5), 14 == o.table_select[1] && (o.table_select[1] = 16), h(r, o.table_select[1], 5), 14 == o.table_select[2] && (o.table_select[2] = 16), h(r, o.table_select[2], 5), h(r, o.region0_count, 4), h(r, o.region1_count, 3)), h(r, o.scalefac_scale, 1), h(r, o.count1table_select, 1); + for (s = 0; s < 2; s++) for (n = 0; n < r.channels_out; n++) f(r, (o = a.tt[s][n]).part2_3_length + o.part2_length, 12), f(r, o.big_values / 2, 9), f(r, o.global_gain, 8), f(r, o.scalefac_compress, 4), o.block_type != Pe.NORM_TYPE ? (f(r, 1, 1), f(r, o.block_type, 2), f(r, o.mixed_block_flag, 1), 14 == o.table_select[0] && (o.table_select[0] = 16), f(r, o.table_select[0], 5), 14 == o.table_select[1] && (o.table_select[1] = 16), f(r, o.table_select[1], 5), f(r, o.subblock_gain[0], 3), f(r, o.subblock_gain[1], 3), f(r, o.subblock_gain[2], 3)) : (f(r, 0, 1), 14 == o.table_select[0] && (o.table_select[0] = 16), f(r, o.table_select[0], 5), 14 == o.table_select[1] && (o.table_select[1] = 16), f(r, o.table_select[1], 5), 14 == o.table_select[2] && (o.table_select[2] = 16), f(r, o.table_select[2], 5), f(r, o.region0_count, 4), f(r, o.region1_count, 3)), f(r, o.preflag, 1), f(r, o.scalefac_scale, 1), f(r, o.count1table_select, 1); + } else for (f(r, a.main_data_begin, 8), f(r, a.private_bits, r.channels_out), n = s = 0; n < r.channels_out; n++) { + var o; + f(r, (o = a.tt[s][n]).part2_3_length + o.part2_length, 12), f(r, o.big_values / 2, 9), f(r, o.global_gain, 8), f(r, o.scalefac_compress, 9), o.block_type != Pe.NORM_TYPE ? (f(r, 1, 1), f(r, o.block_type, 2), f(r, o.mixed_block_flag, 1), 14 == o.table_select[0] && (o.table_select[0] = 16), f(r, o.table_select[0], 5), 14 == o.table_select[1] && (o.table_select[1] = 16), f(r, o.table_select[1], 5), f(r, o.subblock_gain[0], 3), f(r, o.subblock_gain[1], 3), f(r, o.subblock_gain[2], 3)) : (f(r, 0, 1), 14 == o.table_select[0] && (o.table_select[0] = 16), f(r, o.table_select[0], 5), 14 == o.table_select[1] && (o.table_select[1] = 16), f(r, o.table_select[1], 5), 14 == o.table_select[2] && (o.table_select[2] = 16), f(r, o.table_select[2], 5), f(r, o.region0_count, 4), f(r, o.region1_count, 3)), f(r, o.scalefac_scale, 1), f(r, o.count1table_select, 1); } - e.error_protection && me(); + e.error_protection && CRC_writeheader(r, r.header[r.h_ptr].buf); var _ = r.h_ptr; - r.h_ptr = _ + 1 & j.MAX_HEADER_BUF - 1, r.header[r.h_ptr].write_timing = r.header[_].write_timing + t, r.h_ptr, r.w_ptr; - }(e, n); - var s = 8 * a.sideinfo_len; - if (s += function (e) { + r.h_ptr = _ + 1 & Z.MAX_HEADER_BUF - 1, r.header[r.h_ptr].write_timing = r.header[_].write_timing + t, r.h_ptr == r.w_ptr && $.err.println("Error: MAX_HEADER_BUF too small in bitstream.c \n"); + }(e, s); + var n = 8 * a.sideinfo_len; + if (n += function (e) { var t, a, - n, s, + n, r = 0, i = e.internal_flags, o = i.l3_side; if (1 == e.version) for (t = 0; t < 2; t++) for (a = 0; a < i.channels_out; a++) { var _ = o.tt[t][a], - l = A.slen1_tab[_.scalefac_compress], - f = A.slen2_tab[_.scalefac_compress]; - for (n = s = 0; n < _.sfbdivide; n++) -1 != _.scalefac[n] && (v(i, _.scalefac[n], l), s += l); - for (; n < _.sfbmax; n++) -1 != _.scalefac[n] && (v(i, _.scalefac[n], f), s += f); - _.block_type == Ae.SHORT_TYPE ? s += d(i, _) : s += g(i, _), s += m(i, _), r += s; + l = k.slen1_tab[_.scalefac_compress], + f = k.slen2_tab[_.scalefac_compress]; + for (s = n = 0; s < _.sfbdivide; s++) -1 != _.scalefac[s] && (v(i, _.scalefac[s], l), n += l); + for (; s < _.sfbmax; s++) -1 != _.scalefac[s] && (v(i, _.scalefac[s], f), n += f); + _.block_type == Pe.SHORT_TYPE ? n += S(i, _) : n += M(i, _), r += n += d(i, _); } else for (a = t = 0; a < i.channels_out; a++) { var c, - u, - _ = o.tt[t][a], - h = 0; - if (u = n = s = 0, _.block_type == Ae.SHORT_TYPE) { - for (; u < 4; u++) { - var b = _.sfb_partition_table[u] / 3, - p = _.slen[u]; - for (c = 0; c < b; c++, n++) v(i, Math.max(_.scalefac[3 * n + 0], 0), p), v(i, Math.max(_.scalefac[3 * n + 1], 0), p), v(i, Math.max(_.scalefac[3 * n + 2], 0), p), h += 3 * p; + h, + u = 0; + if (h = s = n = 0, (_ = o.tt[t][a]).block_type == Pe.SHORT_TYPE) { + for (; h < 4; h++) { + var m = _.sfb_partition_table[h] / 3, + p = _.slen[h]; + for (c = 0; c < m; c++, s++) v(i, Math.max(_.scalefac[3 * s + 0], 0), p), v(i, Math.max(_.scalefac[3 * s + 1], 0), p), v(i, Math.max(_.scalefac[3 * s + 2], 0), p), u += 3 * p; } - s += d(i, _); + n += S(i, _); } else { - for (; u < 4; u++) { - var b = _.sfb_partition_table[u], - p = _.slen[u]; - for (c = 0; c < b; c++, n++) v(i, Math.max(_.scalefac[n], 0), p), h += p; - } - s += g(i, _); + for (; h < 4; h++) for (m = _.sfb_partition_table[h], p = _.slen[h], c = 0; c < m; c++, s++) v(i, Math.max(_.scalefac[s], 0), p), u += p; + n += M(i, _); } - s += m(i, _), r += h + s; + r += u + (n += d(i, _)); } return r; - }(e), u(e, t.resvDrain_post), s += t.resvDrain_post, t.main_data_begin += (n - s) / 8, w(e, new p()), a.ResvSize, 8 * t.main_data_begin != a.ResvSize && (a.ResvSize = 8 * t.main_data_begin), 1e9 < l) { + }(e), o(e, t.resvDrain_post), n += t.resvDrain_post, t.main_data_begin += (s - n) / 8, R(e, new w()) != a.ResvSize && $.err.println("Internal buffer inconsistency. flushbits <> ResvSize"), 8 * t.main_data_begin != a.ResvSize && ($.err.printf("bit reservoir error: \nl3_side.main_data_begin: %d \nResvoir size: %d \nresv drain (post) %d \nresv drain (pre) %d \nheader and sideinfo: %d \ndata bits: %d \ntotal bits: %d (remainder: %d) \nbitsperframe: %d \n", 8 * t.main_data_begin, a.ResvSize, t.resvDrain_post, t.resvDrain_pre, 8 * a.sideinfo_len, n - t.resvDrain_post - 8 * a.sideinfo_len, n, n % 8, s), $.err.println("This is a fatal error. It has several possible causes:"), $.err.println("90%% LAME compiled with buggy version of gcc using advanced optimizations"), $.err.println(" 9%% Your system is overclocked"), $.err.println(" 1%% bug in LAME encoding library"), a.ResvSize = 8 * t.main_data_begin), 1e9 < l) { var r; - for (r = 0; r < j.MAX_HEADER_BUF; ++r) a.header[r].write_timing -= l; + for (r = 0; r < Z.MAX_HEADER_BUF; ++r) a.header[r].write_timing -= l; l = 0; } return 0; - }, this.copy_buffer = function (e, t, a, n, s) { - var r = f + 1; + }, this.copy_buffer = function (e, t, a, s, n) { + var r = p + 1; if (r <= 0) return 0; - if (0 != n && n < r) return -1; - if (I.arraycopy(_, 0, t, a, r), f = -1, (c = 0) != s) { - var i = ve(1); - i[0] = e.nMusicCRC, o.updateMusicCRC(i, t, a, r), e.nMusicCRC = i[0], 0 < r && (e.VBR_seek_table.nBytesWritten += r), e.decode_on_the_fly && me(); + if (0 != s && s < r) return -1; + if ($.arraycopy(m, 0, t, a, r), p = -1, (b = 0) != n) { + var i = Ae(1); + if (i[0] = e.nMusicCRC, u.updateMusicCRC(i, t, a, r), e.nMusicCRC = i[0], 0 < r && (e.VBR_seek_table.nBytesWritten += r), e.decode_on_the_fly) for (var o, _ = ke([2, 1152]), l = r, f = -1; 0 != f;) if (f = h.hip_decode1_unclipped(e.hip, t, a, l, _[0], _[1]), l = 0, -1 == f && (f = 0), 0 < f) { + if (e.findPeakSample) { + for (o = 0; o < f; o++) _[0][o] > e.PeakSample ? e.PeakSample = _[0][o] : -_[0][o] > e.PeakSample && (e.PeakSample = -_[0][o]); + if (1 < e.channels_out) for (o = 0; o < f; o++) _[1][o] > e.PeakSample ? e.PeakSample = _[1][o] : -_[1][o] > e.PeakSample && (e.PeakSample = -_[1][o]); + } + if (e.findReplayGain && c.AnalyzeSamples(e.rgdata, _[0], 0, _[1], 0, f, e.channels_out) == X.GAIN_ANALYSIS_ERROR) return -6; + } } return r; }, this.init_bit_stream_w = function (e) { - _ = S(Y.LAME_MAXMP3BUFFER), e.h_ptr = e.w_ptr = 0, e.header[e.h_ptr].write_timing = 0, f = -1, l = c = 0; + m = A(U.LAME_MAXMP3BUFFER), e.h_ptr = e.w_ptr = 0, e.header[e.h_ptr].write_timing = 0, p = -1, l = b = 0; }; } - function e(e, t, a, n) { - this.xlen = e, this.linmax = t, this.table = a, this.hlen = n; + function e(e, t, a, s) { + this.xlen = e, this.linmax = t, this.table = a, this.hlen = s; } - D.MAX_VALUE = 3.4028235e38, Me.vbr_off = new Me(0), Me.vbr_mt = new Me(1), Me.vbr_rh = new Me(2), Me.vbr_abr = new Me(3), Me.vbr_mtrh = new Me(4), Me.vbr_default = Me.vbr_mtrh, ye.STEREO = new ye(0), ye.JOINT_STEREO = new ye(1), ye.DUAL_CHANNEL = new ye(2), ye.MONO = new ye(3), ye.NOT_SET = new ye(4), O.STEPS_per_dB = 100, O.MAX_dB = 120, O.GAIN_NOT_ENOUGH_SAMPLES = -24601, O.GAIN_ANALYSIS_ERROR = 0, O.GAIN_ANALYSIS_OK = 1, O.INIT_GAIN_ANALYSIS_ERROR = 0, O.INIT_GAIN_ANALYSIS_OK = 1, O.MAX_ORDER = O.YULE_ORDER = 10, O.MAX_SAMPLES_PER_WINDOW = (O.MAX_SAMP_FREQ = 48e3) * (O.RMS_WINDOW_TIME_NUMERATOR = 1) / (O.RMS_WINDOW_TIME_DENOMINATOR = 20) + 1, y.NUMTOCENTRIES = 100, y.MAXFRAMESIZE = 2880, N.EQ = function (e, t) { + Ee.STEREO = new Ee(0), Ee.JOINT_STEREO = new Ee(1), Ee.DUAL_CHANNEL = new Ee(2), Ee.MONO = new Ee(3), Ee.NOT_SET = new Ee(4), X.STEPS_per_dB = 100, X.MAX_dB = 120, X.GAIN_NOT_ENOUGH_SAMPLES = -24601, X.GAIN_ANALYSIS_ERROR = 0, X.GAIN_ANALYSIS_OK = 1, X.INIT_GAIN_ANALYSIS_ERROR = 0, X.INIT_GAIN_ANALYSIS_OK = 1, X.MAX_ORDER = X.YULE_ORDER = 10, X.MAX_SAMPLES_PER_WINDOW = (X.MAX_SAMP_FREQ = 48e3) * (X.RMS_WINDOW_TIME_NUMERATOR = 1) / (X.RMS_WINDOW_TIME_DENOMINATOR = 20) + 1, M.NUMTOCENTRIES = 100, M.MAXFRAMESIZE = 2880, q.EQ = function (e, t) { return Math.abs(e) > Math.abs(t) ? Math.abs(e - t) <= 1e-6 * Math.abs(e) : Math.abs(e - t) <= 1e-6 * Math.abs(t); - }, N.NEQ = function (e, t) { - return !N.EQ(e, t); + }, q.NEQ = function (e, t) { + return !q.EQ(e, t); }; - var k = {}; - function R(e) { + var F = {}; + function j(e) { this.bits = e; } - function x() { + function y() { this.over_noise = 0, this.tot_noise = 0, this.max_noise = 0, this.over_count = 0, this.over_SSD = 0, this.bits = 0; } - function r(e, t, a, n) { - this.l = ve(1 + Ae.SBMAX_l), this.s = ve(1 + Ae.SBMAX_s), this.psfb21 = ve(1 + Ae.PSFB21), this.psfb12 = ve(1 + Ae.PSFB12); - var s = this.l, + function r(e, t, a, s) { + this.l = Ae(1 + Pe.SBMAX_l), this.s = Ae(1 + Pe.SBMAX_s), this.psfb21 = Ae(1 + Pe.PSFB21), this.psfb12 = Ae(1 + Pe.PSFB12); + var n = this.l, r = this.s; - 4 == arguments.length && (this.arrL = e, this.arrS = t, this.arr21 = a, this.arr12 = n, I.arraycopy(this.arrL, 0, s, 0, Math.min(this.arrL.length, this.l.length)), I.arraycopy(this.arrS, 0, r, 0, Math.min(this.arrS.length, this.s.length)), I.arraycopy(this.arr21, 0, this.psfb21, 0, Math.min(this.arr21.length, this.psfb21.length)), I.arraycopy(this.arr12, 0, this.psfb12, 0, Math.min(this.arr12.length, this.psfb12.length))); + 4 == arguments.length && (this.arrL = e, this.arrS = t, this.arr21 = a, this.arr12 = s, $.arraycopy(this.arrL, 0, n, 0, Math.min(this.arrL.length, this.l.length)), $.arraycopy(this.arrS, 0, r, 0, Math.min(this.arrS.length, this.s.length)), $.arraycopy(this.arr21, 0, this.psfb21, 0, Math.min(this.arr21.length, this.psfb21.length)), $.arraycopy(this.arr12, 0, this.psfb12, 0, Math.min(this.arr12.length, this.psfb12.length))); } - function T() { + function x() { var l = null, - b = null, - n = null; + m = null, + s = null; this.setModules = function (e, t, a) { - l = e, b = t, n = a; + l = e, m = t, s = a; }, this.IPOW20 = function (e) { - return h[e]; + return u[e]; }; - var B = 2.220446049250313e-16, - e = T.IXMAX_VAL, - f = e + 2, - c = T.Q_MAX, - u = T.Q_MAX2, - s = 100; + var T = 2.220446049250313e-16, + f = x.IXMAX_VAL + 2, + c = x.Q_MAX, + h = x.Q_MAX2, + n = 100; this.nr_of_sfb_block = [[[6, 5, 5, 5], [9, 9, 9, 9], [6, 9, 9, 9]], [[6, 5, 7, 3], [9, 9, 12, 6], [6, 9, 12, 6]], [[11, 10, 0, 0], [18, 18, 0, 0], [15, 18, 0, 0]], [[7, 7, 7, 0], [12, 12, 12, 0], [6, 15, 12, 0]], [[6, 6, 6, 3], [12, 9, 9, 6], [6, 12, 9, 6]], [[8, 8, 5, 0], [15, 12, 9, 0], [6, 18, 9, 0]]]; - var M = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 3, 3, 3, 2, 0]; - this.pretab = M, this.sfBandIndex = [new r([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576], [0, 4, 8, 12, 18, 24, 32, 42, 56, 74, 100, 132, 174, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 114, 136, 162, 194, 232, 278, 332, 394, 464, 540, 576], [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 136, 180, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576], [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 52, 62, 74, 90, 110, 134, 162, 196, 238, 288, 342, 418, 576], [0, 4, 8, 12, 16, 22, 30, 40, 52, 66, 84, 106, 136, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 4, 8, 12, 16, 20, 24, 30, 36, 42, 50, 60, 72, 88, 106, 128, 156, 190, 230, 276, 330, 384, 576], [0, 4, 8, 12, 16, 22, 28, 38, 50, 64, 80, 100, 126, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 54, 66, 82, 102, 126, 156, 194, 240, 296, 364, 448, 550, 576], [0, 4, 8, 12, 16, 22, 30, 42, 58, 78, 104, 138, 180, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576], [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576], [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 12, 24, 36, 48, 60, 72, 88, 108, 132, 160, 192, 232, 280, 336, 400, 476, 566, 568, 570, 572, 574, 576], [0, 8, 16, 24, 36, 52, 72, 96, 124, 160, 162, 164, 166, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0])]; - var y = de(c + u + 1), - h = de(c), - p = de(f), - m = de(f); + var w = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 3, 3, 3, 2, 0]; + this.pretab = w, this.sfBandIndex = [new r([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576], [0, 4, 8, 12, 18, 24, 32, 42, 56, 74, 100, 132, 174, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 114, 136, 162, 194, 232, 278, 332, 394, 464, 540, 576], [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 136, 180, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576], [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 52, 62, 74, 90, 110, 134, 162, 196, 238, 288, 342, 418, 576], [0, 4, 8, 12, 16, 22, 30, 40, 52, 66, 84, 106, 136, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 4, 8, 12, 16, 20, 24, 30, 36, 42, 50, 60, 72, 88, 106, 128, 156, 190, 230, 276, 330, 384, 576], [0, 4, 8, 12, 16, 22, 28, 38, 50, 64, 80, 100, 126, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 54, 66, 82, 102, 126, 156, 194, 240, 296, 364, 448, 550, 576], [0, 4, 8, 12, 16, 22, 30, 42, 58, 78, 104, 138, 180, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576], [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576], [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 12, 24, 36, 48, 60, 72, 88, 108, 132, 160, 192, 232, 280, 336, 400, 476, 566, 568, 570, 572, 574, 576], [0, 8, 16, 24, 36, 52, 72, 96, 124, 160, 162, 164, 166, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0])]; + var R = Be(c + h + 1), + u = Be(c), + p = Be(f), + b = Be(f); function v(e, t) { - var a = n.ATHformula(t, e); - return a -= s, a = Math.pow(10, a / 10 + e.ATHlower); + var a = s.ATHformula(t, e); + return a -= n, a = Math.pow(10, a / 10 + e.ATHlower); } function A(e) { this.s = e; } - this.adj43 = m, this.iteration_init = function (e) { + this.adj43 = b, this.iteration_init = function (e) { var t, a = e.internal_flags, - n = a.l3_side; + s = a.l3_side; if (0 == a.iteration_init_init) { - for (a.iteration_init_init = 1, n.main_data_begin = 0, function (e) { - for (var t = e.internal_flags.ATH.l, a = e.internal_flags.ATH.psfb21, n = e.internal_flags.ATH.s, s = e.internal_flags.ATH.psfb12, r = e.internal_flags, i = e.out_samplerate, o = 0; o < Ae.SBMAX_l; o++) { + for (a.iteration_init_init = 1, s.main_data_begin = 0, function (e) { + for (var t = e.internal_flags.ATH.l, a = e.internal_flags.ATH.psfb21, s = e.internal_flags.ATH.s, n = e.internal_flags.ATH.psfb12, r = e.internal_flags, i = e.out_samplerate, o = 0; o < Pe.SBMAX_l; o++) { var _ = r.scalefac_band.l[o], l = r.scalefac_band.l[o + 1]; - t[o] = D.MAX_VALUE; + t[o] = K.MAX_VALUE; for (var f = _; f < l; f++) { - var c = f * i / 1152, - u = v(e, c); - t[o] = Math.min(t[o], u); + var c = v(e, f * i / 1152); + t[o] = Math.min(t[o], c); } } - for (var o = 0; o < Ae.PSFB21; o++) { - var _ = r.scalefac_band.psfb21[o], - l = r.scalefac_band.psfb21[o + 1]; - a[o] = D.MAX_VALUE; - for (var f = _; f < l; f++) { - var c = f * i / 1152, - u = v(e, c); - a[o] = Math.min(a[o], u); - } + for (o = 0; o < Pe.PSFB21; o++) for (_ = r.scalefac_band.psfb21[o], l = r.scalefac_band.psfb21[o + 1], a[o] = K.MAX_VALUE, f = _; f < l; f++) c = v(e, f * i / 1152), a[o] = Math.min(a[o], c); + for (o = 0; o < Pe.SBMAX_s; o++) { + for (_ = r.scalefac_band.s[o], l = r.scalefac_band.s[o + 1], s[o] = K.MAX_VALUE, f = _; f < l; f++) c = v(e, f * i / 384), s[o] = Math.min(s[o], c); + s[o] *= r.scalefac_band.s[o + 1] - r.scalefac_band.s[o]; } - for (var o = 0; o < Ae.SBMAX_s; o++) { - var _ = r.scalefac_band.s[o], - l = r.scalefac_band.s[o + 1]; - n[o] = D.MAX_VALUE; - for (var f = _; f < l; f++) { - var c = f * i / 384, - u = v(e, c); - n[o] = Math.min(n[o], u); - } - n[o] *= r.scalefac_band.s[o + 1] - r.scalefac_band.s[o]; + for (o = 0; o < Pe.PSFB12; o++) { + for (_ = r.scalefac_band.psfb12[o], l = r.scalefac_band.psfb12[o + 1], n[o] = K.MAX_VALUE, f = _; f < l; f++) c = v(e, f * i / 384), n[o] = Math.min(n[o], c); + n[o] *= r.scalefac_band.s[13] - r.scalefac_band.s[12]; } - for (var o = 0; o < Ae.PSFB12; o++) { - var _ = r.scalefac_band.psfb12[o], - l = r.scalefac_band.psfb12[o + 1]; - s[o] = D.MAX_VALUE; - for (var f = _; f < l; f++) { - var c = f * i / 384, - u = v(e, c); - s[o] = Math.min(s[o], u); - } - s[o] *= r.scalefac_band.s[13] - r.scalefac_band.s[12]; + if (e.noATH) { + for (o = 0; o < Pe.SBMAX_l; o++) t[o] = 1e-20; + for (o = 0; o < Pe.PSFB21; o++) a[o] = 1e-20; + for (o = 0; o < Pe.SBMAX_s; o++) s[o] = 1e-20; + for (o = 0; o < Pe.PSFB12; o++) n[o] = 1e-20; } - e.noATH && me(), r.ATH.floor = 10 * d(v(e, -1)); + r.ATH.floor = 10 * B(v(e, -1)); }(e), p[0] = 0, t = 1; t < f; t++) p[t] = Math.pow(t, 4 / 3); - for (t = 0; t < f - 1; t++) m[t] = t + 1 - Math.pow(.5 * (p[t] + p[t + 1]), .75); - for (m[t] = .5, t = 0; t < c; t++) h[t] = Math.pow(2, -.1875 * (t - 210)); - for (t = 0; t <= c + u; t++) y[t] = Math.pow(2, .25 * (t - 210 - u)); - var s, r, i, o; - for (l.huffman_init(a), 32 <= (t = e.exp_nspsytune >> 2 & 63) && (t -= 64), s = Math.pow(10, t / 4 / 10), 32 <= (t = e.exp_nspsytune >> 8 & 63) && (t -= 64), r = Math.pow(10, t / 4 / 10), 32 <= (t = e.exp_nspsytune >> 14 & 63) && (t -= 64), i = Math.pow(10, t / 4 / 10), 32 <= (t = e.exp_nspsytune >> 20 & 63) && (t -= 64), o = i * Math.pow(10, t / 4 / 10), t = 0; t < Ae.SBMAX_l; t++) _ = t <= 6 ? s : t <= 13 ? r : t <= 20 ? i : o, a.nsPsy.longfact[t] = _; - for (t = 0; t < Ae.SBMAX_s; t++) { + for (t = 0; t < f - 1; t++) b[t] = t + 1 - Math.pow(.5 * (p[t] + p[t + 1]), .75); + for (b[t] = .5, t = 0; t < c; t++) u[t] = Math.pow(2, -.1875 * (t - 210)); + for (t = 0; t <= c + h; t++) R[t] = Math.pow(2, .25 * (t - 210 - h)); + var n, r, i, o; + for (l.huffman_init(a), 32 <= (t = e.exp_nspsytune >> 2 & 63) && (t -= 64), n = Math.pow(10, t / 4 / 10), 32 <= (t = e.exp_nspsytune >> 8 & 63) && (t -= 64), r = Math.pow(10, t / 4 / 10), 32 <= (t = e.exp_nspsytune >> 14 & 63) && (t -= 64), i = Math.pow(10, t / 4 / 10), 32 <= (t = e.exp_nspsytune >> 20 & 63) && (t -= 64), o = i * Math.pow(10, t / 4 / 10), t = 0; t < Pe.SBMAX_l; t++) { + _ = t <= 6 ? n : t <= 13 ? r : t <= 20 ? i : o, a.nsPsy.longfact[t] = _; + } + for (t = 0; t < Pe.SBMAX_s; t++) { var _; - _ = t <= 5 ? s : t <= 10 ? r : t <= 11 ? i : o, a.nsPsy.shortfact[t] = _; + _ = t <= 5 ? n : t <= 10 ? r : t <= 11 ? i : o, a.nsPsy.shortfact[t] = _; } } - }, this.on_pe = function (e, t, a, n, s, r) { + }, this.on_pe = function (e, t, a, s, n, r) { var i, o, _ = e.internal_flags, l = 0, - f = ve(2), - c = new R(l), - u = b.ResvMaxBits(e, n, c, r), - h = (l = c.bits) + u; - for (j.MAX_BITS_PER_GRANULE < h && (h = j.MAX_BITS_PER_GRANULE), o = i = 0; o < _.channels_out; ++o) a[o] = Math.min(j.MAX_BITS_PER_CHANNEL, l / _.channels_out), f[o] = 0 | a[o] * t[s][o] / 700 - a[o], f[o] > 3 * n / 4 && (f[o] = 3 * n / 4), f[o] < 0 && (f[o] = 0), f[o] + a[o] > j.MAX_BITS_PER_CHANNEL && (f[o] = Math.max(0, j.MAX_BITS_PER_CHANNEL - a[o])), i += f[o]; - if (u < i) for (o = 0; o < _.channels_out; ++o) f[o] = u * f[o] / i; - for (o = 0; o < _.channels_out; ++o) a[o] += f[o], u -= f[o]; + f = Ae(2), + c = new j(l), + h = m.ResvMaxBits(e, s, c, r), + u = (l = c.bits) + h; + for (Z.MAX_BITS_PER_GRANULE < u && (u = Z.MAX_BITS_PER_GRANULE), o = i = 0; o < _.channels_out; ++o) a[o] = Math.min(Z.MAX_BITS_PER_CHANNEL, l / _.channels_out), f[o] = 0 | a[o] * t[n][o] / 700 - a[o], f[o] > 3 * s / 4 && (f[o] = 3 * s / 4), f[o] < 0 && (f[o] = 0), f[o] + a[o] > Z.MAX_BITS_PER_CHANNEL && (f[o] = Math.max(0, Z.MAX_BITS_PER_CHANNEL - a[o])), i += f[o]; + if (h < i) for (o = 0; o < _.channels_out; ++o) f[o] = h * f[o] / i; + for (o = 0; o < _.channels_out; ++o) a[o] += f[o], h -= f[o]; for (o = i = 0; o < _.channels_out; ++o) i += a[o]; - return j.MAX_BITS_PER_GRANULE < i && me(), h; + if (Z.MAX_BITS_PER_GRANULE < i) { + for (o = 0; o < _.channels_out; ++o) a[o] *= Z.MAX_BITS_PER_GRANULE, a[o] /= i, a[o]; + } + return u; + }, this.reduce_side = function (e, t, a, s) { + var n = .33 * (.5 - t) / .5; + n < 0 && (n = 0), .5 < n && (n = .5); + var r = 0 | .5 * n * (e[0] + e[1]); + r > Z.MAX_BITS_PER_CHANNEL - e[0] && (r = Z.MAX_BITS_PER_CHANNEL - e[0]), r < 0 && (r = 0), 125 <= e[1] && (125 < e[1] - r ? (e[0] < a && (e[0] += r), e[1] -= r) : (e[0] += e[1] - 125, e[1] = 125)), s < (r = e[0] + e[1]) && (e[0] = s * e[0] / r, e[1] = s * e[1] / r); }, this.athAdjust = function (e, t, a) { - var n = 90.30873362, - s = V.FAST_LOG10_X(t, 10), + var s = 90.30873362, + n = ee.FAST_LOG10_X(t, 10), r = e * e, i = 0; - return s -= a, 1e-20 < r && (i = 1 + V.FAST_LOG10_X(r, 10 / n)), i < 0 && (i = 0), s *= i, s += a + n - 94.82444863, Math.pow(10, .1 * s); - }, this.calc_xmin = function (e, t, a, n) { - var s, + return n -= a, 1e-20 < r && (i = 1 + ee.FAST_LOG10_X(r, 10 / s)), i < 0 && (i = 0), n *= i, n += a + s - 94.82444863, Math.pow(10, .1 * n); + }, this.calc_xmin = function (e, t, a, s) { + var n, r = 0, i = e.internal_flags, o = 0, _ = 0, l = i.ATH, f = a.xr, - c = e.VBR == Me.vbr_mtrh ? 1 : 0, - u = i.masking_lower; - for (e.VBR != Me.vbr_mtrh && e.VBR != Me.vbr_mt || (u = 1), s = 0; s < a.psy_lmax; s++) { - for (w = e.VBR == Me.vbr_rh || e.VBR == Me.vbr_mtrh ? athAdjust(l.adjust, l.l[s], l.floor) : l.adjust * l.l[s], v = a.width[s], S = w / v, M = B, A = v >> 1, y = 0; k = f[o] * f[o], y += k, M += k < S ? k : S, R = f[++o] * f[o], y += R, M += R < S ? R : S, o++, 0 < --A;); - if (w < y && _++, s == Ae.SBPSY_l && me(), 0 != c && (w = M), !e.ATHonly) { - var h = t.en.l[s]; - 0 < h && (x = y * t.thm.l[s] * u / h, 0 != c && (x *= i.nsPsy.longfact[s]), w < x && (w = x)); - } - n[r++] = 0 != c ? w : w * i.nsPsy.longfact[s]; + c = e.VBR == xe.vbr_mtrh ? 1 : 0, + h = i.masking_lower; + for (e.VBR != xe.vbr_mtrh && e.VBR != xe.vbr_mt || (h = 1), n = 0; n < a.psy_lmax; n++) { + S = (g = e.VBR == xe.vbr_rh || e.VBR == xe.vbr_mtrh ? athAdjust(l.adjust, l.l[n], l.floor) : l.adjust * l.l[n]) / (b = a.width[n]), M = T, B = b >> 1, A = 0; + do { + A += k = f[o] * f[o], M += k < S ? k : S, A += y = f[++o] * f[o], M += y < S ? y : S, o++; + } while (0 < --B); + if (g < A && _++, n == Pe.SBPSY_l) M < (R = g * i.nsPsy.longfact[n]) && (M = R); + if (0 != c && (g = M), !e.ATHonly) if (0 < (w = t.en.l[n])) R = A * t.thm.l[n] * h / w, 0 != c && (R *= i.nsPsy.longfact[n]), g < R && (g = R); + s[r++] = 0 != c ? g : g * i.nsPsy.longfact[n]; } - var b = 575; - if (a.block_type != Ae.SHORT_TYPE) for (var p = 576; 0 != p-- && N.EQ(f[p], 0);) b = p; - a.max_nonzero_coeff = b; - for (var m = a.sfb_smin; s < a.psymax; m++, s += 3) { - var v, d, g; - for (g = e.VBR == Me.vbr_rh || e.VBR == Me.vbr_mtrh ? athAdjust(l.adjust, l.s[m], l.floor) : l.adjust * l.s[m], v = a.width[s], d = 0; d < 3; d++) { - var w, + var u = 575; + if (a.block_type != Pe.SHORT_TYPE) for (var m = 576; 0 != m-- && q.EQ(f[m], 0);) u = m; + a.max_nonzero_coeff = u; + for (var p = a.sfb_smin; n < a.psymax; p++, n += 3) { + var b, v, d; + for (d = e.VBR == xe.vbr_rh || e.VBR == xe.vbr_mtrh ? athAdjust(l.adjust, l.s[p], l.floor) : l.adjust * l.s[p], b = a.width[n], v = 0; v < 3; v++) { + var g, S, M, - y = 0, - A = v >> 1; - S = g / v, M = B; + w, + R, + A = 0, + B = b >> 1; + S = d / b, M = T; do { - var k, R; - k = f[o] * f[o], y += k, M += k < S ? k : S, R = f[++o] * f[o], y += R, M += R < S ? R : S, o++; - } while (0 < --A); - if (g < y && _++, m == Ae.SBPSY_s && me(), w = 0 != c ? M : g, !e.ATHonly && !e.ATHshort) { - var x, - h = t.en.s[m][d]; - 0 < h && (x = y * t.thm.s[m][d] * u / h, 0 != c && (x *= i.nsPsy.shortfact[m]), w < x && (w = x)); - } - n[r++] = 0 != c ? w : w * i.nsPsy.shortfact[m]; + var k, y; + A += k = f[o] * f[o], M += k < S ? k : S, A += y = f[++o] * f[o], M += y < S ? y : S, o++; + } while (0 < --B); + if (d < A && _++, p == Pe.SBPSY_s) M < (R = d * i.nsPsy.shortfact[p]) && (M = R); + if (g = 0 != c ? M : d, !e.ATHonly && !e.ATHshort) if (0 < (w = t.en.s[p][v])) R = A * t.thm.s[p][v] * h / w, 0 != c && (R *= i.nsPsy.shortfact[p]), g < R && (g = R); + s[r++] = 0 != c ? g : g * i.nsPsy.shortfact[p]; } - e.useTemporal && (n[r - 3] > n[r - 3 + 1] && (n[r - 3 + 1] += (n[r - 3] - n[r - 3 + 1]) * i.decay), n[r - 3 + 1] > n[r - 3 + 2] && (n[r - 3 + 2] += (n[r - 3 + 1] - n[r - 3 + 2]) * i.decay)); + e.useTemporal && (s[r - 3] > s[r - 3 + 1] && (s[r - 3 + 1] += (s[r - 3] - s[r - 3 + 1]) * i.decay), s[r - 3 + 1] > s[r - 3 + 2] && (s[r - 3 + 2] += (s[r - 3 + 1] - s[r - 3 + 2]) * i.decay)); } return _; - }, this.calc_noise_core = function (e, t, a, n) { - var s = 0, + }, this.calc_noise_core = function (e, t, a, s) { + var n = 0, r = t.s, i = e.l3_enc; - if (r > e.count1) for (; 0 != a--;) _ = e.xr[r], r++, s += _ * _, _ = e.xr[r], r++, s += _ * _;else if (r > e.big_values) { - var o = de(2); - for (o[0] = 0, o[1] = n; 0 != a--;) _ = Math.abs(e.xr[r]) - o[i[r]], r++, s += _ * _, _ = Math.abs(e.xr[r]) - o[i[r]], r++, s += _ * _; + if (r > e.count1) for (; 0 != a--;) { + _ = e.xr[r], r++, n += _ * _, _ = e.xr[r], r++, n += _ * _; + } else if (r > e.big_values) { + var o = Be(2); + for (o[0] = 0, o[1] = s; 0 != a--;) { + _ = Math.abs(e.xr[r]) - o[i[r]], r++, n += _ * _, _ = Math.abs(e.xr[r]) - o[i[r]], r++, n += _ * _; + } } else for (; 0 != a--;) { var _; - _ = Math.abs(e.xr[r]) - p[i[r]] * n, r++, s += _ * _, _ = Math.abs(e.xr[r]) - p[i[r]] * n, r++, s += _ * _; + _ = Math.abs(e.xr[r]) - p[i[r]] * s, r++, n += _ * _, _ = Math.abs(e.xr[r]) - p[i[r]] * s, r++, n += _ * _; } - return t.s = r, s; - }, this.calc_noise = function (e, t, a, n, s) { + return t.s = r, n; + }, this.calc_noise = function (e, t, a, s, n) { var r, i, o = 0, @@ -14126,54 +13799,83 @@ src: recorder-core.js,engine/mp3.js,engine/mp3-engine.js l = 0, f = 0, c = 0, - u = -20, - h = 0, - b = e.scalefac, + h = -20, + u = 0, + m = e.scalefac, p = 0; - for (n.over_SSD = 0, r = 0; r < e.psymax; r++) { - var m, - v = e.global_gain - (b[p++] + (0 != e.preflag ? M[r] : 0) << e.scalefac_scale + 1) - 8 * e.subblock_gain[e.window[r]], + for (r = s.over_SSD = 0; r < e.psymax; r++) { + var b, + v = e.global_gain - (m[p++] + (0 != e.preflag ? w[r] : 0) << e.scalefac_scale + 1) - 8 * e.subblock_gain[e.window[r]], d = 0; - if (null != s && s.step[r] == v) d = s.noise[r], h += e.width[r], a[o++] = d / t[_++], d = s.noise_log[r];else { + if (null != n && n.step[r] == v) d = n.noise[r], u += e.width[r], a[o++] = d / t[_++], d = n.noise_log[r];else { var g, - w = y[v + T.Q_MAX2]; - i = e.width[r] >> 1, h + e.width[r] > e.max_nonzero_coeff && (g = e.max_nonzero_coeff - h + 1, i = 0 < g ? g >> 1 : 0); - var S = new A(h); - d = this.calc_noise_core(e, S, i, w), h = S.s, null != s && (s.step[r] = v, s.noise[r] = d), d = a[o++] = d / t[_++], d = V.FAST_LOG10(Math.max(d, 1e-20)), null != s && (s.noise_log[r] = d); + S = R[v + x.Q_MAX2]; + if (i = e.width[r] >> 1, u + e.width[r] > e.max_nonzero_coeff) i = 0 < (g = e.max_nonzero_coeff - u + 1) ? g >> 1 : 0; + var M = new A(u); + d = this.calc_noise_core(e, M, i, S), u = M.s, null != n && (n.step[r] = v, n.noise[r] = d), d = a[o++] = d / t[_++], d = ee.FAST_LOG10(Math.max(d, 1e-20)), null != n && (n.noise_log[r] = d); } - null != s && (s.global_gain = e.global_gain), c += d, 0 < d && (m = Math.max(0 | 10 * d + .5, 1), n.over_SSD += m * m, l++, f += d), u = Math.max(u, d); + if (null != n && (n.global_gain = e.global_gain), c += d, 0 < d) b = Math.max(0 | 10 * d + .5, 1), s.over_SSD += b * b, l++, f += d; + h = Math.max(h, d); } - return n.over_count = l, n.tot_noise = c, n.over_noise = f, n.max_noise = u, l; + return s.over_count = l, s.tot_noise = c, s.over_noise = f, s.max_noise = h, l; + }, this.set_pinfo = function (e, t, a, s, n) { + var r, + i, + o, + _, + l, + f = e.internal_flags, + c = 0 == t.scalefac_scale ? .5 : 1, + h = t.scalefac, + u = Be(z.SFBMAX), + m = Be(z.SFBMAX), + p = new y(); + calc_xmin(e, a, t, u), calc_noise(t, u, m, p, null); + var b = 0; + for (i = t.sfb_lmax, t.block_type != Pe.SHORT_TYPE && 0 == t.mixed_block_flag && (i = 22), r = 0; r < i; r++) { + var v = f.scalefac_band.l[r], + d = (g = f.scalefac_band.l[r + 1]) - v; + for (_ = 0; b < g; b++) _ += t.xr[b] * t.xr[b]; + _ /= d, l = 1e15, f.pinfo.en[s][n][r] = l * _, f.pinfo.xfsf[s][n][r] = l * u[r] * m[r] / d, 0 < a.en.l[r] && !e.ATHonly ? _ /= a.en.l[r] : _ = 0, f.pinfo.thr[s][n][r] = l * Math.max(_ * a.thm.l[r], f.ATH.l[r]), (f.pinfo.LAMEsfb[s][n][r] = 0) != t.preflag && 11 <= r && (f.pinfo.LAMEsfb[s][n][r] = -c * w[r]), r < Pe.SBPSY_l && (f.pinfo.LAMEsfb[s][n][r] -= c * h[r]); + } + if (t.block_type == Pe.SHORT_TYPE) for (i = r, r = t.sfb_smin; r < Pe.SBMAX_s; r++) { + v = f.scalefac_band.s[r], d = (g = f.scalefac_band.s[r + 1]) - v; + for (var g, S = 0; S < 3; S++) { + for (_ = 0, o = v; o < g; o++) _ += t.xr[b] * t.xr[b], b++; + _ = Math.max(_ / d, 1e-20), l = 1e15, f.pinfo.en_s[s][n][3 * r + S] = l * _, f.pinfo.xfsf_s[s][n][3 * r + S] = l * u[i] * m[i] / d, 0 < a.en.s[r][S] ? _ /= a.en.s[r][S] : _ = 0, (e.ATHonly || e.ATHshort) && (_ = 0), f.pinfo.thr_s[s][n][3 * r + S] = l * Math.max(_ * a.thm.s[r][S], f.ATH.s[r]), f.pinfo.LAMEsfb_s[s][n][3 * r + S] = -2 * t.subblock_gain[S], r < Pe.SBPSY_s && (f.pinfo.LAMEsfb_s[s][n][3 * r + S] -= c * h[i]), i++; + } + } + f.pinfo.LAMEqss[s][n] = t.global_gain, f.pinfo.LAMEmainbits[s][n] = t.part2_3_length + t.part2_length, f.pinfo.LAMEsfbits[s][n] = t.part2_length, f.pinfo.over[s][n] = p.over_count, f.pinfo.max_noise[s][n] = 10 * p.max_noise, f.pinfo.over_noise[s][n] = 10 * p.over_noise, f.pinfo.tot_noise[s][n] = 10 * p.tot_noise, f.pinfo.over_SSD[s][n] = p.over_SSD; }; } - function B() { - this.xr = de(576), this.l3_enc = ve(576), this.scalefac = ve(F.SFBMAX), this.xrpow_max = 0, this.part2_3_length = 0, this.big_values = 0, this.count1 = 0, this.global_gain = 0, this.scalefac_compress = 0, this.block_type = 0, this.mixed_block_flag = 0, this.table_select = ve(3), this.subblock_gain = ve(4), this.region0_count = 0, this.region1_count = 0, this.preflag = 0, this.scalefac_scale = 0, this.count1table_select = 0, this.part2_length = 0, this.sfb_lmax = 0, this.sfb_smin = 0, this.psy_lmax = 0, this.sfbmax = 0, this.psymax = 0, this.sfbdivide = 0, this.width = ve(F.SFBMAX), this.window = ve(F.SFBMAX), this.count1bits = 0, this.sfb_partition_table = null, this.slen = ve(4), this.max_nonzero_coeff = 0; + function T() { + this.xr = Be(576), this.l3_enc = Ae(576), this.scalefac = Ae(z.SFBMAX), this.xrpow_max = 0, this.part2_3_length = 0, this.big_values = 0, this.count1 = 0, this.global_gain = 0, this.scalefac_compress = 0, this.block_type = 0, this.mixed_block_flag = 0, this.table_select = Ae(3), this.subblock_gain = Ae(4), this.region0_count = 0, this.region1_count = 0, this.preflag = 0, this.scalefac_scale = 0, this.count1table_select = 0, this.part2_length = 0, this.sfb_lmax = 0, this.sfb_smin = 0, this.psy_lmax = 0, this.sfbmax = 0, this.psymax = 0, this.sfbdivide = 0, this.width = Ae(z.SFBMAX), this.window = Ae(z.SFBMAX), this.count1bits = 0, this.sfb_partition_table = null, this.slen = Ae(4), this.max_nonzero_coeff = 0; var a = this; - function n(e) { + function s(e) { return new Int32Array(e); } this.assign = function (e) { var t; - a.xr = (t = e.xr, new Float32Array(t)), a.l3_enc = n(e.l3_enc), a.scalefac = n(e.scalefac), a.xrpow_max = e.xrpow_max, a.part2_3_length = e.part2_3_length, a.big_values = e.big_values, a.count1 = e.count1, a.global_gain = e.global_gain, a.scalefac_compress = e.scalefac_compress, a.block_type = e.block_type, a.mixed_block_flag = e.mixed_block_flag, a.table_select = n(e.table_select), a.subblock_gain = n(e.subblock_gain), a.region0_count = e.region0_count, a.region1_count = e.region1_count, a.preflag = e.preflag, a.scalefac_scale = e.scalefac_scale, a.count1table_select = e.count1table_select, a.part2_length = e.part2_length, a.sfb_lmax = e.sfb_lmax, a.sfb_smin = e.sfb_smin, a.psy_lmax = e.psy_lmax, a.sfbmax = e.sfbmax, a.psymax = e.psymax, a.sfbdivide = e.sfbdivide, a.width = n(e.width), a.window = n(e.window), a.count1bits = e.count1bits, a.sfb_partition_table = e.sfb_partition_table.slice(0), a.slen = n(e.slen), a.max_nonzero_coeff = e.max_nonzero_coeff; + a.xr = (t = e.xr, new Float32Array(t)), a.l3_enc = s(e.l3_enc), a.scalefac = s(e.scalefac), a.xrpow_max = e.xrpow_max, a.part2_3_length = e.part2_3_length, a.big_values = e.big_values, a.count1 = e.count1, a.global_gain = e.global_gain, a.scalefac_compress = e.scalefac_compress, a.block_type = e.block_type, a.mixed_block_flag = e.mixed_block_flag, a.table_select = s(e.table_select), a.subblock_gain = s(e.subblock_gain), a.region0_count = e.region0_count, a.region1_count = e.region1_count, a.preflag = e.preflag, a.scalefac_scale = e.scalefac_scale, a.count1table_select = e.count1table_select, a.part2_length = e.part2_length, a.sfb_lmax = e.sfb_lmax, a.sfb_smin = e.sfb_smin, a.psy_lmax = e.psy_lmax, a.sfbmax = e.sfbmax, a.psymax = e.psymax, a.sfbdivide = e.sfbdivide, a.width = s(e.width), a.window = s(e.window), a.count1bits = e.count1bits, a.sfb_partition_table = e.sfb_partition_table.slice(0), a.slen = s(e.slen), a.max_nonzero_coeff = e.max_nonzero_coeff; }; } - k.t1HB = [1, 1, 1, 0], k.t2HB = [1, 2, 1, 3, 1, 1, 3, 2, 0], k.t3HB = [3, 2, 1, 1, 1, 1, 3, 2, 0], k.t5HB = [1, 2, 6, 5, 3, 1, 4, 4, 7, 5, 7, 1, 6, 1, 1, 0], k.t6HB = [7, 3, 5, 1, 6, 2, 3, 2, 5, 4, 4, 1, 3, 3, 2, 0], k.t7HB = [1, 2, 10, 19, 16, 10, 3, 3, 7, 10, 5, 3, 11, 4, 13, 17, 8, 4, 12, 11, 18, 15, 11, 2, 7, 6, 9, 14, 3, 1, 6, 4, 5, 3, 2, 0], k.t8HB = [3, 4, 6, 18, 12, 5, 5, 1, 2, 16, 9, 3, 7, 3, 5, 14, 7, 3, 19, 17, 15, 13, 10, 4, 13, 5, 8, 11, 5, 1, 12, 4, 4, 1, 1, 0], k.t9HB = [7, 5, 9, 14, 15, 7, 6, 4, 5, 5, 6, 7, 7, 6, 8, 8, 8, 5, 15, 6, 9, 10, 5, 1, 11, 7, 9, 6, 4, 1, 14, 4, 6, 2, 6, 0], k.t10HB = [1, 2, 10, 23, 35, 30, 12, 17, 3, 3, 8, 12, 18, 21, 12, 7, 11, 9, 15, 21, 32, 40, 19, 6, 14, 13, 22, 34, 46, 23, 18, 7, 20, 19, 33, 47, 27, 22, 9, 3, 31, 22, 41, 26, 21, 20, 5, 3, 14, 13, 10, 11, 16, 6, 5, 1, 9, 8, 7, 8, 4, 4, 2, 0], k.t11HB = [3, 4, 10, 24, 34, 33, 21, 15, 5, 3, 4, 10, 32, 17, 11, 10, 11, 7, 13, 18, 30, 31, 20, 5, 25, 11, 19, 59, 27, 18, 12, 5, 35, 33, 31, 58, 30, 16, 7, 5, 28, 26, 32, 19, 17, 15, 8, 14, 14, 12, 9, 13, 14, 9, 4, 1, 11, 4, 6, 6, 6, 3, 2, 0], k.t12HB = [9, 6, 16, 33, 41, 39, 38, 26, 7, 5, 6, 9, 23, 16, 26, 11, 17, 7, 11, 14, 21, 30, 10, 7, 17, 10, 15, 12, 18, 28, 14, 5, 32, 13, 22, 19, 18, 16, 9, 5, 40, 17, 31, 29, 17, 13, 4, 2, 27, 12, 11, 15, 10, 7, 4, 1, 27, 12, 8, 12, 6, 3, 1, 0], k.t13HB = [1, 5, 14, 21, 34, 51, 46, 71, 42, 52, 68, 52, 67, 44, 43, 19, 3, 4, 12, 19, 31, 26, 44, 33, 31, 24, 32, 24, 31, 35, 22, 14, 15, 13, 23, 36, 59, 49, 77, 65, 29, 40, 30, 40, 27, 33, 42, 16, 22, 20, 37, 61, 56, 79, 73, 64, 43, 76, 56, 37, 26, 31, 25, 14, 35, 16, 60, 57, 97, 75, 114, 91, 54, 73, 55, 41, 48, 53, 23, 24, 58, 27, 50, 96, 76, 70, 93, 84, 77, 58, 79, 29, 74, 49, 41, 17, 47, 45, 78, 74, 115, 94, 90, 79, 69, 83, 71, 50, 59, 38, 36, 15, 72, 34, 56, 95, 92, 85, 91, 90, 86, 73, 77, 65, 51, 44, 43, 42, 43, 20, 30, 44, 55, 78, 72, 87, 78, 61, 46, 54, 37, 30, 20, 16, 53, 25, 41, 37, 44, 59, 54, 81, 66, 76, 57, 54, 37, 18, 39, 11, 35, 33, 31, 57, 42, 82, 72, 80, 47, 58, 55, 21, 22, 26, 38, 22, 53, 25, 23, 38, 70, 60, 51, 36, 55, 26, 34, 23, 27, 14, 9, 7, 34, 32, 28, 39, 49, 75, 30, 52, 48, 40, 52, 28, 18, 17, 9, 5, 45, 21, 34, 64, 56, 50, 49, 45, 31, 19, 12, 15, 10, 7, 6, 3, 48, 23, 20, 39, 36, 35, 53, 21, 16, 23, 13, 10, 6, 1, 4, 2, 16, 15, 17, 27, 25, 20, 29, 11, 17, 12, 16, 8, 1, 1, 0, 1], k.t15HB = [7, 12, 18, 53, 47, 76, 124, 108, 89, 123, 108, 119, 107, 81, 122, 63, 13, 5, 16, 27, 46, 36, 61, 51, 42, 70, 52, 83, 65, 41, 59, 36, 19, 17, 15, 24, 41, 34, 59, 48, 40, 64, 50, 78, 62, 80, 56, 33, 29, 28, 25, 43, 39, 63, 55, 93, 76, 59, 93, 72, 54, 75, 50, 29, 52, 22, 42, 40, 67, 57, 95, 79, 72, 57, 89, 69, 49, 66, 46, 27, 77, 37, 35, 66, 58, 52, 91, 74, 62, 48, 79, 63, 90, 62, 40, 38, 125, 32, 60, 56, 50, 92, 78, 65, 55, 87, 71, 51, 73, 51, 70, 30, 109, 53, 49, 94, 88, 75, 66, 122, 91, 73, 56, 42, 64, 44, 21, 25, 90, 43, 41, 77, 73, 63, 56, 92, 77, 66, 47, 67, 48, 53, 36, 20, 71, 34, 67, 60, 58, 49, 88, 76, 67, 106, 71, 54, 38, 39, 23, 15, 109, 53, 51, 47, 90, 82, 58, 57, 48, 72, 57, 41, 23, 27, 62, 9, 86, 42, 40, 37, 70, 64, 52, 43, 70, 55, 42, 25, 29, 18, 11, 11, 118, 68, 30, 55, 50, 46, 74, 65, 49, 39, 24, 16, 22, 13, 14, 7, 91, 44, 39, 38, 34, 63, 52, 45, 31, 52, 28, 19, 14, 8, 9, 3, 123, 60, 58, 53, 47, 43, 32, 22, 37, 24, 17, 12, 15, 10, 2, 1, 71, 37, 34, 30, 28, 20, 17, 26, 21, 16, 10, 6, 8, 6, 2, 0], k.t16HB = [1, 5, 14, 44, 74, 63, 110, 93, 172, 149, 138, 242, 225, 195, 376, 17, 3, 4, 12, 20, 35, 62, 53, 47, 83, 75, 68, 119, 201, 107, 207, 9, 15, 13, 23, 38, 67, 58, 103, 90, 161, 72, 127, 117, 110, 209, 206, 16, 45, 21, 39, 69, 64, 114, 99, 87, 158, 140, 252, 212, 199, 387, 365, 26, 75, 36, 68, 65, 115, 101, 179, 164, 155, 264, 246, 226, 395, 382, 362, 9, 66, 30, 59, 56, 102, 185, 173, 265, 142, 253, 232, 400, 388, 378, 445, 16, 111, 54, 52, 100, 184, 178, 160, 133, 257, 244, 228, 217, 385, 366, 715, 10, 98, 48, 91, 88, 165, 157, 148, 261, 248, 407, 397, 372, 380, 889, 884, 8, 85, 84, 81, 159, 156, 143, 260, 249, 427, 401, 392, 383, 727, 713, 708, 7, 154, 76, 73, 141, 131, 256, 245, 426, 406, 394, 384, 735, 359, 710, 352, 11, 139, 129, 67, 125, 247, 233, 229, 219, 393, 743, 737, 720, 885, 882, 439, 4, 243, 120, 118, 115, 227, 223, 396, 746, 742, 736, 721, 712, 706, 223, 436, 6, 202, 224, 222, 218, 216, 389, 386, 381, 364, 888, 443, 707, 440, 437, 1728, 4, 747, 211, 210, 208, 370, 379, 734, 723, 714, 1735, 883, 877, 876, 3459, 865, 2, 377, 369, 102, 187, 726, 722, 358, 711, 709, 866, 1734, 871, 3458, 870, 434, 0, 12, 10, 7, 11, 10, 17, 11, 9, 13, 12, 10, 7, 5, 3, 1, 3], k.t24HB = [15, 13, 46, 80, 146, 262, 248, 434, 426, 669, 653, 649, 621, 517, 1032, 88, 14, 12, 21, 38, 71, 130, 122, 216, 209, 198, 327, 345, 319, 297, 279, 42, 47, 22, 41, 74, 68, 128, 120, 221, 207, 194, 182, 340, 315, 295, 541, 18, 81, 39, 75, 70, 134, 125, 116, 220, 204, 190, 178, 325, 311, 293, 271, 16, 147, 72, 69, 135, 127, 118, 112, 210, 200, 188, 352, 323, 306, 285, 540, 14, 263, 66, 129, 126, 119, 114, 214, 202, 192, 180, 341, 317, 301, 281, 262, 12, 249, 123, 121, 117, 113, 215, 206, 195, 185, 347, 330, 308, 291, 272, 520, 10, 435, 115, 111, 109, 211, 203, 196, 187, 353, 332, 313, 298, 283, 531, 381, 17, 427, 212, 208, 205, 201, 193, 186, 177, 169, 320, 303, 286, 268, 514, 377, 16, 335, 199, 197, 191, 189, 181, 174, 333, 321, 305, 289, 275, 521, 379, 371, 11, 668, 184, 183, 179, 175, 344, 331, 314, 304, 290, 277, 530, 383, 373, 366, 10, 652, 346, 171, 168, 164, 318, 309, 299, 287, 276, 263, 513, 375, 368, 362, 6, 648, 322, 316, 312, 307, 302, 292, 284, 269, 261, 512, 376, 370, 364, 359, 4, 620, 300, 296, 294, 288, 282, 273, 266, 515, 380, 374, 369, 365, 361, 357, 2, 1033, 280, 278, 274, 267, 264, 259, 382, 378, 372, 367, 363, 360, 358, 356, 0, 43, 20, 19, 17, 15, 13, 11, 9, 7, 6, 4, 7, 5, 3, 1, 3], k.t32HB = [1, 10, 8, 20, 12, 20, 16, 32, 14, 12, 24, 0, 28, 16, 24, 16], k.t33HB = [15, 28, 26, 48, 22, 40, 36, 64, 14, 24, 20, 32, 12, 16, 8, 0], k.t1l = [1, 4, 3, 5], k.t2l = [1, 4, 7, 4, 5, 7, 6, 7, 8], k.t3l = [2, 3, 7, 4, 4, 7, 6, 7, 8], k.t5l = [1, 4, 7, 8, 4, 5, 8, 9, 7, 8, 9, 10, 8, 8, 9, 10], k.t6l = [3, 4, 6, 8, 4, 4, 6, 7, 5, 6, 7, 8, 7, 7, 8, 9], k.t7l = [1, 4, 7, 9, 9, 10, 4, 6, 8, 9, 9, 10, 7, 7, 9, 10, 10, 11, 8, 9, 10, 11, 11, 11, 8, 9, 10, 11, 11, 12, 9, 10, 11, 12, 12, 12], k.t8l = [2, 4, 7, 9, 9, 10, 4, 4, 6, 10, 10, 10, 7, 6, 8, 10, 10, 11, 9, 10, 10, 11, 11, 12, 9, 9, 10, 11, 12, 12, 10, 10, 11, 11, 13, 13], k.t9l = [3, 4, 6, 7, 9, 10, 4, 5, 6, 7, 8, 10, 5, 6, 7, 8, 9, 10, 7, 7, 8, 9, 9, 10, 8, 8, 9, 9, 10, 11, 9, 9, 10, 10, 11, 11], k.t10l = [1, 4, 7, 9, 10, 10, 10, 11, 4, 6, 8, 9, 10, 11, 10, 10, 7, 8, 9, 10, 11, 12, 11, 11, 8, 9, 10, 11, 12, 12, 11, 12, 9, 10, 11, 12, 12, 12, 12, 12, 10, 11, 12, 12, 13, 13, 12, 13, 9, 10, 11, 12, 12, 12, 13, 13, 10, 10, 11, 12, 12, 13, 13, 13], k.t11l = [2, 4, 6, 8, 9, 10, 9, 10, 4, 5, 6, 8, 10, 10, 9, 10, 6, 7, 8, 9, 10, 11, 10, 10, 8, 8, 9, 11, 10, 12, 10, 11, 9, 10, 10, 11, 11, 12, 11, 12, 9, 10, 11, 12, 12, 13, 12, 13, 9, 9, 9, 10, 11, 12, 12, 12, 9, 9, 10, 11, 12, 12, 12, 12], k.t12l = [4, 4, 6, 8, 9, 10, 10, 10, 4, 5, 6, 7, 9, 9, 10, 10, 6, 6, 7, 8, 9, 10, 9, 10, 7, 7, 8, 8, 9, 10, 10, 10, 8, 8, 9, 9, 10, 10, 10, 11, 9, 9, 10, 10, 10, 11, 10, 11, 9, 9, 9, 10, 10, 11, 11, 12, 10, 10, 10, 11, 11, 11, 11, 12], k.t13l = [1, 5, 7, 8, 9, 10, 10, 11, 10, 11, 12, 12, 13, 13, 14, 14, 4, 6, 8, 9, 10, 10, 11, 11, 11, 11, 12, 12, 13, 14, 14, 14, 7, 8, 9, 10, 11, 11, 12, 12, 11, 12, 12, 13, 13, 14, 15, 15, 8, 9, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 15, 15, 9, 9, 11, 11, 12, 12, 13, 13, 12, 13, 13, 14, 14, 15, 15, 16, 10, 10, 11, 12, 12, 12, 13, 13, 13, 13, 14, 13, 15, 15, 16, 16, 10, 11, 12, 12, 13, 13, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16, 11, 11, 12, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 18, 18, 10, 10, 11, 12, 12, 13, 13, 14, 14, 14, 14, 15, 15, 16, 17, 17, 11, 11, 12, 12, 13, 13, 13, 15, 14, 15, 15, 16, 16, 16, 18, 17, 11, 12, 12, 13, 13, 14, 14, 15, 14, 15, 16, 15, 16, 17, 18, 19, 12, 12, 12, 13, 14, 14, 14, 14, 15, 15, 15, 16, 17, 17, 17, 18, 12, 13, 13, 14, 14, 15, 14, 15, 16, 16, 17, 17, 17, 18, 18, 18, 13, 13, 14, 15, 15, 15, 16, 16, 16, 16, 16, 17, 18, 17, 18, 18, 14, 14, 14, 15, 15, 15, 17, 16, 16, 19, 17, 17, 17, 19, 18, 18, 13, 14, 15, 16, 16, 16, 17, 16, 17, 17, 18, 18, 21, 20, 21, 18], k.t15l = [3, 5, 6, 8, 8, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 14, 5, 5, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 13, 6, 7, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 13, 13, 13, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13, 9, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 13, 13, 13, 14, 10, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 14, 14, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 14, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 14, 14, 14, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 15, 14, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 15, 12, 12, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 14, 14, 15, 15, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 14, 15, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 15, 15], k.t16_5l = [1, 5, 7, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 11, 4, 6, 8, 9, 10, 11, 11, 11, 12, 12, 12, 13, 14, 13, 14, 11, 7, 8, 9, 10, 11, 11, 12, 12, 13, 12, 13, 13, 13, 14, 14, 12, 9, 9, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 13, 10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 12, 10, 10, 11, 11, 12, 13, 13, 14, 13, 14, 14, 15, 15, 15, 16, 13, 11, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 16, 13, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 17, 17, 13, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 13, 12, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 15, 16, 15, 14, 12, 13, 12, 13, 14, 14, 14, 14, 15, 16, 16, 16, 17, 17, 16, 13, 13, 13, 13, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 14, 13, 14, 14, 14, 14, 15, 15, 15, 15, 17, 16, 16, 16, 16, 18, 14, 15, 14, 14, 14, 15, 15, 16, 16, 16, 18, 17, 17, 17, 19, 17, 14, 14, 15, 13, 14, 16, 16, 15, 16, 16, 17, 18, 17, 19, 17, 16, 14, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 12], k.t16l = [1, 5, 7, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 10, 4, 6, 8, 9, 10, 11, 11, 11, 12, 12, 12, 13, 14, 13, 14, 10, 7, 8, 9, 10, 11, 11, 12, 12, 13, 12, 13, 13, 13, 14, 14, 11, 9, 9, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 12, 10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 11, 10, 10, 11, 11, 12, 13, 13, 14, 13, 14, 14, 15, 15, 15, 16, 12, 11, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 16, 12, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 17, 17, 12, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 12, 12, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 15, 16, 15, 13, 12, 13, 12, 13, 14, 14, 14, 14, 15, 16, 16, 16, 17, 17, 16, 12, 13, 13, 13, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 17, 16, 16, 16, 16, 18, 13, 15, 14, 14, 14, 15, 15, 16, 16, 16, 18, 17, 17, 17, 19, 17, 13, 14, 15, 13, 14, 16, 16, 15, 16, 16, 17, 18, 17, 19, 17, 16, 13, 10, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 10], k.t24l = [4, 5, 7, 8, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 13, 10, 5, 6, 7, 8, 9, 10, 10, 11, 11, 11, 12, 12, 12, 12, 12, 10, 7, 7, 8, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 9, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 12, 13, 9, 10, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 9, 11, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 10, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 10, 12, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 10, 12, 12, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 10, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 10, 13, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 6], k.t32l = [1, 5, 5, 7, 5, 8, 7, 9, 5, 7, 7, 9, 7, 9, 9, 10], k.t33l = [4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8], k.ht = [new e(0, 0, null, null), new e(2, 0, k.t1HB, k.t1l), new e(3, 0, k.t2HB, k.t2l), new e(3, 0, k.t3HB, k.t3l), new e(0, 0, null, null), new e(4, 0, k.t5HB, k.t5l), new e(4, 0, k.t6HB, k.t6l), new e(6, 0, k.t7HB, k.t7l), new e(6, 0, k.t8HB, k.t8l), new e(6, 0, k.t9HB, k.t9l), new e(8, 0, k.t10HB, k.t10l), new e(8, 0, k.t11HB, k.t11l), new e(8, 0, k.t12HB, k.t12l), new e(16, 0, k.t13HB, k.t13l), new e(0, 0, null, k.t16_5l), new e(16, 0, k.t15HB, k.t15l), new e(1, 1, k.t16HB, k.t16l), new e(2, 3, k.t16HB, k.t16l), new e(3, 7, k.t16HB, k.t16l), new e(4, 15, k.t16HB, k.t16l), new e(6, 63, k.t16HB, k.t16l), new e(8, 255, k.t16HB, k.t16l), new e(10, 1023, k.t16HB, k.t16l), new e(13, 8191, k.t16HB, k.t16l), new e(4, 15, k.t24HB, k.t24l), new e(5, 31, k.t24HB, k.t24l), new e(6, 63, k.t24HB, k.t24l), new e(7, 127, k.t24HB, k.t24l), new e(8, 255, k.t24HB, k.t24l), new e(9, 511, k.t24HB, k.t24l), new e(11, 2047, k.t24HB, k.t24l), new e(13, 8191, k.t24HB, k.t24l), new e(0, 0, k.t32HB, k.t32l), new e(0, 0, k.t33HB, k.t33l)], k.largetbl = [65540, 327685, 458759, 589832, 655369, 655370, 720906, 720907, 786443, 786444, 786444, 851980, 851980, 851980, 917517, 655370, 262149, 393222, 524295, 589832, 655369, 720906, 720906, 720907, 786443, 786443, 786444, 851980, 917516, 851980, 917516, 655370, 458759, 524295, 589832, 655369, 720905, 720906, 786442, 786443, 851979, 786443, 851979, 851980, 851980, 917516, 917517, 720905, 589832, 589832, 655369, 720905, 720906, 786442, 786442, 786443, 851979, 851979, 917515, 917516, 917516, 983052, 983052, 786441, 655369, 655369, 720905, 720906, 786442, 786442, 851978, 851979, 851979, 917515, 917516, 917516, 983052, 983052, 983053, 720905, 655370, 655369, 720906, 720906, 786442, 851978, 851979, 917515, 851979, 917515, 917516, 983052, 983052, 983052, 1048588, 786441, 720906, 720906, 720906, 786442, 851978, 851979, 851979, 851979, 917515, 917516, 917516, 917516, 983052, 983052, 1048589, 786441, 720907, 720906, 786442, 786442, 851979, 851979, 851979, 917515, 917516, 983052, 983052, 983052, 983052, 1114125, 1114125, 786442, 720907, 786443, 786443, 851979, 851979, 851979, 917515, 917515, 983051, 983052, 983052, 983052, 1048588, 1048589, 1048589, 786442, 786443, 786443, 786443, 851979, 851979, 917515, 917515, 983052, 983052, 983052, 983052, 1048588, 983053, 1048589, 983053, 851978, 786444, 851979, 786443, 851979, 917515, 917516, 917516, 917516, 983052, 1048588, 1048588, 1048589, 1114125, 1114125, 1048589, 786442, 851980, 851980, 851979, 851979, 917515, 917516, 983052, 1048588, 1048588, 1048588, 1048588, 1048589, 1048589, 983053, 1048589, 851978, 851980, 917516, 917516, 917516, 917516, 983052, 983052, 983052, 983052, 1114124, 1048589, 1048589, 1048589, 1048589, 1179661, 851978, 983052, 917516, 917516, 917516, 983052, 983052, 1048588, 1048588, 1048589, 1179661, 1114125, 1114125, 1114125, 1245197, 1114125, 851978, 917517, 983052, 851980, 917516, 1048588, 1048588, 983052, 1048589, 1048589, 1114125, 1179661, 1114125, 1245197, 1114125, 1048589, 851978, 655369, 655369, 655369, 720905, 720905, 786441, 786441, 786441, 851977, 851977, 851977, 851978, 851978, 851978, 851978, 655366], k.table23 = [65538, 262147, 458759, 262148, 327684, 458759, 393222, 458759, 524296], k.table56 = [65539, 262148, 458758, 524296, 262148, 327684, 524294, 589831, 458757, 524294, 589831, 655368, 524295, 524295, 589832, 655369], k.bitrate_table = [[0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, -1], [0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, -1], [0, 8, 16, 24, 32, 40, 48, 56, 64, -1, -1, -1, -1, -1, -1, -1]], k.samplerate_table = [[22050, 24e3, 16e3, -1], [44100, 48e3, 32e3, -1], [11025, 12e3, 8e3, -1]], k.scfsi_band = [0, 6, 11, 16, 21], T.Q_MAX = 257, T.Q_MAX2 = 116, T.LARGE_BITS = 1e5, T.IXMAX_VAL = 8206; - var F = {}; - function C() { - var r, g; + F.t1HB = [1, 1, 1, 0], F.t2HB = [1, 2, 1, 3, 1, 1, 3, 2, 0], F.t3HB = [3, 2, 1, 1, 1, 1, 3, 2, 0], F.t5HB = [1, 2, 6, 5, 3, 1, 4, 4, 7, 5, 7, 1, 6, 1, 1, 0], F.t6HB = [7, 3, 5, 1, 6, 2, 3, 2, 5, 4, 4, 1, 3, 3, 2, 0], F.t7HB = [1, 2, 10, 19, 16, 10, 3, 3, 7, 10, 5, 3, 11, 4, 13, 17, 8, 4, 12, 11, 18, 15, 11, 2, 7, 6, 9, 14, 3, 1, 6, 4, 5, 3, 2, 0], F.t8HB = [3, 4, 6, 18, 12, 5, 5, 1, 2, 16, 9, 3, 7, 3, 5, 14, 7, 3, 19, 17, 15, 13, 10, 4, 13, 5, 8, 11, 5, 1, 12, 4, 4, 1, 1, 0], F.t9HB = [7, 5, 9, 14, 15, 7, 6, 4, 5, 5, 6, 7, 7, 6, 8, 8, 8, 5, 15, 6, 9, 10, 5, 1, 11, 7, 9, 6, 4, 1, 14, 4, 6, 2, 6, 0], F.t10HB = [1, 2, 10, 23, 35, 30, 12, 17, 3, 3, 8, 12, 18, 21, 12, 7, 11, 9, 15, 21, 32, 40, 19, 6, 14, 13, 22, 34, 46, 23, 18, 7, 20, 19, 33, 47, 27, 22, 9, 3, 31, 22, 41, 26, 21, 20, 5, 3, 14, 13, 10, 11, 16, 6, 5, 1, 9, 8, 7, 8, 4, 4, 2, 0], F.t11HB = [3, 4, 10, 24, 34, 33, 21, 15, 5, 3, 4, 10, 32, 17, 11, 10, 11, 7, 13, 18, 30, 31, 20, 5, 25, 11, 19, 59, 27, 18, 12, 5, 35, 33, 31, 58, 30, 16, 7, 5, 28, 26, 32, 19, 17, 15, 8, 14, 14, 12, 9, 13, 14, 9, 4, 1, 11, 4, 6, 6, 6, 3, 2, 0], F.t12HB = [9, 6, 16, 33, 41, 39, 38, 26, 7, 5, 6, 9, 23, 16, 26, 11, 17, 7, 11, 14, 21, 30, 10, 7, 17, 10, 15, 12, 18, 28, 14, 5, 32, 13, 22, 19, 18, 16, 9, 5, 40, 17, 31, 29, 17, 13, 4, 2, 27, 12, 11, 15, 10, 7, 4, 1, 27, 12, 8, 12, 6, 3, 1, 0], F.t13HB = [1, 5, 14, 21, 34, 51, 46, 71, 42, 52, 68, 52, 67, 44, 43, 19, 3, 4, 12, 19, 31, 26, 44, 33, 31, 24, 32, 24, 31, 35, 22, 14, 15, 13, 23, 36, 59, 49, 77, 65, 29, 40, 30, 40, 27, 33, 42, 16, 22, 20, 37, 61, 56, 79, 73, 64, 43, 76, 56, 37, 26, 31, 25, 14, 35, 16, 60, 57, 97, 75, 114, 91, 54, 73, 55, 41, 48, 53, 23, 24, 58, 27, 50, 96, 76, 70, 93, 84, 77, 58, 79, 29, 74, 49, 41, 17, 47, 45, 78, 74, 115, 94, 90, 79, 69, 83, 71, 50, 59, 38, 36, 15, 72, 34, 56, 95, 92, 85, 91, 90, 86, 73, 77, 65, 51, 44, 43, 42, 43, 20, 30, 44, 55, 78, 72, 87, 78, 61, 46, 54, 37, 30, 20, 16, 53, 25, 41, 37, 44, 59, 54, 81, 66, 76, 57, 54, 37, 18, 39, 11, 35, 33, 31, 57, 42, 82, 72, 80, 47, 58, 55, 21, 22, 26, 38, 22, 53, 25, 23, 38, 70, 60, 51, 36, 55, 26, 34, 23, 27, 14, 9, 7, 34, 32, 28, 39, 49, 75, 30, 52, 48, 40, 52, 28, 18, 17, 9, 5, 45, 21, 34, 64, 56, 50, 49, 45, 31, 19, 12, 15, 10, 7, 6, 3, 48, 23, 20, 39, 36, 35, 53, 21, 16, 23, 13, 10, 6, 1, 4, 2, 16, 15, 17, 27, 25, 20, 29, 11, 17, 12, 16, 8, 1, 1, 0, 1], F.t15HB = [7, 12, 18, 53, 47, 76, 124, 108, 89, 123, 108, 119, 107, 81, 122, 63, 13, 5, 16, 27, 46, 36, 61, 51, 42, 70, 52, 83, 65, 41, 59, 36, 19, 17, 15, 24, 41, 34, 59, 48, 40, 64, 50, 78, 62, 80, 56, 33, 29, 28, 25, 43, 39, 63, 55, 93, 76, 59, 93, 72, 54, 75, 50, 29, 52, 22, 42, 40, 67, 57, 95, 79, 72, 57, 89, 69, 49, 66, 46, 27, 77, 37, 35, 66, 58, 52, 91, 74, 62, 48, 79, 63, 90, 62, 40, 38, 125, 32, 60, 56, 50, 92, 78, 65, 55, 87, 71, 51, 73, 51, 70, 30, 109, 53, 49, 94, 88, 75, 66, 122, 91, 73, 56, 42, 64, 44, 21, 25, 90, 43, 41, 77, 73, 63, 56, 92, 77, 66, 47, 67, 48, 53, 36, 20, 71, 34, 67, 60, 58, 49, 88, 76, 67, 106, 71, 54, 38, 39, 23, 15, 109, 53, 51, 47, 90, 82, 58, 57, 48, 72, 57, 41, 23, 27, 62, 9, 86, 42, 40, 37, 70, 64, 52, 43, 70, 55, 42, 25, 29, 18, 11, 11, 118, 68, 30, 55, 50, 46, 74, 65, 49, 39, 24, 16, 22, 13, 14, 7, 91, 44, 39, 38, 34, 63, 52, 45, 31, 52, 28, 19, 14, 8, 9, 3, 123, 60, 58, 53, 47, 43, 32, 22, 37, 24, 17, 12, 15, 10, 2, 1, 71, 37, 34, 30, 28, 20, 17, 26, 21, 16, 10, 6, 8, 6, 2, 0], F.t16HB = [1, 5, 14, 44, 74, 63, 110, 93, 172, 149, 138, 242, 225, 195, 376, 17, 3, 4, 12, 20, 35, 62, 53, 47, 83, 75, 68, 119, 201, 107, 207, 9, 15, 13, 23, 38, 67, 58, 103, 90, 161, 72, 127, 117, 110, 209, 206, 16, 45, 21, 39, 69, 64, 114, 99, 87, 158, 140, 252, 212, 199, 387, 365, 26, 75, 36, 68, 65, 115, 101, 179, 164, 155, 264, 246, 226, 395, 382, 362, 9, 66, 30, 59, 56, 102, 185, 173, 265, 142, 253, 232, 400, 388, 378, 445, 16, 111, 54, 52, 100, 184, 178, 160, 133, 257, 244, 228, 217, 385, 366, 715, 10, 98, 48, 91, 88, 165, 157, 148, 261, 248, 407, 397, 372, 380, 889, 884, 8, 85, 84, 81, 159, 156, 143, 260, 249, 427, 401, 392, 383, 727, 713, 708, 7, 154, 76, 73, 141, 131, 256, 245, 426, 406, 394, 384, 735, 359, 710, 352, 11, 139, 129, 67, 125, 247, 233, 229, 219, 393, 743, 737, 720, 885, 882, 439, 4, 243, 120, 118, 115, 227, 223, 396, 746, 742, 736, 721, 712, 706, 223, 436, 6, 202, 224, 222, 218, 216, 389, 386, 381, 364, 888, 443, 707, 440, 437, 1728, 4, 747, 211, 210, 208, 370, 379, 734, 723, 714, 1735, 883, 877, 876, 3459, 865, 2, 377, 369, 102, 187, 726, 722, 358, 711, 709, 866, 1734, 871, 3458, 870, 434, 0, 12, 10, 7, 11, 10, 17, 11, 9, 13, 12, 10, 7, 5, 3, 1, 3], F.t24HB = [15, 13, 46, 80, 146, 262, 248, 434, 426, 669, 653, 649, 621, 517, 1032, 88, 14, 12, 21, 38, 71, 130, 122, 216, 209, 198, 327, 345, 319, 297, 279, 42, 47, 22, 41, 74, 68, 128, 120, 221, 207, 194, 182, 340, 315, 295, 541, 18, 81, 39, 75, 70, 134, 125, 116, 220, 204, 190, 178, 325, 311, 293, 271, 16, 147, 72, 69, 135, 127, 118, 112, 210, 200, 188, 352, 323, 306, 285, 540, 14, 263, 66, 129, 126, 119, 114, 214, 202, 192, 180, 341, 317, 301, 281, 262, 12, 249, 123, 121, 117, 113, 215, 206, 195, 185, 347, 330, 308, 291, 272, 520, 10, 435, 115, 111, 109, 211, 203, 196, 187, 353, 332, 313, 298, 283, 531, 381, 17, 427, 212, 208, 205, 201, 193, 186, 177, 169, 320, 303, 286, 268, 514, 377, 16, 335, 199, 197, 191, 189, 181, 174, 333, 321, 305, 289, 275, 521, 379, 371, 11, 668, 184, 183, 179, 175, 344, 331, 314, 304, 290, 277, 530, 383, 373, 366, 10, 652, 346, 171, 168, 164, 318, 309, 299, 287, 276, 263, 513, 375, 368, 362, 6, 648, 322, 316, 312, 307, 302, 292, 284, 269, 261, 512, 376, 370, 364, 359, 4, 620, 300, 296, 294, 288, 282, 273, 266, 515, 380, 374, 369, 365, 361, 357, 2, 1033, 280, 278, 274, 267, 264, 259, 382, 378, 372, 367, 363, 360, 358, 356, 0, 43, 20, 19, 17, 15, 13, 11, 9, 7, 6, 4, 7, 5, 3, 1, 3], F.t32HB = [1, 10, 8, 20, 12, 20, 16, 32, 14, 12, 24, 0, 28, 16, 24, 16], F.t33HB = [15, 28, 26, 48, 22, 40, 36, 64, 14, 24, 20, 32, 12, 16, 8, 0], F.t1l = [1, 4, 3, 5], F.t2l = [1, 4, 7, 4, 5, 7, 6, 7, 8], F.t3l = [2, 3, 7, 4, 4, 7, 6, 7, 8], F.t5l = [1, 4, 7, 8, 4, 5, 8, 9, 7, 8, 9, 10, 8, 8, 9, 10], F.t6l = [3, 4, 6, 8, 4, 4, 6, 7, 5, 6, 7, 8, 7, 7, 8, 9], F.t7l = [1, 4, 7, 9, 9, 10, 4, 6, 8, 9, 9, 10, 7, 7, 9, 10, 10, 11, 8, 9, 10, 11, 11, 11, 8, 9, 10, 11, 11, 12, 9, 10, 11, 12, 12, 12], F.t8l = [2, 4, 7, 9, 9, 10, 4, 4, 6, 10, 10, 10, 7, 6, 8, 10, 10, 11, 9, 10, 10, 11, 11, 12, 9, 9, 10, 11, 12, 12, 10, 10, 11, 11, 13, 13], F.t9l = [3, 4, 6, 7, 9, 10, 4, 5, 6, 7, 8, 10, 5, 6, 7, 8, 9, 10, 7, 7, 8, 9, 9, 10, 8, 8, 9, 9, 10, 11, 9, 9, 10, 10, 11, 11], F.t10l = [1, 4, 7, 9, 10, 10, 10, 11, 4, 6, 8, 9, 10, 11, 10, 10, 7, 8, 9, 10, 11, 12, 11, 11, 8, 9, 10, 11, 12, 12, 11, 12, 9, 10, 11, 12, 12, 12, 12, 12, 10, 11, 12, 12, 13, 13, 12, 13, 9, 10, 11, 12, 12, 12, 13, 13, 10, 10, 11, 12, 12, 13, 13, 13], F.t11l = [2, 4, 6, 8, 9, 10, 9, 10, 4, 5, 6, 8, 10, 10, 9, 10, 6, 7, 8, 9, 10, 11, 10, 10, 8, 8, 9, 11, 10, 12, 10, 11, 9, 10, 10, 11, 11, 12, 11, 12, 9, 10, 11, 12, 12, 13, 12, 13, 9, 9, 9, 10, 11, 12, 12, 12, 9, 9, 10, 11, 12, 12, 12, 12], F.t12l = [4, 4, 6, 8, 9, 10, 10, 10, 4, 5, 6, 7, 9, 9, 10, 10, 6, 6, 7, 8, 9, 10, 9, 10, 7, 7, 8, 8, 9, 10, 10, 10, 8, 8, 9, 9, 10, 10, 10, 11, 9, 9, 10, 10, 10, 11, 10, 11, 9, 9, 9, 10, 10, 11, 11, 12, 10, 10, 10, 11, 11, 11, 11, 12], F.t13l = [1, 5, 7, 8, 9, 10, 10, 11, 10, 11, 12, 12, 13, 13, 14, 14, 4, 6, 8, 9, 10, 10, 11, 11, 11, 11, 12, 12, 13, 14, 14, 14, 7, 8, 9, 10, 11, 11, 12, 12, 11, 12, 12, 13, 13, 14, 15, 15, 8, 9, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 15, 15, 9, 9, 11, 11, 12, 12, 13, 13, 12, 13, 13, 14, 14, 15, 15, 16, 10, 10, 11, 12, 12, 12, 13, 13, 13, 13, 14, 13, 15, 15, 16, 16, 10, 11, 12, 12, 13, 13, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16, 11, 11, 12, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 18, 18, 10, 10, 11, 12, 12, 13, 13, 14, 14, 14, 14, 15, 15, 16, 17, 17, 11, 11, 12, 12, 13, 13, 13, 15, 14, 15, 15, 16, 16, 16, 18, 17, 11, 12, 12, 13, 13, 14, 14, 15, 14, 15, 16, 15, 16, 17, 18, 19, 12, 12, 12, 13, 14, 14, 14, 14, 15, 15, 15, 16, 17, 17, 17, 18, 12, 13, 13, 14, 14, 15, 14, 15, 16, 16, 17, 17, 17, 18, 18, 18, 13, 13, 14, 15, 15, 15, 16, 16, 16, 16, 16, 17, 18, 17, 18, 18, 14, 14, 14, 15, 15, 15, 17, 16, 16, 19, 17, 17, 17, 19, 18, 18, 13, 14, 15, 16, 16, 16, 17, 16, 17, 17, 18, 18, 21, 20, 21, 18], F.t15l = [3, 5, 6, 8, 8, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 14, 5, 5, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 13, 6, 7, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 13, 13, 13, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13, 9, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 13, 13, 13, 14, 10, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 14, 14, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 14, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 14, 14, 14, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 15, 14, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 15, 12, 12, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 14, 14, 15, 15, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 14, 15, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 15, 15], F.t16_5l = [1, 5, 7, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 11, 4, 6, 8, 9, 10, 11, 11, 11, 12, 12, 12, 13, 14, 13, 14, 11, 7, 8, 9, 10, 11, 11, 12, 12, 13, 12, 13, 13, 13, 14, 14, 12, 9, 9, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 13, 10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 12, 10, 10, 11, 11, 12, 13, 13, 14, 13, 14, 14, 15, 15, 15, 16, 13, 11, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 16, 13, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 17, 17, 13, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 13, 12, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 15, 16, 15, 14, 12, 13, 12, 13, 14, 14, 14, 14, 15, 16, 16, 16, 17, 17, 16, 13, 13, 13, 13, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 14, 13, 14, 14, 14, 14, 15, 15, 15, 15, 17, 16, 16, 16, 16, 18, 14, 15, 14, 14, 14, 15, 15, 16, 16, 16, 18, 17, 17, 17, 19, 17, 14, 14, 15, 13, 14, 16, 16, 15, 16, 16, 17, 18, 17, 19, 17, 16, 14, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 12], F.t16l = [1, 5, 7, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 10, 4, 6, 8, 9, 10, 11, 11, 11, 12, 12, 12, 13, 14, 13, 14, 10, 7, 8, 9, 10, 11, 11, 12, 12, 13, 12, 13, 13, 13, 14, 14, 11, 9, 9, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 12, 10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 11, 10, 10, 11, 11, 12, 13, 13, 14, 13, 14, 14, 15, 15, 15, 16, 12, 11, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 16, 12, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 17, 17, 12, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 12, 12, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 15, 16, 15, 13, 12, 13, 12, 13, 14, 14, 14, 14, 15, 16, 16, 16, 17, 17, 16, 12, 13, 13, 13, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 17, 16, 16, 16, 16, 18, 13, 15, 14, 14, 14, 15, 15, 16, 16, 16, 18, 17, 17, 17, 19, 17, 13, 14, 15, 13, 14, 16, 16, 15, 16, 16, 17, 18, 17, 19, 17, 16, 13, 10, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 10], F.t24l = [4, 5, 7, 8, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 13, 10, 5, 6, 7, 8, 9, 10, 10, 11, 11, 11, 12, 12, 12, 12, 12, 10, 7, 7, 8, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 9, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 12, 13, 9, 10, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 9, 11, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 10, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 10, 12, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 10, 12, 12, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 10, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 10, 13, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 6], F.t32l = [1, 5, 5, 7, 5, 8, 7, 9, 5, 7, 7, 9, 7, 9, 9, 10], F.t33l = [4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8], F.ht = [new e(0, 0, null, null), new e(2, 0, F.t1HB, F.t1l), new e(3, 0, F.t2HB, F.t2l), new e(3, 0, F.t3HB, F.t3l), new e(0, 0, null, null), new e(4, 0, F.t5HB, F.t5l), new e(4, 0, F.t6HB, F.t6l), new e(6, 0, F.t7HB, F.t7l), new e(6, 0, F.t8HB, F.t8l), new e(6, 0, F.t9HB, F.t9l), new e(8, 0, F.t10HB, F.t10l), new e(8, 0, F.t11HB, F.t11l), new e(8, 0, F.t12HB, F.t12l), new e(16, 0, F.t13HB, F.t13l), new e(0, 0, null, F.t16_5l), new e(16, 0, F.t15HB, F.t15l), new e(1, 1, F.t16HB, F.t16l), new e(2, 3, F.t16HB, F.t16l), new e(3, 7, F.t16HB, F.t16l), new e(4, 15, F.t16HB, F.t16l), new e(6, 63, F.t16HB, F.t16l), new e(8, 255, F.t16HB, F.t16l), new e(10, 1023, F.t16HB, F.t16l), new e(13, 8191, F.t16HB, F.t16l), new e(4, 15, F.t24HB, F.t24l), new e(5, 31, F.t24HB, F.t24l), new e(6, 63, F.t24HB, F.t24l), new e(7, 127, F.t24HB, F.t24l), new e(8, 255, F.t24HB, F.t24l), new e(9, 511, F.t24HB, F.t24l), new e(11, 2047, F.t24HB, F.t24l), new e(13, 8191, F.t24HB, F.t24l), new e(0, 0, F.t32HB, F.t32l), new e(0, 0, F.t33HB, F.t33l)], F.largetbl = [65540, 327685, 458759, 589832, 655369, 655370, 720906, 720907, 786443, 786444, 786444, 851980, 851980, 851980, 917517, 655370, 262149, 393222, 524295, 589832, 655369, 720906, 720906, 720907, 786443, 786443, 786444, 851980, 917516, 851980, 917516, 655370, 458759, 524295, 589832, 655369, 720905, 720906, 786442, 786443, 851979, 786443, 851979, 851980, 851980, 917516, 917517, 720905, 589832, 589832, 655369, 720905, 720906, 786442, 786442, 786443, 851979, 851979, 917515, 917516, 917516, 983052, 983052, 786441, 655369, 655369, 720905, 720906, 786442, 786442, 851978, 851979, 851979, 917515, 917516, 917516, 983052, 983052, 983053, 720905, 655370, 655369, 720906, 720906, 786442, 851978, 851979, 917515, 851979, 917515, 917516, 983052, 983052, 983052, 1048588, 786441, 720906, 720906, 720906, 786442, 851978, 851979, 851979, 851979, 917515, 917516, 917516, 917516, 983052, 983052, 1048589, 786441, 720907, 720906, 786442, 786442, 851979, 851979, 851979, 917515, 917516, 983052, 983052, 983052, 983052, 1114125, 1114125, 786442, 720907, 786443, 786443, 851979, 851979, 851979, 917515, 917515, 983051, 983052, 983052, 983052, 1048588, 1048589, 1048589, 786442, 786443, 786443, 786443, 851979, 851979, 917515, 917515, 983052, 983052, 983052, 983052, 1048588, 983053, 1048589, 983053, 851978, 786444, 851979, 786443, 851979, 917515, 917516, 917516, 917516, 983052, 1048588, 1048588, 1048589, 1114125, 1114125, 1048589, 786442, 851980, 851980, 851979, 851979, 917515, 917516, 983052, 1048588, 1048588, 1048588, 1048588, 1048589, 1048589, 983053, 1048589, 851978, 851980, 917516, 917516, 917516, 917516, 983052, 983052, 983052, 983052, 1114124, 1048589, 1048589, 1048589, 1048589, 1179661, 851978, 983052, 917516, 917516, 917516, 983052, 983052, 1048588, 1048588, 1048589, 1179661, 1114125, 1114125, 1114125, 1245197, 1114125, 851978, 917517, 983052, 851980, 917516, 1048588, 1048588, 983052, 1048589, 1048589, 1114125, 1179661, 1114125, 1245197, 1114125, 1048589, 851978, 655369, 655369, 655369, 720905, 720905, 786441, 786441, 786441, 851977, 851977, 851977, 851978, 851978, 851978, 851978, 655366], F.table23 = [65538, 262147, 458759, 262148, 327684, 458759, 393222, 458759, 524296], F.table56 = [65539, 262148, 458758, 524296, 262148, 327684, 524294, 589831, 458757, 524294, 589831, 655368, 524295, 524295, 589832, 655369], F.bitrate_table = [[0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, -1], [0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, -1], [0, 8, 16, 24, 32, 40, 48, 56, 64, -1, -1, -1, -1, -1, -1, -1]], F.samplerate_table = [[22050, 24e3, 16e3, -1], [44100, 48e3, 32e3, -1], [11025, 12e3, 8e3, -1]], F.scfsi_band = [0, 6, 11, 16, 21], x.Q_MAX = 257, x.Q_MAX2 = 116, x.LARGE_BITS = 1e5, x.IXMAX_VAL = 8206; + var z = {}; + function w() { + var v, g, M; this.rv = null, this.qupvt = null; var w, - s = new function () { + n = new function () { this.setModules = function (e, t) {}; }(); - function S(e) { + function R(e) { this.ordinal = e; } function o(e) { for (var t = 0; t < e.sfbmax; t++) if (e.scalefac[t] + e.subblock_gain[e.window[t]] == 0) return !1; return !0; } - function M(e, t, a, n, s) { + function A(e, t, a, s, n) { var r; switch (e) { default: @@ -14181,10 +13883,13 @@ src: recorder-core.js,engine/mp3.js,engine/mp3-engine.js 0 < t.over_count ? (r = a.over_SSD <= t.over_SSD, a.over_SSD == t.over_SSD && (r = a.bits < t.bits)) : r = a.max_noise < 0 && 10 * a.max_noise + a.bits <= 10 * t.max_noise + t.bits; break; case 0: - r = a.over_count < t.over_count || a.over_count == t.over_count && a.over_noise < t.over_noise || a.over_count == t.over_count && N.EQ(a.over_noise, t.over_noise) && a.tot_noise < t.tot_noise; + r = a.over_count < t.over_count || a.over_count == t.over_count && a.over_noise < t.over_noise || a.over_count == t.over_count && q.EQ(a.over_noise, t.over_noise) && a.tot_noise < t.tot_noise; break; case 8: - me(); + a.max_noise = function (e, t) { + for (var a, s = 1e-37, n = 0; n < t.psymax; n++) s += (a = e[n], ee.FAST_LOG10(.368 + .632 * a * a * a)); + return Math.max(1e-20, s); + }(n, s); case 1: r = a.max_noise < t.max_noise; break; @@ -14198,25 +13903,25 @@ src: recorder-core.js,engine/mp3.js,engine/mp3-engine.js r = a.max_noise <= 0 && .2 < t.max_noise || a.max_noise <= 0 && t.max_noise < 0 && t.max_noise > a.max_noise - .2 && a.tot_noise < t.tot_noise || a.max_noise <= 0 && 0 < t.max_noise && t.max_noise > a.max_noise - .2 && a.tot_noise < t.tot_noise + t.over_noise || 0 < a.max_noise && -.05 < t.max_noise && t.max_noise > a.max_noise - .1 && a.tot_noise + a.over_noise < t.tot_noise + t.over_noise || 0 < a.max_noise && -.1 < t.max_noise && t.max_noise > a.max_noise - .15 && a.tot_noise + a.over_noise + a.over_noise < t.tot_noise + t.over_noise + t.over_noise; break; case 5: - r = a.over_noise < t.over_noise || N.EQ(a.over_noise, t.over_noise) && a.tot_noise < t.tot_noise; + r = a.over_noise < t.over_noise || q.EQ(a.over_noise, t.over_noise) && a.tot_noise < t.tot_noise; break; case 6: - r = a.over_noise < t.over_noise || N.EQ(a.over_noise, t.over_noise) && (a.max_noise < t.max_noise || N.EQ(a.max_noise, t.max_noise) && a.tot_noise <= t.tot_noise); + r = a.over_noise < t.over_noise || q.EQ(a.over_noise, t.over_noise) && (a.max_noise < t.max_noise || q.EQ(a.max_noise, t.max_noise) && a.tot_noise <= t.tot_noise); break; case 7: r = a.over_count < t.over_count || a.over_noise < t.over_noise; } return 0 == t.over_count && (r = r && a.bits < t.bits), r; } - function y(e, t, a, n, s) { + function B(e, t, a, s, n) { var r = e.internal_flags; - !function (e, t, a, n, s) { + !function (e, t, a, s, n) { var r, i = e.internal_flags; r = 0 == t.scalefac_scale ? 1.2968395546510096 : 1.6817928305074292; for (var o = 0, _ = 0; _ < t.sfbmax; _++) o < a[_] && (o = a[_]); var l = i.noise_shaping_amp; - switch (3 == l && me(), l) { + switch (3 == l && (l = n ? 2 : 1), l) { case 2: break; case 1: @@ -14226,536 +13931,734 @@ src: recorder-core.js,engine/mp3.js,engine/mp3-engine.js default: 1 < o ? o = 1 : o *= .95; } - for (var f = 0, _ = 0; _ < t.sfbmax; _++) { + var f = 0; + for (_ = 0; _ < t.sfbmax; _++) { var c, - u = t.width[_]; - if (f += u, !(a[_] < o)) { - for (0 != (2 & i.substep_shaping) && me(), t.scalefac[_]++, c = -u; c < 0; c++) n[f + c] *= r, n[f + c] > t.xrpow_max && (t.xrpow_max = n[f + c]); + h = t.width[_]; + if (f += h, !(a[_] < o)) { + if (0 != (2 & i.substep_shaping) && (i.pseudohalf[_] = 0 == i.pseudohalf[_] ? 1 : 0, 0 == i.pseudohalf[_] && 2 == i.noise_shaping_amp)) return; + for (t.scalefac[_]++, c = -h; c < 0; c++) s[f + c] *= r, s[f + c] > t.xrpow_max && (t.xrpow_max = s[f + c]); if (2 == i.noise_shaping_amp) return; } } - }(e, t, a, n); + }(e, t, a, s, n); var i = o(t); - return !(i || (i = 2 == r.mode_gr ? w.scale_bitcount(t) : w.scale_bitcount_lsf(r, t)) && (1 < r.noise_shaping && (we.fill(r.pseudohalf, 0), 0 == t.scalefac_scale ? (function (e, t) { - for (var a = 0, n = 0; n < e.sfbmax; n++) { - var s = e.width[n], - r = e.scalefac[n]; - if (0 != e.preflag && (r += g.pretab[n]), a += s, 0 != (1 & r)) { + return !i && (!(i = 2 == r.mode_gr ? w.scale_bitcount(t) : w.scale_bitcount_lsf(r, t)) || (1 < r.noise_shaping && (ye.fill(r.pseudohalf, 0), 0 == t.scalefac_scale ? (!function (e, t) { + for (var a = 0, s = 0; s < e.sfbmax; s++) { + var n = e.width[s], + r = e.scalefac[s]; + if (0 != e.preflag && (r += M.pretab[s]), a += n, 0 != (1 & r)) { r++; - for (var i = -s; i < 0; i++) t[a + i] *= 1.2968395546510096, t[a + i] > e.xrpow_max && (e.xrpow_max = t[a + i]); + for (var i = -n; i < 0; i++) t[a + i] *= 1.2968395546510096, t[a + i] > e.xrpow_max && (e.xrpow_max = t[a + i]); } - e.scalefac[n] = r >> 1; + e.scalefac[s] = r >> 1; } e.preflag = 0, e.scalefac_scale = 1; - }(t, n), i = !1) : t.block_type == Ae.SHORT_TYPE && 0 < r.subblock_gain && (i = function (e, t, a) { - var n, - s = t.scalefac; - for (n = 0; n < t.sfb_lmax; n++) if (16 <= s[n]) return !0; + }(t, s), i = !1) : t.block_type == Pe.SHORT_TYPE && 0 < r.subblock_gain && (i = function (e, t, a) { + var s, + n = t.scalefac; + for (s = 0; s < t.sfb_lmax; s++) if (16 <= n[s]) return !0; for (var r = 0; r < 3; r++) { var i = 0, o = 0; - for (n = t.sfb_lmax + r; n < t.sfbdivide; n += 3) i < s[n] && (i = s[n]); - for (; n < t.sfbmax; n += 3) o < s[n] && (o = s[n]); + for (s = t.sfb_lmax + r; s < t.sfbdivide; s += 3) i < n[s] && (i = n[s]); + for (; s < t.sfbmax; s += 3) o < n[s] && (o = n[s]); if (!(i < 16 && o < 8)) { if (7 <= t.subblock_gain[r]) return !0; t.subblock_gain[r]++; var _ = e.scalefac_band.l[t.sfb_lmax]; - for (n = t.sfb_lmax + r; n < t.sfbmax; n += 3) { - var l = t.width[n], - f = s[n]; - if (0 <= (f -= 4 >> t.scalefac_scale)) s[n] = f, _ += 3 * l;else { - s[n] = 0; + for (s = t.sfb_lmax + r; s < t.sfbmax; s += 3) { + var l = t.width[s], + f = n[s]; + if (0 <= (f -= 4 >> t.scalefac_scale)) n[s] = f, _ += 3 * l;else { + n[s] = 0; var c = 210 + (f << t.scalefac_scale + 1); - h = g.IPOW20(c), _ += l * (r + 1); - for (var u = -l; u < 0; u++) a[_ + u] *= h, a[_ + u] > t.xrpow_max && (t.xrpow_max = a[_ + u]); + u = M.IPOW20(c), _ += l * (r + 1); + for (var h = -l; h < 0; h++) a[_ + h] *= u, a[_ + h] > t.xrpow_max && (t.xrpow_max = a[_ + h]); _ += l * (3 - r - 1); } } - var h = g.IPOW20(202); - _ += t.width[n] * (r + 1); - for (var u = -t.width[n]; u < 0; u++) a[_ + u] *= h, a[_ + u] > t.xrpow_max && (t.xrpow_max = a[_ + u]); + var u = M.IPOW20(202); + for (_ += t.width[s] * (r + 1), h = -t.width[s]; h < 0; h++) a[_ + h] *= u, a[_ + h] > t.xrpow_max && (t.xrpow_max = a[_ + h]); } } return !1; - }(r, t, n) || o(t))), i || (i = 2 == r.mode_gr ? w.scale_bitcount(t) : w.scale_bitcount_lsf(r, t)), i)); + }(r, t, s) || o(t))), i || (i = 2 == r.mode_gr ? w.scale_bitcount(t) : w.scale_bitcount_lsf(r, t)), !i)); } - this.setModules = function (e, t, a, n) { - r = t, this.rv = t, g = a, this.qupvt = a, w = n, s.setModules(g, w); + this.setModules = function (e, t, a, s) { + v = e, g = t, this.rv = t, M = a, this.qupvt = a, w = s, n.setModules(M, w); + }, this.ms_convert = function (e, t) { + for (var a = 0; a < 576; ++a) { + var s = e.tt[t][0].xr[a], + n = e.tt[t][1].xr[a]; + e.tt[t][0].xr[a] = (s + n) * (.5 * ee.SQRT2), e.tt[t][1].xr[a] = (s - n) * (.5 * ee.SQRT2); + } }, this.init_xrpow = function (e, t, a) { - var n = 0, - s = 0 | t.max_nonzero_coeff; - if (t.xrpow_max = 0, we.fill(a, s, 576, 0), 1e-20 < (n = function (e, t, a, n) { - for (var s = n = 0; s <= a; ++s) { - var r = Math.abs(e.xr[s]); - n += r, t[s] = Math.sqrt(r * Math.sqrt(r)), t[s] > e.xrpow_max && (e.xrpow_max = t[s]); + var s = 0, + n = 0 | t.max_nonzero_coeff; + if (t.xrpow_max = 0, ye.fill(a, n, 576, 0), 1e-20 < (s = function (e, t, a, s) { + for (var n = s = 0; n <= a; ++n) { + var r = Math.abs(e.xr[n]); + s += r, t[n] = Math.sqrt(r * Math.sqrt(r)), t[n] > e.xrpow_max && (e.xrpow_max = t[n]); } - return n; - }(t, a, s, n))) { + return s; + }(t, a, n, s))) { var r = 0; 0 != (2 & e.substep_shaping) && (r = 1); for (var i = 0; i < t.psymax; i++) e.pseudohalf[i] = r; return !0; } - return we.fill(t.l3_enc, 0, 576, 0), !1; + return ye.fill(t.l3_enc, 0, 576, 0), !1; }, this.init_outer_loop = function (e, t) { - t.part2_3_length = 0, t.big_values = 0, t.count1 = 0, t.global_gain = 210, t.scalefac_compress = 0, t.table_select[0] = 0, t.table_select[1] = 0, t.table_select[2] = 0, t.subblock_gain[0] = 0, t.subblock_gain[1] = 0, t.subblock_gain[2] = 0, t.subblock_gain[3] = 0, t.region0_count = 0, t.region1_count = 0, t.preflag = 0, t.scalefac_scale = 0, t.count1table_select = 0, t.part2_length = 0, t.sfb_lmax = Ae.SBPSY_l, t.sfb_smin = Ae.SBPSY_s, t.psy_lmax = e.sfb21_extra ? Ae.SBMAX_l : Ae.SBPSY_l, t.psymax = t.psy_lmax, t.sfbmax = t.sfb_lmax, t.sfbdivide = 11; - for (var a = 0; a < Ae.SBMAX_l; a++) t.width[a] = e.scalefac_band.l[a + 1] - e.scalefac_band.l[a], t.window[a] = 3; - if (t.block_type == Ae.SHORT_TYPE) { - var n = de(576); - t.sfb_smin = 0, (t.sfb_lmax = 0) != t.mixed_block_flag && me(), t.psymax = t.sfb_lmax + 3 * ((e.sfb21_extra ? Ae.SBMAX_s : Ae.SBPSY_s) - t.sfb_smin), t.sfbmax = t.sfb_lmax + 3 * (Ae.SBPSY_s - t.sfb_smin), t.sfbdivide = t.sfbmax - 18, t.psy_lmax = t.sfb_lmax; - var s = e.scalefac_band.l[t.sfb_lmax]; - I.arraycopy(t.xr, 0, n, 0, 576); - for (var a = t.sfb_smin; a < Ae.SBMAX_s; a++) for (var r = e.scalefac_band.s[a], i = e.scalefac_band.s[a + 1], o = 0; o < 3; o++) for (var _ = r; _ < i; _++) t.xr[s++] = n[3 * _ + o]; - for (var l = t.sfb_lmax, a = t.sfb_smin; a < Ae.SBMAX_s; a++) t.width[l] = t.width[l + 1] = t.width[l + 2] = e.scalefac_band.s[a + 1] - e.scalefac_band.s[a], t.window[l] = 0, t.window[l + 1] = 1, t.window[l + 2] = 2, l += 3; + t.part2_3_length = 0, t.big_values = 0, t.count1 = 0, t.global_gain = 210, t.scalefac_compress = 0, t.table_select[0] = 0, t.table_select[1] = 0, t.table_select[2] = 0, t.subblock_gain[0] = 0, t.subblock_gain[1] = 0, t.subblock_gain[2] = 0, t.subblock_gain[3] = 0, t.region0_count = 0, t.region1_count = 0, t.preflag = 0, t.scalefac_scale = 0, t.count1table_select = 0, t.part2_length = 0, t.sfb_lmax = Pe.SBPSY_l, t.sfb_smin = Pe.SBPSY_s, t.psy_lmax = e.sfb21_extra ? Pe.SBMAX_l : Pe.SBPSY_l, t.psymax = t.psy_lmax, t.sfbmax = t.sfb_lmax, t.sfbdivide = 11; + for (var a = 0; a < Pe.SBMAX_l; a++) t.width[a] = e.scalefac_band.l[a + 1] - e.scalefac_band.l[a], t.window[a] = 3; + if (t.block_type == Pe.SHORT_TYPE) { + var s = Be(576); + t.sfb_smin = 0, (t.sfb_lmax = 0) != t.mixed_block_flag && (t.sfb_smin = 3, t.sfb_lmax = 2 * e.mode_gr + 4), t.psymax = t.sfb_lmax + 3 * ((e.sfb21_extra ? Pe.SBMAX_s : Pe.SBPSY_s) - t.sfb_smin), t.sfbmax = t.sfb_lmax + 3 * (Pe.SBPSY_s - t.sfb_smin), t.sfbdivide = t.sfbmax - 18, t.psy_lmax = t.sfb_lmax; + var n = e.scalefac_band.l[t.sfb_lmax]; + $.arraycopy(t.xr, 0, s, 0, 576); + for (a = t.sfb_smin; a < Pe.SBMAX_s; a++) for (var r = e.scalefac_band.s[a], i = e.scalefac_band.s[a + 1], o = 0; o < 3; o++) for (var _ = r; _ < i; _++) t.xr[n++] = s[3 * _ + o]; + var l = t.sfb_lmax; + for (a = t.sfb_smin; a < Pe.SBMAX_s; a++) t.width[l] = t.width[l + 1] = t.width[l + 2] = e.scalefac_band.s[a + 1] - e.scalefac_band.s[a], t.window[l] = 0, t.window[l + 1] = 1, t.window[l + 2] = 2, l += 3; } - t.count1bits = 0, t.sfb_partition_table = g.nr_of_sfb_block[0][0], t.slen[0] = 0, t.slen[1] = 0, t.slen[2] = 0, t.slen[3] = 0, t.max_nonzero_coeff = 575, we.fill(t.scalefac, 0), function (e, t) { + t.count1bits = 0, t.sfb_partition_table = M.nr_of_sfb_block[0][0], t.slen[0] = 0, t.slen[1] = 0, t.slen[2] = 0, t.slen[3] = 0, t.max_nonzero_coeff = 575, ye.fill(t.scalefac, 0), function (e, t) { var a = e.ATH, - n = t.xr; - if (t.block_type != Ae.SHORT_TYPE) for (var s = !1, r = Ae.PSFB21 - 1; 0 <= r && !s; r--) { + s = t.xr; + if (t.block_type != Pe.SHORT_TYPE) for (var n = !1, r = Pe.PSFB21 - 1; 0 <= r && !n; r--) { var i = e.scalefac_band.psfb21[r], o = e.scalefac_band.psfb21[r + 1], - _ = g.athAdjust(a.adjust, a.psfb21[r], a.floor); + _ = M.athAdjust(a.adjust, a.psfb21[r], a.floor); 1e-12 < e.nsPsy.longfact[21] && (_ *= e.nsPsy.longfact[21]); for (var l = o - 1; i <= l; l--) { - if (!(Math.abs(n[l]) < _)) { - s = !0; + if (!(Math.abs(s[l]) < _)) { + n = !0; break; } - n[l] = 0; + s[l] = 0; } - } else for (var f = 0; f < 3; f++) for (var s = !1, r = Ae.PSFB12 - 1; 0 <= r && !s; r--) { - var i = 3 * e.scalefac_band.s[12] + (e.scalefac_band.s[13] - e.scalefac_band.s[12]) * f + (e.scalefac_band.psfb12[r] - e.scalefac_band.psfb12[0]), - o = i + (e.scalefac_band.psfb12[r + 1] - e.scalefac_band.psfb12[r]), - c = g.athAdjust(a.adjust, a.psfb12[r], a.floor); - 1e-12 < e.nsPsy.shortfact[12] && (c *= e.nsPsy.shortfact[12]); - for (var l = o - 1; i <= l; l--) { - if (!(Math.abs(n[l]) < c)) { - s = !0; + } else for (var f = 0; f < 3; f++) for (n = !1, r = Pe.PSFB12 - 1; 0 <= r && !n; r--) { + o = (i = 3 * e.scalefac_band.s[12] + (e.scalefac_band.s[13] - e.scalefac_band.s[12]) * f + (e.scalefac_band.psfb12[r] - e.scalefac_band.psfb12[0])) + (e.scalefac_band.psfb12[r + 1] - e.scalefac_band.psfb12[r]); + var c = M.athAdjust(a.adjust, a.psfb12[r], a.floor); + for (1e-12 < e.nsPsy.shortfact[12] && (c *= e.nsPsy.shortfact[12]), l = o - 1; i <= l; l--) { + if (!(Math.abs(s[l]) < c)) { + n = !0; break; } - n[l] = 0; + s[l] = 0; } } }(e, t); - }, S.BINSEARCH_NONE = new S(0), S.BINSEARCH_UP = new S(1), S.BINSEARCH_DOWN = new S(2), this.outer_loop = function (e, t, a, n, s, r) { + }, R.BINSEARCH_NONE = new R(0), R.BINSEARCH_UP = new R(1), R.BINSEARCH_DOWN = new R(2), this.trancate_smallspectrums = function (e, t, a, s) { + var n = Be(z.SFBMAX); + if ((0 != (4 & e.substep_shaping) || t.block_type != Pe.SHORT_TYPE) && 0 == (128 & e.substep_shaping)) { + M.calc_noise(t, a, n, new y(), null); + for (var r = 0; r < 576; r++) { + var i = 0; + 0 != t.l3_enc[r] && (i = Math.abs(t.xr[r])), s[r] = i; + } + r = 0; + var o = 8; + t.block_type == Pe.SHORT_TYPE && (o = 6); + do { + var _, + l, + f, + c, + h = t.width[o]; + if (r += h, !(1 <= n[o] || (ye.sort(s, r - h, h), q.EQ(s[r - 1], 0)))) { + _ = (1 - n[o]) * a[o], c = l = 0; + do { + var u; + for (f = 1; c + f < h && !q.NEQ(s[c + r - h], s[c + r + f - h]); f++); + if (_ < (u = s[c + r - h] * s[c + r - h] * f)) { + 0 != c && (l = s[c + r - h - 1]); + break; + } + _ -= u, c += f; + } while (c < h); + if (!q.EQ(l, 0)) for (; Math.abs(t.xr[r - h]) <= l && (t.l3_enc[r - h] = 0), 0 < --h;); + } + } while (++o < t.psymax); + t.part2_3_length = w.noquant_count_bits(e, t, null); + } + }, this.outer_loop = function (e, t, a, s, n, r) { var i = e.internal_flags, - o = new B(), - _ = de(576), - l = de(F.SFBMAX), - f = new x(), + o = new T(), + _ = Be(576), + l = Be(z.SFBMAX), + f = new y(), c = new function () { - this.global_gain = 0, this.sfb_count1 = 0, this.step = ve(39), this.noise = de(39), this.noise_log = de(39); + this.global_gain = 0, this.sfb_count1 = 0, this.step = Ae(39), this.noise = Be(39), this.noise_log = Be(39); }(), - u = 9999999, - h = !1; - if (function (e, t, a, n, s) { + h = 9999999, + u = !1, + m = !1, + p = 0; + if (function (e, t, a, s, n) { var r, - i = e.CurrentStep[n], + i = e.CurrentStep[s], o = !1, - _ = e.OldValue[n], - l = S.BINSEARCH_NONE; + _ = e.OldValue[s], + l = R.BINSEARCH_NONE; for (t.global_gain = _, a -= t.part2_length;;) { var f; - if (r = w.count_bits(e, s, t, null), 1 == i || r == a) break; - a < r ? (l == S.BINSEARCH_DOWN && (o = !0), o && (i /= 2), l = S.BINSEARCH_UP, f = i) : (l == S.BINSEARCH_UP && (o = !0), o && (i /= 2), l = S.BINSEARCH_DOWN, f = -i), t.global_gain += f, t.global_gain < 0 && me(), 255 < t.global_gain && me(); + if (r = w.count_bits(e, n, t, null), 1 == i || r == a) break; + a < r ? (l == R.BINSEARCH_DOWN && (o = !0), o && (i /= 2), l = R.BINSEARCH_UP, f = i) : (l == R.BINSEARCH_UP && (o = !0), o && (i /= 2), l = R.BINSEARCH_DOWN, f = -i), t.global_gain += f, t.global_gain < 0 && (o = !(t.global_gain = 0)), 255 < t.global_gain && (t.global_gain = 255, o = !0); } - for (; a < r && t.global_gain < 255;) t.global_gain++, r = w.count_bits(e, s, t, null); - e.CurrentStep[n] = 4 <= _ - t.global_gain ? 4 : 2, e.OldValue[n] = t.global_gain, t.part2_3_length = r; - }(i, t, r, s, n), 0 == i.noise_shaping) return 100; - g.calc_noise(t, a, l, f, c), f.bits = t.part2_3_length, o.assign(t); + for (; a < r && t.global_gain < 255;) t.global_gain++, r = w.count_bits(e, n, t, null); + e.CurrentStep[s] = 4 <= _ - t.global_gain ? 4 : 2, e.OldValue[s] = t.global_gain, t.part2_3_length = r; + }(i, t, r, n, s), 0 == i.noise_shaping) return 100; + M.calc_noise(t, a, l, f, c), f.bits = t.part2_3_length, o.assign(t); var b = 0; - for (I.arraycopy(n, 0, _, 0, 576); !h;) { + for ($.arraycopy(s, 0, _, 0, 576); !u;) { do { - var p, - m = new x(), - v = 255; - if (p = 0 != (2 & i.substep_shaping) ? 20 : 3, i.sfb21_extra && me(), !y(e, o, l, n)) break; - 0 != o.scalefac_scale && (v = 254); - var d = r - o.part2_length; - if (d <= 0) break; - for (; (o.part2_3_length = w.count_bits(i, n, o, c)) > d && o.global_gain <= v;) o.global_gain++; - if (o.global_gain > v) break; - if (0 == f.over_count) { - for (; (o.part2_3_length = w.count_bits(i, n, o, c)) > u && o.global_gain <= v;) o.global_gain++; - if (o.global_gain > v) break; + var v, + d = new y(), + g = 255; + if (v = 0 != (2 & i.substep_shaping) ? 20 : 3, i.sfb21_extra) { + if (1 < l[o.sfbmax]) break; + if (o.block_type == Pe.SHORT_TYPE && (1 < l[o.sfbmax + 1] || 1 < l[o.sfbmax + 2])) break; } - if (g.calc_noise(o, a, l, m, c), m.bits = o.part2_3_length, 0 != (M(t.block_type != Ae.SHORT_TYPE ? e.quant_comp : e.quant_comp_short, f, m) ? 1 : 0)) u = t.part2_3_length, f = m, t.assign(o), b = 0, I.arraycopy(n, 0, _, 0, 576);else if (0 == i.full_outer_loop) { - if (++b > p && 0 == f.over_count) break; - i.noise_shaping_amp, i.noise_shaping_amp; + if (!B(e, o, l, s, m)) break; + 0 != o.scalefac_scale && (g = 254); + var S = r - o.part2_length; + if (S <= 0) break; + for (; (o.part2_3_length = w.count_bits(i, s, o, c)) > S && o.global_gain <= g;) o.global_gain++; + if (o.global_gain > g) break; + if (0 == f.over_count) { + for (; (o.part2_3_length = w.count_bits(i, s, o, c)) > h && o.global_gain <= g;) o.global_gain++; + if (o.global_gain > g) break; + } + if (M.calc_noise(o, a, l, d, c), d.bits = o.part2_3_length, 0 != (A(t.block_type != Pe.SHORT_TYPE ? e.quant_comp : e.quant_comp_short, f, d, o, l) ? 1 : 0)) h = t.part2_3_length, f = d, t.assign(o), b = 0, $.arraycopy(s, 0, _, 0, 576);else if (0 == i.full_outer_loop) { + if (++b > v && 0 == f.over_count) break; + if (3 == i.noise_shaping_amp && m && 30 < b) break; + if (3 == i.noise_shaping_amp && m && 15 < o.global_gain - p) break; } } while (o.global_gain + o.scalefac_scale < 255); - 3 == i.noise_shaping_amp ? me() : h = !0; + 3 == i.noise_shaping_amp ? m ? u = !0 : (o.assign(t), $.arraycopy(_, 0, s, 0, 576), b = 0, p = o.global_gain, m = !0) : u = !0; } - return e.VBR == Me.vbr_rh || e.VBR == Me.vbr_mtrh ? I.arraycopy(_, 0, n, 0, 576) : 0 != (1 & i.substep_shaping) && me(), f.over_count; + return e.VBR == xe.vbr_rh || e.VBR == xe.vbr_mtrh ? $.arraycopy(_, 0, s, 0, 576) : 0 != (1 & i.substep_shaping) && trancate_smallspectrums(i, t, a, s), f.over_count; }, this.iteration_finish_one = function (e, t, a) { - var n = e.l3_side, - s = n.tt[t][a]; - w.best_scalefac_store(e, t, a, n), 1 == e.use_best_huffman && w.best_huffman_divide(e, s), r.ResvAdjust(e, s); + var s = e.l3_side, + n = s.tt[t][a]; + w.best_scalefac_store(e, t, a, s), 1 == e.use_best_huffman && w.best_huffman_divide(e, n), g.ResvAdjust(e, n); + }, this.VBR_encode_granule = function (e, t, a, s, n, r, i) { + var o, + _ = e.internal_flags, + l = new T(), + f = Be(576), + c = i, + h = i + 1, + u = (i + r) / 2, + m = 0, + p = _.sfb21_extra; + for (ye.fill(l.l3_enc, 0); _.sfb21_extra = !(c - 42 < u) && p, outer_loop(e, t, a, s, n, u) <= 0 ? (m = 1, h = t.part2_3_length, l.assign(t), $.arraycopy(s, 0, f, 0, 576), o = (i = h - 32) - r, u = (i + r) / 2) : (o = i - (r = u + 32), u = (i + r) / 2, 0 != m && (m = 2, t.assign(l), $.arraycopy(f, 0, s, 0, 576))), 12 < o;); + _.sfb21_extra = p, 2 == m && $.arraycopy(l.l3_enc, 0, t.l3_enc, 0, 576); + }, this.get_framebits = function (e, t) { + var a = e.internal_flags; + a.bitrate_index = a.VBR_min_bitrate; + var s = v.getframebits(e); + a.bitrate_index = 1, s = v.getframebits(e); + for (var n = 1; n <= a.VBR_max_bitrate; n++) { + a.bitrate_index = n; + var r = new j(s); + t[n] = g.ResvFrameBegin(e, r), s = r.bits; + } + }, this.VBR_old_prepare = function (e, t, a, s, n, r, i, o, _) { + var l, + f = e.internal_flags, + c = 0, + h = 1, + u = 0; + f.bitrate_index = f.VBR_max_bitrate; + var m = g.ResvFrameBegin(e, new j(0)) / f.mode_gr; + get_framebits(e, r); + for (var p = 0; p < f.mode_gr; p++) { + var b = M.on_pe(e, t, o[p], m, p, 0); + f.mode_ext == Pe.MPG_MD_MS_LR && (ms_convert(f.l3_side, p), M.reduce_side(o[p], a[p], m, b)); + for (var v = 0; v < f.channels_out; ++v) { + var d = f.l3_side.tt[p][v]; + d.block_type != Pe.SHORT_TYPE ? (c = 1.28 / (1 + Math.exp(3.5 - t[p][v] / 300)) - .05, l = f.PSY.mask_adjust - c) : (c = 2.56 / (1 + Math.exp(3.5 - t[p][v] / 300)) - .14, l = f.PSY.mask_adjust_short - c), f.masking_lower = Math.pow(10, .1 * l), init_outer_loop(f, d), _[p][v] = M.calc_xmin(e, s[p][v], d, n[p][v]), 0 != _[p][v] && (h = 0), i[p][v] = 126, u += o[p][v]; + } + } + for (p = 0; p < f.mode_gr; p++) for (v = 0; v < f.channels_out; v++) u > r[f.VBR_max_bitrate] && (o[p][v] *= r[f.VBR_max_bitrate], o[p][v] /= u), i[p][v] > o[p][v] && (i[p][v] = o[p][v]); + return h; + }, this.bitpressure_strategy = function (e, t, a, s) { + for (var n = 0; n < e.mode_gr; n++) for (var r = 0; r < e.channels_out; r++) { + for (var i = e.l3_side.tt[n][r], o = t[n][r], _ = 0, l = 0; l < i.psy_lmax; l++) o[_++] *= 1 + .029 * l * l / Pe.SBMAX_l / Pe.SBMAX_l; + if (i.block_type == Pe.SHORT_TYPE) for (l = i.sfb_smin; l < Pe.SBMAX_s; l++) o[_++] *= 1 + .029 * l * l / Pe.SBMAX_s / Pe.SBMAX_s, o[_++] *= 1 + .029 * l * l / Pe.SBMAX_s / Pe.SBMAX_s, o[_++] *= 1 + .029 * l * l / Pe.SBMAX_s / Pe.SBMAX_s; + s[n][r] = 0 | Math.max(a[n][r], .9 * s[n][r]); + } + }, this.VBR_new_prepare = function (e, t, a, s, n, r) { + var i, + o = e.internal_flags, + _ = 1, + l = 0, + f = 0; + if (e.free_format) { + o.bitrate_index = 0; + c = new j(l); + i = g.ResvFrameBegin(e, c), l = c.bits, n[0] = i; + } else { + o.bitrate_index = o.VBR_max_bitrate; + var c = new j(l); + g.ResvFrameBegin(e, c), l = c.bits, get_framebits(e, n), i = n[o.VBR_max_bitrate]; + } + for (var h = 0; h < o.mode_gr; h++) { + M.on_pe(e, t, r[h], l, h, 0), o.mode_ext == Pe.MPG_MD_MS_LR && ms_convert(o.l3_side, h); + for (var u = 0; u < o.channels_out; ++u) { + var m = o.l3_side.tt[h][u]; + o.masking_lower = Math.pow(10, .1 * o.PSY.mask_adjust), init_outer_loop(o, m), 0 != M.calc_xmin(e, a[h][u], m, s[h][u]) && (_ = 0), f += r[h][u]; + } + } + for (h = 0; h < o.mode_gr; h++) for (u = 0; u < o.channels_out; u++) i < f && (r[h][u] *= i, r[h][u] /= f); + return _; + }, this.calc_target_bits = function (e, t, a, s, n, r) { + var i, + o, + _, + l, + f = e.internal_flags, + c = f.l3_side, + h = 0; + f.bitrate_index = f.VBR_max_bitrate; + var u = new j(h); + for (r[0] = g.ResvFrameBegin(e, u), h = u.bits, f.bitrate_index = 1, h = v.getframebits(e) - 8 * f.sideinfo_len, n[0] = h / (f.mode_gr * f.channels_out), h = e.VBR_mean_bitrate_kbps * e.framesize * 1e3, 0 != (1 & f.substep_shaping) && (h *= 1.09), h /= e.out_samplerate, h -= 8 * f.sideinfo_len, h /= f.mode_gr * f.channels_out, (i = .93 + .07 * (11 - e.compression_ratio) / 5.5) < .9 && (i = .9), 1 < i && (i = 1), o = 0; o < f.mode_gr; o++) { + var m = 0; + for (_ = 0; _ < f.channels_out; _++) { + if (s[o][_] = int(i * h), 700 < t[o][_]) { + var p = int((t[o][_] - 700) / 1.4), + b = c.tt[o][_]; + s[o][_] = int(i * h), b.block_type == Pe.SHORT_TYPE && p < h / 2 && (p = h / 2), 3 * h / 2 < p ? p = 3 * h / 2 : p < 0 && (p = 0), s[o][_] += p; + } + s[o][_] > Z.MAX_BITS_PER_CHANNEL && (s[o][_] = Z.MAX_BITS_PER_CHANNEL), m += s[o][_]; + } + if (Z.MAX_BITS_PER_GRANULE < m) for (_ = 0; _ < f.channels_out; ++_) s[o][_] *= Z.MAX_BITS_PER_GRANULE, s[o][_] /= m; + } + if (f.mode_ext == Pe.MPG_MD_MS_LR) for (o = 0; o < f.mode_gr; o++) M.reduce_side(s[o], a[o], h * f.channels_out, Z.MAX_BITS_PER_GRANULE); + for (o = l = 0; o < f.mode_gr; o++) for (_ = 0; _ < f.channels_out; _++) s[o][_] > Z.MAX_BITS_PER_CHANNEL && (s[o][_] = Z.MAX_BITS_PER_CHANNEL), l += s[o][_]; + if (l > r[0]) for (o = 0; o < f.mode_gr; o++) for (_ = 0; _ < f.channels_out; _++) s[o][_] *= r[0], s[o][_] /= l; }; } - function L() { + function N() { this.thm = new i(), this.en = new i(); } - function Ae() { - var k = Ae.MPG_MD_MS_LR, - R = null, - x = this.psy = null, - B = null; - this.setModules = function (e, t, a, n) { - R = e, this.psy = t, x = t, B = n; + function Pe() { + var E = Pe.FFTOFFSET, + P = Pe.MPG_MD_MS_LR, + L = null, + I = this.psy = null, + H = null, + C = null; + this.setModules = function (e, t, a, s) { + L = e, this.psy = t, I = t, H = s, C = a; }; - var T = new function () { - var u = [-.1482523854003001, 32.308141959636465, 296.40344946382766, 883.1344870032432, 11113.947376231741, 1057.2713659324597, 305.7402417275812, 30.825928907280012, 3.8533188138216365, 59.42900443849514, 709.5899960123345, 5281.91112291017, -5829.66483675846, -817.6293103748613, -76.91656988279972, -4.594269939176596, .9063471690191471, .1960342806591213, -.15466694054279598, 34.324387823855965, 301.8067566458425, 817.599602898885, 11573.795901679885, 1181.2520595540152, 321.59731579894424, 31.232021761053772, 3.7107095756221318, 53.650946155329365, 684.167428119626, 5224.56624370173, -6366.391851890084, -908.9766368219582, -89.83068876699639, -5.411397422890401, .8206787908286602, .3901806440322567, -.16070888947830023, 36.147034243915876, 304.11815768187864, 732.7429163887613, 11989.60988270091, 1300.012278487897, 335.28490093152146, 31.48816102859945, 3.373875931311736, 47.232241542899175, 652.7371796173471, 5132.414255594984, -6909.087078780055, -1001.9990371107289, -103.62185754286375, -6.104916304710272, .7416505462720353, .5805693545089249, -.16636367662261495, 37.751650073343995, 303.01103387567713, 627.9747488785183, 12358.763425278165, 1412.2779918482834, 346.7496836825721, 31.598286663170416, 3.1598635433980946, 40.57878626349686, 616.1671130880391, 5007.833007176154, -7454.040671756168, -1095.7960341867115, -118.24411666465777, -6.818469345853504, .6681786379192989, .7653668647301797, -.1716176790982088, 39.11551877123304, 298.3413246578966, 503.5259106886539, 12679.589408408976, 1516.5821921214542, 355.9850766329023, 31.395241710249053, 2.9164211881972335, 33.79716964664243, 574.8943997801362, 4853.234992253242, -7997.57021486075, -1189.7624067269965, -133.6444792601766, -7.7202770609839915, .5993769336819237, .9427934736519954, -.17645823955292173, 40.21879108166477, 289.9982036694474, 359.3226160751053, 12950.259102786438, 1612.1013903507662, 362.85067106591504, 31.045922092242872, 2.822222032597987, 26.988862316190684, 529.8996541764288, 4671.371946949588, -8535.899136645805, -1282.5898586244496, -149.58553632943463, -8.643494270763135, .5345111359507916, 1.111140466039205, -.36174739330527045, 41.04429910497807, 277.5463268268618, 195.6386023135583, 13169.43812144731, 1697.6433561479398, 367.40983966190305, 30.557037410382826, 2.531473372857427, 20.070154905927314, 481.50208566532336, 4464.970341588308, -9065.36882077239, -1373.62841526722, -166.1660487028118, -9.58289321133207, .4729647758913199, 1.268786568327291, -.36970682634889585, 41.393213350082036, 261.2935935556502, 12.935476055240873, 13336.131683328815, 1772.508612059496, 369.76534388639965, 29.751323653701338, 2.4023193045459172, 13.304795348228817, 430.5615775526625, 4237.0568611071185, -9581.931701634761, -1461.6913552409758, -183.12733958476446, -10.718010163869403, .41421356237309503, 1.414213562373095, -.37677560326535325, 41.619486213528496, 241.05423794991074, -187.94665032361226, 13450.063605744153, 1836.153896465782, 369.4908799925761, 29.001847876923147, 2.0714759319987186, 6.779591200894186, 377.7767837205709, 3990.386575512536, -10081.709459700915, -1545.947424837898, -200.3762958015653, -11.864482073055006, .3578057213145241, 1.546020906725474, -.3829366947518991, 41.1516456456653, 216.47684307105183, -406.1569483347166, 13511.136535077321, 1887.8076599260432, 367.3025214564151, 28.136213436723654, 1.913880671464418, .3829366947518991, 323.85365704338597, 3728.1472257487526, -10561.233882199509, -1625.2025997821418, -217.62525175416, -13.015432208941645, .3033466836073424, 1.66293922460509, -.5822628872992417, 40.35639251440489, 188.20071124269245, -640.2706748618148, 13519.21490106562, 1927.6022433578062, 362.8197642637487, 26.968821921868447, 1.7463817695935329, -5.62650678237171, 269.3016715297017, 3453.386536448852, -11016.145278780888, -1698.6569643425091, -234.7658734267683, -14.16351421663124, .2504869601913055, 1.76384252869671, -.5887180101749253, 39.23429103868072, 155.76096234403798, -889.2492977967378, 13475.470561874661, 1955.0535223723712, 356.4450994756727, 25.894952980042156, 1.5695032905781554, -11.181939564328772, 214.80884394039484, 3169.1640829158237, -11443.321309975563, -1765.1588461316153, -251.68908574481912, -15.49755935939164, .198912367379658, 1.847759065022573, -.7912582233652842, 37.39369355329111, 119.699486012458, -1151.0956593239027, 13380.446257078214, 1970.3952110853447, 348.01959814116185, 24.731487364283044, 1.3850130831637748, -16.421408865300393, 161.05030052864092, 2878.3322807850063, -11838.991423510031, -1823.985884688674, -268.2854986386903, -16.81724543849939, .1483359875383474, 1.913880671464418, -.7960642926861912, 35.2322109610459, 80.01928065061526, -1424.0212633405113, 13235.794061869668, 1973.804052543835, 337.9908651258184, 23.289159354463873, 1.3934255946442087, -21.099669467133474, 108.48348407242611, 2583.700758091299, -12199.726194855148, -1874.2780658979746, -284.2467154529415, -18.11369784385905, .09849140335716425, 1.961570560806461, -.998795456205172, 32.56307803611191, 36.958364584370486, -1706.075448829146, 13043.287458812016, 1965.3831106103316, 326.43182772364605, 22.175018750622293, 1.198638339011324, -25.371248002043963, 57.53505923036915, 2288.41886619975, -12522.674544337233, -1914.8400385312243, -299.26241273417224, -19.37805630698734, .04912684976946725, 1.990369453344394, .035780907 * V.SQRT2 * .5 / 2384e-9, .017876148 * V.SQRT2 * .5 / 2384e-9, .003134727 * V.SQRT2 * .5 / 2384e-9, .002457142 * V.SQRT2 * .5 / 2384e-9, 971317e-9 * V.SQRT2 * .5 / 2384e-9, 218868e-9 * V.SQRT2 * .5 / 2384e-9, 101566e-9 * V.SQRT2 * .5 / 2384e-9, 13828e-9 * V.SQRT2 * .5 / 2384e-9, 12804.797818791945, 1945.5515939597317, 313.4244966442953, 49591e-9 / 2384e-9, 1995.1556208053692, 21458e-9 / 2384e-9, -69618e-9 / 2384e-9], - A = [[2.382191739347913e-13, 6.423305872147834e-13, 9.400849094049688e-13, 1.122435026096556e-12, 1.183840321267481e-12, 1.122435026096556e-12, 9.40084909404969e-13, 6.423305872147839e-13, 2.382191739347918e-13, 5.456116108943412e-12, 4.878985199565852e-12, 4.240448995017367e-12, 3.559909094758252e-12, 2.858043359288075e-12, 2.156177623817898e-12, 1.475637723558783e-12, 8.371015190102974e-13, 2.599706096327376e-13, -5.456116108943412e-12, -4.878985199565852e-12, -4.240448995017367e-12, -3.559909094758252e-12, -2.858043359288076e-12, -2.156177623817898e-12, -1.475637723558783e-12, -8.371015190102975e-13, -2.599706096327376e-13, -2.382191739347923e-13, -6.423305872147843e-13, -9.400849094049696e-13, -1.122435026096556e-12, -1.183840321267481e-12, -1.122435026096556e-12, -9.400849094049694e-13, -6.42330587214784e-13, -2.382191739347918e-13], [2.382191739347913e-13, 6.423305872147834e-13, 9.400849094049688e-13, 1.122435026096556e-12, 1.183840321267481e-12, 1.122435026096556e-12, 9.400849094049688e-13, 6.423305872147841e-13, 2.382191739347918e-13, 5.456116108943413e-12, 4.878985199565852e-12, 4.240448995017367e-12, 3.559909094758253e-12, 2.858043359288075e-12, 2.156177623817898e-12, 1.475637723558782e-12, 8.371015190102975e-13, 2.599706096327376e-13, -5.461314069809755e-12, -4.921085770524055e-12, -4.343405037091838e-12, -3.732668368707687e-12, -3.093523840190885e-12, -2.430835727329465e-12, -1.734679010007751e-12, -9.74825365660928e-13, -2.797435120168326e-13, 0, 0, 0, 0, 0, 0, -2.283748241799531e-13, -4.037858874020686e-13, -2.146547464825323e-13], [.1316524975873958, .414213562373095, .7673269879789602, 1.091308501069271, 1.303225372841206, 1.56968557711749, 1.920982126971166, 2.414213562373094, 3.171594802363212, 4.510708503662055, 7.595754112725146, 22.90376554843115, .984807753012208, .6427876096865394, .3420201433256688, .9396926207859084, -.1736481776669303, -.7660444431189779, .8660254037844387, .5, -.5144957554275265, -.4717319685649723, -.3133774542039019, -.1819131996109812, -.09457419252642064, -.04096558288530405, -.01419856857247115, -.003699974673760037, .8574929257125442, .8817419973177052, .9496286491027329, .9833145924917901, .9955178160675857, .9991605581781475, .999899195244447, .9999931550702802], [0, 0, 0, 0, 0, 0, 2.283748241799531e-13, 4.037858874020686e-13, 2.146547464825323e-13, 5.461314069809755e-12, 4.921085770524055e-12, 4.343405037091838e-12, 3.732668368707687e-12, 3.093523840190885e-12, 2.430835727329466e-12, 1.734679010007751e-12, 9.74825365660928e-13, 2.797435120168326e-13, -5.456116108943413e-12, -4.878985199565852e-12, -4.240448995017367e-12, -3.559909094758253e-12, -2.858043359288075e-12, -2.156177623817898e-12, -1.475637723558782e-12, -8.371015190102975e-13, -2.599706096327376e-13, -2.382191739347913e-13, -6.423305872147834e-13, -9.400849094049688e-13, -1.122435026096556e-12, -1.183840321267481e-12, -1.122435026096556e-12, -9.400849094049688e-13, -6.423305872147841e-13, -2.382191739347918e-13]], - k = A[Ae.SHORT_TYPE], - S = A[Ae.SHORT_TYPE], - R = A[Ae.SHORT_TYPE], - x = A[Ae.SHORT_TYPE], - B = [0, 1, 16, 17, 8, 9, 24, 25, 4, 5, 20, 21, 12, 13, 28, 29, 2, 3, 18, 19, 10, 11, 26, 27, 6, 7, 22, 23, 14, 15, 30, 31]; - function T(e, t, a) { - for (var n, s, r, i = 10, o = t + 238 - 14 - 286, _ = -15; _ < 0; _++) { + var V = new function () { + var h = [-.1482523854003001, 32.308141959636465, 296.40344946382766, 883.1344870032432, 11113.947376231741, 1057.2713659324597, 305.7402417275812, 30.825928907280012, 3.8533188138216365, 59.42900443849514, 709.5899960123345, 5281.91112291017, -5829.66483675846, -817.6293103748613, -76.91656988279972, -4.594269939176596, .9063471690191471, .1960342806591213, -.15466694054279598, 34.324387823855965, 301.8067566458425, 817.599602898885, 11573.795901679885, 1181.2520595540152, 321.59731579894424, 31.232021761053772, 3.7107095756221318, 53.650946155329365, 684.167428119626, 5224.56624370173, -6366.391851890084, -908.9766368219582, -89.83068876699639, -5.411397422890401, .8206787908286602, .3901806440322567, -.16070888947830023, 36.147034243915876, 304.11815768187864, 732.7429163887613, 11989.60988270091, 1300.012278487897, 335.28490093152146, 31.48816102859945, 3.373875931311736, 47.232241542899175, 652.7371796173471, 5132.414255594984, -6909.087078780055, -1001.9990371107289, -103.62185754286375, -6.104916304710272, .7416505462720353, .5805693545089249, -.16636367662261495, 37.751650073343995, 303.01103387567713, 627.9747488785183, 12358.763425278165, 1412.2779918482834, 346.7496836825721, 31.598286663170416, 3.1598635433980946, 40.57878626349686, 616.1671130880391, 5007.833007176154, -7454.040671756168, -1095.7960341867115, -118.24411666465777, -6.818469345853504, .6681786379192989, .7653668647301797, -.1716176790982088, 39.11551877123304, 298.3413246578966, 503.5259106886539, 12679.589408408976, 1516.5821921214542, 355.9850766329023, 31.395241710249053, 2.9164211881972335, 33.79716964664243, 574.8943997801362, 4853.234992253242, -7997.57021486075, -1189.7624067269965, -133.6444792601766, -7.7202770609839915, .5993769336819237, .9427934736519954, -.17645823955292173, 40.21879108166477, 289.9982036694474, 359.3226160751053, 12950.259102786438, 1612.1013903507662, 362.85067106591504, 31.045922092242872, 2.822222032597987, 26.988862316190684, 529.8996541764288, 4671.371946949588, -8535.899136645805, -1282.5898586244496, -149.58553632943463, -8.643494270763135, .5345111359507916, 1.111140466039205, -.36174739330527045, 41.04429910497807, 277.5463268268618, 195.6386023135583, 13169.43812144731, 1697.6433561479398, 367.40983966190305, 30.557037410382826, 2.531473372857427, 20.070154905927314, 481.50208566532336, 4464.970341588308, -9065.36882077239, -1373.62841526722, -166.1660487028118, -9.58289321133207, .4729647758913199, 1.268786568327291, -.36970682634889585, 41.393213350082036, 261.2935935556502, 12.935476055240873, 13336.131683328815, 1772.508612059496, 369.76534388639965, 29.751323653701338, 2.4023193045459172, 13.304795348228817, 430.5615775526625, 4237.0568611071185, -9581.931701634761, -1461.6913552409758, -183.12733958476446, -10.718010163869403, .41421356237309503, 1.414213562373095, -.37677560326535325, 41.619486213528496, 241.05423794991074, -187.94665032361226, 13450.063605744153, 1836.153896465782, 369.4908799925761, 29.001847876923147, 2.0714759319987186, 6.779591200894186, 377.7767837205709, 3990.386575512536, -10081.709459700915, -1545.947424837898, -200.3762958015653, -11.864482073055006, .3578057213145241, 1.546020906725474, -.3829366947518991, 41.1516456456653, 216.47684307105183, -406.1569483347166, 13511.136535077321, 1887.8076599260432, 367.3025214564151, 28.136213436723654, 1.913880671464418, .3829366947518991, 323.85365704338597, 3728.1472257487526, -10561.233882199509, -1625.2025997821418, -217.62525175416, -13.015432208941645, .3033466836073424, 1.66293922460509, -.5822628872992417, 40.35639251440489, 188.20071124269245, -640.2706748618148, 13519.21490106562, 1927.6022433578062, 362.8197642637487, 26.968821921868447, 1.7463817695935329, -5.62650678237171, 269.3016715297017, 3453.386536448852, -11016.145278780888, -1698.6569643425091, -234.7658734267683, -14.16351421663124, .2504869601913055, 1.76384252869671, -.5887180101749253, 39.23429103868072, 155.76096234403798, -889.2492977967378, 13475.470561874661, 1955.0535223723712, 356.4450994756727, 25.894952980042156, 1.5695032905781554, -11.181939564328772, 214.80884394039484, 3169.1640829158237, -11443.321309975563, -1765.1588461316153, -251.68908574481912, -15.49755935939164, .198912367379658, 1.847759065022573, -.7912582233652842, 37.39369355329111, 119.699486012458, -1151.0956593239027, 13380.446257078214, 1970.3952110853447, 348.01959814116185, 24.731487364283044, 1.3850130831637748, -16.421408865300393, 161.05030052864092, 2878.3322807850063, -11838.991423510031, -1823.985884688674, -268.2854986386903, -16.81724543849939, .1483359875383474, 1.913880671464418, -.7960642926861912, 35.2322109610459, 80.01928065061526, -1424.0212633405113, 13235.794061869668, 1973.804052543835, 337.9908651258184, 23.289159354463873, 1.3934255946442087, -21.099669467133474, 108.48348407242611, 2583.700758091299, -12199.726194855148, -1874.2780658979746, -284.2467154529415, -18.11369784385905, .09849140335716425, 1.961570560806461, -.998795456205172, 32.56307803611191, 36.958364584370486, -1706.075448829146, 13043.287458812016, 1965.3831106103316, 326.43182772364605, 22.175018750622293, 1.198638339011324, -25.371248002043963, 57.53505923036915, 2288.41886619975, -12522.674544337233, -1914.8400385312243, -299.26241273417224, -19.37805630698734, .04912684976946725, 1.990369453344394, .035780907 * ee.SQRT2 * .5 / 2384e-9, .017876148 * ee.SQRT2 * .5 / 2384e-9, .003134727 * ee.SQRT2 * .5 / 2384e-9, .002457142 * ee.SQRT2 * .5 / 2384e-9, 971317e-9 * ee.SQRT2 * .5 / 2384e-9, 218868e-9 * ee.SQRT2 * .5 / 2384e-9, 101566e-9 * ee.SQRT2 * .5 / 2384e-9, 13828e-9 * ee.SQRT2 * .5 / 2384e-9, 12804.797818791945, 1945.5515939597317, 313.4244966442953, 49591e-9 / 2384e-9, 1995.1556208053692, 21458e-9 / 2384e-9, -69618e-9 / 2384e-9], + z = [[2.382191739347913e-13, 6.423305872147834e-13, 9.400849094049688e-13, 1.122435026096556e-12, 1.183840321267481e-12, 1.122435026096556e-12, 9.40084909404969e-13, 6.423305872147839e-13, 2.382191739347918e-13, 5.456116108943412e-12, 4.878985199565852e-12, 4.240448995017367e-12, 3.559909094758252e-12, 2.858043359288075e-12, 2.156177623817898e-12, 1.475637723558783e-12, 8.371015190102974e-13, 2.599706096327376e-13, -5.456116108943412e-12, -4.878985199565852e-12, -4.240448995017367e-12, -3.559909094758252e-12, -2.858043359288076e-12, -2.156177623817898e-12, -1.475637723558783e-12, -8.371015190102975e-13, -2.599706096327376e-13, -2.382191739347923e-13, -6.423305872147843e-13, -9.400849094049696e-13, -1.122435026096556e-12, -1.183840321267481e-12, -1.122435026096556e-12, -9.400849094049694e-13, -6.42330587214784e-13, -2.382191739347918e-13], [2.382191739347913e-13, 6.423305872147834e-13, 9.400849094049688e-13, 1.122435026096556e-12, 1.183840321267481e-12, 1.122435026096556e-12, 9.400849094049688e-13, 6.423305872147841e-13, 2.382191739347918e-13, 5.456116108943413e-12, 4.878985199565852e-12, 4.240448995017367e-12, 3.559909094758253e-12, 2.858043359288075e-12, 2.156177623817898e-12, 1.475637723558782e-12, 8.371015190102975e-13, 2.599706096327376e-13, -5.461314069809755e-12, -4.921085770524055e-12, -4.343405037091838e-12, -3.732668368707687e-12, -3.093523840190885e-12, -2.430835727329465e-12, -1.734679010007751e-12, -9.74825365660928e-13, -2.797435120168326e-13, 0, 0, 0, 0, 0, 0, -2.283748241799531e-13, -4.037858874020686e-13, -2.146547464825323e-13], [.1316524975873958, .414213562373095, .7673269879789602, 1.091308501069271, 1.303225372841206, 1.56968557711749, 1.920982126971166, 2.414213562373094, 3.171594802363212, 4.510708503662055, 7.595754112725146, 22.90376554843115, .984807753012208, .6427876096865394, .3420201433256688, .9396926207859084, -.1736481776669303, -.7660444431189779, .8660254037844387, .5, -.5144957554275265, -.4717319685649723, -.3133774542039019, -.1819131996109812, -.09457419252642064, -.04096558288530405, -.01419856857247115, -.003699974673760037, .8574929257125442, .8817419973177052, .9496286491027329, .9833145924917901, .9955178160675857, .9991605581781475, .999899195244447, .9999931550702802], [0, 0, 0, 0, 0, 0, 2.283748241799531e-13, 4.037858874020686e-13, 2.146547464825323e-13, 5.461314069809755e-12, 4.921085770524055e-12, 4.343405037091838e-12, 3.732668368707687e-12, 3.093523840190885e-12, 2.430835727329466e-12, 1.734679010007751e-12, 9.74825365660928e-13, 2.797435120168326e-13, -5.456116108943413e-12, -4.878985199565852e-12, -4.240448995017367e-12, -3.559909094758253e-12, -2.858043359288075e-12, -2.156177623817898e-12, -1.475637723558782e-12, -8.371015190102975e-13, -2.599706096327376e-13, -2.382191739347913e-13, -6.423305872147834e-13, -9.400849094049688e-13, -1.122435026096556e-12, -1.183840321267481e-12, -1.122435026096556e-12, -9.400849094049688e-13, -6.423305872147841e-13, -2.382191739347918e-13]], + Z = z[Pe.SHORT_TYPE], + K = z[Pe.SHORT_TYPE], + G = z[Pe.SHORT_TYPE], + U = z[Pe.SHORT_TYPE], + Q = [0, 1, 16, 17, 8, 9, 24, 25, 4, 5, 20, 21, 12, 13, 28, 29, 2, 3, 18, 19, 10, 11, 26, 27, 6, 7, 22, 23, 14, 15, 30, 31]; + function W(e, t, a) { + for (var s, n, r, i = 10, o = t + 238 - 14 - 286, _ = -15; _ < 0; _++) { var l, f, c; - l = u[i + -10], f = e[o + -224] * l, c = e[t + 224] * l, l = u[i + -9], f += e[o + -160] * l, c += e[t + 160] * l, l = u[i + -8], f += e[o + -96] * l, c += e[t + 96] * l, l = u[i + -7], f += e[o + -32] * l, c += e[t + 32] * l, l = u[i + -6], f += e[o + 32] * l, c += e[t + -32] * l, l = u[i + -5], f += e[o + 96] * l, c += e[t + -96] * l, l = u[i + -4], f += e[o + 160] * l, c += e[t + -160] * l, l = u[i + -3], f += e[o + 224] * l, c += e[t + -224] * l, l = u[i + -2], f += e[t + -256] * l, c -= e[o + 256] * l, l = u[i + -1], f += e[t + -192] * l, c -= e[o + 192] * l, l = u[i + 0], f += e[t + -128] * l, c -= e[o + 128] * l, l = u[i + 1], f += e[t + -64] * l, c -= e[o + 64] * l, l = u[i + 2], f += e[t + 0] * l, c -= e[o + 0] * l, l = u[i + 3], f += e[t + 64] * l, c -= e[o + -64] * l, l = u[i + 4], f += e[t + 128] * l, c -= e[o + -128] * l, l = u[i + 5], f += e[t + 192] * l, c -= e[o + -192] * l, f *= u[i + 6], l = c - f, a[30 + 2 * _] = c + f, a[31 + 2 * _] = u[i + 7] * l, i += 18, t--, o++; + l = h[i + -10], f = e[o + -224] * l, c = e[t + 224] * l, l = h[i + -9], f += e[o + -160] * l, c += e[t + 160] * l, l = h[i + -8], f += e[o + -96] * l, c += e[t + 96] * l, l = h[i + -7], f += e[o + -32] * l, c += e[t + 32] * l, l = h[i + -6], f += e[o + 32] * l, c += e[t + -32] * l, l = h[i + -5], f += e[o + 96] * l, c += e[t + -96] * l, l = h[i + -4], f += e[o + 160] * l, c += e[t + -160] * l, l = h[i + -3], f += e[o + 224] * l, c += e[t + -224] * l, l = h[i + -2], f += e[t + -256] * l, c -= e[o + 256] * l, l = h[i + -1], f += e[t + -192] * l, c -= e[o + 192] * l, l = h[i + 0], f += e[t + -128] * l, c -= e[o + 128] * l, l = h[i + 1], f += e[t + -64] * l, c -= e[o + 64] * l, l = h[i + 2], f += e[t + 0] * l, c -= e[o + 0] * l, l = h[i + 3], f += e[t + 64] * l, c -= e[o + -64] * l, l = h[i + 4], f += e[t + 128] * l, c -= e[o + -128] * l, l = h[i + 5], f += e[t + 192] * l, l = (c -= e[o + -192] * l) - (f *= h[i + 6]), a[30 + 2 * _] = c + f, a[31 + 2 * _] = h[i + 7] * l, i += 18, t--, o++; } - c = e[t + -16] * u[i + -10], f = e[t + -32] * u[i + -2], c += (e[t + -48] - e[t + 16]) * u[i + -9], f += e[t + -96] * u[i + -1], c += (e[t + -80] + e[t + 48]) * u[i + -8], f += e[t + -160] * u[i + 0], c += (e[t + -112] - e[t + 80]) * u[i + -7], f += e[t + -224] * u[i + 1], c += (e[t + -144] + e[t + 112]) * u[i + -6], f -= e[t + 32] * u[i + 2], c += (e[t + -176] - e[t + 144]) * u[i + -5], f -= e[t + 96] * u[i + 3], c += (e[t + -208] + e[t + 176]) * u[i + -4], f -= e[t + 160] * u[i + 4], c += (e[t + -240] - e[t + 208]) * u[i + -3], f -= e[t + 224], n = f - c, s = f + c, c = a[14], f = a[15] - c, a[31] = s + c, a[30] = n + f, a[15] = n - f, a[14] = s - c, r = a[28] - a[0], a[0] += a[28], a[28] = r * u[i + -36 + 7], r = a[29] - a[1], a[1] += a[29], a[29] = r * u[i + -36 + 7], r = a[26] - a[2], a[2] += a[26], a[26] = r * u[i + -72 + 7], r = a[27] - a[3], a[3] += a[27], a[27] = r * u[i + -72 + 7], r = a[24] - a[4], a[4] += a[24], a[24] = r * u[i + -108 + 7], r = a[25] - a[5], a[5] += a[25], a[25] = r * u[i + -108 + 7], r = a[22] - a[6], a[6] += a[22], a[22] = r * V.SQRT2, r = a[23] - a[7], a[7] += a[23], a[23] = r * V.SQRT2 - a[7], a[7] -= a[6], a[22] -= a[7], a[23] -= a[22], r = a[6], a[6] = a[31] - r, a[31] = a[31] + r, r = a[7], a[7] = a[30] - r, a[30] = a[30] + r, r = a[22], a[22] = a[15] - r, a[15] = a[15] + r, r = a[23], a[23] = a[14] - r, a[14] = a[14] + r, r = a[20] - a[8], a[8] += a[20], a[20] = r * u[i + -180 + 7], r = a[21] - a[9], a[9] += a[21], a[21] = r * u[i + -180 + 7], r = a[18] - a[10], a[10] += a[18], a[18] = r * u[i + -216 + 7], r = a[19] - a[11], a[11] += a[19], a[19] = r * u[i + -216 + 7], r = a[16] - a[12], a[12] += a[16], a[16] = r * u[i + -252 + 7], r = a[17] - a[13], a[13] += a[17], a[17] = r * u[i + -252 + 7], r = -a[20] + a[24], a[20] += a[24], a[24] = r * u[i + -216 + 7], r = -a[21] + a[25], a[21] += a[25], a[25] = r * u[i + -216 + 7], r = a[4] - a[8], a[4] += a[8], a[8] = r * u[i + -216 + 7], r = a[5] - a[9], a[5] += a[9], a[9] = r * u[i + -216 + 7], r = a[0] - a[12], a[0] += a[12], a[12] = r * u[i + -72 + 7], r = a[1] - a[13], a[1] += a[13], a[13] = r * u[i + -72 + 7], r = a[16] - a[28], a[16] += a[28], a[28] = r * u[i + -72 + 7], r = -a[17] + a[29], a[17] += a[29], a[29] = r * u[i + -72 + 7], r = V.SQRT2 * (a[2] - a[10]), a[2] += a[10], a[10] = r, r = V.SQRT2 * (a[3] - a[11]), a[3] += a[11], a[11] = r, r = V.SQRT2 * (-a[18] + a[26]), a[18] += a[26], a[26] = r - a[18], r = V.SQRT2 * (-a[19] + a[27]), a[19] += a[27], a[27] = r - a[19], r = a[2], a[19] -= a[3], a[3] -= r, a[2] = a[31] - r, a[31] += r, r = a[3], a[11] -= a[19], a[18] -= r, a[3] = a[30] - r, a[30] += r, r = a[18], a[27] -= a[11], a[19] -= r, a[18] = a[15] - r, a[15] += r, r = a[19], a[10] -= r, a[19] = a[14] - r, a[14] += r, r = a[10], a[11] -= r, a[10] = a[23] - r, a[23] += r, r = a[11], a[26] -= r, a[11] = a[22] - r, a[22] += r, r = a[26], a[27] -= r, a[26] = a[7] - r, a[7] += r, r = a[27], a[27] = a[6] - r, a[6] += r, r = V.SQRT2 * (a[0] - a[4]), a[0] += a[4], a[4] = r, r = V.SQRT2 * (a[1] - a[5]), a[1] += a[5], a[5] = r, r = V.SQRT2 * (a[16] - a[20]), a[16] += a[20], a[20] = r, r = V.SQRT2 * (a[17] - a[21]), a[17] += a[21], a[21] = r, r = -V.SQRT2 * (a[8] - a[12]), a[8] += a[12], a[12] = r - a[8], r = -V.SQRT2 * (a[9] - a[13]), a[9] += a[13], a[13] = r - a[9], r = -V.SQRT2 * (a[25] - a[29]), a[25] += a[29], a[29] = r - a[25], r = -V.SQRT2 * (a[24] + a[28]), a[24] -= a[28], a[28] = r - a[24], r = a[24] - a[16], a[24] = r, r = a[20] - r, a[20] = r, r = a[28] - r, a[28] = r, r = a[25] - a[17], a[25] = r, r = a[21] - r, a[21] = r, r = a[29] - r, a[29] = r, r = a[17] - a[1], a[17] = r, r = a[9] - r, a[9] = r, r = a[25] - r, a[25] = r, r = a[5] - r, a[5] = r, r = a[21] - r, a[21] = r, r = a[13] - r, a[13] = r, r = a[29] - r, a[29] = r, r = a[1] - a[0], a[1] = r, r = a[16] - r, a[16] = r, r = a[17] - r, a[17] = r, r = a[8] - r, a[8] = r, r = a[9] - r, a[9] = r, r = a[24] - r, a[24] = r, r = a[25] - r, a[25] = r, r = a[4] - r, a[4] = r, r = a[5] - r, a[5] = r, r = a[20] - r, a[20] = r, r = a[21] - r, a[21] = r, r = a[12] - r, a[12] = r, r = a[13] - r, a[13] = r, r = a[28] - r, a[28] = r, r = a[29] - r, a[29] = r, r = a[0], a[0] += a[31], a[31] -= r, r = a[1], a[1] += a[30], a[30] -= r, r = a[16], a[16] += a[15], a[15] -= r, r = a[17], a[17] += a[14], a[14] -= r, r = a[8], a[8] += a[23], a[23] -= r, r = a[9], a[9] += a[22], a[22] -= r, r = a[24], a[24] += a[7], a[7] -= r, r = a[25], a[25] += a[6], a[6] -= r, r = a[4], a[4] += a[27], a[27] -= r, r = a[5], a[5] += a[26], a[26] -= r, r = a[20], a[20] += a[11], a[11] -= r, r = a[21], a[21] += a[10], a[10] -= r, r = a[12], a[12] += a[19], a[19] -= r, r = a[13], a[13] += a[18], a[18] -= r, r = a[28], a[28] += a[3], a[3] -= r, r = a[29], a[29] += a[2], a[2] -= r; + c = e[t + -16] * h[i + -10], f = e[t + -32] * h[i + -2], c += (e[t + -48] - e[t + 16]) * h[i + -9], f += e[t + -96] * h[i + -1], c += (e[t + -80] + e[t + 48]) * h[i + -8], f += e[t + -160] * h[i + 0], c += (e[t + -112] - e[t + 80]) * h[i + -7], f += e[t + -224] * h[i + 1], c += (e[t + -144] + e[t + 112]) * h[i + -6], f -= e[t + 32] * h[i + 2], c += (e[t + -176] - e[t + 144]) * h[i + -5], f -= e[t + 96] * h[i + 3], c += (e[t + -208] + e[t + 176]) * h[i + -4], f -= e[t + 160] * h[i + 4], c += (e[t + -240] - e[t + 208]) * h[i + -3], s = (f -= e[t + 224]) - c, n = f + c, c = a[14], f = a[15] - c, a[31] = n + c, a[30] = s + f, a[15] = s - f, a[14] = n - c, r = a[28] - a[0], a[0] += a[28], a[28] = r * h[i + -36 + 7], r = a[29] - a[1], a[1] += a[29], a[29] = r * h[i + -36 + 7], r = a[26] - a[2], a[2] += a[26], a[26] = r * h[i + -72 + 7], r = a[27] - a[3], a[3] += a[27], a[27] = r * h[i + -72 + 7], r = a[24] - a[4], a[4] += a[24], a[24] = r * h[i + -108 + 7], r = a[25] - a[5], a[5] += a[25], a[25] = r * h[i + -108 + 7], r = a[22] - a[6], a[6] += a[22], a[22] = r * ee.SQRT2, r = a[23] - a[7], a[7] += a[23], a[23] = r * ee.SQRT2 - a[7], a[7] -= a[6], a[22] -= a[7], a[23] -= a[22], r = a[6], a[6] = a[31] - r, a[31] = a[31] + r, r = a[7], a[7] = a[30] - r, a[30] = a[30] + r, r = a[22], a[22] = a[15] - r, a[15] = a[15] + r, r = a[23], a[23] = a[14] - r, a[14] = a[14] + r, r = a[20] - a[8], a[8] += a[20], a[20] = r * h[i + -180 + 7], r = a[21] - a[9], a[9] += a[21], a[21] = r * h[i + -180 + 7], r = a[18] - a[10], a[10] += a[18], a[18] = r * h[i + -216 + 7], r = a[19] - a[11], a[11] += a[19], a[19] = r * h[i + -216 + 7], r = a[16] - a[12], a[12] += a[16], a[16] = r * h[i + -252 + 7], r = a[17] - a[13], a[13] += a[17], a[17] = r * h[i + -252 + 7], r = -a[20] + a[24], a[20] += a[24], a[24] = r * h[i + -216 + 7], r = -a[21] + a[25], a[21] += a[25], a[25] = r * h[i + -216 + 7], r = a[4] - a[8], a[4] += a[8], a[8] = r * h[i + -216 + 7], r = a[5] - a[9], a[5] += a[9], a[9] = r * h[i + -216 + 7], r = a[0] - a[12], a[0] += a[12], a[12] = r * h[i + -72 + 7], r = a[1] - a[13], a[1] += a[13], a[13] = r * h[i + -72 + 7], r = a[16] - a[28], a[16] += a[28], a[28] = r * h[i + -72 + 7], r = -a[17] + a[29], a[17] += a[29], a[29] = r * h[i + -72 + 7], r = ee.SQRT2 * (a[2] - a[10]), a[2] += a[10], a[10] = r, r = ee.SQRT2 * (a[3] - a[11]), a[3] += a[11], a[11] = r, r = ee.SQRT2 * (-a[18] + a[26]), a[18] += a[26], a[26] = r - a[18], r = ee.SQRT2 * (-a[19] + a[27]), a[19] += a[27], a[27] = r - a[19], r = a[2], a[19] -= a[3], a[3] -= r, a[2] = a[31] - r, a[31] += r, r = a[3], a[11] -= a[19], a[18] -= r, a[3] = a[30] - r, a[30] += r, r = a[18], a[27] -= a[11], a[19] -= r, a[18] = a[15] - r, a[15] += r, r = a[19], a[10] -= r, a[19] = a[14] - r, a[14] += r, r = a[10], a[11] -= r, a[10] = a[23] - r, a[23] += r, r = a[11], a[26] -= r, a[11] = a[22] - r, a[22] += r, r = a[26], a[27] -= r, a[26] = a[7] - r, a[7] += r, r = a[27], a[27] = a[6] - r, a[6] += r, r = ee.SQRT2 * (a[0] - a[4]), a[0] += a[4], a[4] = r, r = ee.SQRT2 * (a[1] - a[5]), a[1] += a[5], a[5] = r, r = ee.SQRT2 * (a[16] - a[20]), a[16] += a[20], a[20] = r, r = ee.SQRT2 * (a[17] - a[21]), a[17] += a[21], a[21] = r, r = -ee.SQRT2 * (a[8] - a[12]), a[8] += a[12], a[12] = r - a[8], r = -ee.SQRT2 * (a[9] - a[13]), a[9] += a[13], a[13] = r - a[9], r = -ee.SQRT2 * (a[25] - a[29]), a[25] += a[29], a[29] = r - a[25], r = -ee.SQRT2 * (a[24] + a[28]), a[24] -= a[28], a[28] = r - a[24], r = a[24] - a[16], a[24] = r, r = a[20] - r, a[20] = r, r = a[28] - r, a[28] = r, r = a[25] - a[17], a[25] = r, r = a[21] - r, a[21] = r, r = a[29] - r, a[29] = r, r = a[17] - a[1], a[17] = r, r = a[9] - r, a[9] = r, r = a[25] - r, a[25] = r, r = a[5] - r, a[5] = r, r = a[21] - r, a[21] = r, r = a[13] - r, a[13] = r, r = a[29] - r, a[29] = r, r = a[1] - a[0], a[1] = r, r = a[16] - r, a[16] = r, r = a[17] - r, a[17] = r, r = a[8] - r, a[8] = r, r = a[9] - r, a[9] = r, r = a[24] - r, a[24] = r, r = a[25] - r, a[25] = r, r = a[4] - r, a[4] = r, r = a[5] - r, a[5] = r, r = a[20] - r, a[20] = r, r = a[21] - r, a[21] = r, r = a[12] - r, a[12] = r, r = a[13] - r, a[13] = r, r = a[28] - r, a[28] = r, r = a[29] - r, a[29] = r, r = a[0], a[0] += a[31], a[31] -= r, r = a[1], a[1] += a[30], a[30] -= r, r = a[16], a[16] += a[15], a[15] -= r, r = a[17], a[17] += a[14], a[14] -= r, r = a[8], a[8] += a[23], a[23] -= r, r = a[9], a[9] += a[22], a[22] -= r, r = a[24], a[24] += a[7], a[7] -= r, r = a[25], a[25] += a[6], a[6] -= r, r = a[4], a[4] += a[27], a[27] -= r, r = a[5], a[5] += a[26], a[26] -= r, r = a[20], a[20] += a[11], a[11] -= r, r = a[21], a[21] += a[10], a[10] -= r, r = a[12], a[12] += a[19], a[19] -= r, r = a[13], a[13] += a[18], a[18] -= r, r = a[28], a[28] += a[3], a[3] -= r, r = a[29], a[29] += a[2], a[2] -= r; } - function E(e, t) { + function J(e, t) { for (var a = 0; a < 3; a++) { - var n, s, r, i, o, _; - i = e[t + 6] * A[Ae.SHORT_TYPE][0] - e[t + 15], n = e[t + 0] * A[Ae.SHORT_TYPE][2] - e[t + 9], s = i + n, r = i - n, i = e[t + 15] * A[Ae.SHORT_TYPE][0] + e[t + 6], n = e[t + 9] * A[Ae.SHORT_TYPE][2] + e[t + 0], o = i + n, _ = -i + n, n = 2.069978111953089e-11 * (e[t + 3] * A[Ae.SHORT_TYPE][1] - e[t + 12]), i = 2.069978111953089e-11 * (e[t + 12] * A[Ae.SHORT_TYPE][1] + e[t + 3]), e[t + 0] = 1.90752519173728e-11 * s + n, e[t + 15] = 1.90752519173728e-11 * -o + i, r = .8660254037844387 * r * 1.907525191737281e-11, o = .5 * o * 1.907525191737281e-11 + i, e[t + 3] = r - o, e[t + 6] = r + o, s = .5 * s * 1.907525191737281e-11 - n, _ = .8660254037844387 * _ * 1.907525191737281e-11, e[t + 9] = s + _, e[t + 12] = s - _, t++; + var s, n, r, i, o, _; + n = (i = e[t + 6] * z[Pe.SHORT_TYPE][0] - e[t + 15]) + (s = e[t + 0] * z[Pe.SHORT_TYPE][2] - e[t + 9]), r = i - s, o = (i = e[t + 15] * z[Pe.SHORT_TYPE][0] + e[t + 6]) + (s = e[t + 9] * z[Pe.SHORT_TYPE][2] + e[t + 0]), _ = -i + s, s = 2.069978111953089e-11 * (e[t + 3] * z[Pe.SHORT_TYPE][1] - e[t + 12]), i = 2.069978111953089e-11 * (e[t + 12] * z[Pe.SHORT_TYPE][1] + e[t + 3]), e[t + 0] = 1.90752519173728e-11 * n + s, e[t + 15] = 1.90752519173728e-11 * -o + i, r = .8660254037844387 * r * 1.907525191737281e-11, o = .5 * o * 1.907525191737281e-11 + i, e[t + 3] = r - o, e[t + 6] = r + o, n = .5 * n * 1.907525191737281e-11 - s, _ = .8660254037844387 * _ * 1.907525191737281e-11, e[t + 9] = n + _, e[t + 12] = n - _, t++; } } - function C(e, t, a) { - var n, s, r, i, o, _, l, f, c, u, h, b, p, m, v, d, g, w; - r = a[17] - a[9], o = a[15] - a[11], _ = a[14] - a[12], l = a[0] + a[8], f = a[1] + a[7], c = a[2] + a[6], u = a[3] + a[5], e[t + 17] = l + c - u - (f - a[4]), s = (l + c - u) * S[19] + (f - a[4]), n = (r - o - _) * S[18], e[t + 5] = n + s, e[t + 6] = n - s, i = (a[16] - a[10]) * S[18], f = f * S[19] + a[4], n = r * S[12] + i + o * S[13] + _ * S[14], s = -l * S[16] + f - c * S[17] + u * S[15], e[t + 1] = n + s, e[t + 2] = n - s, n = r * S[13] - i - o * S[14] + _ * S[12], s = -l * S[17] + f - c * S[15] + u * S[16], e[t + 9] = n + s, e[t + 10] = n - s, n = r * S[14] - i + o * S[12] - _ * S[13], s = l * S[15] - f + c * S[16] - u * S[17], e[t + 13] = n + s, e[t + 14] = n - s, h = a[8] - a[0], p = a[6] - a[2], m = a[5] - a[3], v = a[17] + a[9], d = a[16] + a[10], g = a[15] + a[11], w = a[14] + a[12], e[t + 0] = v + g + w + (d + a[13]), n = (v + g + w) * S[19] - (d + a[13]), s = (h - p + m) * S[18], e[t + 11] = n + s, e[t + 12] = n - s, b = (a[7] - a[1]) * S[18], d = a[13] - d * S[19], n = v * S[15] - d + g * S[16] + w * S[17], s = h * S[14] + b + p * S[12] + m * S[13], e[t + 3] = n + s, e[t + 4] = n - s, n = -v * S[17] + d - g * S[15] - w * S[16], s = h * S[13] + b - p * S[14] - m * S[12], e[t + 7] = n + s, e[t + 8] = n - s, n = -v * S[16] + d - g * S[17] - w * S[15], s = h * S[12] - b + p * S[13] - m * S[14], e[t + 15] = n + s, e[t + 16] = n - s; - } this.mdct_sub48 = function (e, t, a) { - for (var n = t, s = 286, r = 0; r < e.channels_out; r++) { - for (var i = 0; i < e.mode_gr; i++) { - for (var o, _ = e.l3_side.tt[i][r], l = _.xr, f = 0, c = e.sb_sample[r][1 - i], u = 0, h = 0; h < 9; h++) for (T(n, s, c[u]), T(n, s + 32, c[u + 1]), u += 2, s += 64, o = 1; o < 32; o += 2) c[u - 1][o] *= -1; - for (o = 0; o < 32; o++, f += 18) { - var b = _.block_type, - p = e.sb_sample[r][i], - m = e.sb_sample[r][1 - i]; - if (0 != _.mixed_block_flag && o < 2 && (b = 0), e.amp_filter[o] < 1e-12) we.fill(l, f + 0, f + 18, 0);else if (e.amp_filter[o] < 1 && me(), b == Ae.SHORT_TYPE) { - for (var h = -3; h < 0; h++) { - var v = A[Ae.SHORT_TYPE][h + 3]; - l[f + 3 * h + 9] = p[9 + h][B[o]] * v - p[8 - h][B[o]], l[f + 3 * h + 18] = p[14 - h][B[o]] * v + p[15 + h][B[o]], l[f + 3 * h + 10] = p[15 + h][B[o]] * v - p[14 - h][B[o]], l[f + 3 * h + 19] = m[2 - h][B[o]] * v + m[3 + h][B[o]], l[f + 3 * h + 11] = m[3 + h][B[o]] * v - m[2 - h][B[o]], l[f + 3 * h + 20] = m[8 - h][B[o]] * v + m[9 + h][B[o]]; + for (var s, n, r, i, o, _, l, f, c, h, u, m, p, b, v, d, g, S, M, w, R, A = t, B = 286, k = 0; k < e.channels_out; k++) { + for (var y = 0; y < e.mode_gr; y++) { + for (var T, x = e.l3_side.tt[y][k], E = x.xr, P = 0, L = e.sb_sample[k][1 - y], I = 0, H = 0; H < 9; H++) for (W(A, B, L[I]), W(A, B + 32, L[I + 1]), I += 2, B += 64, T = 1; T < 32; T += 2) L[I - 1][T] *= -1; + for (T = 0; T < 32; T++, P += 18) { + var C = x.block_type, + V = e.sb_sample[k][y], + O = e.sb_sample[k][1 - y]; + if (0 != x.mixed_block_flag && T < 2 && (C = 0), e.amp_filter[T] < 1e-12) ye.fill(E, P + 0, P + 18, 0);else { + if (e.amp_filter[T] < 1) for (H = 0; H < 18; H++) O[H][Q[T]] *= e.amp_filter[T]; + if (C == Pe.SHORT_TYPE) { + for (H = -3; H < 0; H++) { + var N = z[Pe.SHORT_TYPE][H + 3]; + E[P + 3 * H + 9] = V[9 + H][Q[T]] * N - V[8 - H][Q[T]], E[P + 3 * H + 18] = V[14 - H][Q[T]] * N + V[15 + H][Q[T]], E[P + 3 * H + 10] = V[15 + H][Q[T]] * N - V[14 - H][Q[T]], E[P + 3 * H + 19] = O[2 - H][Q[T]] * N + O[3 + H][Q[T]], E[P + 3 * H + 11] = O[3 + H][Q[T]] * N - O[2 - H][Q[T]], E[P + 3 * H + 20] = O[8 - H][Q[T]] * N + O[9 + H][Q[T]]; + } + J(E, P); + } else { + var D = Be(18); + for (H = -9; H < 0; H++) { + var Y, X; + Y = z[C][H + 27] * O[H + 9][Q[T]] + z[C][H + 36] * O[8 - H][Q[T]], X = z[C][H + 9] * V[H + 9][Q[T]] - z[C][H + 18] * V[8 - H][Q[T]], D[H + 9] = Y - X * Z[3 + H + 9], D[H + 18] = Y * Z[3 + H + 9] + X; + } + s = E, n = P, R = w = M = S = g = d = v = b = p = m = u = h = c = f = l = _ = o = i = void 0, _ = (r = D)[17] - r[9], f = r[15] - r[11], c = r[14] - r[12], h = r[0] + r[8], u = r[1] + r[7], m = r[2] + r[6], p = r[3] + r[5], s[n + 17] = h + m - p - (u - r[4]), o = (h + m - p) * K[19] + (u - r[4]), i = (_ - f - c) * K[18], s[n + 5] = i + o, s[n + 6] = i - o, l = (r[16] - r[10]) * K[18], u = u * K[19] + r[4], i = _ * K[12] + l + f * K[13] + c * K[14], o = -h * K[16] + u - m * K[17] + p * K[15], s[n + 1] = i + o, s[n + 2] = i - o, i = _ * K[13] - l - f * K[14] + c * K[12], o = -h * K[17] + u - m * K[15] + p * K[16], s[n + 9] = i + o, s[n + 10] = i - o, i = _ * K[14] - l + f * K[12] - c * K[13], o = h * K[15] - u + m * K[16] - p * K[17], s[n + 13] = i + o, s[n + 14] = i - o, b = r[8] - r[0], d = r[6] - r[2], g = r[5] - r[3], S = r[17] + r[9], M = r[16] + r[10], w = r[15] + r[11], R = r[14] + r[12], s[n + 0] = S + w + R + (M + r[13]), i = (S + w + R) * K[19] - (M + r[13]), o = (b - d + g) * K[18], s[n + 11] = i + o, s[n + 12] = i - o, v = (r[7] - r[1]) * K[18], M = r[13] - M * K[19], i = S * K[15] - M + w * K[16] + R * K[17], o = b * K[14] + v + d * K[12] + g * K[13], s[n + 3] = i + o, s[n + 4] = i - o, i = -S * K[17] + M - w * K[15] - R * K[16], o = b * K[13] + v - d * K[14] - g * K[12], s[n + 7] = i + o, s[n + 8] = i - o, i = -S * K[16] + M - w * K[17] - R * K[15], o = b * K[12] - v + d * K[13] - g * K[14], s[n + 15] = i + o, s[n + 16] = i - o; } - E(l, f); - } else { - for (var d = de(18), h = -9; h < 0; h++) { - var g, w; - g = A[b][h + 27] * m[h + 9][B[o]] + A[b][h + 36] * m[8 - h][B[o]], w = A[b][h + 9] * p[h + 9][B[o]] - A[b][h + 18] * p[8 - h][B[o]], d[h + 9] = g - w * k[3 + h + 9], d[h + 18] = g * k[3 + h + 9] + w; - } - C(l, f, d); } - if (b != Ae.SHORT_TYPE && 0 != o) for (var h = 7; 0 <= h; --h) { - var S, M; - S = l[f + h] * R[20 + h] + l[f + -1 - h] * x[28 + h], M = l[f + h] * x[28 + h] - l[f + -1 - h] * R[20 + h], l[f + -1 - h] = S, l[f + h] = M; + if (C != Pe.SHORT_TYPE && 0 != T) for (H = 7; 0 <= H; --H) { + var q, F; + q = E[P + H] * G[20 + H] + E[P + -1 - H] * U[28 + H], F = E[P + H] * U[28 + H] - E[P + -1 - H] * G[20 + H], E[P + -1 - H] = q, E[P + H] = F; } } } - if (n = a, s = 286, 1 == e.mode_gr) for (var y = 0; y < 18; y++) I.arraycopy(e.sb_sample[r][1][y], 0, e.sb_sample[r][0][y], 0, 32); + if (A = a, B = 286, 1 == e.mode_gr) for (var j = 0; j < 18; j++) $.arraycopy(e.sb_sample[k][1][j], 0, e.sb_sample[k][0][j], 0, 32); } }; }(); - this.lame_encode_mp3_frame = function (e, t, a, n, s, r) { + this.lame_encode_mp3_frame = function (e, t, a, s, n, r) { var i, - o = E([2, 2]); - o[0][0] = new L(), o[0][1] = new L(), o[1][0] = new L(), o[1][1] = new L(); + o = O([2, 2]); + o[0][0] = new N(), o[0][1] = new N(), o[1][0] = new N(), o[1][1] = new N(); var _, - l = E([2, 2]); - l[0][0] = new L(), l[0][1] = new L(), l[1][0] = new L(), l[1][1] = new L(); + l = O([2, 2]); + l[0][0] = new N(), l[0][1] = new N(), l[1][0] = new N(), l[1][1] = new N(); var f, c, - u, - h = [null, null], - b = e.internal_flags, - p = ge([2, 4]), - m = [[0, 0], [0, 0]], - v = [[0, 0], [0, 0]]; - if (h[0] = t, h[1] = a, 0 == b.lame_encode_frame_init && function (e, t) { + h, + u = [null, null], + m = e.internal_flags, + p = ke([2, 4]), + b = [.5, .5], + v = [[0, 0], [0, 0]], + d = [[0, 0], [0, 0]]; + if (u[0] = t, u[1] = a, 0 == m.lame_encode_frame_init && function (e, t) { var a, - n, - s = e.internal_flags; - if (0 == s.lame_encode_frame_init) { + s, + n = e.internal_flags; + if (0 == n.lame_encode_frame_init) { var r, i, - o = de(2014), - _ = de(2014); - for (s.lame_encode_frame_init = 1, i = r = 0; r < 286 + 576 * (1 + s.mode_gr); ++r) r < 576 * s.mode_gr ? (o[r] = 0, 2 == s.channels_out && (_[r] = 0)) : (o[r] = t[0][i], 2 == s.channels_out && (_[r] = t[1][i]), ++i); - for (n = 0; n < s.mode_gr; n++) for (a = 0; a < s.channels_out; a++) s.l3_side.tt[n][a].block_type = Ae.SHORT_TYPE; - T.mdct_sub48(s, o, _); + o = Be(2014), + _ = Be(2014); + for (n.lame_encode_frame_init = 1, i = r = 0; r < 286 + 576 * (1 + n.mode_gr); ++r) r < 576 * n.mode_gr ? (o[r] = 0, 2 == n.channels_out && (_[r] = 0)) : (o[r] = t[0][i], 2 == n.channels_out && (_[r] = t[1][i]), ++i); + for (s = 0; s < n.mode_gr; s++) for (a = 0; a < n.channels_out; a++) n.l3_side.tt[s][a].block_type = Pe.SHORT_TYPE; + V.mdct_sub48(n, o, _); } - }(e, h), b.padding = 0, (b.slot_lag -= b.frac_SpF) < 0 && (b.slot_lag += e.out_samplerate, b.padding = 1), 0 != b.psymodel) { - var d, - g = [null, null], - w = 0, - S = ve(2); - for (u = 0; u < b.mode_gr; u++) { - for (c = 0; c < b.channels_out; c++) g[c] = h[c], w = 576 + 576 * u - Ae.FFTOFFSET; - if (e.VBR == Me.vbr_mtrh || e.VBR == Me.vbr_mt ? me() : d = x.L3psycho_anal_ns(e, g, w, u, o, l, m[u], v[u], p[u], S), 0 != d) return -4; - for (e.mode == ye.JOINT_STEREO && me(), c = 0; c < b.channels_out; c++) { - var M = b.l3_side.tt[u][c]; - M.block_type = S[c], M.mixed_block_flag = 0; + }(e, u), m.padding = 0, (m.slot_lag -= m.frac_SpF) < 0 && (m.slot_lag += e.out_samplerate, m.padding = 1), 0 != m.psymodel) { + var g = [null, null], + S = 0, + M = Ae(2); + for (h = 0; h < m.mode_gr; h++) { + for (c = 0; c < m.channels_out; c++) g[c] = u[c], S = 576 + 576 * h - Pe.FFTOFFSET; + if (0 != (e.VBR == xe.vbr_mtrh || e.VBR == xe.vbr_mt ? I.L3psycho_anal_vbr(e, g, S, h, o, l, v[h], d[h], p[h], M) : I.L3psycho_anal_ns(e, g, S, h, o, l, v[h], d[h], p[h], M))) return -4; + for (e.mode == Ee.JOINT_STEREO && (b[h] = p[h][2] + p[h][3], 0 < b[h] && (b[h] = p[h][3] / b[h])), c = 0; c < m.channels_out; c++) { + var w = m.l3_side.tt[h][c]; + w.block_type = M[c], w.mixed_block_flag = 0; } } - } else me(); + } else for (h = 0; h < m.mode_gr; h++) for (c = 0; c < m.channels_out; c++) m.l3_side.tt[h][c].block_type = Pe.NORM_TYPE, m.l3_side.tt[h][c].mixed_block_flag = 0, d[h][c] = v[h][c] = 700; if (function (e) { var t, a; - if (0 == e.ATH.useAdjust) return e.ATH.adjust = 1; - if (a = e.loudness_sq[0][0], t = e.loudness_sq[1][0], 2 == e.channels_out ? me() : (a += a, t += t), 2 == e.mode_gr && (a = Math.max(a, t)), a *= .5, .03125 < (a *= e.ATH.aaSensitivityP)) 1 <= e.ATH.adjust ? e.ATH.adjust = 1 : e.ATH.adjust < e.ATH.adjustLimit && (e.ATH.adjust = e.ATH.adjustLimit), e.ATH.adjustLimit = 1;else { - var n = 31.98 * a + 625e-6; - e.ATH.adjust >= n ? (e.ATH.adjust *= .075 * n + .925, e.ATH.adjust < n && (e.ATH.adjust = n)) : e.ATH.adjustLimit >= n ? e.ATH.adjust = n : e.ATH.adjust < e.ATH.adjustLimit && (e.ATH.adjust = e.ATH.adjustLimit), e.ATH.adjustLimit = n; + if (0 != e.ATH.useAdjust) { + if (a = e.loudness_sq[0][0], t = e.loudness_sq[1][0], 2 == e.channels_out ? (a += e.loudness_sq[0][1], t += e.loudness_sq[1][1]) : (a += a, t += t), 2 == e.mode_gr && (a = Math.max(a, t)), a *= .5, .03125 < (a *= e.ATH.aaSensitivityP)) 1 <= e.ATH.adjust ? e.ATH.adjust = 1 : e.ATH.adjust < e.ATH.adjustLimit && (e.ATH.adjust = e.ATH.adjustLimit), e.ATH.adjustLimit = 1;else { + var s = 31.98 * a + 625e-6; + e.ATH.adjust >= s ? (e.ATH.adjust *= .075 * s + .925, e.ATH.adjust < s && (e.ATH.adjust = s)) : e.ATH.adjustLimit >= s ? e.ATH.adjust = s : e.ATH.adjust < e.ATH.adjustLimit && (e.ATH.adjust = e.ATH.adjustLimit), e.ATH.adjustLimit = s; + } + } else e.ATH.adjust = 1; + }(m), V.mdct_sub48(m, u[0], u[1]), m.mode_ext = Pe.MPG_MD_LR_LR, e.force_ms) m.mode_ext = Pe.MPG_MD_MS_LR;else if (e.mode == Ee.JOINT_STEREO) { + var R = 0, + A = 0; + for (h = 0; h < m.mode_gr; h++) for (c = 0; c < m.channels_out; c++) R += d[h][c], A += v[h][c]; + if (R <= 1 * A) { + var B = m.l3_side.tt[0], + k = m.l3_side.tt[m.mode_gr - 1]; + B[0].block_type == B[1].block_type && k[0].block_type == k[1].block_type && (m.mode_ext = Pe.MPG_MD_MS_LR); } - }(b), T.mdct_sub48(b, h[0], h[1]), b.mode_ext = Ae.MPG_MD_LR_LR, e.force_ms ? b.mode_ext = Ae.MPG_MD_MS_LR : e.mode == ye.JOINT_STEREO && me(), b.mode_ext == k ? (_ = l, f = v) : (_ = o, f = m), e.analysis && null != b.pinfo && me(), e.VBR == Me.vbr_off || e.VBR == Me.vbr_abr) { - var y, A; - for (y = 0; y < 18; y++) b.nsPsy.pefirbuf[y] = b.nsPsy.pefirbuf[y + 1]; - for (u = A = 0; u < b.mode_gr; u++) for (c = 0; c < b.channels_out; c++) A += f[u][c]; - for (b.nsPsy.pefirbuf[18] = A, A = b.nsPsy.pefirbuf[9], y = 0; y < 9; y++) A += (b.nsPsy.pefirbuf[y] + b.nsPsy.pefirbuf[18 - y]) * Ae.fircoef[y]; - for (A = 3350 * b.mode_gr * b.channels_out / A, u = 0; u < b.mode_gr; u++) for (c = 0; c < b.channels_out; c++) f[u][c] *= A; } - return b.iteration_loop.iteration_loop(e, f, [.5, .5], _), R.format_bitstream(e), i = R.copy_buffer(b, n, s, r, 1), e.bWriteVbrTag && B.addVbrFrame(e), e.analysis && null != b.pinfo && me(), function (e) { - var t, a; - for (e.bitrate_stereoMode_Hist[e.bitrate_index][4]++, e.bitrate_stereoMode_Hist[15][4]++, 2 == e.channels_out && me(), t = 0; t < e.mode_gr; ++t) for (a = 0; a < e.channels_out; ++a) { - var n = 0 | e.l3_side.tt[t][a].block_type; - 0 != e.l3_side.tt[t][a].mixed_block_flag && (n = 4), e.bitrate_blockType_Hist[e.bitrate_index][n]++, e.bitrate_blockType_Hist[e.bitrate_index][5]++, e.bitrate_blockType_Hist[15][n]++, e.bitrate_blockType_Hist[15][5]++; + if (m.mode_ext == P ? (_ = l, f = d) : (_ = o, f = v), e.analysis && null != m.pinfo) for (h = 0; h < m.mode_gr; h++) for (c = 0; c < m.channels_out; c++) m.pinfo.ms_ratio[h] = m.ms_ratio[h], m.pinfo.ms_ener_ratio[h] = b[h], m.pinfo.blocktype[h][c] = m.l3_side.tt[h][c].block_type, m.pinfo.pe[h][c] = f[h][c], $.arraycopy(m.l3_side.tt[h][c].xr, 0, m.pinfo.xr[h][c], 0, 576), m.mode_ext == P && (m.pinfo.ers[h][c] = m.pinfo.ers[h][c + 2], $.arraycopy(m.pinfo.energy[h][c + 2], 0, m.pinfo.energy[h][c], 0, m.pinfo.energy[h][c].length)); + if (e.VBR == xe.vbr_off || e.VBR == xe.vbr_abr) { + var y, T; + for (y = 0; y < 18; y++) m.nsPsy.pefirbuf[y] = m.nsPsy.pefirbuf[y + 1]; + for (h = T = 0; h < m.mode_gr; h++) for (c = 0; c < m.channels_out; c++) T += f[h][c]; + for (m.nsPsy.pefirbuf[18] = T, T = m.nsPsy.pefirbuf[9], y = 0; y < 9; y++) T += (m.nsPsy.pefirbuf[y] + m.nsPsy.pefirbuf[18 - y]) * Pe.fircoef[y]; + for (T = 3350 * m.mode_gr * m.channels_out / T, h = 0; h < m.mode_gr; h++) for (c = 0; c < m.channels_out; c++) f[h][c] *= T; + } + if (m.iteration_loop.iteration_loop(e, f, b, _), L.format_bitstream(e), i = L.copy_buffer(m, s, n, r, 1), e.bWriteVbrTag && H.addVbrFrame(e), e.analysis && null != m.pinfo) { + for (c = 0; c < m.channels_out; c++) { + var x; + for (x = 0; x < E; x++) m.pinfo.pcmdata[c][x] = m.pinfo.pcmdata[c][x + e.framesize]; + for (x = E; x < 1600; x++) m.pinfo.pcmdata[c][x] = u[c][x - E]; } - }(b), i; + C.set_frame_pinfo(e, _); + } + return function (e) { + var t, a; + for (e.bitrate_stereoMode_Hist[e.bitrate_index][4]++, e.bitrate_stereoMode_Hist[15][4]++, 2 == e.channels_out && (e.bitrate_stereoMode_Hist[e.bitrate_index][e.mode_ext]++, e.bitrate_stereoMode_Hist[15][e.mode_ext]++), t = 0; t < e.mode_gr; ++t) for (a = 0; a < e.channels_out; ++a) { + var s = 0 | e.l3_side.tt[t][a].block_type; + 0 != e.l3_side.tt[t][a].mixed_block_flag && (s = 4), e.bitrate_blockType_Hist[e.bitrate_index][s]++, e.bitrate_blockType_Hist[e.bitrate_index][5]++, e.bitrate_blockType_Hist[15][s]++, e.bitrate_blockType_Hist[15][5]++; + } + }(m), i; }; } function i() { - this.l = de(Ae.SBMAX_l), this.s = ge([Ae.SBMAX_s, 3]); - var n = this; + this.l = Be(Pe.SBMAX_l), this.s = ke([Pe.SBMAX_s, 3]); + var s = this; this.assign = function (e) { - I.arraycopy(e.l, 0, n.l, 0, Ae.SBMAX_l); - for (var t = 0; t < Ae.SBMAX_s; t++) for (var a = 0; a < 3; a++) n.s[t][a] = e.s[t][a]; + $.arraycopy(e.l, 0, s.l, 0, Pe.SBMAX_l); + for (var t = 0; t < Pe.SBMAX_s; t++) for (var a = 0; a < 3; a++) s.s[t][a] = e.s[t][a]; }; } - function j() { + function Z() { var e = 40; function t() { - this.write_timing = 0, this.ptr = 0, this.buf = S(e); + this.write_timing = 0, this.ptr = 0, this.buf = A(e); } - this.Class_ID = 0, this.lame_encode_frame_init = 0, this.iteration_init_init = 0, this.fill_buffer_resample_init = 0, this.mfbuf = ge([2, j.MFSIZE]), this.mode_gr = 0, this.channels_in = 0, this.channels_out = 0, this.resample_ratio = 0, this.mf_samples_to_encode = 0, this.mf_size = 0, this.VBR_min_bitrate = 0, this.VBR_max_bitrate = 0, this.bitrate_index = 0, this.samplerate_index = 0, this.mode_ext = 0, this.lowpass1 = 0, this.lowpass2 = 0, this.highpass1 = 0, this.highpass2 = 0, this.noise_shaping = 0, this.noise_shaping_amp = 0, this.substep_shaping = 0, this.psymodel = 0, this.noise_shaping_stop = 0, this.subblock_gain = 0, this.use_best_huffman = 0, this.full_outer_loop = 0, this.l3_side = new function () { - this.tt = [[null, null], [null, null]], this.main_data_begin = 0, this.private_bits = 0, this.resvDrain_pre = 0, this.resvDrain_post = 0, this.scfsi = [ve(4), ve(4)]; - for (var e = 0; e < 2; e++) for (var t = 0; t < 2; t++) this.tt[e][t] = new B(); - }(), this.ms_ratio = de(2), this.padding = 0, this.frac_SpF = 0, this.slot_lag = 0, this.tag_spec = null, this.nMusicCRC = 0, this.OldValue = ve(2), this.CurrentStep = ve(2), this.masking_lower = 0, this.bv_scf = ve(576), this.pseudohalf = ve(F.SFBMAX), this.sfb21_extra = !1, this.inbuf_old = new Array(2), this.blackfilt = new Array(2 * j.BPC + 1), this.itime = n(2), this.sideinfo_len = 0, this.sb_sample = ge([2, 2, 18, Ae.SBLIMIT]), this.amp_filter = de(32), this.header = new Array(j.MAX_HEADER_BUF), this.h_ptr = 0, this.w_ptr = 0, this.ancillary_flag = 0, this.ResvSize = 0, this.ResvMax = 0, this.scalefac_band = new r(), this.minval_l = de(Ae.CBANDS), this.minval_s = de(Ae.CBANDS), this.nb_1 = ge([4, Ae.CBANDS]), this.nb_2 = ge([4, Ae.CBANDS]), this.nb_s1 = ge([4, Ae.CBANDS]), this.nb_s2 = ge([4, Ae.CBANDS]), this.s3_ss = null, this.s3_ll = null, this.decay = 0, this.thm = new Array(4), this.en = new Array(4), this.tot_ener = de(4), this.loudness_sq = ge([2, 2]), this.loudness_sq_save = de(2), this.mld_l = de(Ae.SBMAX_l), this.mld_s = de(Ae.SBMAX_s), this.bm_l = ve(Ae.SBMAX_l), this.bo_l = ve(Ae.SBMAX_l), this.bm_s = ve(Ae.SBMAX_s), this.bo_s = ve(Ae.SBMAX_s), this.npart_l = 0, this.npart_s = 0, this.s3ind = w([Ae.CBANDS, 2]), this.s3ind_s = w([Ae.CBANDS, 2]), this.numlines_s = ve(Ae.CBANDS), this.numlines_l = ve(Ae.CBANDS), this.rnumlines_l = de(Ae.CBANDS), this.mld_cb_l = de(Ae.CBANDS), this.mld_cb_s = de(Ae.CBANDS), this.numlines_s_num1 = 0, this.numlines_l_num1 = 0, this.pe = de(4), this.ms_ratio_s_old = 0, this.ms_ratio_l_old = 0, this.ms_ener_ratio_old = 0, this.blocktype_old = ve(2), this.nsPsy = new function () { - this.last_en_subshort = ge([4, 9]), this.lastAttacks = ve(4), this.pefirbuf = de(19), this.longfact = de(Ae.SBMAX_l), this.shortfact = de(Ae.SBMAX_s), this.attackthre = 0, this.attackthre_s = 0; + this.Class_ID = 0, this.lame_encode_frame_init = 0, this.iteration_init_init = 0, this.fill_buffer_resample_init = 0, this.mfbuf = ke([2, Z.MFSIZE]), this.mode_gr = 0, this.channels_in = 0, this.channels_out = 0, this.resample_ratio = 0, this.mf_samples_to_encode = 0, this.mf_size = 0, this.VBR_min_bitrate = 0, this.VBR_max_bitrate = 0, this.bitrate_index = 0, this.samplerate_index = 0, this.mode_ext = 0, this.lowpass1 = 0, this.lowpass2 = 0, this.highpass1 = 0, this.highpass2 = 0, this.noise_shaping = 0, this.noise_shaping_amp = 0, this.substep_shaping = 0, this.psymodel = 0, this.noise_shaping_stop = 0, this.subblock_gain = 0, this.use_best_huffman = 0, this.full_outer_loop = 0, this.l3_side = new function () { + this.tt = [[null, null], [null, null]], this.main_data_begin = 0, this.private_bits = 0, this.resvDrain_pre = 0, this.resvDrain_post = 0, this.scfsi = [Ae(4), Ae(4)]; + for (var e = 0; e < 2; e++) for (var t = 0; t < 2; t++) this.tt[e][t] = new T(); + }(), this.ms_ratio = Be(2), this.padding = 0, this.frac_SpF = 0, this.slot_lag = 0, this.tag_spec = null, this.nMusicCRC = 0, this.OldValue = Ae(2), this.CurrentStep = Ae(2), this.masking_lower = 0, this.bv_scf = Ae(576), this.pseudohalf = Ae(z.SFBMAX), this.sfb21_extra = !1, this.inbuf_old = new Array(2), this.blackfilt = new Array(2 * Z.BPC + 1), this.itime = s(2), this.sideinfo_len = 0, this.sb_sample = ke([2, 2, 18, Pe.SBLIMIT]), this.amp_filter = Be(32), this.header = new Array(Z.MAX_HEADER_BUF), this.h_ptr = 0, this.w_ptr = 0, this.ancillary_flag = 0, this.ResvSize = 0, this.ResvMax = 0, this.scalefac_band = new r(), this.minval_l = Be(Pe.CBANDS), this.minval_s = Be(Pe.CBANDS), this.nb_1 = ke([4, Pe.CBANDS]), this.nb_2 = ke([4, Pe.CBANDS]), this.nb_s1 = ke([4, Pe.CBANDS]), this.nb_s2 = ke([4, Pe.CBANDS]), this.s3_ss = null, this.s3_ll = null, this.decay = 0, this.thm = new Array(4), this.en = new Array(4), this.tot_ener = Be(4), this.loudness_sq = ke([2, 2]), this.loudness_sq_save = Be(2), this.mld_l = Be(Pe.SBMAX_l), this.mld_s = Be(Pe.SBMAX_s), this.bm_l = Ae(Pe.SBMAX_l), this.bo_l = Ae(Pe.SBMAX_l), this.bm_s = Ae(Pe.SBMAX_s), this.bo_s = Ae(Pe.SBMAX_s), this.npart_l = 0, this.npart_s = 0, this.s3ind = Y([Pe.CBANDS, 2]), this.s3ind_s = Y([Pe.CBANDS, 2]), this.numlines_s = Ae(Pe.CBANDS), this.numlines_l = Ae(Pe.CBANDS), this.rnumlines_l = Be(Pe.CBANDS), this.mld_cb_l = Be(Pe.CBANDS), this.mld_cb_s = Be(Pe.CBANDS), this.numlines_s_num1 = 0, this.numlines_l_num1 = 0, this.pe = Be(4), this.ms_ratio_s_old = 0, this.ms_ratio_l_old = 0, this.ms_ener_ratio_old = 0, this.blocktype_old = Ae(2), this.nsPsy = new function () { + this.last_en_subshort = ke([4, 9]), this.lastAttacks = Ae(4), this.pefirbuf = Be(19), this.longfact = Be(Pe.SBMAX_l), this.shortfact = Be(Pe.SBMAX_s), this.attackthre = 0, this.attackthre_s = 0; }(), this.VBR_seek_table = new function () { this.sum = 0, this.seen = 0, this.want = 0, this.pos = 0, this.size = 0, this.bag = null, this.nVbrNumFrames = 0, this.nBytesWritten = 0, this.TotalFrameSize = 0; - }(), this.ATH = null, this.PSY = null, this.nogap_total = 0, this.nogap_current = 0, this.decode_on_the_fly = !0, this.findReplayGain = !0, this.findPeakSample = !0, this.PeakSample = 0, this.RadioGain = 0, this.AudiophileGain = 0, this.rgdata = null, this.noclipGainChange = 0, this.noclipScale = 0, this.bitrate_stereoMode_Hist = w([16, 5]), this.bitrate_blockType_Hist = w([16, 6]), this.pinfo = null, this.hip = null, this.in_buffer_nsamples = 0, this.in_buffer_0 = null, this.in_buffer_1 = null, this.iteration_loop = null; + }(), this.ATH = null, this.PSY = null, this.nogap_total = 0, this.nogap_current = 0, this.decode_on_the_fly = !0, this.findReplayGain = !0, this.findPeakSample = !0, this.PeakSample = 0, this.RadioGain = 0, this.AudiophileGain = 0, this.rgdata = null, this.noclipGainChange = 0, this.noclipScale = 0, this.bitrate_stereoMode_Hist = Y([16, 5]), this.bitrate_blockType_Hist = Y([16, 6]), this.pinfo = null, this.hip = null, this.in_buffer_nsamples = 0, this.in_buffer_0 = null, this.in_buffer_1 = null, this.iteration_loop = null; for (var a = 0; a < this.en.length; a++) this.en[a] = new i(); - for (var a = 0; a < this.thm.length; a++) this.thm[a] = new i(); - for (var a = 0; a < this.header.length; a++) this.header[a] = new t(); + for (a = 0; a < this.thm.length; a++) this.thm[a] = new i(); + for (a = 0; a < this.header.length; a++) this.header[a] = new t(); } - function X() { - var k = new function () { - var h = de(Ae.BLKSIZE), - p = de(Ae.BLKSIZE_s / 2), - x = [.9238795325112867, .3826834323650898, .9951847266721969, .0980171403295606, .9996988186962042, .02454122852291229, .9999811752826011, .006135884649154475]; - function m(e, t, a) { - var n, - s, + function G() { + var B = new function () { + var u = Be(Pe.BLKSIZE), + p = Be(Pe.BLKSIZE_s / 2), + y = [.9238795325112867, .3826834323650898, .9951847266721969, .0980171403295606, .9996988186962042, .02454122852291229, .9999811752826011, .006135884649154475]; + function b(e, t, a) { + var s, + n, r, i = 0, o = t + (a <<= 1); - n = 4; + s = 4; do { - var _, l, f, c, u, h, b; - for (b = n >> 1, h = (u = (c = n) << 1) + c, n = u << 1, r = (s = t) + b; S = e[s + 0] - e[s + c], w = e[s + 0] + e[s + c], k = e[s + u] - e[s + h], y = e[s + u] + e[s + h], e[s + u] = w - y, e[s + 0] = w + y, e[s + h] = S - k, e[s + c] = S + k, S = e[r + 0] - e[r + c], w = e[r + 0] + e[r + c], k = V.SQRT2 * e[r + h], y = V.SQRT2 * e[r + u], e[r + u] = w - y, e[r + 0] = w + y, e[r + h] = S - k, e[r + c] = S + k, r += n, (s += n) < o;); - for (l = x[i + 0], _ = x[i + 1], f = 1; f < b; f++) { - var p, m; - p = 1 - 2 * _ * _, m = 2 * _ * l, s = t + f, r = t + c - f; + var _, l, f, c, h, u, m; + for (m = s >> 1, u = (h = (c = s) << 1) + c, s = h << 1, r = (n = t) + m; M = e[n + 0] - e[n + c], S = e[n + 0] + e[n + c], B = e[n + h] - e[n + u], R = e[n + h] + e[n + u], e[n + h] = S - R, e[n + 0] = S + R, e[n + u] = M - B, e[n + c] = M + B, M = e[r + 0] - e[r + c], S = e[r + 0] + e[r + c], B = ee.SQRT2 * e[r + u], R = ee.SQRT2 * e[r + h], e[r + h] = S - R, e[r + 0] = S + R, e[r + u] = M - B, e[r + c] = M + B, r += s, (n += s) < o;); + for (l = y[i + 0], _ = y[i + 1], f = 1; f < m; f++) { + var p, b; + p = 1 - 2 * _ * _, b = 2 * _ * l, n = t + f, r = t + c - f; do { - var v, d, g, w, S, M, y, A, k, R; - d = m * e[s + c] - p * e[r + c], v = p * e[s + c] + m * e[r + c], S = e[s + 0] - v, w = e[s + 0] + v, M = e[r + 0] - d, g = e[r + 0] + d, d = m * e[s + h] - p * e[r + h], v = p * e[s + h] + m * e[r + h], k = e[s + u] - v, y = e[s + u] + v, R = e[r + u] - d, A = e[r + u] + d, d = _ * y - l * R, v = l * y + _ * R, e[s + u] = w - v, e[s + 0] = w + v, e[r + h] = M - d, e[r + c] = M + d, d = l * A - _ * k, v = _ * A + l * k, e[r + u] = g - v, e[r + 0] = g + v, e[s + h] = S - d, e[s + c] = S + d, r += n, s += n; - } while (s < o); - l = (p = l) * x[i + 0] - _ * x[i + 1], _ = p * x[i + 1] + _ * x[i + 0]; + var v, d, g, S, M, w, R, A, B, k; + d = b * e[n + c] - p * e[r + c], v = p * e[n + c] + b * e[r + c], M = e[n + 0] - v, S = e[n + 0] + v, w = e[r + 0] - d, g = e[r + 0] + d, d = b * e[n + u] - p * e[r + u], v = p * e[n + u] + b * e[r + u], B = e[n + h] - v, R = e[n + h] + v, k = e[r + h] - d, A = e[r + h] + d, d = _ * R - l * k, v = l * R + _ * k, e[n + h] = S - v, e[n + 0] = S + v, e[r + u] = w - d, e[r + c] = w + d, d = l * A - _ * B, v = _ * A + l * B, e[r + h] = g - v, e[r + 0] = g + v, e[n + u] = M - d, e[n + c] = M + d, r += s, n += s; + } while (n < o); + l = (p = l) * y[i + 0] - _ * y[i + 1], _ = p * y[i + 1] + _ * y[i + 0]; } i += 2; - } while (n < a); + } while (s < a); } var v = [0, 128, 64, 192, 32, 160, 96, 224, 16, 144, 80, 208, 48, 176, 112, 240, 8, 136, 72, 200, 40, 168, 104, 232, 24, 152, 88, 216, 56, 184, 120, 248, 4, 132, 68, 196, 36, 164, 100, 228, 20, 148, 84, 212, 52, 180, 116, 244, 12, 140, 76, 204, 44, 172, 108, 236, 28, 156, 92, 220, 60, 188, 124, 252, 2, 130, 66, 194, 34, 162, 98, 226, 18, 146, 82, 210, 50, 178, 114, 242, 10, 138, 74, 202, 42, 170, 106, 234, 26, 154, 90, 218, 58, 186, 122, 250, 6, 134, 70, 198, 38, 166, 102, 230, 22, 150, 86, 214, 54, 182, 118, 246, 14, 142, 78, 206, 46, 174, 110, 238, 30, 158, 94, 222, 62, 190, 126, 254]; - this.fft_short = function (e, t, a, n, s) { + this.fft_short = function (e, t, a, s, n) { for (var r = 0; r < 3; r++) { - var i = Ae.BLKSIZE_s / 2, + var i = Pe.BLKSIZE_s / 2, o = 65535 & 192 * (r + 1), - _ = Ae.BLKSIZE_s / 8 - 1; + _ = Pe.BLKSIZE_s / 8 - 1; do { var l, f, c, - u, h, - b = 255 & v[_ << 2]; - l = p[b] * n[a][s + b + o], h = p[127 - b] * n[a][s + b + o + 128], f = l - h, l += h, c = p[b + 64] * n[a][s + b + o + 64], h = p[63 - b] * n[a][s + b + o + 192], u = c - h, c += h, i -= 4, t[r][i + 0] = l + c, t[r][i + 2] = l - c, t[r][i + 1] = f + u, t[r][i + 3] = f - u, l = p[b + 1] * n[a][s + b + o + 1], h = p[126 - b] * n[a][s + b + o + 129], f = l - h, l += h, c = p[b + 65] * n[a][s + b + o + 65], h = p[62 - b] * n[a][s + b + o + 193], u = c - h, c += h, t[r][i + Ae.BLKSIZE_s / 2 + 0] = l + c, t[r][i + Ae.BLKSIZE_s / 2 + 2] = l - c, t[r][i + Ae.BLKSIZE_s / 2 + 1] = f + u, t[r][i + Ae.BLKSIZE_s / 2 + 3] = f - u; + u, + m = 255 & v[_ << 2]; + f = (l = p[m] * s[a][n + m + o]) - (u = p[127 - m] * s[a][n + m + o + 128]), l += u, h = (c = p[m + 64] * s[a][n + m + o + 64]) - (u = p[63 - m] * s[a][n + m + o + 192]), c += u, i -= 4, t[r][i + 0] = l + c, t[r][i + 2] = l - c, t[r][i + 1] = f + h, t[r][i + 3] = f - h, f = (l = p[m + 1] * s[a][n + m + o + 1]) - (u = p[126 - m] * s[a][n + m + o + 129]), l += u, h = (c = p[m + 65] * s[a][n + m + o + 65]) - (u = p[62 - m] * s[a][n + m + o + 193]), c += u, t[r][i + Pe.BLKSIZE_s / 2 + 0] = l + c, t[r][i + Pe.BLKSIZE_s / 2 + 2] = l - c, t[r][i + Pe.BLKSIZE_s / 2 + 1] = f + h, t[r][i + Pe.BLKSIZE_s / 2 + 3] = f - h; } while (0 <= --_); - m(t[r], i, Ae.BLKSIZE_s / 2); + b(t[r], i, Pe.BLKSIZE_s / 2); } - }, this.fft_long = function (e, t, a, n, s) { - var r = Ae.BLKSIZE / 8 - 1, - i = Ae.BLKSIZE / 2; + }, this.fft_long = function (e, t, a, s, n) { + var r = Pe.BLKSIZE / 8 - 1, + i = Pe.BLKSIZE / 2; do { var o, _, l, f, c, - u = 255 & v[r]; - o = h[u] * n[a][s + u], c = h[u + 512] * n[a][s + u + 512], _ = o - c, o += c, l = h[u + 256] * n[a][s + u + 256], c = h[u + 768] * n[a][s + u + 768], f = l - c, l += c, t[0 + (i -= 4)] = o + l, t[i + 2] = o - l, t[i + 1] = _ + f, t[i + 3] = _ - f, o = h[u + 1] * n[a][s + u + 1], c = h[u + 513] * n[a][s + u + 513], _ = o - c, o += c, l = h[u + 257] * n[a][s + u + 257], c = h[u + 769] * n[a][s + u + 769], f = l - c, l += c, t[i + Ae.BLKSIZE / 2 + 0] = o + l, t[i + Ae.BLKSIZE / 2 + 2] = o - l, t[i + Ae.BLKSIZE / 2 + 1] = _ + f, t[i + Ae.BLKSIZE / 2 + 3] = _ - f; + h = 255 & v[r]; + _ = (o = u[h] * s[a][n + h]) - (c = u[h + 512] * s[a][n + h + 512]), o += c, f = (l = u[h + 256] * s[a][n + h + 256]) - (c = u[h + 768] * s[a][n + h + 768]), l += c, t[0 + (i -= 4)] = o + l, t[i + 2] = o - l, t[i + 1] = _ + f, t[i + 3] = _ - f, _ = (o = u[h + 1] * s[a][n + h + 1]) - (c = u[h + 513] * s[a][n + h + 513]), o += c, f = (l = u[h + 257] * s[a][n + h + 257]) - (c = u[h + 769] * s[a][n + h + 769]), l += c, t[i + Pe.BLKSIZE / 2 + 0] = o + l, t[i + Pe.BLKSIZE / 2 + 2] = o - l, t[i + Pe.BLKSIZE / 2 + 1] = _ + f, t[i + Pe.BLKSIZE / 2 + 3] = _ - f; } while (0 <= --r); - m(t, i, Ae.BLKSIZE / 2); + b(t, i, Pe.BLKSIZE / 2); }, this.init_fft = function (e) { - for (var t = 0; t < Ae.BLKSIZE; t++) h[t] = .42 - .5 * Math.cos(2 * Math.PI * (t + .5) / Ae.BLKSIZE) + .08 * Math.cos(4 * Math.PI * (t + .5) / Ae.BLKSIZE); - for (var t = 0; t < Ae.BLKSIZE_s / 2; t++) p[t] = .5 * (1 - Math.cos(2 * Math.PI * (t + .5) / Ae.BLKSIZE_s)); + for (var t = 0; t < Pe.BLKSIZE; t++) u[t] = .42 - .5 * Math.cos(2 * Math.PI * (t + .5) / Pe.BLKSIZE) + .08 * Math.cos(4 * Math.PI * (t + .5) / Pe.BLKSIZE); + for (t = 0; t < Pe.BLKSIZE_s / 2; t++) p[t] = .5 * (1 - Math.cos(2 * Math.PI * (t + .5) / Pe.BLKSIZE_s)); }; }(), - R = 2.302585092994046, + k = 2.302585092994046, + _e = 2, + le = 16, d = 2, g = 16, E = .34, - v = 1 / 217621504 / (Ae.BLKSIZE / 2), - w = .2302585093; - function se(e, t, a, n, s, r, i, o, _, l, f) { + n = 1 / 217621504 / (Pe.BLKSIZE / 2), + fe = .3, + ce = 21, + S = .2302585093; + function M(e) { + return e; + } + function N(e, t) { + for (var a = 0, s = 0; s < Pe.BLKSIZE / 2; ++s) a += e[s] * t.ATH.eql_w[s]; + return a *= n; + } + function he(e, t, a, s, n, r, i, o, _, l, f) { var c = e.internal_flags; - _ < 2 ? (k.fft_long(c, n[s], _, l, f), k.fft_short(c, r[i], _, l, f)) : 2 == _ && me(), t[0] = n[s + 0][0], t[0] *= t[0]; - for (var u = Ae.BLKSIZE / 2 - 1; 0 <= u; --u) { - var h = n[s + 0][Ae.BLKSIZE / 2 - u], - b = n[s + 0][Ae.BLKSIZE / 2 + u]; - t[Ae.BLKSIZE / 2 - u] = .5 * (h * h + b * b); - } - for (var p = 2; 0 <= p; --p) { - a[p][0] = r[i + 0][p][0], a[p][0] *= a[p][0]; - for (var u = Ae.BLKSIZE_s / 2 - 1; 0 <= u; --u) { - var h = r[i + 0][p][Ae.BLKSIZE_s / 2 - u], - b = r[i + 0][p][Ae.BLKSIZE_s / 2 + u]; - a[p][Ae.BLKSIZE_s / 2 - u] = .5 * (h * h + b * b); + if (_ < 2) B.fft_long(c, s[n], _, l, f), B.fft_short(c, r[i], _, l, f);else if (2 == _) { + for (var h = Pe.BLKSIZE - 1; 0 <= h; --h) { + var u = s[n + 0][h], + m = s[n + 1][h]; + s[n + 0][h] = (u + m) * ee.SQRT2 * .5, s[n + 1][h] = (u - m) * ee.SQRT2 * .5; + } + for (var p = 2; 0 <= p; --p) for (h = Pe.BLKSIZE_s - 1; 0 <= h; --h) { + u = r[i + 0][p][h], m = r[i + 1][p][h]; + r[i + 0][p][h] = (u + m) * ee.SQRT2 * .5, r[i + 1][p][h] = (u - m) * ee.SQRT2 * .5; } } - for (var m = 0, u = 11; u < Ae.HBLKSIZE; u++) m += t[u]; - c.tot_ener[_] = m, e.analysis && me(), 2 == e.athaa_loudapprox && _ < 2 && (c.loudness_sq[o][_] = c.loudness_sq_save[_], c.loudness_sq_save[_] = function (e, t) { - for (var a = 0, n = 0; n < Ae.BLKSIZE / 2; ++n) a += e[n] * t.ATH.eql_w[n]; - return a *= v; - }(t, c)); + t[0] = M(s[n + 0][0]), t[0] *= t[0]; + for (h = Pe.BLKSIZE / 2 - 1; 0 <= h; --h) { + var b = s[n + 0][Pe.BLKSIZE / 2 - h], + v = s[n + 0][Pe.BLKSIZE / 2 + h]; + t[Pe.BLKSIZE / 2 - h] = M(.5 * (b * b + v * v)); + } + for (p = 2; 0 <= p; --p) { + a[p][0] = r[i + 0][p][0], a[p][0] *= a[p][0]; + for (h = Pe.BLKSIZE_s / 2 - 1; 0 <= h; --h) { + b = r[i + 0][p][Pe.BLKSIZE_s / 2 - h], v = r[i + 0][p][Pe.BLKSIZE_s / 2 + h]; + a[p][Pe.BLKSIZE_s / 2 - h] = M(.5 * (b * b + v * v)); + } + } + var d = 0; + for (h = 11; h < Pe.HBLKSIZE; h++) d += t[h]; + if (c.tot_ener[_] = d, e.analysis) { + for (h = 0; h < Pe.HBLKSIZE; h++) c.pinfo.energy[o][_][h] = c.pinfo.energy_save[_][h], c.pinfo.energy_save[_][h] = t[h]; + c.pinfo.pe[o][_] = c.pe[_]; + } + 2 == e.athaa_loudapprox && _ < 2 && (c.loudness_sq[o][_] = c.loudness_sq_save[_], c.loudness_sq_save[_] = N(t, c)); } - var x, - B, + var y, T, - C = 8, - I = 23, - L = 15, - re = [1, .79433, .63096, .63096, .63096, .63096, .63096, .25119, .11749], - f = [3.3246 * 3.3246, 3.23837 * 3.23837, 9.9500500969, 9.0247369744, 8.1854926609, 7.0440875649, 2.46209 * 2.46209, 2.284 * 2.284, 4.4892710641, 1.96552 * 1.96552, 1.82335 * 1.82335, 1.69146 * 1.69146, 2.4621061921, 2.1508568964, 1.37074 * 1.37074, 1.31036 * 1.31036, 1.5691069696, 1.4555939904, 1.16203 * 1.16203, 1.2715945225, 1.09428 * 1.09428, 1.0659 * 1.0659, 1.0779838276, 1.0382591025, 1], + x, + P = 8, + L = 23, + I = 15, + ue = [1, .79433, .63096, .63096, .63096, .63096, .63096, .25119, .11749]; + var f = [3.3246 * 3.3246, 3.23837 * 3.23837, 9.9500500969, 9.0247369744, 8.1854926609, 7.0440875649, 2.46209 * 2.46209, 2.284 * 2.284, 4.4892710641, 1.96552 * 1.96552, 1.82335 * 1.82335, 1.69146 * 1.69146, 2.4621061921, 2.1508568964, 1.37074 * 1.37074, 1.31036 * 1.31036, 1.5691069696, 1.4555939904, 1.16203 * 1.16203, 1.2715945225, 1.09428 * 1.09428, 1.0659 * 1.0659, 1.0779838276, 1.0382591025, 1], c = [1.7782755904, 1.35879 * 1.35879, 1.38454 * 1.38454, 1.39497 * 1.39497, 1.40548 * 1.40548, 1.3537 * 1.3537, 1.6999465924, 1.22321 * 1.22321, 1.3169398564, 1], - u = [5.5396212496, 2.29259 * 2.29259, 4.9868695969, 2.12675 * 2.12675, 2.02545 * 2.02545, 1.87894 * 1.87894, 1.74303 * 1.74303, 1.61695 * 1.61695, 2.2499700001, 1.39148 * 1.39148, 1.29083 * 1.29083, 1.19746 * 1.19746, 1.2339655056, 1.0779838276]; - function ie(e, t, a, n, s, r) { + h = [5.5396212496, 2.29259 * 2.29259, 4.9868695969, 2.12675 * 2.12675, 2.02545 * 2.02545, 1.87894 * 1.87894, 1.74303 * 1.74303, 1.61695 * 1.61695, 2.2499700001, 1.39148 * 1.39148, 1.29083 * 1.29083, 1.19746 * 1.19746, 1.2339655056, 1.0779838276]; + function me(e, t, a, s, n, r) { var i; if (e < t) { - if (!(t < e * B)) return e + t; + if (!(t < e * T)) return e + t; i = t / e; } else { - if (t * B <= e) return e + t; + if (t * T <= e) return e + t; i = e / t; } - if (e += t, n + 3 <= 6) { - if (x <= i) return e; - var o = 0 | V.FAST_LOG10_X(i, 16); + if (e += t, s + 3 <= 6) { + if (y <= i) return e; + var o = 0 | ee.FAST_LOG10_X(i, 16); return e * c[o]; } - var _, - l, - o = 0 | V.FAST_LOG10_X(i, 16); - return t = 0 != r ? s.ATH.cb_s[a] * s.ATH.adjust : s.ATH.cb_l[a] * s.ATH.adjust, e < T * t ? t < e ? (_ = 1, o <= 13 && (_ = u[o]), l = V.FAST_LOG10_X(e / t, 10 / 15), e * ((f[o] - _) * l + _)) : 13 < o ? e : e * u[o] : e * f[o]; + var _, l; + o = 0 | ee.FAST_LOG10_X(i, 16); + return t = 0 != r ? n.ATH.cb_s[a] * n.ATH.adjust : n.ATH.cb_l[a] * n.ATH.adjust, e < x * t ? t < e ? (_ = 1, o <= 13 && (_ = h[o]), l = ee.FAST_LOG10_X(e / t, 10 / 15), e * ((f[o] - _) * l + _)) : 13 < o ? e : e * h[o] : e * f[o]; } - function oe(e, t, a, n, s) { + var r = [1.7782755904, 1.35879 * 1.35879, 1.38454 * 1.38454, 1.39497 * 1.39497, 1.40548 * 1.40548, 1.3537 * 1.3537, 1.6999465924, 1.22321 * 1.22321, 1.3169398564, 1]; + function A(e, t, a) { + var s; + if (e < 0 && (e = 0), t < 0 && (t = 0), e <= 0) return t; + if (t <= 0) return e; + if (s = e < t ? t / e : e / t, -2 <= a && a <= 2) { + if (y <= s) return e + t; + var n = 0 | ee.FAST_LOG10_X(s, 16); + return (e + t) * r[n]; + } + return s < T ? e + t : (e < t && (e = t), e); + } + function pe(e, t, a, s, n) { var r, i, o = 0, _ = 0; - for (r = i = 0; r < Ae.SBMAX_s; ++i, ++r) { + for (r = i = 0; r < Pe.SBMAX_s; ++i, ++r) { for (var l = e.bo_s[r], f = e.npart_s, c = l < f ? l : f; i < c;) o += t[i], _ += a[i], i++; - if (e.en[n].s[r][s] = o, e.thm[n].s[r][s] = _, f <= i) { + if (e.en[s].s[r][n] = o, e.thm[s].s[r][n] = _, f <= i) { ++r; break; } - var u = e.PSY.bo_s_weight[r], - h = 1 - u; - o = u * t[i], _ = u * a[i], e.en[n].s[r][s] += o, e.thm[n].s[r][s] += _, o = h * t[i], _ = h * a[i]; + var h = e.PSY.bo_s_weight[r], + u = 1 - h; + o = h * t[i], _ = h * a[i], e.en[s].s[r][n] += o, e.thm[s].s[r][n] += _, o = u * t[i], _ = u * a[i]; } - for (; r < Ae.SBMAX_s; ++r) e.en[n].s[r][s] = 0, e.thm[n].s[r][s] = 0; + for (; r < Pe.SBMAX_s; ++r) e.en[s].s[r][n] = 0, e.thm[s].s[r][n] = 0; } - function _e(e, t, a, n) { - var s, + function be(e, t, a, s) { + var n, r, i = 0, o = 0; - for (s = r = 0; s < Ae.SBMAX_l; ++r, ++s) { - for (var _ = e.bo_l[s], l = e.npart_l, f = _ < l ? _ : l; r < f;) i += t[r], o += a[r], r++; - if (e.en[n].l[s] = i, e.thm[n].l[s] = o, l <= r) { - ++s; + for (n = r = 0; n < Pe.SBMAX_l; ++r, ++n) { + for (var _ = e.bo_l[n], l = e.npart_l, f = _ < l ? _ : l; r < f;) i += t[r], o += a[r], r++; + if (e.en[s].l[n] = i, e.thm[s].l[n] = o, l <= r) { + ++n; break; } - var c = e.PSY.bo_l_weight[s], - u = 1 - c; - i = c * t[r], o = c * a[r], e.en[n].l[s] += i, e.thm[n].l[s] += o, i = u * t[r], o = u * a[r]; + var c = e.PSY.bo_l_weight[n], + h = 1 - c; + i = c * t[r], o = c * a[r], e.en[s].l[n] += i, e.thm[s].l[n] += o, i = h * t[r], o = h * a[r]; } - for (; s < Ae.SBMAX_l; ++s) e.en[n].l[s] = 0, e.thm[n].l[s] = 0; + for (; n < Pe.SBMAX_l; ++n) e.en[s].l[n] = 0, e.thm[s].l[n] = 0; } - function le(e, t, a, n, s, r) { + function ve(e, t, a, s, n, r) { var i, o, _ = e.internal_flags; for (o = i = 0; o < _.npart_s; ++o) { - for (var l = 0, f = 0, c = _.numlines_s[o], u = 0; u < c; ++u, ++i) { - var h = t[r][i]; - l += h, f < h && (f = h); + for (var l = 0, f = 0, c = _.numlines_s[o], h = 0; h < c; ++h, ++i) { + var u = t[r][i]; + l += u, f < u && (f = u); } a[o] = l; } for (i = o = 0; o < _.npart_s; o++) { - var b = _.s3ind_s[o][0], - p = _.s3_ss[i++] * a[b]; - for (++b; b <= _.s3ind_s[o][1];) p += _.s3_ss[i] * a[b], ++i, ++b; - var m = d * _.nb_s1[s][o]; - if (n[o] = Math.min(p, m), _.blocktype_old[1 & s] == Ae.SHORT_TYPE) { - var m = g * _.nb_s2[s][o], - v = n[o]; - n[o] = Math.min(m, v); + var m = _.s3ind_s[o][0], + p = _.s3_ss[i++] * a[m]; + for (++m; m <= _.s3ind_s[o][1];) p += _.s3_ss[i] * a[m], ++i, ++m; + var b = d * _.nb_s1[n][o]; + if (s[o] = Math.min(p, b), _.blocktype_old[1 & n] == Pe.SHORT_TYPE) { + b = g * _.nb_s2[n][o]; + var v = s[o]; + s[o] = Math.min(b, v); } - _.nb_s2[s][o] = _.nb_s1[s][o], _.nb_s1[s][o] = p; + _.nb_s2[n][o] = _.nb_s1[n][o], _.nb_s1[n][o] = p; } - for (; o <= Ae.CBANDS; ++o) a[o] = 0, n[o] = 0; + for (; o <= Pe.CBANDS; ++o) a[o] = 0, s[o] = 0; } - function fe(e, t, a) { + function de(e, t, a) { return 1 <= a ? e : a <= 0 ? t : 0 < t ? Math.pow(e / t, a) * t : 0; } var _ = [11.8, 13.6, 17.2, 32, 46.5, 51.3, 57.5, 67.1, 71.5, 84.6, 97.6, 130]; - function ce(e, t) { - for (var a = 309.07, n = 0; n < Ae.SBMAX_s - 1; n++) for (var s = 0; s < 3; s++) { - var r = e.thm.s[n][s]; + function ge(e, t) { + for (var a = 309.07, s = 0; s < Pe.SBMAX_s - 1; s++) for (var n = 0; n < 3; n++) { + var r = e.thm.s[s][n]; if (0 < r) { var i = r * t, - o = e.en.s[n][s]; - i < o && (a += 1e10 * i < o ? _[n] * (10 * R) : _[n] * V.FAST_LOG10(o / i)); + o = e.en.s[s][n]; + i < o && (a += 1e10 * i < o ? _[s] * (10 * k) : _[s] * ee.FAST_LOG10(o / i)); } } return a; } var o = [6.8, 5.8, 5.8, 6.4, 6.5, 9.9, 12.1, 14.4, 15, 18.9, 21.6, 26.9, 34.2, 40.2, 46.8, 56.5, 60.7, 73.9, 85.7, 93.4, 126.1]; - function ue(e, t) { - for (var a = 281.0575, n = 0; n < Ae.SBMAX_l - 1; n++) { - var s = e.thm.l[n]; - if (0 < s) { - var r = s * t, - i = e.en.l[n]; - r < i && (a += 1e10 * r < i ? o[n] * (10 * R) : o[n] * V.FAST_LOG10(i / r)); + function Se(e, t) { + for (var a = 281.0575, s = 0; s < Pe.SBMAX_l - 1; s++) { + var n = e.thm.l[s]; + if (0 < n) { + var r = n * t, + i = e.en.l[s]; + r < i && (a += 1e10 * r < i ? o[s] * (10 * k) : o[s] * ee.FAST_LOG10(i / r)); } } return a; } - function he(e, t, a, n, s) { + function Me(e, t, a, s, n) { var r, i; for (r = i = 0; r < e.npart_l; ++r) { var o, @@ -14765,495 +14668,894 @@ src: recorder-core.js,engine/mp3.js,engine/mp3-engine.js var f = t[i]; _ += f, l < f && (l = f); } - a[r] = _, n[r] = l, s[r] = _ * e.rnumlines_l[r]; + a[r] = _, s[r] = l, n[r] = _ * e.rnumlines_l[r]; } } - function be(e, t, a, n) { - var s = re.length - 1, + function we(e, t, a, s) { + var n = ue.length - 1, r = 0, i = a[r] + a[r + 1]; - if (0 < i) { - var o = t[r]; - o < t[r + 1] && (o = t[r + 1]); - var _ = 0 | (i = 20 * (2 * o - i) / (i * (e.numlines_l[r] + e.numlines_l[r + 1] - 1))); - s < _ && (_ = s), n[r] = _; - } else n[r] = 0; - for (r = 1; r < e.npart_l - 1; r++) if (0 < (i = a[r - 1] + a[r] + a[r + 1])) { - var o = t[r - 1]; - o < t[r] && (o = t[r]), o < t[r + 1] && (o = t[r + 1]); - var _ = 0 | (i = 20 * (3 * o - i) / (i * (e.numlines_l[r - 1] + e.numlines_l[r] + e.numlines_l[r + 1] - 1))); - s < _ && (_ = s), n[r] = _; - } else n[r] = 0; - if (0 < (i = a[r - 1] + a[r])) { - var o = t[r - 1]; - o < t[r] && (o = t[r]); - var _ = 0 | (i = 20 * (2 * o - i) / (i * (e.numlines_l[r - 1] + e.numlines_l[r] - 1))); - s < _ && (_ = s), n[r] = _; - } else n[r] = 0; + 0 < i ? ((o = t[r]) < t[r + 1] && (o = t[r + 1]), n < (_ = 0 | (i = 20 * (2 * o - i) / (i * (e.numlines_l[r] + e.numlines_l[r + 1] - 1)))) && (_ = n), s[r] = _) : s[r] = 0; + for (r = 1; r < e.npart_l - 1; r++) { + var o, _; + if (0 < (i = a[r - 1] + a[r] + a[r + 1])) (o = t[r - 1]) < t[r] && (o = t[r]), o < t[r + 1] && (o = t[r + 1]), n < (_ = 0 | (i = 20 * (3 * o - i) / (i * (e.numlines_l[r - 1] + e.numlines_l[r] + e.numlines_l[r + 1] - 1)))) && (_ = n), s[r] = _;else s[r] = 0; + } + 0 < (i = a[r - 1] + a[r]) ? ((o = t[r - 1]) < t[r] && (o = t[r]), n < (_ = 0 | (i = 20 * (2 * o - i) / (i * (e.numlines_l[r - 1] + e.numlines_l[r] - 1)))) && (_ = n), s[r] = _) : s[r] = 0; } - var pe = [-1.730326e-17, -.01703172, -1.349528e-17, .0418072, -6.73278e-17, -.0876324, -3.0835e-17, .1863476, -1.104424e-16, -.627638]; - function P(e) { + var Re = [-1.730326e-17, -.01703172, -1.349528e-17, .0418072, -6.73278e-17, -.0876324, -3.0835e-17, .1863476, -1.104424e-16, -.627638]; + function D(e, t, a, s, n, r, i, o) { + var _ = e.internal_flags; + if (s < 2) B.fft_long(_, i[o], s, t, a);else if (2 == s) for (var l = Pe.BLKSIZE - 1; 0 <= l; --l) { + var f = i[o + 0][l], + c = i[o + 1][l]; + i[o + 0][l] = (f + c) * ee.SQRT2 * .5, i[o + 1][l] = (f - c) * ee.SQRT2 * .5; + } + r[0] = M(i[o + 0][0]), r[0] *= r[0]; + for (l = Pe.BLKSIZE / 2 - 1; 0 <= l; --l) { + var h = i[o + 0][Pe.BLKSIZE / 2 - l], + u = i[o + 0][Pe.BLKSIZE / 2 + l]; + r[Pe.BLKSIZE / 2 - l] = M(.5 * (h * h + u * u)); + } + var m = 0; + for (l = 11; l < Pe.HBLKSIZE; l++) m += r[l]; + if (_.tot_ener[s] = m, e.analysis) { + for (l = 0; l < Pe.HBLKSIZE; l++) _.pinfo.energy[n][s][l] = _.pinfo.energy_save[s][l], _.pinfo.energy_save[s][l] = r[l]; + _.pinfo.pe[n][s] = _.pe[s]; + } + } + function Y(e, t, a, s, n, r, i, o) { + var _ = e.internal_flags; + if (0 == n && s < 2 && B.fft_short(_, i[o], s, t, a), 2 == s) for (var l = Pe.BLKSIZE_s - 1; 0 <= l; --l) { + var f = i[o + 0][n][l], + c = i[o + 1][n][l]; + i[o + 0][n][l] = (f + c) * ee.SQRT2 * .5, i[o + 1][n][l] = (f - c) * ee.SQRT2 * .5; + } + r[n][0] = i[o + 0][n][0], r[n][0] *= r[n][0]; + for (l = Pe.BLKSIZE_s / 2 - 1; 0 <= l; --l) { + var h = i[o + 0][n][Pe.BLKSIZE_s / 2 - l], + u = i[o + 0][n][Pe.BLKSIZE_s / 2 + l]; + r[n][Pe.BLKSIZE_s / 2 - l] = M(.5 * (h * h + u * u)); + } + } + this.L3psycho_anal_ns = function (e, t, a, s, n, r, i, o, _, l) { + var f, + c, + h, + u, + m, + p, + b, + v, + d, + g, + S = e.internal_flags, + M = ke([2, Pe.BLKSIZE]), + w = ke([2, 3, Pe.BLKSIZE_s]), + R = Be(Pe.CBANDS + 1), + A = Be(Pe.CBANDS + 1), + B = Be(Pe.CBANDS + 2), + k = Ae(2), + y = Ae(2), + T = ke([2, 576]), + x = Ae(Pe.CBANDS + 2), + E = Ae(Pe.CBANDS + 2); + for (ye.fill(E, 0), f = S.channels_out, e.mode == Ee.JOINT_STEREO && (f = 4), d = e.VBR == xe.vbr_off ? 0 == S.ResvMax ? 0 : S.ResvSize / S.ResvMax * .5 : e.VBR == xe.vbr_rh || e.VBR == xe.vbr_mtrh || e.VBR == xe.vbr_mt ? .6 : 1, c = 0; c < S.channels_out; c++) { + var P = t[c], + L = a + 576 - 350 - ce + 192; + for (u = 0; u < 576; u++) { + var I, H; + for (I = P[L + u + 10], m = H = 0; m < (ce - 1) / 2 - 1; m += 2) I += Re[m] * (P[L + u + m] + P[L + u + ce - m]), H += Re[m + 1] * (P[L + u + m + 1] + P[L + u + ce - m - 1]); + T[c][u] = I + H; + } + n[s][c].en.assign(S.en[c]), n[s][c].thm.assign(S.thm[c]), 2 < f && (r[s][c].en.assign(S.en[c + 2]), r[s][c].thm.assign(S.thm[c + 2])); + } + for (c = 0; c < f; c++) { + var C, + V = Be(12), + O = [0, 0, 0, 0], + N = Be(12), + D = 1, + Y = Be(Pe.CBANDS), + X = Be(Pe.CBANDS), + q = [0, 0, 0, 0], + F = Be(Pe.HBLKSIZE), + j = ke([3, Pe.HBLKSIZE_s]); + for (u = 0; u < 3; u++) V[u] = S.nsPsy.last_en_subshort[c][u + 6], N[u] = V[u] / S.nsPsy.last_en_subshort[c][u + 4], O[0] += V[u]; + if (2 == c) for (u = 0; u < 576; u++) { + var z, Z; + z = T[0][u], Z = T[1][u], T[0][u] = z + Z, T[1][u] = z - Z; + } + var K = T[1 & c], + G = 0; + for (u = 0; u < 9; u++) { + for (var U = G + 64, Q = 1; G < U; G++) Q < Math.abs(K[G]) && (Q = Math.abs(K[G])); + S.nsPsy.last_en_subshort[c][u] = V[u + 3] = Q, O[1 + u / 3] += Q, Q > V[u + 3 - 2] ? Q /= V[u + 3 - 2] : Q = V[u + 3 - 2] > 10 * Q ? V[u + 3 - 2] / (10 * Q) : 0, N[u + 3] = Q; + } + if (e.analysis) { + var W = N[0]; + for (u = 1; u < 12; u++) W < N[u] && (W = N[u]); + S.pinfo.ers[s][c] = S.pinfo.ers_save[c], S.pinfo.ers_save[c] = W; + } + for (C = 3 == c ? S.nsPsy.attackthre_s : S.nsPsy.attackthre, u = 0; u < 12; u++) 0 == q[u / 3] && N[u] > C && (q[u / 3] = u % 3 + 1); + for (u = 1; u < 4; u++) { + (O[u - 1] > O[u] ? O[u - 1] / O[u] : O[u] / O[u - 1]) < 1.7 && (q[u] = 0, 1 == u && (q[0] = 0)); + } + for (0 != q[0] && 0 != S.nsPsy.lastAttacks[c] && (q[0] = 0), 3 != S.nsPsy.lastAttacks[c] && q[0] + q[1] + q[2] + q[3] == 0 || ((D = 0) != q[1] && 0 != q[0] && (q[1] = 0), 0 != q[2] && 0 != q[1] && (q[2] = 0), 0 != q[3] && 0 != q[2] && (q[3] = 0)), c < 2 ? y[c] = D : 0 == D && (y[0] = y[1] = 0), _[c] = S.tot_ener[c], he(e, F, j, M, 1 & c, w, 1 & c, s, c, t, a), Me(S, F, R, Y, X), we(S, Y, X, x), v = 0; v < 3; v++) { + var J, $; + for (ve(e, j, A, B, c, v), pe(S, A, B, c, v), b = 0; b < Pe.SBMAX_s; b++) { + if ($ = S.thm[c].s[b][v], $ *= .8, 2 <= q[v] || 1 == q[v + 1]) { + var ee = 0 != v ? v - 1 : 2; + Q = de(S.thm[c].s[b][ee], $, .6 * d); + $ = Math.min($, Q); + } + if (1 == q[v]) { + ee = 0 != v ? v - 1 : 2, Q = de(S.thm[c].s[b][ee], $, fe * d); + $ = Math.min($, Q); + } else if (0 != v && 3 == q[v - 1] || 0 == v && 3 == S.nsPsy.lastAttacks[c]) { + ee = 2 != v ? v + 1 : 0, Q = de(S.thm[c].s[b][ee], $, fe * d); + $ = Math.min($, Q); + } + J = V[3 * v + 3] + V[3 * v + 4] + V[3 * v + 5], 6 * V[3 * v + 5] < J && ($ *= .5, 6 * V[3 * v + 4] < J && ($ *= .5)), S.thm[c].s[b][v] = $; + } + } + for (S.nsPsy.lastAttacks[c] = q[2], h = p = 0; h < S.npart_l; h++) { + for (var te = S.s3ind[h][0], ae = R[te] * ue[x[te]], se = S.s3_ll[p++] * ae; ++te <= S.s3ind[h][1];) ae = R[te] * ue[x[te]], se = me(se, S.s3_ll[p++] * ae, te, te - h, S, 0); + se *= .158489319246111, S.blocktype_old[1 & c] == Pe.SHORT_TYPE ? B[h] = se : B[h] = de(Math.min(se, Math.min(_e * S.nb_1[c][h], le * S.nb_2[c][h])), se, d), S.nb_2[c][h] = S.nb_1[c][h], S.nb_1[c][h] = se; + } + for (; h <= Pe.CBANDS; ++h) R[h] = 0, B[h] = 0; + be(S, R, B, c); + } + (e.mode != Ee.STEREO && e.mode != Ee.JOINT_STEREO || 0 < e.interChRatio && function (e, t) { + var a = e.internal_flags; + if (1 < a.channels_out) { + for (var s = 0; s < Pe.SBMAX_l; s++) { + var n = a.thm[0].l[s], + r = a.thm[1].l[s]; + a.thm[0].l[s] += r * t, a.thm[1].l[s] += n * t; + } + for (s = 0; s < Pe.SBMAX_s; s++) for (var i = 0; i < 3; i++) n = a.thm[0].s[s][i], r = a.thm[1].s[s][i], a.thm[0].s[s][i] += r * t, a.thm[1].s[s][i] += n * t; + } + }(e, e.interChRatio), e.mode == Ee.JOINT_STEREO) && (!function (e) { + for (var t = 0; t < Pe.SBMAX_l; t++) if (!(e.thm[0].l[t] > 1.58 * e.thm[1].l[t] || e.thm[1].l[t] > 1.58 * e.thm[0].l[t])) { + var a = e.mld_l[t] * e.en[3].l[t], + s = Math.max(e.thm[2].l[t], Math.min(e.thm[3].l[t], a)); + a = e.mld_l[t] * e.en[2].l[t]; + var n = Math.max(e.thm[3].l[t], Math.min(e.thm[2].l[t], a)); + e.thm[2].l[t] = s, e.thm[3].l[t] = n; + } + for (t = 0; t < Pe.SBMAX_s; t++) for (var r = 0; r < 3; r++) e.thm[0].s[t][r] > 1.58 * e.thm[1].s[t][r] || e.thm[1].s[t][r] > 1.58 * e.thm[0].s[t][r] || (a = e.mld_s[t] * e.en[3].s[t][r], s = Math.max(e.thm[2].s[t][r], Math.min(e.thm[3].s[t][r], a)), a = e.mld_s[t] * e.en[2].s[t][r], n = Math.max(e.thm[3].s[t][r], Math.min(e.thm[2].s[t][r], a)), e.thm[2].s[t][r] = s, e.thm[3].s[t][r] = n); + }(S), g = e.msfix, 0 < Math.abs(g) && function (e, t, a) { + var s = t, + n = Math.pow(10, a); + t *= 2, s *= 2; + for (var r = 0; r < Pe.SBMAX_l; r++) f = e.ATH.cb_l[e.bm_l[r]] * n, (o = Math.min(Math.max(e.thm[0].l[r], f), Math.max(e.thm[1].l[r], f))) * t < (_ = Math.max(e.thm[2].l[r], f)) + (l = Math.max(e.thm[3].l[r], f)) && (_ *= c = o * s / (_ + l), l *= c), e.thm[2].l[r] = Math.min(_, e.thm[2].l[r]), e.thm[3].l[r] = Math.min(l, e.thm[3].l[r]); + for (n *= Pe.BLKSIZE_s / Pe.BLKSIZE, r = 0; r < Pe.SBMAX_s; r++) for (var i = 0; i < 3; i++) { + var o, _, l, f, c; + f = e.ATH.cb_s[e.bm_s[r]] * n, (o = Math.min(Math.max(e.thm[0].s[r][i], f), Math.max(e.thm[1].s[r][i], f))) * t < (_ = Math.max(e.thm[2].s[r][i], f)) + (l = Math.max(e.thm[3].s[r][i], f)) && (_ *= c = o * t / (_ + l), l *= c), e.thm[2].s[r][i] = Math.min(e.thm[2].s[r][i], _), e.thm[3].s[r][i] = Math.min(e.thm[3].s[r][i], l); + } + }(S, g, e.ATHlower * S.ATH.adjust)); + for (function (e, t, a, s) { + var n = e.internal_flags; + e.short_blocks != Te.short_block_coupled || 0 != t[0] && 0 != t[1] || (t[0] = t[1] = 0); + for (var r = 0; r < n.channels_out; r++) s[r] = Pe.NORM_TYPE, e.short_blocks == Te.short_block_dispensed && (t[r] = 1), e.short_blocks == Te.short_block_forced && (t[r] = 0), 0 != t[r] ? n.blocktype_old[r] == Pe.SHORT_TYPE && (s[r] = Pe.STOP_TYPE) : (s[r] = Pe.SHORT_TYPE, n.blocktype_old[r] == Pe.NORM_TYPE && (n.blocktype_old[r] = Pe.START_TYPE), n.blocktype_old[r] == Pe.STOP_TYPE && (n.blocktype_old[r] = Pe.SHORT_TYPE)), a[r] = n.blocktype_old[r], n.blocktype_old[r] = s[r]; + }(e, y, l, k), c = 0; c < f; c++) { + var ne, + re, + ie, + oe = 0; + 1 < c ? (ne = o, oe = -2, re = Pe.NORM_TYPE, l[0] != Pe.SHORT_TYPE && l[1] != Pe.SHORT_TYPE || (re = Pe.SHORT_TYPE), ie = r[s][c - 2]) : (ne = i, oe = 0, re = l[c], ie = n[s][c]), ne[oe + c] = re == Pe.SHORT_TYPE ? ge(ie, S.masking_lower) : Se(ie, S.masking_lower), e.analysis && (S.pinfo.pe[s][c] = ne[oe + c]); + } + return 0; + }; + var X = [-1.730326e-17, -.01703172, -1.349528e-17, .0418072, -6.73278e-17, -.0876324, -3.0835e-17, .1863476, -1.104424e-16, -.627638]; + function q(e, t, a) { + if (0 == a) for (var s = 0; s < e.npart_s; s++) e.nb_s2[t][s] = e.nb_s1[t][s], e.nb_s1[t][s] = 0; + } + function F(e, t) { + for (var a = 0; a < e.npart_l; a++) e.nb_2[t][a] = e.nb_1[t][a], e.nb_1[t][a] = 0; + } + function j(e, t, a, s, n, r) { + var i, + o, + _, + l = e.internal_flags, + f = new float[Pe.CBANDS](), + c = Be(Pe.CBANDS), + h = new int[Pe.CBANDS](); + for (_ = o = 0; _ < l.npart_s; ++_) { + var u = 0, + m = 0, + p = l.numlines_s[_]; + for (i = 0; i < p; ++i, ++o) { + var b = t[r][o]; + u += b, m < b && (m = b); + } + a[_] = u, f[_] = m, c[_] = u / p; + } + for (; _ < Pe.CBANDS; ++_) f[_] = 0, c[_] = 0; + for (function (e, t, a, s) { + var n = ue.length - 1, + r = 0, + i = a[r] + a[r + 1]; + for (0 < i ? ((o = t[r]) < t[r + 1] && (o = t[r + 1]), n < (_ = 0 | (i = 20 * (2 * o - i) / (i * (e.numlines_s[r] + e.numlines_s[r + 1] - 1)))) && (_ = n), s[r] = _) : s[r] = 0, r = 1; r < e.npart_s - 1; r++) { + var o, _; + 0 < (i = a[r - 1] + a[r] + a[r + 1]) ? ((o = t[r - 1]) < t[r] && (o = t[r]), o < t[r + 1] && (o = t[r + 1]), n < (_ = 0 | (i = 20 * (3 * o - i) / (i * (e.numlines_s[r - 1] + e.numlines_s[r] + e.numlines_s[r + 1] - 1)))) && (_ = n), s[r] = _) : s[r] = 0; + } + 0 < (i = a[r - 1] + a[r]) ? ((o = t[r - 1]) < t[r] && (o = t[r]), n < (_ = 0 | (i = 20 * (2 * o - i) / (i * (e.numlines_s[r - 1] + e.numlines_s[r] - 1)))) && (_ = n), s[r] = _) : s[r] = 0; + }(l, f, c, h), o = _ = 0; _ < l.npart_s; _++) { + var v, + d, + g, + S, + M, + w = l.s3ind_s[_][0], + R = l.s3ind_s[_][1]; + for (v = h[w], d = 1, S = l.s3_ss[o] * a[w] * ue[h[w]], ++o, ++w; w <= R;) v += h[w], d += 1, S = A(S, g = l.s3_ss[o] * a[w] * ue[h[w]], w - _), ++o, ++w; + S *= M = .5 * ue[v = (1 + 2 * v) / (2 * d)], s[_] = S, l.nb_s2[n][_] = l.nb_s1[n][_], l.nb_s1[n][_] = S, g = f[_], g *= l.minval_s[_], g *= M, s[_] > g && (s[_] = g), 1 < l.masking_lower && (s[_] *= l.masking_lower), s[_] > a[_] && (s[_] = a[_]), l.masking_lower < 1 && (s[_] *= l.masking_lower); + } + for (; _ < Pe.CBANDS; ++_) a[_] = 0, s[_] = 0; + } + function z(e, t, a, s, n) { + var r, + i = Be(Pe.CBANDS), + o = Be(Pe.CBANDS), + _ = Ae(Pe.CBANDS + 2); + Me(e, t, a, i, o), we(e, i, o, _); + var l = 0; + for (r = 0; r < e.npart_l; r++) { + var f, + c, + h, + u = e.s3ind[r][0], + m = e.s3ind[r][1], + p = 0, + b = 0; + for (p = _[u], b += 1, c = e.s3_ll[l] * a[u] * ue[_[u]], ++l, ++u; u <= m;) p += _[u], b += 1, c = A(c, f = e.s3_ll[l] * a[u] * ue[_[u]], u - r), ++l, ++u; + if (c *= h = .5 * ue[p = (1 + 2 * p) / (2 * b)], e.blocktype_old[1 & n] == Pe.SHORT_TYPE) { + var v = _e * e.nb_1[n][r]; + s[r] = 0 < v ? Math.min(c, v) : Math.min(c, a[r] * fe); + } else { + var d = le * e.nb_2[n][r], + g = _e * e.nb_1[n][r]; + d <= 0 && (d = c), g <= 0 && (g = c), v = e.blocktype_old[1 & n] == Pe.NORM_TYPE ? Math.min(g, d) : g, s[r] = Math.min(c, v); + } + e.nb_2[n][r] = e.nb_1[n][r], e.nb_1[n][r] = c, f = i[r], f *= e.minval_l[r], f *= h, s[r] > f && (s[r] = f), 1 < e.masking_lower && (s[r] *= e.masking_lower), s[r] > a[r] && (s[r] = a[r]), e.masking_lower < 1 && (s[r] *= e.masking_lower); + } + for (; r < Pe.CBANDS; ++r) a[r] = 0, s[r] = 0; + } + function Z(e, t, a, s, n, r, i) { + for (var o, _, l = 2 * r, f = 0 < r ? Math.pow(10, n) : 1, c = 0; c < i; ++c) { + var h = e[2][c], + u = e[3][c], + m = t[0][c], + p = t[1][c], + b = t[2][c], + v = t[3][c]; + if (m <= 1.58 * p && p <= 1.58 * m) { + var d = a[c] * u, + g = a[c] * h; + _ = Math.max(b, Math.min(v, d)), o = Math.max(v, Math.min(b, g)); + } else _ = b, o = v; + if (0 < r) { + var S, + M, + w = s[c] * f; + if (S = Math.min(Math.max(m, w), Math.max(p, w)), 0 < (M = (b = Math.max(_, w)) + (v = Math.max(o, w))) && S * l < M) { + var R = S * l / M; + b *= R, v *= R; + } + _ = Math.min(b, _), o = Math.min(v, o); + } + h < _ && (_ = h), u < o && (o = u), t[2][c] = _, t[3][c] = o; + } + } + function w(e, t) { + var a; + return (a = 0 <= e ? 27 * -e : e * t) <= -72 ? 0 : Math.exp(a * S); + } + function R(e) { + var t, + a, + s = 0; + for (s = 0; 1e-20 < w(s, e); s -= 1); + for (n = s, r = 0; 1e-12 < Math.abs(r - n);) 0 < w(s = (r + n) / 2, e) ? r = s : n = s; + t = n; + var n, r; + s = 0; + for (s = 0; 1e-20 < w(s, e); s += 1); + for (n = 0, r = s; 1e-12 < Math.abs(r - n);) 0 < w(s = (r + n) / 2, e) ? n = s : r = s; + a = r; + var i, + o = 0; + for (i = 0; i <= 1e3; ++i) { + o += w(s = t + i * (a - t) / 1e3, e); + } + return 1001 / (o * (a - t)); + } + function H(e) { return e < 0 && (e = 0), e *= .001, 13 * Math.atan(.76 * e) + 3.5 * Math.atan(e * e / 56.25); } - function H(e, t, a, n, s, r, i, o, _, l, f, c) { - var u, - h = de(Ae.CBANDS + 1), - b = o / (15 < c ? 1152 : 384), - p = ve(Ae.HBLKSIZE); + function C(e, t, a, s, n, r, i, o, _, l, f, c) { + var h, + u = Be(Pe.CBANDS + 1), + m = o / (15 < c ? 1152 : 384), + p = Ae(Pe.HBLKSIZE); o /= _; - var m = 0, + var b = 0, v = 0; - for (u = 0; u < Ae.CBANDS; u++) { + for (h = 0; h < Pe.CBANDS; h++) { var d; - for (x = P(o * m), h[u] = o * m, d = m; P(o * d) - x < E && d <= _ / 2; d++); - for (e[u] = d - m, v = u + 1; m < d;) p[m++] = u; - if (_ / 2 < m) { - m = _ / 2, ++u; + for (y = H(o * b), u[h] = o * b, d = b; H(o * d) - y < E && d <= _ / 2; d++); + for (e[h] = d - b, v = h + 1; b < d;) p[b++] = h; + if (_ / 2 < b) { + b = _ / 2, ++h; break; } } - h[u] = o * m; + u[h] = o * b; for (var g = 0; g < c; g++) { - var w, S, M, y, A; - M = l[g], y = l[g + 1], (w = 0 | Math.floor(.5 + f * (M - .5))) < 0 && (w = 0), S = 0 | Math.floor(.5 + f * (y - .5)), _ / 2 < S && (S = _ / 2), a[g] = (p[w] + p[S]) / 2, t[g] = p[S]; - var k = b * y; - i[g] = (k - h[t[g]]) / (h[t[g] + 1] - h[t[g]]), i[g] < 0 ? i[g] = 0 : 1 < i[g] && (i[g] = 1), A = P(o * l[g] * f), A = Math.min(A, 15.5) / 15.5, r[g] = Math.pow(10, 1.25 * (1 - Math.cos(Math.PI * A)) - 2.5); + var S, M, w, R, A; + w = l[g], R = l[g + 1], (S = 0 | Math.floor(.5 + f * (w - .5))) < 0 && (S = 0), _ / 2 < (M = 0 | Math.floor(.5 + f * (R - .5))) && (M = _ / 2), a[g] = (p[S] + p[M]) / 2, t[g] = p[M]; + var B = m * R; + i[g] = (B - u[t[g]]) / (u[t[g] + 1] - u[t[g]]), i[g] < 0 ? i[g] = 0 : 1 < i[g] && (i[g] = 1), A = H(o * l[g] * f), A = Math.min(A, 15.5) / 15.5, r[g] = Math.pow(10, 1.25 * (1 - Math.cos(Math.PI * A)) - 2.5); } - for (var R = m = 0; R < v; R++) { - var x, - B, - T = e[R]; - x = P(o * m), B = P(o * (m + T - 1)), n[R] = .5 * (x + B), x = P(o * (m - .5)), B = P(o * (m + T - .5)), s[R] = B - x, m += T; + for (var k = b = 0; k < v; k++) { + var y, + T, + x = e[k]; + y = H(o * b), T = H(o * (b + x - 1)), s[k] = .5 * (y + T), y = H(o * (b - .5)), T = H(o * (b + x - .5)), n[k] = T - y, b += x; } return v; } - function O(e, t, a, n, s, r) { + function V(e, t, a, s, n, r) { var i, o, _, l, f, c, - u = ge([Ae.CBANDS, Ae.CBANDS]), - h = 0; - if (r) for (var b = 0; b < t; b++) for (i = 0; i < t; i++) { - var p = (o = a[b] - a[i], c = f = l = _ = void 0, _ = o, l = .5 <= (_ *= 0 <= _ ? 3 : 1.5) && _ <= 2.5 ? 8 * ((c = _ - .5) * c - 2 * c) : 0, ((f = 15.811389 + 7.5 * (_ += .474) - 17.5 * Math.sqrt(1 + _ * _)) <= -60 ? 0 : (_ = Math.exp((l + f) * w), _ /= .6609193)) * n[i]); - u[b][i] = p * s[b]; - } else me(); - for (var b = 0; b < t; b++) { - for (i = 0; i < t && !(0 < u[b][i]); i++); - for (e[b][0] = i, i = t - 1; 0 < i && !(0 < u[b][i]); i--); - e[b][1] = i, h += e[b][1] - e[b][0] + 1; + h = ke([Pe.CBANDS, Pe.CBANDS]), + u = 0; + if (r) for (var m = 0; m < t; m++) for (i = 0; i < t; i++) { + var p = (o = a[m] - a[i], c = f = l = _ = void 0, _ = o, l = .5 <= (_ *= 0 <= _ ? 3 : 1.5) && _ <= 2.5 ? 8 * ((c = _ - .5) * c - 2 * c) : 0, ((f = 15.811389 + 7.5 * (_ += .474) - 17.5 * Math.sqrt(1 + _ * _)) <= -60 ? 0 : (_ = Math.exp((l + f) * S), _ /= .6609193)) * s[i]); + h[m][i] = p * n[m]; + } else for (i = 0; i < t; i++) { + var b = 15 + Math.min(21 / a[i], 12), + v = R(b); + for (m = 0; m < t; m++) { + p = v * w(a[m] - a[i], b) * s[i]; + h[m][i] = p * n[m]; + } } - for (var m = de(h), v = 0, b = 0; b < t; b++) for (i = e[b][0]; i <= e[b][1]; i++) m[v++] = u[b][i]; - return m; + for (m = 0; m < t; m++) { + for (i = 0; i < t && !(0 < h[m][i]); i++); + for (e[m][0] = i, i = t - 1; 0 < i && !(0 < h[m][i]); i--); + e[m][1] = i, u += e[m][1] - e[m][0] + 1; + } + var d = Be(u), + g = 0; + for (m = 0; m < t; m++) for (i = e[m][0]; i <= e[m][1]; i++) d[g++] = h[m][i]; + return d; } - function N(e) { - var t = P(e); + function O(e) { + var t = H(e); return t = Math.min(t, 15.5) / 15.5, Math.pow(10, 1.25 * (1 - Math.cos(Math.PI * t)) - 2.5); } - function n(e, t) { - e < -.3 && (e = 3410), e /= 1e3, e = Math.max(.1, e); - var a = 3.64 * Math.pow(e, -.8) - 6.8 * Math.exp(-.6 * Math.pow(e - 3.4, 2)) + 6 * Math.exp(-.15 * Math.pow(e - 8.7, 2)) + .001 * (.6 + .04 * t) * Math.pow(e, 4); - return a; + function s(e, t) { + return e < -.3 && (e = 3410), e /= 1e3, e = Math.max(.1, e), 3.64 * Math.pow(e, -.8) - 6.8 * Math.exp(-.6 * Math.pow(e - 3.4, 2)) + 6 * Math.exp(-.15 * Math.pow(e - 8.7, 2)) + .001 * (.6 + .04 * t) * Math.pow(e, 4); } - this.L3psycho_anal_ns = function (e, t, a, n, s, r, i, o, _, l) { + this.L3psycho_anal_vbr = function (e, t, a, s, n, r, i, o, _, l) { var f, c, - u, h, - b, - p, + u, m, - v, - d, - g = e.internal_flags, - w = ge([2, Ae.BLKSIZE]), - S = ge([2, 3, Ae.BLKSIZE_s]), - M = de(Ae.CBANDS + 1), - y = de(Ae.CBANDS + 1), - A = de(Ae.CBANDS + 2), - k = ve(2), - R = ve(2), - x = ge([2, 576]), - B = ve(Ae.CBANDS + 2), - T = ve(Ae.CBANDS + 2); - for (we.fill(T, 0), f = g.channels_out, e.mode == ye.JOINT_STEREO && (f = 4), d = e.VBR == Me.vbr_off ? 0 == g.ResvMax ? 0 : g.ResvSize / g.ResvMax * .5 : e.VBR == Me.vbr_rh || e.VBR == Me.vbr_mtrh || e.VBR == Me.vbr_mt ? .6 : 1, c = 0; c < g.channels_out; c++) { - var E = t[c], - C = a + 576 - 350 - 21 + 192; - for (h = 0; h < 576; h++) { - var I, L; - for (I = E[C + h + 10], b = L = 0; b < 9; b += 2) I += pe[b] * (E[C + h + b] + E[C + h + 21 - b]), L += pe[b + 1] * (E[C + h + b + 1] + E[C + h + 21 - b - 1]); - x[c][h] = I + L; - } - s[n][c].en.assign(g.en[c]), s[n][c].thm.assign(g.thm[c]), 2 < f && me(); - } - for (c = 0; c < f; c++) { - var P, - H = de(12), - O = [0, 0, 0, 0], - N = de(12), - V = 1, - D = de(Ae.CBANDS), - F = de(Ae.CBANDS), - j = [0, 0, 0, 0], - X = de(Ae.HBLKSIZE), - Y = ge([3, Ae.HBLKSIZE_s]); - for (h = 0; h < 3; h++) H[h] = g.nsPsy.last_en_subshort[c][h + 6], N[h] = H[h] / g.nsPsy.last_en_subshort[c][h + 4], O[0] += H[h]; - 2 == c && me(); - var z = x[1 & c], - q = 0; - for (h = 0; h < 9; h++) { - for (var G = q + 64, U = 1; q < G; q++) U < Math.abs(z[q]) && (U = Math.abs(z[q])); - g.nsPsy.last_en_subshort[c][h] = H[h + 3] = U, O[1 + h / 3] += U, U > H[h + 3 - 2] ? U /= H[h + 3 - 2] : U = H[h + 3 - 2] > 10 * U ? H[h + 3 - 2] / (10 * U) : 0, N[h + 3] = U; - } - for (e.analysis && me(), P = 3 == c ? g.nsPsy.attackthre_s : g.nsPsy.attackthre, h = 0; h < 12; h++) 0 == j[h / 3] && N[h] > P && (j[h / 3] = h % 3 + 1); - for (h = 1; h < 4; h++) (O[h - 1] > O[h] ? O[h - 1] / O[h] : O[h] / O[h - 1]) < 1.7 && (j[h] = 0, 1 == h && (j[0] = 0)); - for (0 != j[0] && 0 != g.nsPsy.lastAttacks[c] && (j[0] = 0), 3 != g.nsPsy.lastAttacks[c] && j[0] + j[1] + j[2] + j[3] == 0 || ((V = 0) != j[1] && 0 != j[0] && (j[1] = 0), 0 != j[2] && 0 != j[1] && (j[2] = 0), 0 != j[3] && 0 != j[2] && (j[3] = 0)), c < 2 ? R[c] = V : me(), _[c] = g.tot_ener[c], se(e, X, Y, w, 1 & c, S, 1 & c, n, c, t, a), he(g, X, M, D, F), be(g, D, F, B), v = 0; v < 3; v++) { - var K, Z; - for (le(e, Y, y, A, c, v), oe(g, y, A, c, v), m = 0; m < Ae.SBMAX_s; m++) { - if (Z = g.thm[c].s[m][v], Z *= .8, 2 <= j[v] || 1 == j[v + 1]) { - var W = 0 != v ? v - 1 : 2, - U = fe(g.thm[c].s[m][W], Z, .6 * d); - Z = Math.min(Z, U); - } - if (1 == j[v]) { - var W = 0 != v ? v - 1 : 2, - U = fe(g.thm[c].s[m][W], Z, .3 * d); - Z = Math.min(Z, U); - } else if (0 != v && 3 == j[v - 1] || 0 == v && 3 == g.nsPsy.lastAttacks[c]) { - var W = 2 != v ? v + 1 : 0, - U = fe(g.thm[c].s[m][W], Z, .3 * d); - Z = Math.min(Z, U); - } - K = H[3 * v + 3] + H[3 * v + 4] + H[3 * v + 5], 6 * H[3 * v + 5] < K && (Z *= .5, 6 * H[3 * v + 4] < K && (Z *= .5)), g.thm[c].s[m][v] = Z; + p = e.internal_flags, + b = Be(Pe.HBLKSIZE), + v = ke([3, Pe.HBLKSIZE_s]), + d = ke([2, Pe.BLKSIZE]), + g = ke([2, 3, Pe.BLKSIZE_s]), + S = ke([4, Pe.CBANDS]), + M = ke([4, Pe.CBANDS]), + w = ke([4, 3]), + R = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], + A = Ae(2), + B = e.mode == Ee.JOINT_STEREO ? 4 : p.channels_out; + !function (e, t, a, s, n, r, i, o, _, l) { + for (var f = ke([2, 576]), c = e.internal_flags, h = c.channels_out, u = e.mode == Ee.JOINT_STEREO ? 4 : h, m = 0; m < h; m++) { + firbuf = t[m]; + for (var p = a + 576 - 350 - ce + 192, b = 0; b < 576; b++) { + var v, d; + v = firbuf[p + b + 10]; + for (var g = d = 0; g < (ce - 1) / 2 - 1; g += 2) v += X[g] * (firbuf[p + b + g] + firbuf[p + b + ce - g]), d += X[g + 1] * (firbuf[p + b + g + 1] + firbuf[p + b + ce - g - 1]); + f[m][b] = v + d; } + n[s][m].en.assign(c.en[m]), n[s][m].thm.assign(c.thm[m]), 2 < u && (r[s][m].en.assign(c.en[m + 2]), r[s][m].thm.assign(c.thm[m + 2])); } - for (g.nsPsy.lastAttacks[c] = j[2], u = p = 0; u < g.npart_l; u++) { - for (var Q = g.s3ind[u][0], $ = M[Q] * re[B[Q]], J = g.s3_ll[p++] * $; ++Q <= g.s3ind[u][1];) $ = M[Q] * re[B[Q]], J = ie(J, g.s3_ll[p++] * $, Q, Q - u, g, 0); - J *= .158489319246111, g.blocktype_old[1 & c] == Ae.SHORT_TYPE ? A[u] = J : A[u] = fe(Math.min(J, Math.min(2 * g.nb_1[c][u], 16 * g.nb_2[c][u])), J, d), g.nb_2[c][u] = g.nb_1[c][u], g.nb_1[c][u] = J; + for (m = 0; m < u; m++) { + var S = Be(12), + M = Be(12), + w = [0, 0, 0, 0], + R = f[1 & m], + A = 0, + B = 3 == m ? c.nsPsy.attackthre_s : c.nsPsy.attackthre, + k = 1; + if (2 == m) for (b = 0, g = 576; 0 < g; ++b, --g) { + var y = f[0][b], + T = f[1][b]; + f[0][b] = y + T, f[1][b] = y - T; + } + for (b = 0; b < 3; b++) M[b] = c.nsPsy.last_en_subshort[m][b + 6], S[b] = M[b] / c.nsPsy.last_en_subshort[m][b + 4], w[0] += M[b]; + for (b = 0; b < 9; b++) { + for (var x = A + 64, E = 1; A < x; A++) E < Math.abs(R[A]) && (E = Math.abs(R[A])); + c.nsPsy.last_en_subshort[m][b] = M[b + 3] = E, w[1 + b / 3] += E, E > M[b + 3 - 2] ? E /= M[b + 3 - 2] : E = M[b + 3 - 2] > 10 * E ? M[b + 3 - 2] / (10 * E) : 0, S[b + 3] = E; + } + for (b = 0; b < 3; ++b) { + var P = M[3 * b + 3] + M[3 * b + 4] + M[3 * b + 5], + L = 1; + 6 * M[3 * b + 5] < P && (L *= .5, 6 * M[3 * b + 4] < P && (L *= .5)), o[m][b] = L; + } + if (e.analysis) { + var I = S[0]; + for (b = 1; b < 12; b++) I < S[b] && (I = S[b]); + c.pinfo.ers[s][m] = c.pinfo.ers_save[m], c.pinfo.ers_save[m] = I; + } + for (b = 0; b < 12; b++) 0 == _[m][b / 3] && S[b] > B && (_[m][b / 3] = b % 3 + 1); + for (b = 1; b < 4; b++) { + var H = w[b - 1], + C = w[b]; + Math.max(H, C) < 4e4 && H < 1.7 * C && C < 1.7 * H && (1 == b && _[m][0] <= _[m][b] && (_[m][0] = 0), _[m][b] = 0); + } + _[m][0] <= c.nsPsy.lastAttacks[m] && (_[m][0] = 0), 3 != c.nsPsy.lastAttacks[m] && _[m][0] + _[m][1] + _[m][2] + _[m][3] == 0 || ((k = 0) != _[m][1] && 0 != _[m][0] && (_[m][1] = 0), 0 != _[m][2] && 0 != _[m][1] && (_[m][2] = 0), 0 != _[m][3] && 0 != _[m][2] && (_[m][3] = 0)), m < 2 ? l[m] = k : 0 == k && (l[0] = l[1] = 0), i[m] = c.tot_ener[m]; } - for (; u <= Ae.CBANDS; ++u) M[u] = 0, A[u] = 0; - _e(g, M, A, c); + }(e, t, a, s, n, r, _, w, R, A), function (e, t) { + var a = e.internal_flags; + e.short_blocks != Te.short_block_coupled || 0 != t[0] && 0 != t[1] || (t[0] = t[1] = 0); + for (var s = 0; s < a.channels_out; s++) e.short_blocks == Te.short_block_dispensed && (t[s] = 1), e.short_blocks == Te.short_block_forced && (t[s] = 0); + }(e, A); + for (var k = 0; k < B; k++) { + D(e, t, a, k, s, b, d, T = 1 & k), c = s, h = k, u = b, m = void 0, m = (f = e).internal_flags, 2 == f.athaa_loudapprox && h < 2 && (m.loudness_sq[c][h] = m.loudness_sq_save[h], m.loudness_sq_save[h] = N(u, m)), 0 != A[T] ? z(p, b, S[k], M[k], k) : F(p, k); } - for (e.mode != ye.STEREO && e.mode != ye.JOINT_STEREO || me(), e.mode == ye.JOINT_STEREO && me(), function (e, t, a, n) { - var s = e.internal_flags; - e.short_blocks != Se.short_block_coupled || 0 != t[0] && 0 != t[1] || (t[0] = t[1] = 0); - for (var r = 0; r < s.channels_out; r++) n[r] = Ae.NORM_TYPE, e.short_blocks == Se.short_block_dispensed && (t[r] = 1), e.short_blocks == Se.short_block_forced && (t[r] = 0), 0 != t[r] ? s.blocktype_old[r] == Ae.SHORT_TYPE && (n[r] = Ae.STOP_TYPE) : (n[r] = Ae.SHORT_TYPE, s.blocktype_old[r] == Ae.NORM_TYPE && (s.blocktype_old[r] = Ae.START_TYPE), s.blocktype_old[r] == Ae.STOP_TYPE && (s.blocktype_old[r] = Ae.SHORT_TYPE)), a[r] = s.blocktype_old[r], s.blocktype_old[r] = n[r]; - }(e, R, l, k), c = 0; c < f; c++) { - var ee, - te, - ae, - ne = 0; - 1 < c ? me() : (ee = i, ne = 0, te = l[c], ae = s[n][c]), ee[ne + c] = te == Ae.SHORT_TYPE ? ce(ae, g.masking_lower) : ue(ae, g.masking_lower), e.analysis && (g.pinfo.pe[n][c] = ee[ne + c]); + A[0] + A[1] == 2 && e.mode == Ee.JOINT_STEREO && Z(S, M, p.mld_cb_l, p.ATH.cb_l, e.ATHlower * p.ATH.adjust, e.msfix, p.npart_l); + for (k = 0; k < B; k++) { + 0 != A[T = 1 & k] && be(p, S[k], M[k], k); + } + for (var y = 0; y < 3; y++) { + for (k = 0; k < B; ++k) { + 0 != A[T = 1 & k] ? q(p, k, y) : (Y(e, t, a, k, y, v, g, T), j(e, v, S[k], M[k], k, y)); + } + A[0] + A[1] == 0 && e.mode == Ee.JOINT_STEREO && Z(S, M, p.mld_cb_s, p.ATH.cb_s, e.ATHlower * p.ATH.adjust, e.msfix, p.npart_s); + for (k = 0; k < B; ++k) { + 0 == A[T = 1 & k] && pe(p, S[k], M[k], k, y); + } + } + for (k = 0; k < B; k++) { + var T; + if (0 == A[T = 1 & k]) for (var x = 0; x < Pe.SBMAX_s; x++) { + var E = Be(3); + for (y = 0; y < 3; y++) { + var P = p.thm[k].s[x][y]; + if (P *= .8, 2 <= R[k][y] || 1 == R[k][y + 1]) { + var L = 0 != y ? y - 1 : 2, + I = de(p.thm[k].s[x][L], P, .36); + P = Math.min(P, I); + } else if (1 == R[k][y]) { + L = 0 != y ? y - 1 : 2, I = de(p.thm[k].s[x][L], P, .6 * fe); + P = Math.min(P, I); + } else if (0 != y && 3 == R[k][y - 1] || 0 == y && 3 == p.nsPsy.lastAttacks[k]) { + L = 2 != y ? y + 1 : 0, I = de(p.thm[k].s[x][L], P, .6 * fe); + P = Math.min(P, I); + } + P *= w[k][y], E[y] = P; + } + for (y = 0; y < 3; y++) p.thm[k].s[x][y] = E[y]; + } + } + for (k = 0; k < B; k++) p.nsPsy.lastAttacks[k] = R[k][2]; + !function (e, t, a) { + for (var s = e.internal_flags, n = 0; n < s.channels_out; n++) { + var r = Pe.NORM_TYPE; + 0 != t[n] ? s.blocktype_old[n] == Pe.SHORT_TYPE && (r = Pe.STOP_TYPE) : (r = Pe.SHORT_TYPE, s.blocktype_old[n] == Pe.NORM_TYPE && (s.blocktype_old[n] = Pe.START_TYPE), s.blocktype_old[n] == Pe.STOP_TYPE && (s.blocktype_old[n] = Pe.SHORT_TYPE)), a[n] = s.blocktype_old[n], s.blocktype_old[n] = r; + } + }(e, A, l); + for (k = 0; k < B; k++) { + var H, C, V, O; + 1 < k ? (H = o, C = -2, V = Pe.NORM_TYPE, l[0] != Pe.SHORT_TYPE && l[1] != Pe.SHORT_TYPE || (V = Pe.SHORT_TYPE), O = r[s][k - 2]) : (H = i, C = 0, V = l[k], O = n[s][k]), H[C + k] = V == Pe.SHORT_TYPE ? ge(O, p.masking_lower) : Se(O, p.masking_lower), e.analysis && (p.pinfo.pe[s][k] = H[C + k]); } return 0; }, this.psymodel_init = function (e) { var t, a = e.internal_flags, - n = !0, - s = 13, + s = !0, + n = 13, r = 0, i = 0, o = -8.25, _ = -4.5, - l = de(Ae.CBANDS), - f = de(Ae.CBANDS), - c = de(Ae.CBANDS), - u = e.out_samplerate; + l = Be(Pe.CBANDS), + f = Be(Pe.CBANDS), + c = Be(Pe.CBANDS), + h = e.out_samplerate; switch (e.experimentalZ) { default: case 0: - n = !0; + s = !0; break; case 1: - n = e.VBR != Me.vbr_mtrh && e.VBR != Me.vbr_mt; + s = e.VBR != xe.vbr_mtrh && e.VBR != xe.vbr_mt; break; case 2: - n = !1; + s = !1; break; case 3: - s = 8, r = -1.75, i = -.0125, o = -8.25, _ = -2.25; + n = 8, r = -1.75, i = -.0125, o = -8.25, _ = -2.25; } - for (a.ms_ener_ratio_old = .25, a.blocktype_old[0] = a.blocktype_old[1] = Ae.NORM_TYPE, t = 0; t < 4; ++t) { - for (var h = 0; h < Ae.CBANDS; ++h) a.nb_1[t][h] = 1e20, a.nb_2[t][h] = 1e20, a.nb_s1[t][h] = a.nb_s2[t][h] = 1; - for (var b = 0; b < Ae.SBMAX_l; b++) a.en[t].l[b] = 1e20, a.thm[t].l[b] = 1e20; - for (var h = 0; h < 3; ++h) { - for (var b = 0; b < Ae.SBMAX_s; b++) a.en[t].s[b][h] = 1e20, a.thm[t].s[b][h] = 1e20; + for (a.ms_ener_ratio_old = .25, a.blocktype_old[0] = a.blocktype_old[1] = Pe.NORM_TYPE, t = 0; t < 4; ++t) { + for (var u = 0; u < Pe.CBANDS; ++u) a.nb_1[t][u] = 1e20, a.nb_2[t][u] = 1e20, a.nb_s1[t][u] = a.nb_s2[t][u] = 1; + for (var m = 0; m < Pe.SBMAX_l; m++) a.en[t].l[m] = 1e20, a.thm[t].l[m] = 1e20; + for (u = 0; u < 3; ++u) { + for (m = 0; m < Pe.SBMAX_s; m++) a.en[t].s[m][u] = 1e20, a.thm[t].s[m][u] = 1e20; a.nsPsy.lastAttacks[t] = 0; } - for (var h = 0; h < 9; h++) a.nsPsy.last_en_subshort[t][h] = 10; + for (u = 0; u < 9; u++) a.nsPsy.last_en_subshort[t][u] = 10; } - for (a.loudness_sq_save[0] = a.loudness_sq_save[1] = 0, a.npart_l = H(a.numlines_l, a.bo_l, a.bm_l, l, f, a.mld_l, a.PSY.bo_l_weight, u, Ae.BLKSIZE, a.scalefac_band.l, Ae.BLKSIZE / 1152, Ae.SBMAX_l), t = 0; t < a.npart_l; t++) { + for (a.loudness_sq_save[0] = a.loudness_sq_save[1] = 0, a.npart_l = C(a.numlines_l, a.bo_l, a.bm_l, l, f, a.mld_l, a.PSY.bo_l_weight, h, Pe.BLKSIZE, a.scalefac_band.l, Pe.BLKSIZE / 1152, Pe.SBMAX_l), t = 0; t < a.npart_l; t++) { var p = r; - l[t] >= s && (p = i * (l[t] - s) / (24 - s) + r * (24 - l[t]) / (24 - s)), c[t] = Math.pow(10, p / 10), 0 < a.numlines_l[t] ? a.rnumlines_l[t] = 1 / a.numlines_l[t] : a.rnumlines_l[t] = 0; + l[t] >= n && (p = i * (l[t] - n) / (24 - n) + r * (24 - l[t]) / (24 - n)), c[t] = Math.pow(10, p / 10), 0 < a.numlines_l[t] ? a.rnumlines_l[t] = 1 / a.numlines_l[t] : a.rnumlines_l[t] = 0; } - a.s3_ll = O(a.s3ind, a.npart_l, l, f, c, n); - var m, - h = 0; + a.s3_ll = V(a.s3ind, a.npart_l, l, f, c, s); + var b; + u = 0; for (t = 0; t < a.npart_l; t++) { - g = D.MAX_VALUE; - for (var v = 0; v < a.numlines_l[t]; v++, h++) { - var d = u * h / (1e3 * Ae.BLKSIZE); - w = this.ATHformula(1e3 * d, e) - 20, w = Math.pow(10, .1 * w), (w *= a.numlines_l[t]) < g && (g = w); + g = K.MAX_VALUE; + for (var v = 0; v < a.numlines_l[t]; v++, u++) { + var d = h * u / (1e3 * Pe.BLKSIZE); + S = this.ATHformula(1e3 * d, e) - 20, S = Math.pow(10, .1 * S), (S *= a.numlines_l[t]) < g && (g = S); } a.ATH.cb_l[t] = g, 6 < (g = 20 * l[t] / 10 - 20) && (g = 100), g < -15 && (g = -15), g -= 8, a.minval_l[t] = Math.pow(10, g / 10) * a.numlines_l[t]; } - for (a.npart_s = H(a.numlines_s, a.bo_s, a.bm_s, l, f, a.mld_s, a.PSY.bo_s_weight, u, Ae.BLKSIZE_s, a.scalefac_band.s, Ae.BLKSIZE_s / 384, Ae.SBMAX_s), t = h = 0; t < a.npart_s; t++) { - var g, - p = o; - l[t] >= s && (p = _ * (l[t] - s) / (24 - s) + o * (24 - l[t]) / (24 - s)), c[t] = Math.pow(10, p / 10), g = D.MAX_VALUE; - for (var v = 0; v < a.numlines_s[t]; v++, h++) { - var w, - d = u * h / (1e3 * Ae.BLKSIZE_s); - w = this.ATHformula(1e3 * d, e) - 20, w = Math.pow(10, .1 * w), (w *= a.numlines_s[t]) < g && (g = w); + for (a.npart_s = C(a.numlines_s, a.bo_s, a.bm_s, l, f, a.mld_s, a.PSY.bo_s_weight, h, Pe.BLKSIZE_s, a.scalefac_band.s, Pe.BLKSIZE_s / 384, Pe.SBMAX_s), t = u = 0; t < a.npart_s; t++) { + var g; + p = o; + l[t] >= n && (p = _ * (l[t] - n) / (24 - n) + o * (24 - l[t]) / (24 - n)), c[t] = Math.pow(10, p / 10), g = K.MAX_VALUE; + for (v = 0; v < a.numlines_s[t]; v++, u++) { + var S; + d = h * u / (1e3 * Pe.BLKSIZE_s); + S = this.ATHformula(1e3 * d, e) - 20, S = Math.pow(10, .1 * S), (S *= a.numlines_s[t]) < g && (g = S); } a.ATH.cb_s[t] = g, g = 7 * l[t] / 12 - 7, 12 < l[t] && (g *= 1 + 3.1 * Math.log(1 + g)), l[t] < 12 && (g *= 1 + 2.3 * Math.log(1 - g)), g < -15 && (g = -15), g -= 8, a.minval_s[t] = Math.pow(10, g / 10) * a.numlines_s[t]; } - a.s3_ss = O(a.s3ind_s, a.npart_s, l, f, c, n), x = Math.pow(10, (C + 1) / 16), B = Math.pow(10, (I + 1) / 16), T = Math.pow(10, L / 10), k.init_fft(a), a.decay = Math.exp(-1 * R / (.01 * u / 192)), m = 3.5, 0 != (2 & e.exp_nspsytune) && (m = 1), 0 < Math.abs(e.msfix) && (m = e.msfix), e.msfix = m; - for (var S = 0; S < a.npart_l; S++) a.s3ind[S][1] > a.npart_l - 1 && (a.s3ind[S][1] = a.npart_l - 1); - var M = 576 * a.mode_gr / u; - if (a.ATH.decay = Math.pow(10, -1.2 * M), a.ATH.adjust = .01, -(a.ATH.adjustLimit = 1) != e.ATHtype) { - var y = e.out_samplerate / Ae.BLKSIZE, + a.s3_ss = V(a.s3ind_s, a.npart_s, l, f, c, s), y = Math.pow(10, (P + 1) / 16), T = Math.pow(10, (L + 1) / 16), x = Math.pow(10, I / 10), B.init_fft(a), a.decay = Math.exp(-1 * k / (.01 * h / 192)), b = 3.5, 0 != (2 & e.exp_nspsytune) && (b = 1), 0 < Math.abs(e.msfix) && (b = e.msfix), e.msfix = b; + for (var M = 0; M < a.npart_l; M++) a.s3ind[M][1] > a.npart_l - 1 && (a.s3ind[M][1] = a.npart_l - 1); + var w = 576 * a.mode_gr / h; + if (a.ATH.decay = Math.pow(10, -1.2 * w), a.ATH.adjust = .01, -(a.ATH.adjustLimit = 1) != e.ATHtype) { + var R = e.out_samplerate / Pe.BLKSIZE, A = 0; - for (t = d = 0; t < Ae.BLKSIZE / 2; ++t) d += y, a.ATH.eql_w[t] = 1 / Math.pow(10, this.ATHformula(d, e) / 10), A += a.ATH.eql_w[t]; - for (A = 1 / A, t = Ae.BLKSIZE / 2; 0 <= --t;) a.ATH.eql_w[t] *= A; + for (t = d = 0; t < Pe.BLKSIZE / 2; ++t) d += R, a.ATH.eql_w[t] = 1 / Math.pow(10, this.ATHformula(d, e) / 10), A += a.ATH.eql_w[t]; + for (A = 1 / A, t = Pe.BLKSIZE / 2; 0 <= --t;) a.ATH.eql_w[t] *= A; } - for (var S = h = 0; S < a.npart_s; ++S) for (t = 0; t < a.numlines_s[S]; ++t) ++h; - for (var S = h = 0; S < a.npart_l; ++S) for (t = 0; t < a.numlines_l[S]; ++t) ++h; - for (t = h = 0; t < a.npart_l; t++) { - var d = u * (h + a.numlines_l[t] / 2) / (1 * Ae.BLKSIZE); - a.mld_cb_l[t] = N(d), h += a.numlines_l[t]; + for (M = u = 0; M < a.npart_s; ++M) for (t = 0; t < a.numlines_s[M]; ++t) ++u; + for (M = u = 0; M < a.npart_l; ++M) for (t = 0; t < a.numlines_l[M]; ++t) ++u; + for (t = u = 0; t < a.npart_l; t++) { + d = h * (u + a.numlines_l[t] / 2) / (1 * Pe.BLKSIZE); + a.mld_cb_l[t] = O(d), u += a.numlines_l[t]; } - for (; t < Ae.CBANDS; ++t) a.mld_cb_l[t] = 1; - for (t = h = 0; t < a.npart_s; t++) { - var d = u * (h + a.numlines_s[t] / 2) / (1 * Ae.BLKSIZE_s); - a.mld_cb_s[t] = N(d), h += a.numlines_s[t]; + for (; t < Pe.CBANDS; ++t) a.mld_cb_l[t] = 1; + for (t = u = 0; t < a.npart_s; t++) { + d = h * (u + a.numlines_s[t] / 2) / (1 * Pe.BLKSIZE_s); + a.mld_cb_s[t] = O(d), u += a.numlines_s[t]; } - for (; t < Ae.CBANDS; ++t) a.mld_cb_s[t] = 1; + for (; t < Pe.CBANDS; ++t) a.mld_cb_s[t] = 1; return 0; }, this.ATHformula = function (e, t) { var a; switch (t.ATHtype) { case 0: - a = n(e, 9); + a = s(e, 9); break; case 1: - a = n(e, -1); + a = s(e, -1); break; case 2: - a = n(e, 0); + a = s(e, 0); break; case 3: - a = n(e, 1) + 6; + a = s(e, 1) + 6; break; case 4: - a = n(e, t.ATHcurve); + a = s(e, t.ATHcurve); break; default: - a = n(e, 0); + a = s(e, 0); } return a; }; } - function Y() { - var T, - E, - u, - h, - b, - C = this; - Y.V9 = 410, Y.V8 = 420, Y.V7 = 430, Y.V6 = 440, Y.V5 = 450, Y.V4 = 460, Y.V3 = 470, Y.V2 = 480, Y.V1 = 490, Y.V0 = 500, Y.R3MIX = 1e3, Y.STANDARD = 1001, Y.EXTREME = 1002, Y.INSANE = 1003, Y.STANDARD_FAST = 1004, Y.EXTREME_FAST = 1005, Y.MEDIUM = 1006, Y.MEDIUM_FAST = 1007, Y.LAME_MAXMP3BUFFER = 147456; - var p, - m, - v = new X(); - function d() { + function U() { + var o = this; + U.V9 = 410, U.V8 = 420, U.V7 = 430, U.V6 = 440, U.V5 = 450, U.V4 = 460, U.V3 = 470, U.V2 = 480, U.V1 = 490, U.V0 = 500, U.R3MIX = 1e3, U.STANDARD = 1001, U.EXTREME = 1002, U.INSANE = 1003, U.STANDARD_FAST = 1004, U.EXTREME_FAST = 1005, U.MEDIUM = 1006, U.MEDIUM_FAST = 1007; + var w, R, g, S, M; + U.LAME_MAXMP3BUFFER = 147456; + var A, + B, + k, + y = new G(); + function T() { this.lowerlimit = 0; } - function s(e, t) { + function n(e, t) { this.lowpass = t; } - this.enc = new Ae(), this.setModules = function (e, t, a, n, s, r, i, o, _) { - T = e, E = t, u = a, h = n, b = s, p = r, m = o, this.enc.setModules(E, v, h, p); + this.enc = new Pe(), this.setModules = function (e, t, a, s, n, r, i, o, _) { + w = e, R = t, g = a, S = s, M = n, A = r, B = o, k = _, this.enc.setModules(R, y, S, A); }; - var I = 4294479419; - function g(e, t) { - var a = [new s(8, 2e3), new s(16, 3700), new s(24, 3900), new s(32, 5500), new s(40, 7e3), new s(48, 7500), new s(56, 1e4), new s(64, 11e3), new s(80, 13500), new s(96, 15100), new s(112, 15600), new s(128, 17e3), new s(160, 17500), new s(192, 18600), new s(224, 19400), new s(256, 19700), new s(320, 20500)], - n = C.nearestBitrateFullIndex(t); - e.lowerlimit = a[n].lowpass; + var x = 4294479419; + function E(e) { + return 1 < e ? 0 : e <= 0 ? 1 : Math.cos(Math.PI / 2 * e); } - function L(e) { - var t = Ae.BLKSIZE + e.framesize - Ae.FFTOFFSET; + function P(e, t) { + switch (e) { + case 44100: + return t.version = 1, 0; + case 48e3: + return t.version = 1; + case 32e3: + return t.version = 1, 2; + case 22050: + return t.version = 0; + case 24e3: + return t.version = 0, 1; + case 16e3: + return t.version = 0, 2; + case 11025: + return t.version = 0; + case 12e3: + return t.version = 0, 1; + case 8e3: + return t.version = 0, 2; + default: + return t.version = 0, -1; + } + } + function L(e, t, a) { + a < 16e3 && (t = 2); + for (var s = F.bitrate_table[t][1], n = 2; n <= 14; n++) 0 < F.bitrate_table[t][n] && Math.abs(F.bitrate_table[t][n] - e) < Math.abs(s - e) && (s = F.bitrate_table[t][n]); + return s; + } + function I(e, t, a) { + a < 16e3 && (t = 2); + for (var s = 0; s <= 14; s++) if (0 < F.bitrate_table[t][s] && F.bitrate_table[t][s] == e) return s; + return -1; + } + function H(e, t) { + var a = [new n(8, 2e3), new n(16, 3700), new n(24, 3900), new n(32, 5500), new n(40, 7e3), new n(48, 7500), new n(56, 1e4), new n(64, 11e3), new n(80, 13500), new n(96, 15100), new n(112, 15600), new n(128, 17e3), new n(160, 17500), new n(192, 18600), new n(224, 19400), new n(256, 19700), new n(320, 20500)], + s = o.nearestBitrateFullIndex(t); + e.lowerlimit = a[s].lowpass; + } + function C(e) { + var t = Pe.BLKSIZE + e.framesize - Pe.FFTOFFSET; return t = Math.max(t, 512 + e.framesize - 32); } - function P() { + function V(e, t, a, s, n, r) { + var i = o.enc.lame_encode_mp3_frame(e, t, a, s, n, r); + return e.frameNum++, i; + } + function O() { this.n_in = 0, this.n_out = 0; } - function H(e, t, a, n, s, r) { + function f() { + this.num_used = 0; + } + function N(e, t, a) { + var s = Math.PI * t; + (e /= a) < 0 && (e = 0), 1 < e && (e = 1); + var n = e - .5, + r = .42 - .5 * Math.cos(2 * e * Math.PI) + .08 * Math.cos(4 * e * Math.PI); + return Math.abs(n) < 1e-9 ? s / Math.PI : r * Math.sin(a * s * n) / (Math.PI * a * n); + } + function c(e, t, a, s, n, r, i, o, _) { + var l, + f, + c = e.internal_flags, + h = 0, + u = e.out_samplerate / function e(t, a) { + return 0 != a ? e(a, t % a) : t; + }(e.out_samplerate, e.in_samplerate); + Z.BPC < u && (u = Z.BPC); + var m = Math.abs(c.resample_ratio - Math.floor(.5 + c.resample_ratio)) < 1e-4 ? 1 : 0, + p = 1 / c.resample_ratio; + 1 < p && (p = 1); + var b = 31; + 0 == b % 2 && --b; + var v = (b += m) + 1; + if (0 == c.fill_buffer_resample_init) { + for (c.inbuf_old[0] = Be(v), c.inbuf_old[1] = Be(v), l = 0; l <= 2 * u; ++l) c.blackfilt[l] = Be(v); + for (c.itime[0] = 0, h = c.itime[1] = 0; h <= 2 * u; h++) { + var d = 0, + g = (h - u) / (2 * u); + for (l = 0; l <= b; l++) d += c.blackfilt[h][l] = N(l - g, p, b); + for (l = 0; l <= b; l++) c.blackfilt[h][l] /= d; + } + c.fill_buffer_resample_init = 1; + } + var S = c.inbuf_old[_]; + for (f = 0; f < s; f++) { + var M, w; + if (M = f * c.resample_ratio, i <= b + (h = 0 | Math.floor(M - c.itime[_])) - b / 2) break; + g = M - c.itime[_] - (h + b % 2 * .5); + w = 0 | Math.floor(2 * g * u + u + .5); + var R = 0; + for (l = 0; l <= b; ++l) { + var A = l + h - b / 2; + R += (A < 0 ? S[v + A] : n[r + A]) * c.blackfilt[w][l]; + } + t[a + f] = R; + } + if (o.num_used = Math.min(i, b + h - b / 2), c.itime[_] += o.num_used - f * c.resample_ratio, o.num_used >= v) for (l = 0; l < v; l++) S[l] = n[r + o.num_used + l - v];else { + var B = v - o.num_used; + for (l = 0; l < B; ++l) S[l] = S[l + o.num_used]; + for (h = 0; l < v; ++l, ++h) S[l] = n[r + h]; + } + return f; + } + function D(e, t, a, s, n, r) { var i = e.internal_flags; - if (i.resample_ratio < .9999 || 1.0001 < i.resample_ratio) me();else { - r.n_out = Math.min(e.framesize, s), r.n_in = r.n_out; - for (var o = 0; o < r.n_out; ++o) t[0][i.mf_size + o] = a[0][n + o], 2 == i.channels_out && (t[1][i.mf_size + o] = a[1][n + o]); + if (i.resample_ratio < .9999 || 1.0001 < i.resample_ratio) for (var o = 0; o < i.channels_out; o++) { + var _ = new f(); + r.n_out = c(e, t[o], i.mf_size, e.framesize, a[o], s, n, _, o), r.n_in = _.num_used; + } else { + r.n_out = Math.min(e.framesize, n), r.n_in = r.n_out; + for (var l = 0; l < r.n_out; ++l) t[0][i.mf_size + l] = a[0][s + l], 2 == i.channels_out && (t[1][i.mf_size + l] = a[1][s + l]); } } this.lame_init = function () { var e, t, a = new function () { - this.class_id = 0, this.num_samples = 0, this.num_channels = 0, this.in_samplerate = 0, this.out_samplerate = 0, this.scale = 0, this.scale_left = 0, this.scale_right = 0, this.analysis = !1, this.bWriteVbrTag = !1, this.decode_only = !1, this.quality = 0, this.mode = ye.STEREO, this.force_ms = !1, this.free_format = !1, this.findReplayGain = !1, this.decode_on_the_fly = !1, this.write_id3tag_automatic = !1, this.brate = 0, this.compression_ratio = 0, this.copyright = 0, this.original = 0, this.extension = 0, this.emphasis = 0, this.error_protection = 0, this.strict_ISO = !1, this.disable_reservoir = !1, this.quant_comp = 0, this.quant_comp_short = 0, this.experimentalY = !1, this.experimentalZ = 0, this.exp_nspsytune = 0, this.preset = 0, this.VBR = null, this.VBR_q_frac = 0, this.VBR_q = 0, this.VBR_mean_bitrate_kbps = 0, this.VBR_min_bitrate_kbps = 0, this.VBR_max_bitrate_kbps = 0, this.VBR_hard_min = 0, this.lowpassfreq = 0, this.highpassfreq = 0, this.lowpasswidth = 0, this.highpasswidth = 0, this.maskingadjust = 0, this.maskingadjust_short = 0, this.ATHonly = !1, this.ATHshort = !1, this.noATH = !1, this.ATHtype = 0, this.ATHcurve = 0, this.ATHlower = 0, this.athaa_type = 0, this.athaa_loudapprox = 0, this.athaa_sensitivity = 0, this.short_blocks = null, this.useTemporal = !1, this.interChRatio = 0, this.msfix = 0, this.tune = !1, this.tune_value_a = 0, this.version = 0, this.encoder_delay = 0, this.encoder_padding = 0, this.framesize = 0, this.frameNum = 0, this.lame_allocated_gfp = 0, this.internal_flags = null; - }(), - n = ((e = a).class_id = I, t = e.internal_flags = new j(), e.mode = ye.NOT_SET, e.original = 1, e.in_samplerate = 44100, e.num_channels = 2, e.num_samples = -1, e.bWriteVbrTag = !0, e.quality = -1, e.short_blocks = null, t.subblock_gain = -1, e.lowpassfreq = 0, e.highpassfreq = 0, e.lowpasswidth = -1, e.highpasswidth = -1, e.VBR = Me.vbr_off, e.VBR_q = 4, e.ATHcurve = -1, e.VBR_mean_bitrate_kbps = 128, e.VBR_min_bitrate_kbps = 0, e.VBR_max_bitrate_kbps = 0, e.VBR_hard_min = 0, t.VBR_min_bitrate = 1, t.VBR_max_bitrate = 13, e.quant_comp = -1, e.quant_comp_short = -1, e.msfix = -1, t.resample_ratio = 1, t.OldValue[0] = 180, t.OldValue[1] = 180, t.CurrentStep[0] = 4, t.CurrentStep[1] = 4, t.masking_lower = 1, t.nsPsy.attackthre = -1, t.nsPsy.attackthre_s = -1, e.scale = -1, e.athaa_type = -1, e.ATHtype = -1, e.athaa_loudapprox = -1, e.athaa_sensitivity = 0, e.useTemporal = null, e.interChRatio = -1, t.mf_samples_to_encode = Ae.ENCDELAY + Ae.POSTDELAY, e.encoder_padding = 0, t.mf_size = Ae.ENCDELAY - Ae.MDCTDELAY, e.findReplayGain = !1, e.decode_on_the_fly = !1, t.decode_on_the_fly = !1, t.findReplayGain = !1, t.findPeakSample = !1, t.RadioGain = 0, t.AudiophileGain = 0, t.noclipGainChange = 0, t.noclipScale = -1, e.preset = 0, e.write_id3tag_automatic = !0, 0); - return 0 != n ? null : (a.lame_allocated_gfp = 1, a); + this.class_id = 0, this.num_samples = 0, this.num_channels = 0, this.in_samplerate = 0, this.out_samplerate = 0, this.scale = 0, this.scale_left = 0, this.scale_right = 0, this.analysis = !1, this.bWriteVbrTag = !1, this.decode_only = !1, this.quality = 0, this.mode = Ee.STEREO, this.force_ms = !1, this.free_format = !1, this.findReplayGain = !1, this.decode_on_the_fly = !1, this.write_id3tag_automatic = !1, this.brate = 0, this.compression_ratio = 0, this.copyright = 0, this.original = 0, this.extension = 0, this.emphasis = 0, this.error_protection = 0, this.strict_ISO = !1, this.disable_reservoir = !1, this.quant_comp = 0, this.quant_comp_short = 0, this.experimentalY = !1, this.experimentalZ = 0, this.exp_nspsytune = 0, this.preset = 0, this.VBR = null, this.VBR_q_frac = 0, this.VBR_q = 0, this.VBR_mean_bitrate_kbps = 0, this.VBR_min_bitrate_kbps = 0, this.VBR_max_bitrate_kbps = 0, this.VBR_hard_min = 0, this.lowpassfreq = 0, this.highpassfreq = 0, this.lowpasswidth = 0, this.highpasswidth = 0, this.maskingadjust = 0, this.maskingadjust_short = 0, this.ATHonly = !1, this.ATHshort = !1, this.noATH = !1, this.ATHtype = 0, this.ATHcurve = 0, this.ATHlower = 0, this.athaa_type = 0, this.athaa_loudapprox = 0, this.athaa_sensitivity = 0, this.short_blocks = null, this.useTemporal = !1, this.interChRatio = 0, this.msfix = 0, this.tune = !1, this.tune_value_a = 0, this.version = 0, this.encoder_delay = 0, this.encoder_padding = 0, this.framesize = 0, this.frameNum = 0, this.lame_allocated_gfp = 0, this.internal_flags = null; + }(); + return 0 != ((e = a).class_id = x, t = e.internal_flags = new Z(), e.mode = Ee.NOT_SET, e.original = 1, e.in_samplerate = 44100, e.num_channels = 2, e.num_samples = -1, e.bWriteVbrTag = !0, e.quality = -1, e.short_blocks = null, t.subblock_gain = -1, e.lowpassfreq = 0, e.highpassfreq = 0, e.lowpasswidth = -1, e.highpasswidth = -1, e.VBR = xe.vbr_off, e.VBR_q = 4, e.ATHcurve = -1, e.VBR_mean_bitrate_kbps = 128, e.VBR_min_bitrate_kbps = 0, e.VBR_max_bitrate_kbps = 0, e.VBR_hard_min = 0, t.VBR_min_bitrate = 1, t.VBR_max_bitrate = 13, e.quant_comp = -1, e.quant_comp_short = -1, e.msfix = -1, t.resample_ratio = 1, t.OldValue[0] = 180, t.OldValue[1] = 180, t.CurrentStep[0] = 4, t.CurrentStep[1] = 4, t.masking_lower = 1, t.nsPsy.attackthre = -1, t.nsPsy.attackthre_s = -1, e.scale = -1, e.athaa_type = -1, e.ATHtype = -1, e.athaa_loudapprox = -1, e.athaa_sensitivity = 0, e.useTemporal = null, e.interChRatio = -1, t.mf_samples_to_encode = Pe.ENCDELAY + Pe.POSTDELAY, e.encoder_padding = 0, t.mf_size = Pe.ENCDELAY - Pe.MDCTDELAY, e.findReplayGain = !1, e.decode_on_the_fly = !1, t.decode_on_the_fly = !1, t.findReplayGain = !1, t.findPeakSample = !1, t.RadioGain = 0, t.AudiophileGain = 0, t.noclipGainChange = 0, t.noclipScale = -1, e.preset = 0, e.write_id3tag_automatic = !0, 0) ? null : (a.lame_allocated_gfp = 1, a); }, this.nearestBitrateFullIndex = function (e) { var t = [8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320], a = 0, - n = 0, s = 0, + n = 0, r = 0; - r = t[16], n = t[s = 16], a = 16; + r = t[16], s = t[n = 16], a = 16; for (var i = 0; i < 16; i++) if (Math.max(e, t[i + 1]) != e) { - r = t[i + 1], s = i + 1, n = t[i], a = i; + r = t[i + 1], n = i + 1, s = t[i], a = i; break; } - return e - n < r - e ? a : s; + return e - s < r - e ? a : n; }, this.lame_init_params = function (e) { var t, a, + s, n = e.internal_flags; if (n.Class_ID = 0, null == n.ATH && (n.ATH = new function () { - this.useAdjust = 0, this.aaSensitivityP = 0, this.adjust = 0, this.adjustLimit = 0, this.decay = 0, this.floor = 0, this.l = de(Ae.SBMAX_l), this.s = de(Ae.SBMAX_s), this.psfb21 = de(Ae.PSFB21), this.psfb12 = de(Ae.PSFB12), this.cb_l = de(Ae.CBANDS), this.cb_s = de(Ae.CBANDS), this.eql_w = de(Ae.BLKSIZE / 2); + this.useAdjust = 0, this.aaSensitivityP = 0, this.adjust = 0, this.adjustLimit = 0, this.decay = 0, this.floor = 0, this.l = Be(Pe.SBMAX_l), this.s = Be(Pe.SBMAX_s), this.psfb21 = Be(Pe.PSFB21), this.psfb12 = Be(Pe.PSFB12), this.cb_l = Be(Pe.CBANDS), this.cb_s = Be(Pe.CBANDS), this.eql_w = Be(Pe.BLKSIZE / 2); }()), null == n.PSY && (n.PSY = new function () { - this.mask_adjust = 0, this.mask_adjust_short = 0, this.bo_l_weight = de(Ae.SBMAX_l), this.bo_s_weight = de(Ae.SBMAX_s); - }()), null == n.rgdata && (n.rgdata = new function () {}()), n.channels_in = e.num_channels, 1 == n.channels_in && (e.mode = ye.MONO), n.channels_out = e.mode == ye.MONO ? 1 : 2, n.mode_ext = Ae.MPG_MD_MS_LR, e.mode == ye.MONO && (e.force_ms = !1), e.VBR == Me.vbr_off && 128 != e.VBR_mean_bitrate_kbps && 0 == e.brate && (e.brate = e.VBR_mean_bitrate_kbps), e.VBR == Me.vbr_off || e.VBR == Me.vbr_mtrh || e.VBR == Me.vbr_mt || (e.free_format = !1), e.VBR == Me.vbr_off && 0 == e.brate && me(), e.VBR == Me.vbr_off && 0 < e.compression_ratio && me(), 0 != e.out_samplerate && (e.out_samplerate < 16e3 ? (e.VBR_mean_bitrate_kbps = Math.max(e.VBR_mean_bitrate_kbps, 8), e.VBR_mean_bitrate_kbps = Math.min(e.VBR_mean_bitrate_kbps, 64)) : e.out_samplerate < 32e3 ? (e.VBR_mean_bitrate_kbps = Math.max(e.VBR_mean_bitrate_kbps, 8), e.VBR_mean_bitrate_kbps = Math.min(e.VBR_mean_bitrate_kbps, 160)) : (e.VBR_mean_bitrate_kbps = Math.max(e.VBR_mean_bitrate_kbps, 32), e.VBR_mean_bitrate_kbps = Math.min(e.VBR_mean_bitrate_kbps, 320))), 0 == e.lowpassfreq) { - var s = 16e3; + this.mask_adjust = 0, this.mask_adjust_short = 0, this.bo_l_weight = Be(Pe.SBMAX_l), this.bo_s_weight = Be(Pe.SBMAX_s); + }()), null == n.rgdata && (n.rgdata = new function () {}()), n.channels_in = e.num_channels, 1 == n.channels_in && (e.mode = Ee.MONO), n.channels_out = e.mode == Ee.MONO ? 1 : 2, n.mode_ext = Pe.MPG_MD_MS_LR, e.mode == Ee.MONO && (e.force_ms = !1), e.VBR == xe.vbr_off && 128 != e.VBR_mean_bitrate_kbps && 0 == e.brate && (e.brate = e.VBR_mean_bitrate_kbps), e.VBR == xe.vbr_off || e.VBR == xe.vbr_mtrh || e.VBR == xe.vbr_mt || (e.free_format = !1), e.VBR == xe.vbr_off && 0 == e.brate && q.EQ(e.compression_ratio, 0) && (e.compression_ratio = 11.025), e.VBR == xe.vbr_off && 0 < e.compression_ratio && (0 == e.out_samplerate && (e.out_samplerate = map2MP3Frequency(int(.97 * e.in_samplerate))), e.brate = 0 | 16 * e.out_samplerate * n.channels_out / (1e3 * e.compression_ratio), n.samplerate_index = P(e.out_samplerate, e), e.free_format || (e.brate = L(e.brate, e.version, e.out_samplerate))), 0 != e.out_samplerate && (e.out_samplerate < 16e3 ? (e.VBR_mean_bitrate_kbps = Math.max(e.VBR_mean_bitrate_kbps, 8), e.VBR_mean_bitrate_kbps = Math.min(e.VBR_mean_bitrate_kbps, 64)) : e.out_samplerate < 32e3 ? (e.VBR_mean_bitrate_kbps = Math.max(e.VBR_mean_bitrate_kbps, 8), e.VBR_mean_bitrate_kbps = Math.min(e.VBR_mean_bitrate_kbps, 160)) : (e.VBR_mean_bitrate_kbps = Math.max(e.VBR_mean_bitrate_kbps, 32), e.VBR_mean_bitrate_kbps = Math.min(e.VBR_mean_bitrate_kbps, 320))), 0 == e.lowpassfreq) { + var r = 16e3; switch (e.VBR) { - case Me.vbr_off: - var r = new d(); - g(r, e.brate), s = r.lowerlimit; + case xe.vbr_off: + H(i = new T(), e.brate), r = i.lowerlimit; break; - case Me.vbr_abr: - var r = new d(); - g(r, e.VBR_mean_bitrate_kbps), s = r.lowerlimit; + case xe.vbr_abr: + var i; + H(i = new T(), e.VBR_mean_bitrate_kbps), r = i.lowerlimit; + break; + case xe.vbr_rh: + var o = [19500, 19e3, 18600, 18e3, 17500, 16e3, 15600, 14900, 12500, 1e4, 3950]; + if (0 <= e.VBR_q && e.VBR_q <= 9) { + var _ = o[e.VBR_q], + l = o[e.VBR_q + 1], + f = e.VBR_q_frac; + r = linear_int(_, l, f); + } else r = 19500; break; - case Me.vbr_rh: - me(); default: - me(); + o = [19500, 19e3, 18500, 18e3, 17500, 16500, 15500, 14500, 12500, 9500, 3950]; + if (0 <= e.VBR_q && e.VBR_q <= 9) { + _ = o[e.VBR_q], l = o[e.VBR_q + 1], f = e.VBR_q_frac; + r = linear_int(_, l, f); + } else r = 19500; } - e.mode != ye.MONO || e.VBR != Me.vbr_off && e.VBR != Me.vbr_abr || (s *= 1.5), e.lowpassfreq = 0 | s; + e.mode != Ee.MONO || e.VBR != xe.vbr_off && e.VBR != xe.vbr_abr || (r *= 1.5), e.lowpassfreq = 0 | r; } - switch (0 == e.out_samplerate && me(), e.lowpassfreq = Math.min(20500, e.lowpassfreq), e.lowpassfreq = Math.min(e.out_samplerate / 2, e.lowpassfreq), e.VBR == Me.vbr_off && (e.compression_ratio = 16 * e.out_samplerate * n.channels_out / (1e3 * e.brate)), e.VBR == Me.vbr_abr && me(), e.bWriteVbrTag || (e.findReplayGain = !1, e.decode_on_the_fly = !1, n.findPeakSample = !1), n.findReplayGain = e.findReplayGain, n.decode_on_the_fly = e.decode_on_the_fly, n.decode_on_the_fly && (n.findPeakSample = !0), n.findReplayGain && me(), n.decode_on_the_fly && !e.decode_only && me(), n.mode_gr = e.out_samplerate <= 24e3 ? 1 : 2, e.framesize = 576 * n.mode_gr, e.encoder_delay = Ae.ENCDELAY, n.resample_ratio = e.in_samplerate / e.out_samplerate, e.VBR) { - case Me.vbr_mt: - case Me.vbr_rh: - case Me.vbr_mtrh: + if (0 == e.out_samplerate && (2 * e.lowpassfreq > e.in_samplerate && (e.lowpassfreq = e.in_samplerate / 2), e.out_samplerate = (t = 0 | e.lowpassfreq, a = e.in_samplerate, s = 44100, 48e3 <= a ? s = 48e3 : 44100 <= a ? s = 44100 : 32e3 <= a ? s = 32e3 : 24e3 <= a ? s = 24e3 : 22050 <= a ? s = 22050 : 16e3 <= a ? s = 16e3 : 12e3 <= a ? s = 12e3 : 11025 <= a ? s = 11025 : 8e3 <= a && (s = 8e3), -1 == t ? s : (t <= 15960 && (s = 44100), t <= 15250 && (s = 32e3), t <= 11220 && (s = 24e3), t <= 9970 && (s = 22050), t <= 7230 && (s = 16e3), t <= 5420 && (s = 12e3), t <= 4510 && (s = 11025), t <= 3970 && (s = 8e3), a < s ? 44100 < a ? 48e3 : 32e3 < a ? 44100 : 24e3 < a ? 32e3 : 22050 < a ? 24e3 : 16e3 < a ? 22050 : 12e3 < a ? 16e3 : 11025 < a ? 12e3 : 8e3 < a ? 11025 : 8e3 : s))), e.lowpassfreq = Math.min(20500, e.lowpassfreq), e.lowpassfreq = Math.min(e.out_samplerate / 2, e.lowpassfreq), e.VBR == xe.vbr_off && (e.compression_ratio = 16 * e.out_samplerate * n.channels_out / (1e3 * e.brate)), e.VBR == xe.vbr_abr && (e.compression_ratio = 16 * e.out_samplerate * n.channels_out / (1e3 * e.VBR_mean_bitrate_kbps)), e.bWriteVbrTag || (e.findReplayGain = !1, e.decode_on_the_fly = !1, n.findPeakSample = !1), n.findReplayGain = e.findReplayGain, n.decode_on_the_fly = e.decode_on_the_fly, n.decode_on_the_fly && (n.findPeakSample = !0), n.findReplayGain && w.InitGainAnalysis(n.rgdata, e.out_samplerate) == X.INIT_GAIN_ANALYSIS_ERROR) return e.internal_flags = null, -6; + switch (n.decode_on_the_fly && !e.decode_only && (null != n.hip && k.hip_decode_exit(n.hip), n.hip = k.hip_decode_init()), n.mode_gr = e.out_samplerate <= 24e3 ? 1 : 2, e.framesize = 576 * n.mode_gr, e.encoder_delay = Pe.ENCDELAY, n.resample_ratio = e.in_samplerate / e.out_samplerate, e.VBR) { + case xe.vbr_mt: + case xe.vbr_rh: + case xe.vbr_mtrh: e.compression_ratio = [5.7, 6.5, 7.3, 8.2, 10, 11.9, 13, 14, 15, 16.5][e.VBR_q]; break; - case Me.vbr_abr: + case xe.vbr_abr: e.compression_ratio = 16 * e.out_samplerate * n.channels_out / (1e3 * e.VBR_mean_bitrate_kbps); break; default: e.compression_ratio = 16 * e.out_samplerate * n.channels_out / (1e3 * e.brate); } - e.mode == ye.NOT_SET && (e.mode = ye.JOINT_STEREO), 0 < e.highpassfreq ? me() : (n.highpass1 = 0, n.highpass2 = 0), 0 < e.lowpassfreq ? (n.lowpass2 = 2 * e.lowpassfreq, 0 <= e.lowpasswidth ? me() : n.lowpass1 = 2 * e.lowpassfreq, n.lowpass1 /= e.out_samplerate, n.lowpass2 /= e.out_samplerate) : me(), function (e) { - var t, - a = e.internal_flags, - n = 32; - if (0 < a.lowpass1) { - for (var s = 999, r = 0; r <= 31; r++) { - var i = r / 31; - i >= a.lowpass2 && (n = Math.min(n, r)), a.lowpass1 < i && i < a.lowpass2 && (s = Math.min(s, r)); - } - a.lowpass1 = 999 == s ? (n - .75) / 31 : (s - .75) / 31, a.lowpass2 = n / 31; + if (e.mode == Ee.NOT_SET && (e.mode = Ee.JOINT_STEREO), 0 < e.highpassfreq ? (n.highpass1 = 2 * e.highpassfreq, 0 <= e.highpasswidth ? n.highpass2 = 2 * (e.highpassfreq + e.highpasswidth) : n.highpass2 = 2 * e.highpassfreq, n.highpass1 /= e.out_samplerate, n.highpass2 /= e.out_samplerate) : (n.highpass1 = 0, n.highpass2 = 0), 0 < e.lowpassfreq ? (n.lowpass2 = 2 * e.lowpassfreq, 0 <= e.lowpasswidth ? (n.lowpass1 = 2 * (e.lowpassfreq - e.lowpasswidth), n.lowpass1 < 0 && (n.lowpass1 = 0)) : n.lowpass1 = 2 * e.lowpassfreq, n.lowpass1 /= e.out_samplerate, n.lowpass2 /= e.out_samplerate) : (n.lowpass1 = 0, n.lowpass2 = 0), function (e) { + var t = e.internal_flags, + a = 32, + s = -1; + if (0 < t.lowpass1) { + for (var n = 999, r = 0; r <= 31; r++) (l = r / 31) >= t.lowpass2 && (a = Math.min(a, r)), t.lowpass1 < l && l < t.lowpass2 && (n = Math.min(n, r)); + t.lowpass1 = 999 == n ? (a - .75) / 31 : (n - .75) / 31, t.lowpass2 = a / 31; } - 0 < a.highpass2 && me(), 0 < a.highpass2 && me(); - for (var r = 0; r < 32; r++) { + if (0 < t.highpass2 && t.highpass2 < .75 / 31 * .9 && (t.highpass1 = 0, t.highpass2 = 0, $.err.println("Warning: highpass filter disabled. highpass frequency too small\n")), 0 < t.highpass2) { + var i = -1; + for (r = 0; r <= 31; r++) (l = r / 31) <= t.highpass1 && (s = Math.max(s, r)), t.highpass1 < l && l < t.highpass2 && (i = Math.max(i, r)); + t.highpass1 = s / 31, t.highpass2 = -1 == i ? (s + .75) / 31 : (i + .75) / 31; + } + for (r = 0; r < 32; r++) { var o, _, - i = r / 31; - a.highpass2 > a.highpass1 ? me() : o = 1, _ = a.lowpass2 > a.lowpass1 ? 1 < (t = (i - a.lowpass1) / (a.lowpass2 - a.lowpass1 + 1e-20)) ? 0 : t <= 0 ? 1 : Math.cos(Math.PI / 2 * t) : 1, a.amp_filter[r] = o * _; + l = r / 31; + o = t.highpass2 > t.highpass1 ? E((t.highpass2 - l) / (t.highpass2 - t.highpass1 + 1e-20)) : 1, _ = t.lowpass2 > t.lowpass1 ? E((l - t.lowpass1) / (t.lowpass2 - t.lowpass1 + 1e-20)) : 1, t.amp_filter[r] = o * _; } - }(e), n.samplerate_index = function (e, t) { - switch (e) { - case 44100: - return t.version = 1, 0; - case 48e3: - return t.version = 1; - case 32e3: - return t.version = 1, 2; - case 22050: - return t.version = 0; - case 24e3: - return t.version = 0, 1; - case 16e3: - return t.version = 0, 2; - case 11025: - return t.version = 0; - case 12e3: - return t.version = 0, 1; - case 8e3: - return t.version = 0, 2; - default: - return t.version = 0, -1; - } - }(e.out_samplerate, e), n.samplerate_index < 0 && me(), e.VBR == Me.vbr_off ? e.free_format ? n.bitrate_index = 0 : (e.brate = function (e, t, a) { - a < 16e3 && (t = 2); - for (var n = k.bitrate_table[t][1], s = 2; s <= 14; s++) 0 < k.bitrate_table[t][s] && Math.abs(k.bitrate_table[t][s] - e) < Math.abs(n - e) && (n = k.bitrate_table[t][s]); - return n; - }(e.brate, e.version, e.out_samplerate), n.bitrate_index = function (e, t, a) { - a < 16e3 && (t = 2); - for (var n = 0; n <= 14; n++) if (0 < k.bitrate_table[t][n] && k.bitrate_table[t][n] == e) return n; - return -1; - }(e.brate, e.version, e.out_samplerate), n.bitrate_index <= 0 && me()) : n.bitrate_index = 1, e.analysis && (e.bWriteVbrTag = !1), null != n.pinfo && (e.bWriteVbrTag = !1), E.init_bit_stream_w(n); - for (var i, o = n.samplerate_index + 3 * e.version + 6 * (e.out_samplerate < 16e3 ? 1 : 0), _ = 0; _ < Ae.SBMAX_l + 1; _++) n.scalefac_band.l[_] = h.sfBandIndex[o].l[_]; - for (var _ = 0; _ < Ae.PSFB21 + 1; _++) { - var l = (n.scalefac_band.l[22] - n.scalefac_band.l[21]) / Ae.PSFB21, - f = n.scalefac_band.l[21] + _ * l; - n.scalefac_band.psfb21[_] = f; + }(e), n.samplerate_index = P(e.out_samplerate, e), n.samplerate_index < 0) return e.internal_flags = null, -1; + if (e.VBR == xe.vbr_off) { + if (e.free_format) n.bitrate_index = 0;else if (e.brate = L(e.brate, e.version, e.out_samplerate), n.bitrate_index = I(e.brate, e.version, e.out_samplerate), n.bitrate_index <= 0) return e.internal_flags = null, -1; + } else n.bitrate_index = 1; + e.analysis && (e.bWriteVbrTag = !1), null != n.pinfo && (e.bWriteVbrTag = !1), R.init_bit_stream_w(n); + for (var c, h, u, m = n.samplerate_index + 3 * e.version + 6 * (e.out_samplerate < 16e3 ? 1 : 0), p = 0; p < Pe.SBMAX_l + 1; p++) n.scalefac_band.l[p] = S.sfBandIndex[m].l[p]; + for (p = 0; p < Pe.PSFB21 + 1; p++) { + var b = (n.scalefac_band.l[22] - n.scalefac_band.l[21]) / Pe.PSFB21, + v = n.scalefac_band.l[21] + p * b; + n.scalefac_band.psfb21[p] = v; } - n.scalefac_band.psfb21[Ae.PSFB21] = 576; - for (var _ = 0; _ < Ae.SBMAX_s + 1; _++) n.scalefac_band.s[_] = h.sfBandIndex[o].s[_]; - for (var _ = 0; _ < Ae.PSFB12 + 1; _++) { - var l = (n.scalefac_band.s[13] - n.scalefac_band.s[12]) / Ae.PSFB12, - f = n.scalefac_band.s[12] + _ * l; - n.scalefac_band.psfb12[_] = f; + n.scalefac_band.psfb21[Pe.PSFB21] = 576; + for (p = 0; p < Pe.SBMAX_s + 1; p++) n.scalefac_band.s[p] = S.sfBandIndex[m].s[p]; + for (p = 0; p < Pe.PSFB12 + 1; p++) { + b = (n.scalefac_band.s[13] - n.scalefac_band.s[12]) / Pe.PSFB12, v = n.scalefac_band.s[12] + p * b; + n.scalefac_band.psfb12[p] = v; } - for (n.scalefac_band.psfb12[Ae.PSFB12] = 192, 1 == e.version ? n.sideinfo_len = 1 == n.channels_out ? 21 : 36 : n.sideinfo_len = 1 == n.channels_out ? 13 : 21, e.error_protection && (n.sideinfo_len += 2), a = void 0, a = (t = e).internal_flags, t.frameNum = 0, t.write_id3tag_automatic && m.id3tag_write_v2(t), a.bitrate_stereoMode_Hist = w([16, 5]), a.bitrate_blockType_Hist = w([16, 6]), a.PeakSample = 0, t.bWriteVbrTag && p.InitVbrTag(t), n.Class_ID = I, i = 0; i < 19; i++) n.nsPsy.pefirbuf[i] = 700 * n.mode_gr * n.channels_out; + for (n.scalefac_band.psfb12[Pe.PSFB12] = 192, 1 == e.version ? n.sideinfo_len = 1 == n.channels_out ? 21 : 36 : n.sideinfo_len = 1 == n.channels_out ? 13 : 21, e.error_protection && (n.sideinfo_len += 2), h = (c = e).internal_flags, c.frameNum = 0, c.write_id3tag_automatic && B.id3tag_write_v2(c), h.bitrate_stereoMode_Hist = Y([16, 5]), h.bitrate_blockType_Hist = Y([16, 6]), h.PeakSample = 0, c.bWriteVbrTag && A.InitVbrTag(c), n.Class_ID = x, u = 0; u < 19; u++) n.nsPsy.pefirbuf[u] = 700 * n.mode_gr * n.channels_out; switch (-1 == e.ATHtype && (e.ATHtype = 4), e.VBR) { - case Me.vbr_mt: - e.VBR = Me.vbr_mtrh; - case Me.vbr_mtrh: - null == e.useTemporal && (e.useTemporal = !1), u.apply_preset(e, 500 - 10 * e.VBR_q, 0), e.quality < 0 && (e.quality = LAME_DEFAULT_QUALITY), e.quality < 5 && (e.quality = 0), 5 < e.quality && (e.quality = 5), n.PSY.mask_adjust = e.maskingadjust, n.PSY.mask_adjust_short = e.maskingadjust_short, e.experimentalY ? n.sfb21_extra = !1 : n.sfb21_extra = 44e3 < e.out_samplerate, n.iteration_loop = new VBRNewIterationLoop(b); + case xe.vbr_mt: + e.VBR = xe.vbr_mtrh; + case xe.vbr_mtrh: + null == e.useTemporal && (e.useTemporal = !1), g.apply_preset(e, 500 - 10 * e.VBR_q, 0), e.quality < 0 && (e.quality = LAME_DEFAULT_QUALITY), e.quality < 5 && (e.quality = 0), 5 < e.quality && (e.quality = 5), n.PSY.mask_adjust = e.maskingadjust, n.PSY.mask_adjust_short = e.maskingadjust_short, e.experimentalY ? n.sfb21_extra = !1 : n.sfb21_extra = 44e3 < e.out_samplerate, n.iteration_loop = new VBRNewIterationLoop(M); break; - case Me.vbr_rh: - u.apply_preset(e, 500 - 10 * e.VBR_q, 0), n.PSY.mask_adjust = e.maskingadjust, n.PSY.mask_adjust_short = e.maskingadjust_short, e.experimentalY ? n.sfb21_extra = !1 : n.sfb21_extra = 44e3 < e.out_samplerate, 6 < e.quality && (e.quality = 6), e.quality < 0 && (e.quality = LAME_DEFAULT_QUALITY), n.iteration_loop = new VBROldIterationLoop(b); + case xe.vbr_rh: + g.apply_preset(e, 500 - 10 * e.VBR_q, 0), n.PSY.mask_adjust = e.maskingadjust, n.PSY.mask_adjust_short = e.maskingadjust_short, e.experimentalY ? n.sfb21_extra = !1 : n.sfb21_extra = 44e3 < e.out_samplerate, 6 < e.quality && (e.quality = 6), e.quality < 0 && (e.quality = LAME_DEFAULT_QUALITY), n.iteration_loop = new VBROldIterationLoop(M); break; default: - var c; - n.sfb21_extra = !1, e.quality < 0 && (e.quality = LAME_DEFAULT_QUALITY), (c = e.VBR) == Me.vbr_off && (e.VBR_mean_bitrate_kbps = e.brate), u.apply_preset(e, e.VBR_mean_bitrate_kbps, 0), e.VBR = c, n.PSY.mask_adjust = e.maskingadjust, n.PSY.mask_adjust_short = e.maskingadjust_short, c == Me.vbr_off ? n.iteration_loop = new function (e) { + var d; + n.sfb21_extra = !1, e.quality < 0 && (e.quality = LAME_DEFAULT_QUALITY), (d = e.VBR) == xe.vbr_off && (e.VBR_mean_bitrate_kbps = e.brate), g.apply_preset(e, e.VBR_mean_bitrate_kbps, 0), e.VBR = d, n.PSY.mask_adjust = e.maskingadjust, n.PSY.mask_adjust_short = e.maskingadjust_short, n.iteration_loop = d == xe.vbr_off ? new function (e) { var t = e; - this.quantize = t, this.iteration_loop = function (e, t, a, n) { - var s = e.internal_flags, - r = de(F.SFBMAX), - i = de(576), - o = ve(2), - _ = 0, - l = s.l3_side, - f = new R(_); - this.quantize.rv.ResvFrameBegin(e, f), _ = f.bits; - for (var c = 0; c < s.mode_gr; c++) { - this.quantize.qupvt.on_pe(e, t, o, _, c, c), s.mode_ext == Ae.MPG_MD_MS_LR && me(); - for (var u = 0; u < s.channels_out; u++) { - var h, - b, - p = l.tt[c][u]; - p.block_type != Ae.SHORT_TYPE ? (h = 0, b = s.PSY.mask_adjust - h) : (h = 0, b = s.PSY.mask_adjust_short - h), s.masking_lower = Math.pow(10, .1 * b), this.quantize.init_outer_loop(s, p), this.quantize.init_xrpow(s, p, i) && (this.quantize.qupvt.calc_xmin(e, n[c][u], p, r), this.quantize.outer_loop(e, p, r, i, u, o[u])), this.quantize.iteration_finish_one(s, c, u); + this.quantize = t, this.iteration_loop = function (e, t, a, s) { + var n, + r = e.internal_flags, + i = Be(z.SFBMAX), + o = Be(576), + _ = Ae(2), + l = 0, + f = r.l3_side, + c = new j(l); + this.quantize.rv.ResvFrameBegin(e, c), l = c.bits; + for (var h = 0; h < r.mode_gr; h++) { + n = this.quantize.qupvt.on_pe(e, t, _, l, h, h), r.mode_ext == Pe.MPG_MD_MS_LR && (this.quantize.ms_convert(r.l3_side, h), this.quantize.qupvt.reduce_side(_, a[h], l, n)); + for (var u = 0; u < r.channels_out; u++) { + var m, + p, + b = f.tt[h][u]; + b.block_type != Pe.SHORT_TYPE ? (m = 0, p = r.PSY.mask_adjust - m) : (m = 0, p = r.PSY.mask_adjust_short - m), r.masking_lower = Math.pow(10, .1 * p), this.quantize.init_outer_loop(r, b), this.quantize.init_xrpow(r, b, o) && (this.quantize.qupvt.calc_xmin(e, s[h][u], b, i), this.quantize.outer_loop(e, b, i, o, u, _[u])), this.quantize.iteration_finish_one(r, h, u); } } - this.quantize.rv.ResvFrameEnd(s, _); + this.quantize.rv.ResvFrameEnd(r, l); }; - }(b) : me(); + }(M) : new ABRIterationLoop(M); } - return e.VBR != Me.vbr_off && me(), e.tune && me(), function (e) { + if (e.VBR != xe.vbr_off) { + if (n.VBR_min_bitrate = 1, n.VBR_max_bitrate = 14, e.out_samplerate < 16e3 && (n.VBR_max_bitrate = 8), 0 != e.VBR_min_bitrate_kbps && (e.VBR_min_bitrate_kbps = L(e.VBR_min_bitrate_kbps, e.version, e.out_samplerate), n.VBR_min_bitrate = I(e.VBR_min_bitrate_kbps, e.version, e.out_samplerate), n.VBR_min_bitrate < 0)) return -1; + if (0 != e.VBR_max_bitrate_kbps && (e.VBR_max_bitrate_kbps = L(e.VBR_max_bitrate_kbps, e.version, e.out_samplerate), n.VBR_max_bitrate = I(e.VBR_max_bitrate_kbps, e.version, e.out_samplerate), n.VBR_max_bitrate < 0)) return -1; + e.VBR_min_bitrate_kbps = F.bitrate_table[e.version][n.VBR_min_bitrate], e.VBR_max_bitrate_kbps = F.bitrate_table[e.version][n.VBR_max_bitrate], e.VBR_mean_bitrate_kbps = Math.min(F.bitrate_table[e.version][n.VBR_max_bitrate], e.VBR_mean_bitrate_kbps), e.VBR_mean_bitrate_kbps = Math.max(F.bitrate_table[e.version][n.VBR_min_bitrate], e.VBR_mean_bitrate_kbps); + } + return e.tune && (n.PSY.mask_adjust += e.tune_value_a, n.PSY.mask_adjust_short += e.tune_value_a), function (e) { var t = e.internal_flags; switch (e.quality) { default: @@ -15282,229 +15584,252 @@ src: recorder-core.js,engine/mp3.js,engine/mp3-engine.js case 0: t.psymodel = 1, 0 == t.noise_shaping && (t.noise_shaping = 1), 0 == t.substep_shaping && (t.substep_shaping = 2), t.noise_shaping_amp = 2, -(t.noise_shaping_stop = 1) == t.subblock_gain && (t.subblock_gain = 1), t.use_best_huffman = 1, t.full_outer_loop = 0; } - }(e), e.athaa_type < 0 ? n.ATH.useAdjust = 3 : n.ATH.useAdjust = e.athaa_type, n.ATH.aaSensitivityP = Math.pow(10, e.athaa_sensitivity / -10), null == e.short_blocks && (e.short_blocks = Se.short_block_allowed), e.short_blocks != Se.short_block_allowed || e.mode != ye.JOINT_STEREO && e.mode != ye.STEREO || (e.short_blocks = Se.short_block_coupled), e.quant_comp < 0 && (e.quant_comp = 1), e.quant_comp_short < 0 && (e.quant_comp_short = 0), e.msfix < 0 && (e.msfix = 0), e.exp_nspsytune = 1 | e.exp_nspsytune, e.internal_flags.nsPsy.attackthre < 0 && (e.internal_flags.nsPsy.attackthre = X.NSATTACKTHRE), e.internal_flags.nsPsy.attackthre_s < 0 && (e.internal_flags.nsPsy.attackthre_s = X.NSATTACKTHRE_S), e.scale < 0 && (e.scale = 1), e.ATHtype < 0 && (e.ATHtype = 4), e.ATHcurve < 0 && (e.ATHcurve = 4), e.athaa_loudapprox < 0 && (e.athaa_loudapprox = 2), e.interChRatio < 0 && (e.interChRatio = 0), null == e.useTemporal && (e.useTemporal = !0), n.slot_lag = n.frac_SpF = 0, e.VBR == Me.vbr_off && (n.slot_lag = n.frac_SpF = 72e3 * (e.version + 1) * e.brate % e.out_samplerate | 0), h.iteration_init(e), v.psymodel_init(e), 0; - }, this.lame_encode_flush = function (e, t, a, n) { - var s, + }(e), e.athaa_type < 0 ? n.ATH.useAdjust = 3 : n.ATH.useAdjust = e.athaa_type, n.ATH.aaSensitivityP = Math.pow(10, e.athaa_sensitivity / -10), null == e.short_blocks && (e.short_blocks = Te.short_block_allowed), e.short_blocks != Te.short_block_allowed || e.mode != Ee.JOINT_STEREO && e.mode != Ee.STEREO || (e.short_blocks = Te.short_block_coupled), e.quant_comp < 0 && (e.quant_comp = 1), e.quant_comp_short < 0 && (e.quant_comp_short = 0), e.msfix < 0 && (e.msfix = 0), e.exp_nspsytune = 1 | e.exp_nspsytune, e.internal_flags.nsPsy.attackthre < 0 && (e.internal_flags.nsPsy.attackthre = G.NSATTACKTHRE), e.internal_flags.nsPsy.attackthre_s < 0 && (e.internal_flags.nsPsy.attackthre_s = G.NSATTACKTHRE_S), e.scale < 0 && (e.scale = 1), e.ATHtype < 0 && (e.ATHtype = 4), e.ATHcurve < 0 && (e.ATHcurve = 4), e.athaa_loudapprox < 0 && (e.athaa_loudapprox = 2), e.interChRatio < 0 && (e.interChRatio = 0), null == e.useTemporal && (e.useTemporal = !0), n.slot_lag = n.frac_SpF = 0, e.VBR == xe.vbr_off && (n.slot_lag = n.frac_SpF = 72e3 * (e.version + 1) * e.brate % e.out_samplerate | 0), S.iteration_init(e), y.psymodel_init(e), 0; + }, this.lame_encode_flush = function (e, t, a, s) { + var n, r, i, o, _ = e.internal_flags, - l = M([2, 1152]), + l = p([2, 1152]), f = 0, - c = _.mf_samples_to_encode - Ae.POSTDELAY, - u = L(e); + c = _.mf_samples_to_encode - Pe.POSTDELAY, + h = C(e); if (_.mf_samples_to_encode < 1) return 0; - for (s = 0, e.in_samplerate != e.out_samplerate && me(), (i = e.framesize - c % e.framesize) < 576 && (i += e.framesize), e.encoder_padding = i, o = (c + i) / e.framesize; 0 < o && 0 <= f;) { - var h = u - _.mf_size, - b = e.frameNum; - h *= e.in_samplerate, 1152 < (h /= e.out_samplerate) && (h = 1152), h < 1 && (h = 1), r = n - s, 0 == n && (r = 0), f = this.lame_encode_buffer(e, l[0], l[1], h, t, a, r), a += f, s += f, o -= b != e.frameNum ? 1 : 0; + for (n = 0, e.in_samplerate != e.out_samplerate && (c += 16 * e.out_samplerate / e.in_samplerate), (i = e.framesize - c % e.framesize) < 576 && (i += e.framesize), o = (c + (e.encoder_padding = i)) / e.framesize; 0 < o && 0 <= f;) { + var u = h - _.mf_size, + m = e.frameNum; + u *= e.in_samplerate, 1152 < (u /= e.out_samplerate) && (u = 1152), u < 1 && (u = 1), r = s - n, 0 == s && (r = 0), a += f = this.lame_encode_buffer(e, l[0], l[1], u, t, a, r), n += f, o -= m != e.frameNum ? 1 : 0; } - return _.mf_samples_to_encode = 0, f < 0 ? f : (r = n - s, 0 == n && (r = 0), E.flush_bitstream(e), (f = E.copy_buffer(_, t, a, r, 1)) < 0 ? f : (a += f, r = n - (s += f), 0 == n && (r = 0), e.write_id3tag_automatic && me(), s)); - }, this.lame_encode_buffer = function (e, t, a, n, s, r, i) { + if (f < (_.mf_samples_to_encode = 0)) return f; + if (r = s - n, 0 == s && (r = 0), R.flush_bitstream(e), (f = R.copy_buffer(_, t, a, r, 1)) < 0) return f; + if (a += f, r = s - (n += f), 0 == s && (r = 0), e.write_id3tag_automatic) { + if (B.id3tag_write_v1(e), (f = R.copy_buffer(_, t, a, r, 0)) < 0) return f; + n += f; + } + return n; + }, this.lame_encode_buffer = function (e, t, a, s, n, r, i) { var o, _, l = e.internal_flags, f = [null, null]; - if (l.Class_ID != I) return -3; - if (0 == n) return 0; - _ = n, (null == (o = l).in_buffer_0 || o.in_buffer_nsamples < _) && (o.in_buffer_0 = de(_), o.in_buffer_1 = de(_), o.in_buffer_nsamples = _), f[0] = l.in_buffer_0, f[1] = l.in_buffer_1; - for (var c = 0; c < n; c++) f[0][c] = t[c], 1 < l.channels_in && (f[1][c] = a[c]); - return function (e, t, a, n, s, r, i) { + if (l.Class_ID != x) return -3; + if (0 == s) return 0; + _ = s, (null == (o = l).in_buffer_0 || o.in_buffer_nsamples < _) && (o.in_buffer_0 = Be(_), o.in_buffer_1 = Be(_), o.in_buffer_nsamples = _), f[0] = l.in_buffer_0, f[1] = l.in_buffer_1; + for (var c = 0; c < s; c++) f[0][c] = t[c], 1 < l.channels_in && (f[1][c] = a[c]); + return function (e, t, a, s, n, r, i) { var o, _, l, f, c, - u = e.internal_flags, - h = 0, - b = [null, null], + h = e.internal_flags, + u = 0, + m = [null, null], p = [null, null]; - if (u.Class_ID != I) return -3; - if (0 == n) return 0; - if ((c = E.copy_buffer(u, s, r, i, 0)) < 0) return c; - if (r += c, h += c, p[0] = t, p[1] = a, N.NEQ(e.scale, 0) && N.NEQ(e.scale, 1)) for (_ = 0; _ < n; ++_) p[0][_] *= e.scale, 2 == u.channels_out && (p[1][_] *= e.scale); - if (N.NEQ(e.scale_left, 0) && N.NEQ(e.scale_left, 1)) for (_ = 0; _ < n; ++_) p[0][_] *= e.scale_left; - if (N.NEQ(e.scale_right, 0) && N.NEQ(e.scale_right, 1)) for (_ = 0; _ < n; ++_) p[1][_] *= e.scale_right; - 2 == e.num_channels && 1 == u.channels_out && me(), f = L(e), b[0] = u.mfbuf[0], b[1] = u.mfbuf[1]; - for (var m, v, d, g, w, S, M, y = 0; 0 < n;) { - var A = [null, null], - k = 0, - R = 0; - A[0] = p[0], A[1] = p[1]; - var x = new P(); - if (H(e, b, A, y, n, x), k = x.n_in, R = x.n_out, u.findReplayGain && !u.decode_on_the_fly && T.AnalyzeSamples(u.rgdata, b[0], u.mf_size, b[1], u.mf_size, R, u.channels_out) == O.GAIN_ANALYSIS_ERROR) return -6; - if (n -= k, y += k, u.channels_out, u.mf_size += R, u.mf_samples_to_encode < 1 && me(), u.mf_samples_to_encode += R, u.mf_size >= f) { - var B = i - h; - if (0 == i && (B = 0), m = e, v = b[0], d = b[1], g = s, w = r, S = B, M = C.enc.lame_encode_mp3_frame(m, v, d, g, w, S), m.frameNum++, (o = M) < 0) return o; - for (r += o, h += o, u.mf_size -= e.framesize, u.mf_samples_to_encode -= e.framesize, l = 0; l < u.channels_out; l++) for (_ = 0; _ < u.mf_size; _++) b[l][_] = b[l][_ + e.framesize]; + if (h.Class_ID != x) return -3; + if (0 == s) return 0; + if ((c = R.copy_buffer(h, n, r, i, 0)) < 0) return c; + if (r += c, u += c, p[0] = t, p[1] = a, q.NEQ(e.scale, 0) && q.NEQ(e.scale, 1)) for (_ = 0; _ < s; ++_) p[0][_] *= e.scale, 2 == h.channels_out && (p[1][_] *= e.scale); + if (q.NEQ(e.scale_left, 0) && q.NEQ(e.scale_left, 1)) for (_ = 0; _ < s; ++_) p[0][_] *= e.scale_left; + if (q.NEQ(e.scale_right, 0) && q.NEQ(e.scale_right, 1)) for (_ = 0; _ < s; ++_) p[1][_] *= e.scale_right; + if (2 == e.num_channels && 1 == h.channels_out) for (_ = 0; _ < s; ++_) p[0][_] = .5 * (p[0][_] + p[1][_]), p[1][_] = 0; + f = C(e), m[0] = h.mfbuf[0], m[1] = h.mfbuf[1]; + var b = 0; + for (; 0 < s;) { + var v = [null, null], + d = 0, + g = 0; + v[0] = p[0], v[1] = p[1]; + var S = new O(); + if (D(e, m, v, b, s, S), d = S.n_in, g = S.n_out, h.findReplayGain && !h.decode_on_the_fly && w.AnalyzeSamples(h.rgdata, m[0], h.mf_size, m[1], h.mf_size, g, h.channels_out) == X.GAIN_ANALYSIS_ERROR) return -6; + if (s -= d, b += d, h.channels_out, h.mf_size += g, h.mf_samples_to_encode < 1 && (h.mf_samples_to_encode = Pe.ENCDELAY + Pe.POSTDELAY), h.mf_samples_to_encode += g, h.mf_size >= f) { + var M = i - u; + if (0 == i && (M = 0), (o = V(e, m[0], m[1], n, r, M)) < 0) return o; + for (r += o, u += o, h.mf_size -= e.framesize, h.mf_samples_to_encode -= e.framesize, l = 0; l < h.channels_out; l++) for (_ = 0; _ < h.mf_size; _++) m[l][_] = m[l][_ + e.framesize]; } } - return h; - }(e, f[0], f[1], n, s, r, i); + return u; + }(e, f[0], f[1], s, n, r, i); }; } - F.SFBMAX = 3 * Ae.SBMAX_s, Ae.ENCDELAY = 576, Ae.POSTDELAY = 1152, Ae.FFTOFFSET = 224 + (Ae.MDCTDELAY = 48), Ae.DECDELAY = 528, Ae.SBLIMIT = 32, Ae.CBANDS = 64, Ae.SBPSY_l = 21, Ae.SBPSY_s = 12, Ae.SBMAX_l = 22, Ae.SBMAX_s = 13, Ae.PSFB21 = 6, Ae.PSFB12 = 6, Ae.HBLKSIZE = (Ae.BLKSIZE = 1024) / 2 + 1, Ae.HBLKSIZE_s = (Ae.BLKSIZE_s = 256) / 2 + 1, Ae.NORM_TYPE = 0, Ae.START_TYPE = 1, Ae.SHORT_TYPE = 2, Ae.STOP_TYPE = 3, Ae.MPG_MD_LR_LR = 0, Ae.MPG_MD_LR_I = 1, Ae.MPG_MD_MS_LR = 2, Ae.MPG_MD_MS_I = 3, Ae.fircoef = [-.1039435, -.1892065, 5 * -.0432472, -.155915, 3.898045e-17, .0467745 * 5, .50455, .756825, .187098 * 5], j.MFSIZE = 3456 + Ae.ENCDELAY - Ae.MDCTDELAY, j.MAX_HEADER_BUF = 256, j.MAX_BITS_PER_CHANNEL = 4095, j.MAX_BITS_PER_GRANULE = 7680, j.BPC = 320, F.SFBMAX = 3 * Ae.SBMAX_s, t.Mp3Encoder = function (n, e, t) { - 1 != n && me("fix cc: only supports mono"); - var s = new Y(), + z.SFBMAX = 3 * Pe.SBMAX_s, Pe.ENCDELAY = 576, Pe.POSTDELAY = 1152, Pe.FFTOFFSET = 224 + (Pe.MDCTDELAY = 48), Pe.DECDELAY = 528, Pe.SBLIMIT = 32, Pe.CBANDS = 64, Pe.SBPSY_l = 21, Pe.SBPSY_s = 12, Pe.SBMAX_l = 22, Pe.SBMAX_s = 13, Pe.PSFB21 = 6, Pe.PSFB12 = 6, Pe.HBLKSIZE = (Pe.BLKSIZE = 1024) / 2 + 1, Pe.HBLKSIZE_s = (Pe.BLKSIZE_s = 256) / 2 + 1, Pe.NORM_TYPE = 0, Pe.START_TYPE = 1, Pe.SHORT_TYPE = 2, Pe.STOP_TYPE = 3, Pe.MPG_MD_LR_LR = 0, Pe.MPG_MD_LR_I = 1, Pe.MPG_MD_MS_LR = 2, Pe.MPG_MD_MS_I = 3, Pe.fircoef = [-.1039435, -.1892065, 5 * -.0432472, -.155915, 3.898045e-17, .0467745 * 5, .50455, .756825, .187098 * 5], Z.MFSIZE = 3456 + Pe.ENCDELAY - Pe.MDCTDELAY, Z.MAX_HEADER_BUF = 256, Z.MAX_BITS_PER_CHANNEL = 4095, Z.MAX_BITS_PER_GRANULE = 7680, Z.BPC = 320, z.SFBMAX = 3 * Pe.SBMAX_s, t.Mp3Encoder = function (s, e, t) { + 3 != arguments.length && (console.error("WARN: Mp3Encoder(channels, samplerate, kbps) not specified"), s = 1, e = 44100, t = 128); + var n = new U(), a = new function () { this.setModules = function (e, t) {}; }(), - r = new O(), - i = new N(), + r = new X(), + i = new q(), o = new function () { - function e(e, t, a, n, s, r, i, o, _, l, f, c, u, h) { - this.quant_comp = t, this.quant_comp_s = a, this.safejoint = n, this.nsmsfix = s, this.st_lrm = r, this.st_s = i, this.nsbass = o, this.scale = _, this.masking_adj = l, this.ath_lower = f, this.ath_curve = c, this.interch = u, this.sfscale = h; + function e(e, t, a, s, n, r, i, o, _, l, f, c, h, u, m) { + this.vbr_q = e, this.quant_comp = t, this.quant_comp_s = a, this.expY = s, this.st_lrm = n, this.st_s = r, this.masking_adj = i, this.masking_adj_short = o, this.ath_lower = _, this.ath_curve = l, this.ath_sensitivity = f, this.interch = c, this.safejoint = h, this.sfb21mod = u, this.msfix = m; + } + function t(e, t, a, s, n, r, i, o, _, l, f, c, h, u) { + this.quant_comp = t, this.quant_comp_s = a, this.safejoint = s, this.nsmsfix = n, this.st_lrm = r, this.st_s = i, this.nsbass = o, this.scale = _, this.masking_adj = l, this.ath_lower = f, this.ath_curve = c, this.interch = h, this.sfscale = u; } var i; - function n(e, t, a) { - me(); - } this.setModules = function (e) { i = e; }; - var o = [new e(8, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -30, 11, .0012, 1), new e(16, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -25, 11, .001, 1), new e(24, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -20, 11, .001, 1), new e(32, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -15, 11, .001, 1), new e(40, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -10, 11, 9e-4, 1), new e(48, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -10, 11, 9e-4, 1), new e(56, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -6, 11, 8e-4, 1), new e(64, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -2, 11, 8e-4, 1), new e(80, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, 0, 8, 7e-4, 1), new e(96, 9, 9, 0, 2.5, 6.6, 145, 0, .95, 0, 1, 5.5, 6e-4, 1), new e(112, 9, 9, 0, 2.25, 6.6, 145, 0, .95, 0, 2, 4.5, 5e-4, 1), new e(128, 9, 9, 0, 1.95, 6.4, 140, 0, .95, 0, 3, 4, 2e-4, 1), new e(160, 9, 9, 1, 1.79, 6, 135, 0, .95, -2, 5, 3.5, 0, 1), new e(192, 9, 9, 1, 1.49, 5.6, 125, 0, .97, -4, 7, 3, 0, 0), new e(224, 9, 9, 1, 1.25, 5.2, 125, 0, .98, -6, 9, 2, 0, 0), new e(256, 9, 9, 1, .97, 5.2, 125, 0, 1, -8, 10, 1, 0, 0), new e(320, 9, 9, 1, .9, 5.2, 125, 0, 1, -10, 12, 0, 0, 0)]; + var f = [new e(0, 9, 9, 0, 5.2, 125, -4.2, -6.3, 4.8, 1, 0, 0, 2, 21, .97), new e(1, 9, 9, 0, 5.3, 125, -3.6, -5.6, 4.5, 1.5, 0, 0, 2, 21, 1.35), new e(2, 9, 9, 0, 5.6, 125, -2.2, -3.5, 2.8, 2, 0, 0, 2, 21, 1.49), new e(3, 9, 9, 1, 5.8, 130, -1.8, -2.8, 2.6, 3, -4, 0, 2, 20, 1.64), new e(4, 9, 9, 1, 6, 135, -.7, -1.1, 1.1, 3.5, -8, 0, 2, 0, 1.79), new e(5, 9, 9, 1, 6.4, 140, .5, .4, -7.5, 4, -12, 2e-4, 0, 0, 1.95), new e(6, 9, 9, 1, 6.6, 145, .67, .65, -14.7, 6.5, -19, 4e-4, 0, 0, 2.3), new e(7, 9, 9, 1, 6.6, 145, .8, .75, -19.7, 8, -22, 6e-4, 0, 0, 2.7), new e(8, 9, 9, 1, 6.6, 145, 1.2, 1.15, -27.5, 10, -23, 7e-4, 0, 0, 0), new e(9, 9, 9, 1, 6.6, 145, 1.6, 1.6, -36, 11, -25, 8e-4, 0, 0, 0), new e(10, 9, 9, 1, 6.6, 145, 2, 2, -36, 12, -25, 8e-4, 0, 0, 0)], + c = [new e(0, 9, 9, 0, 4.2, 25, -7, -4, 7.5, 1, 0, 0, 2, 26, .97), new e(1, 9, 9, 0, 4.2, 25, -5.6, -3.6, 4.5, 1.5, 0, 0, 2, 21, 1.35), new e(2, 9, 9, 0, 4.2, 25, -4.4, -1.8, 2, 2, 0, 0, 2, 18, 1.49), new e(3, 9, 9, 1, 4.2, 25, -3.4, -1.25, 1.1, 3, -4, 0, 2, 15, 1.64), new e(4, 9, 9, 1, 4.2, 25, -2.2, .1, 0, 3.5, -8, 0, 2, 0, 1.79), new e(5, 9, 9, 1, 4.2, 25, -1, 1.65, -7.7, 4, -12, 2e-4, 0, 0, 1.95), new e(6, 9, 9, 1, 4.2, 25, -0, 2.47, -7.7, 6.5, -19, 4e-4, 0, 0, 2), new e(7, 9, 9, 1, 4.2, 25, .5, 2, -14.5, 8, -22, 6e-4, 0, 0, 2), new e(8, 9, 9, 1, 4.2, 25, 1, 2.4, -22, 10, -23, 7e-4, 0, 0, 2), new e(9, 9, 9, 1, 4.2, 25, 1.5, 2.95, -30, 11, -25, 8e-4, 0, 0, 2), new e(10, 9, 9, 1, 4.2, 25, 2, 2.95, -36, 12, -30, 8e-4, 0, 0, 2)]; function s(e, t, a) { - var n = t, - s = i.nearestBitrateFullIndex(t); - if (e.VBR = Me.vbr_abr, e.VBR_mean_bitrate_kbps = n, e.VBR_mean_bitrate_kbps = Math.min(e.VBR_mean_bitrate_kbps, 320), e.VBR_mean_bitrate_kbps = Math.max(e.VBR_mean_bitrate_kbps, 8), e.brate = e.VBR_mean_bitrate_kbps, 320 < e.VBR_mean_bitrate_kbps && (e.disable_reservoir = !0), 0 < o[s].safejoint && (e.exp_nspsytune = 2 | e.exp_nspsytune), 0 < o[s].sfscale && (e.internal_flags.noise_shaping = 2), 0 < Math.abs(o[s].nsbass)) { - var r = int(4 * o[s].nsbass); + var s, + n, + r = e.VBR == xe.vbr_rh ? f : c, + i = e.VBR_q_frac, + o = r[t], + _ = r[t + 1], + l = o; + o.st_lrm = o.st_lrm + i * (_.st_lrm - o.st_lrm), o.st_s = o.st_s + i * (_.st_s - o.st_s), o.masking_adj = o.masking_adj + i * (_.masking_adj - o.masking_adj), o.masking_adj_short = o.masking_adj_short + i * (_.masking_adj_short - o.masking_adj_short), o.ath_lower = o.ath_lower + i * (_.ath_lower - o.ath_lower), o.ath_curve = o.ath_curve + i * (_.ath_curve - o.ath_curve), o.ath_sensitivity = o.ath_sensitivity + i * (_.ath_sensitivity - o.ath_sensitivity), o.interch = o.interch + i * (_.interch - o.interch), o.msfix = o.msfix + i * (_.msfix - o.msfix), s = e, (n = l.vbr_q) < 0 && (n = 0), 9 < n && (n = 9), s.VBR_q = n, (s.VBR_q_frac = 0) != a ? e.quant_comp = l.quant_comp : 0 < Math.abs(e.quant_comp - -1) || (e.quant_comp = l.quant_comp), 0 != a ? e.quant_comp_short = l.quant_comp_s : 0 < Math.abs(e.quant_comp_short - -1) || (e.quant_comp_short = l.quant_comp_s), 0 != l.expY && (e.experimentalY = 0 != l.expY), 0 != a ? e.internal_flags.nsPsy.attackthre = l.st_lrm : 0 < Math.abs(e.internal_flags.nsPsy.attackthre - -1) || (e.internal_flags.nsPsy.attackthre = l.st_lrm), 0 != a ? e.internal_flags.nsPsy.attackthre_s = l.st_s : 0 < Math.abs(e.internal_flags.nsPsy.attackthre_s - -1) || (e.internal_flags.nsPsy.attackthre_s = l.st_s), 0 != a ? e.maskingadjust = l.masking_adj : 0 < Math.abs(e.maskingadjust - 0) || (e.maskingadjust = l.masking_adj), 0 != a ? e.maskingadjust_short = l.masking_adj_short : 0 < Math.abs(e.maskingadjust_short - 0) || (e.maskingadjust_short = l.masking_adj_short), 0 != a ? e.ATHlower = -l.ath_lower / 10 : 0 < Math.abs(10 * -e.ATHlower - 0) || (e.ATHlower = -l.ath_lower / 10), 0 != a ? e.ATHcurve = l.ath_curve : 0 < Math.abs(e.ATHcurve - -1) || (e.ATHcurve = l.ath_curve), 0 != a ? e.athaa_sensitivity = l.ath_sensitivity : 0 < Math.abs(e.athaa_sensitivity - -1) || (e.athaa_sensitivity = l.ath_sensitivity), 0 < l.interch && (0 != a ? e.interChRatio = l.interch : 0 < Math.abs(e.interChRatio - -1) || (e.interChRatio = l.interch)), 0 < l.safejoint && (e.exp_nspsytune = e.exp_nspsytune | l.safejoint), 0 < l.sfb21mod && (e.exp_nspsytune = e.exp_nspsytune | l.sfb21mod << 20), 0 != a ? e.msfix = l.msfix : 0 < Math.abs(e.msfix - -1) || (e.msfix = l.msfix), 0 == a && (e.VBR_q = t, e.VBR_q_frac = i); + } + var o = [new t(8, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -30, 11, .0012, 1), new t(16, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -25, 11, .001, 1), new t(24, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -20, 11, .001, 1), new t(32, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -15, 11, .001, 1), new t(40, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -10, 11, 9e-4, 1), new t(48, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -10, 11, 9e-4, 1), new t(56, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -6, 11, 8e-4, 1), new t(64, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -2, 11, 8e-4, 1), new t(80, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, 0, 8, 7e-4, 1), new t(96, 9, 9, 0, 2.5, 6.6, 145, 0, .95, 0, 1, 5.5, 6e-4, 1), new t(112, 9, 9, 0, 2.25, 6.6, 145, 0, .95, 0, 2, 4.5, 5e-4, 1), new t(128, 9, 9, 0, 1.95, 6.4, 140, 0, .95, 0, 3, 4, 2e-4, 1), new t(160, 9, 9, 1, 1.79, 6, 135, 0, .95, -2, 5, 3.5, 0, 1), new t(192, 9, 9, 1, 1.49, 5.6, 125, 0, .97, -4, 7, 3, 0, 0), new t(224, 9, 9, 1, 1.25, 5.2, 125, 0, .98, -6, 9, 2, 0, 0), new t(256, 9, 9, 1, .97, 5.2, 125, 0, 1, -8, 10, 1, 0, 0), new t(320, 9, 9, 1, .9, 5.2, 125, 0, 1, -10, 12, 0, 0, 0)]; + function n(e, t, a) { + var s = t, + n = i.nearestBitrateFullIndex(t); + if (e.VBR = xe.vbr_abr, e.VBR_mean_bitrate_kbps = s, e.VBR_mean_bitrate_kbps = Math.min(e.VBR_mean_bitrate_kbps, 320), e.VBR_mean_bitrate_kbps = Math.max(e.VBR_mean_bitrate_kbps, 8), e.brate = e.VBR_mean_bitrate_kbps, 320 < e.VBR_mean_bitrate_kbps && (e.disable_reservoir = !0), 0 < o[n].safejoint && (e.exp_nspsytune = 2 | e.exp_nspsytune), 0 < o[n].sfscale && (e.internal_flags.noise_shaping = 2), 0 < Math.abs(o[n].nsbass)) { + var r = int(4 * o[n].nsbass); r < 0 && (r += 64), e.exp_nspsytune = e.exp_nspsytune | r << 2; } - return 0 != a ? e.quant_comp = o[s].quant_comp : 0 < Math.abs(e.quant_comp - -1) || (e.quant_comp = o[s].quant_comp), 0 != a ? e.quant_comp_short = o[s].quant_comp_s : 0 < Math.abs(e.quant_comp_short - -1) || (e.quant_comp_short = o[s].quant_comp_s), 0 != a ? e.msfix = o[s].nsmsfix : 0 < Math.abs(e.msfix - -1) || (e.msfix = o[s].nsmsfix), 0 != a ? e.internal_flags.nsPsy.attackthre = o[s].st_lrm : 0 < Math.abs(e.internal_flags.nsPsy.attackthre - -1) || (e.internal_flags.nsPsy.attackthre = o[s].st_lrm), 0 != a ? e.internal_flags.nsPsy.attackthre_s = o[s].st_s : 0 < Math.abs(e.internal_flags.nsPsy.attackthre_s - -1) || (e.internal_flags.nsPsy.attackthre_s = o[s].st_s), 0 != a ? e.scale = o[s].scale : 0 < Math.abs(e.scale - -1) || (e.scale = o[s].scale), 0 != a ? e.maskingadjust = o[s].masking_adj : 0 < Math.abs(e.maskingadjust - 0) || (e.maskingadjust = o[s].masking_adj), 0 < o[s].masking_adj ? 0 != a ? e.maskingadjust_short = .9 * o[s].masking_adj : 0 < Math.abs(e.maskingadjust_short - 0) || (e.maskingadjust_short = .9 * o[s].masking_adj) : 0 != a ? e.maskingadjust_short = 1.1 * o[s].masking_adj : 0 < Math.abs(e.maskingadjust_short - 0) || (e.maskingadjust_short = 1.1 * o[s].masking_adj), 0 != a ? e.ATHlower = -o[s].ath_lower / 10 : 0 < Math.abs(10 * -e.ATHlower - 0) || (e.ATHlower = -o[s].ath_lower / 10), 0 != a ? e.ATHcurve = o[s].ath_curve : 0 < Math.abs(e.ATHcurve - -1) || (e.ATHcurve = o[s].ath_curve), 0 != a ? e.interChRatio = o[s].interch : 0 < Math.abs(e.interChRatio - -1) || (e.interChRatio = o[s].interch), t; + return 0 != a ? e.quant_comp = o[n].quant_comp : 0 < Math.abs(e.quant_comp - -1) || (e.quant_comp = o[n].quant_comp), 0 != a ? e.quant_comp_short = o[n].quant_comp_s : 0 < Math.abs(e.quant_comp_short - -1) || (e.quant_comp_short = o[n].quant_comp_s), 0 != a ? e.msfix = o[n].nsmsfix : 0 < Math.abs(e.msfix - -1) || (e.msfix = o[n].nsmsfix), 0 != a ? e.internal_flags.nsPsy.attackthre = o[n].st_lrm : 0 < Math.abs(e.internal_flags.nsPsy.attackthre - -1) || (e.internal_flags.nsPsy.attackthre = o[n].st_lrm), 0 != a ? e.internal_flags.nsPsy.attackthre_s = o[n].st_s : 0 < Math.abs(e.internal_flags.nsPsy.attackthre_s - -1) || (e.internal_flags.nsPsy.attackthre_s = o[n].st_s), 0 != a ? e.scale = o[n].scale : 0 < Math.abs(e.scale - -1) || (e.scale = o[n].scale), 0 != a ? e.maskingadjust = o[n].masking_adj : 0 < Math.abs(e.maskingadjust - 0) || (e.maskingadjust = o[n].masking_adj), 0 < o[n].masking_adj ? 0 != a ? e.maskingadjust_short = .9 * o[n].masking_adj : 0 < Math.abs(e.maskingadjust_short - 0) || (e.maskingadjust_short = .9 * o[n].masking_adj) : 0 != a ? e.maskingadjust_short = 1.1 * o[n].masking_adj : 0 < Math.abs(e.maskingadjust_short - 0) || (e.maskingadjust_short = 1.1 * o[n].masking_adj), 0 != a ? e.ATHlower = -o[n].ath_lower / 10 : 0 < Math.abs(10 * -e.ATHlower - 0) || (e.ATHlower = -o[n].ath_lower / 10), 0 != a ? e.ATHcurve = o[n].ath_curve : 0 < Math.abs(e.ATHcurve - -1) || (e.ATHcurve = o[n].ath_curve), 0 != a ? e.interChRatio = o[n].interch : 0 < Math.abs(e.interChRatio - -1) || (e.interChRatio = o[n].interch), t; } this.apply_preset = function (e, t, a) { switch (t) { - case Y.R3MIX: - t = Y.V3, e.VBR = Me.vbr_mtrh; + case U.R3MIX: + t = U.V3, e.VBR = xe.vbr_mtrh; break; - case Y.MEDIUM: - t = Y.V4, e.VBR = Me.vbr_rh; + case U.MEDIUM: + t = U.V4, e.VBR = xe.vbr_rh; break; - case Y.MEDIUM_FAST: - t = Y.V4, e.VBR = Me.vbr_mtrh; + case U.MEDIUM_FAST: + t = U.V4, e.VBR = xe.vbr_mtrh; break; - case Y.STANDARD: - t = Y.V2, e.VBR = Me.vbr_rh; + case U.STANDARD: + t = U.V2, e.VBR = xe.vbr_rh; break; - case Y.STANDARD_FAST: - t = Y.V2, e.VBR = Me.vbr_mtrh; + case U.STANDARD_FAST: + t = U.V2, e.VBR = xe.vbr_mtrh; break; - case Y.EXTREME: - t = Y.V0, e.VBR = Me.vbr_rh; + case U.EXTREME: + t = U.V0, e.VBR = xe.vbr_rh; break; - case Y.EXTREME_FAST: - t = Y.V0, e.VBR = Me.vbr_mtrh; + case U.EXTREME_FAST: + t = U.V0, e.VBR = xe.vbr_mtrh; break; - case Y.INSANE: - return t = 320, e.preset = t, s(e, t, a), e.VBR = Me.vbr_off, t; + case U.INSANE: + return t = 320, e.preset = t, n(e, t, a), e.VBR = xe.vbr_off, t; } switch (e.preset = t) { - case Y.V9: - return n(), t; - case Y.V8: - return n(), t; - case Y.V7: - return n(), t; - case Y.V6: - return n(), t; - case Y.V5: - return n(), t; - case Y.V4: - return n(), t; - case Y.V3: - return n(), t; - case Y.V2: - return n(), t; - case Y.V1: - return n(), t; - case Y.V0: - return n(), t; + case U.V9: + return s(e, 9, a), t; + case U.V8: + return s(e, 8, a), t; + case U.V7: + return s(e, 7, a), t; + case U.V6: + return s(e, 6, a), t; + case U.V5: + return s(e, 5, a), t; + case U.V4: + return s(e, 4, a), t; + case U.V3: + return s(e, 3, a), t; + case U.V2: + return s(e, 2, a), t; + case U.V1: + return s(e, 1, a), t; + case U.V0: + return s(e, 0, a), t; } - return 8 <= t && t <= 320 ? s(e, t, a) : (e.preset = 0, t); + return 8 <= t && t <= 320 ? n(e, t, a) : (e.preset = 0, t); }; }(), - _ = new T(), - l = new C(), - f = new y(), + _ = new x(), + l = new w(), + f = new M(), c = new function () { - this.getLameShortVersion = function () { + this.getLameVersion = function () { return "3.98.4"; + }, this.getLameShortVersion = function () { + return "3.98.4"; + }, this.getLameVeryShortVersion = function () { + return "LAME3.98r"; + }, this.getPsyVersion = function () { + return "0.93"; + }, this.getLameUrl = function () { + return "http://www.mp3dev.org/"; + }, this.getLameOsBitness = function () { + return "32bits"; }; }(), - u = new function () { - this.setModules = function (e, t) {}; - }(), h = new function () { + this.setModules = function (e, t) {}; + }(), + u = new function () { var _; this.setModules = function (e) { _ = e; }, this.ResvFrameBegin = function (e, t) { var a, - n = e.internal_flags, - s = n.l3_side, + s = e.internal_flags, + n = s.l3_side, r = _.getframebits(e); - t.bits = (r - 8 * n.sideinfo_len) / n.mode_gr; - var i = 2048 * n.mode_gr - 8; - 320 < e.brate ? me() : (a = 11520, e.strict_ISO && me()), n.ResvMax = a - r, n.ResvMax > i && (n.ResvMax = i), (n.ResvMax < 0 || e.disable_reservoir) && (n.ResvMax = 0); - var o = t.bits * n.mode_gr + Math.min(n.ResvSize, n.ResvMax); - return a < o && (o = a), s.resvDrain_pre = 0, null != n.pinfo && me(), o; - }, this.ResvMaxBits = function (e, t, a, n) { - var s, + t.bits = (r - 8 * s.sideinfo_len) / s.mode_gr; + var i = 2048 * s.mode_gr - 8; + 320 < e.brate ? a = 8 * int(1e3 * e.brate / (e.out_samplerate / 1152) / 8 + .5) : (a = 11520, e.strict_ISO && (a = 8 * int(32e4 / (e.out_samplerate / 1152) / 8 + .5))), s.ResvMax = a - r, s.ResvMax > i && (s.ResvMax = i), (s.ResvMax < 0 || e.disable_reservoir) && (s.ResvMax = 0); + var o = t.bits * s.mode_gr + Math.min(s.ResvSize, s.ResvMax); + return a < o && (o = a), n.resvDrain_pre = 0, null != s.pinfo && (s.pinfo.mean_bits = t.bits / 2, s.pinfo.resvsize = s.ResvSize), o; + }, this.ResvMaxBits = function (e, t, a, s) { + var n, r = e.internal_flags, i = r.ResvSize, o = r.ResvMax; - 0 != n && (i += t), 0 != (1 & r.substep_shaping) && (o *= .9), a.bits = t, 9 * o < 10 * i ? (s = i - 9 * o / 10, a.bits += s, r.substep_shaping |= 128) : (s = 0, r.substep_shaping &= 127, e.disable_reservoir || 0 != (1 & r.substep_shaping) || (a.bits -= .1 * t)); + 0 != s && (i += t), 0 != (1 & r.substep_shaping) && (o *= .9), a.bits = t, 9 * o < 10 * i ? (n = i - 9 * o / 10, a.bits += n, r.substep_shaping |= 128) : (n = 0, r.substep_shaping &= 127, e.disable_reservoir || 0 != (1 & r.substep_shaping) || (a.bits -= .1 * t)); var _ = i < 6 * r.ResvMax / 10 ? i : 6 * r.ResvMax / 10; - return (_ -= s) < 0 && (_ = 0), _; + return (_ -= n) < 0 && (_ = 0), _; }, this.ResvAdjust = function (e, t) { e.ResvSize -= t.part2_3_length + t.part2_length; }, this.ResvFrameEnd = function (e, t) { var a, - n = e.l3_side; + s = e.l3_side; e.ResvSize += t * e.mode_gr; - var s = 0; - n.resvDrain_post = 0, (n.resvDrain_pre = 0) != (a = e.ResvSize % 8) && (s += a), 0 < (a = e.ResvSize - s - e.ResvMax) && (s += a); - var r = Math.min(8 * n.main_data_begin, s) / 8; - n.resvDrain_pre += 8 * r, s -= 8 * r, e.ResvSize -= 8 * r, n.main_data_begin -= r, n.resvDrain_post += s, e.ResvSize -= s; + var n = 0; + s.resvDrain_post = 0, (s.resvDrain_pre = 0) != (a = e.ResvSize % 8) && (n += a), 0 < (a = e.ResvSize - n - e.ResvMax) && (n += a); + var r = Math.min(8 * s.main_data_begin, n) / 8; + s.resvDrain_pre += 8 * r, n -= 8 * r, e.ResvSize -= 8 * r, s.main_data_begin -= r, s.resvDrain_post += n, e.ResvSize -= n; }; }(), - b = new A(), + m = new k(), p = new function () { this.setModules = function (e, t, a) {}; }(), - m = new function () {}(); - s.setModules(r, i, o, _, l, f, c, u, m), i.setModules(r, m, c, f), u.setModules(i, c), o.setModules(s), l.setModules(i, h, _, b), _.setModules(b, h, s.enc.psy), h.setModules(i), b.setModules(_), f.setModules(s, i, c), a.setModules(p, m), p.setModules(c, u, o); - var v = s.lame_init(); - v.num_channels = n, v.in_samplerate = e, v.out_samplerate = e, v.brate = t, v.mode = ye.STEREO, v.quality = 3, v.bWriteVbrTag = !1, v.disable_reservoir = !0, v.write_id3tag_automatic = !1, s.lame_init_params(v); + b = new function () {}(); + n.setModules(r, i, o, _, l, f, c, h, b), i.setModules(r, b, c, f), h.setModules(i, c), o.setModules(n), l.setModules(i, u, _, m), _.setModules(m, u, n.enc.psy), u.setModules(i), m.setModules(_), f.setModules(n, i, c), a.setModules(p, b), p.setModules(c, h, o); + var v = n.lame_init(); + v.num_channels = s, v.in_samplerate = e, v.out_samplerate = e, v.brate = t, v.mode = Ee.STEREO, v.quality = 3, v.bWriteVbrTag = !1, v.disable_reservoir = !0, v.write_id3tag_automatic = !1, n.lame_init_params(v); var d = 1152, g = 0 | 1.25 * d + 7200, - w = S(g); + S = A(g); this.encodeBuffer = function (e, t) { - 1 == n && (t = e), e.length > d && (d = e.length, w = S(g = 0 | 1.25 * d + 7200)); - var a = s.lame_encode_buffer(v, e, t, e.length, w, 0, g); - return new Int8Array(w.subarray(0, a)); + 1 == s && (t = e), e.length > d && (d = e.length, S = A(g = 0 | 1.25 * d + 7200)); + var a = n.lame_encode_buffer(v, e, t, e.length, S, 0, g); + return new Int8Array(S.subarray(0, a)); }, this.flush = function () { - var e = s.lame_encode_flush(v, w, 0, g); - return new Int8Array(w.subarray(0, e)); + var e = n.lame_encode_flush(v, S, 0, g); + return new Int8Array(S.subarray(0, e)); }; }; } - t(), e.lamejs = t; -}(("object" == typeof window && window.document ? window : Object).Recorder); + t(), Recorder.lamejs = t; +}(); }); /* 录音 Recorder扩展,动态波形显示 https://github.com/xiangyuecn/Recorder */ -(function (factory) { - var browser = typeof window == "object" && !!window.document; - var win = browser ? window : Object; //非浏览器环境,Recorder挂载在Object下面 - var rec = win.Recorder, - ni = rec.i18n; - factory(rec, ni, ni.$T, browser); -})(function (Recorder, i18n, $T, isBrowser) { - +(function () { var WaveView = function (set) { return new fn(set); }; @@ -15518,12 +15843,7 @@ https://github.com/xiangyuecn/Recorder ,width:0 //显示宽度 ,height:0 //显示高度 - H5环境以上配置二选一 - - compatibleCanvas: CanvasObject //提供一个兼容H5的canvas对象,需支持getContext("2d"),支持设置width、height,支持drawImage(canvas,...) - ,width:0 //canvas显示宽度 - ,height:0 //canvas显示高度 - 非H5环境使用以上配置 + 以上配置二选一 */ scale: 2 //缩放系数,应为正整数,使用2(3? no!)倍宽高进行绘制,避免移动端绘制模糊 @@ -15552,44 +15872,38 @@ https://github.com/xiangyuecn/Recorder o[k] = set[k]; } This.set = set = o; - var cCanvas = "compatibleCanvas"; - if (set[cCanvas]) { - var canvas = This.canvas = set[cCanvas]; - } else { - if (!isBrowser) throw new Error($T.G("NonBrowser-1", [ViewTxt])); - var elem = set.elem; - if (elem) { - if (typeof elem == "string") { - elem = document.querySelector(elem); - } else if (elem.length) { - elem = elem[0]; - } - } - if (elem) { - set.width = elem.offsetWidth; - set.height = elem.offsetHeight; - } - var thisElem = This.elem = document.createElement("div"); - thisElem.style.fontSize = 0; - thisElem.innerHTML = ''; - var canvas = This.canvas = thisElem.querySelector("canvas"); - if (elem) { - elem.innerHTML = ""; - elem.appendChild(thisElem); + var elem = set.elem; + if (elem) { + if (typeof elem == "string") { + elem = document.querySelector(elem); + } else if (elem.length) { + elem = elem[0]; } } + if (elem) { + set.width = elem.offsetWidth; + set.height = elem.offsetHeight; + } var scale = set.scale; var width = set.width * scale; var height = set.height * scale; if (!width || !height) { - throw new Error($T.G("IllegalArgs-1", [ViewTxt + " width=0 height=0"])); + throw new Error(ViewTxt + "无宽高"); } + var thisElem = This.elem = document.createElement("div"); + var lowerCss = ["", "transform-origin:0 0;", "transform:scale(" + 1 / scale + ");"]; + thisElem.innerHTML = '
'; + var canvas = This.canvas = thisElem.querySelector("canvas"); + var ctx = This.ctx = canvas.getContext("2d"); canvas.width = width; canvas.height = height; - var ctx = This.ctx = canvas.getContext("2d"); This.linear1 = This.genLinear(ctx, width, set.linear1); This.linear2 = This.genLinear(ctx, width, set.linear2); This.linearBg = This.genLinear(ctx, height, set.linearBg, true); + if (elem) { + elem.innerHTML = ""; + elem.appendChild(thisElem); + } This._phase = 0; }; fn.prototype = WaveView.prototype = { @@ -15608,7 +15922,7 @@ https://github.com/xiangyuecn/Recorder var scale = set.scale; var width = set.width * scale; var maxAmplitude = set.height * scale / 2; - for (var x = 0; x <= width; x += scale) { + for (var x = 0; x < width; x += scale) { var scaling = (1 + Math.cos(Math.PI + x / width * 2 * Math.PI)) / 2; var y = scaling * maxAmplitude * amplitude * Math.sin(2 * Math.PI * (x / width) * frequency + phase) + maxAmplitude; rtv.push(y); @@ -15680,7 +15994,7 @@ https://github.com/xiangyuecn/Recorder //绘制包围背景 ctx.beginPath(); - for (var i = 0, x = 0; x <= width; i++, x += scale) { + for (var i = 0, x = 0; x < width; i++, x += scale) { if (x == 0) { ctx.moveTo(x, path1[i]); } else { @@ -15706,7 +16020,7 @@ https://github.com/xiangyuecn/Recorder var scale = set.scale; var width = set.width * scale; ctx.beginPath(); - for (var i = 0, x = 0; x <= width; i++, x += scale) { + for (var i = 0, x = 0; x < width; i++, x += scale) { if (x == 0) { ctx.moveTo(x, path[i]); } else { @@ -15719,11 +16033,11 @@ https://github.com/xiangyuecn/Recorder } }; Recorder[ViewTxt] = WaveView; -}); +})(); /* 录音 Recorder扩展,频率直方图显示 -使用本扩展需要引入src/extensions/lib.fft.js支持,直方图特意优化主要显示0-5khz语音部分(线性),其他高频显示区域较小,不适合用来展示音乐频谱,可通过配置fullFreq来恢复成完整的线性频谱,或自行修改源码修改成倍频程频谱(伯德图、对数频谱);本可视化插件可以移植到其他语言环境,如需定制可联系作者 +使用本扩展需要引入lib.fft.js支持,直方图特意优化主要显示0-5khz语音部分(线性),其他高频显示区域较小,不适合用来展示音乐频谱,可自行修改源码恢复成完整的线性频谱,或修改成倍频程频谱(伯德图、对数频谱);本可视化插件可以移植到其他语言环境,如需定制可联系作者 https://github.com/xiangyuecn/Recorder @@ -15731,13 +16045,7 @@ https://github.com/xiangyuecn/Recorder https://www.iteye.com/topic/851459 https://sourceforge.net/projects/jmp123/files/ */ -(function (factory) { - var browser = typeof window == "object" && !!window.document; - var win = browser ? window : Object; //非浏览器环境,Recorder挂载在Object下面 - var rec = win.Recorder, - ni = rec.i18n; - factory(rec, ni, ni.$T, browser); -})(function (Recorder, i18n, $T, isBrowser) { +(function () { var FrequencyHistogramView = function (set) { return new fn(set); @@ -15752,12 +16060,7 @@ https://sourceforge.net/projects/jmp123/files/ ,width:0 //显示宽度 ,height:0 //显示高度 - H5环境以上配置二选一 - - compatibleCanvas: CanvasObject //提供一个兼容H5的canvas对象,需支持getContext("2d"),支持设置width、height,支持drawImage(canvas,...) - ,width:0 //canvas显示宽度 - ,height:0 //canvas显示高度 - 非H5环境使用以上配置 + 以上配置二选一 */ scale: 2 //缩放系数,应为正整数,使用2(3? no!)倍宽高进行绘制,避免移动端绘制模糊 @@ -15803,9 +16106,7 @@ https://sourceforge.net/projects/jmp123/files/ stripeShadowBlur: -1 //峰值小横条阴影基础大小,设为0不显示阴影,-1为柱子的大小,如果柱子数量太多时请勿开启,非常影响性能 , stripeShadowColor: "" //峰值小横条阴影颜色,留空为柱子的阴影颜色 - , - fullFreq: false //是否要绘制所有频率;默认false主要绘制5khz以下的频率,高频部分占比很少,此时不同的采样率对频谱显示几乎没有影响;设为true后不同采样率下显示的频谱是不一样的,因为 最大频率=采样率/2 会有差异 //当发生绘制时会回调此方法,参数为当前绘制的频率数据和采样率,可实现多个直方图同时绘制,只消耗一个input输入和计算时间 , onDraw: function (frequencyData, sampleRate) {} @@ -15814,43 +16115,37 @@ https://sourceforge.net/projects/jmp123/files/ o[k] = set[k]; } This.set = set = o; - var cCanvas = "compatibleCanvas"; - if (set[cCanvas]) { - var canvas = This.canvas = set[cCanvas]; - } else { - if (!isBrowser) throw new Error($T.G("NonBrowser-1", [ViewTxt])); - var elem = set.elem; - if (elem) { - if (typeof elem == "string") { - elem = document.querySelector(elem); - } else if (elem.length) { - elem = elem[0]; - } - } - if (elem) { - set.width = elem.offsetWidth; - set.height = elem.offsetHeight; - } - var thisElem = This.elem = document.createElement("div"); - thisElem.style.fontSize = 0; - thisElem.innerHTML = ''; - var canvas = This.canvas = thisElem.querySelector("canvas"); - if (elem) { - elem.innerHTML = ""; - elem.appendChild(thisElem); + var elem = set.elem; + if (elem) { + if (typeof elem == "string") { + elem = document.querySelector(elem); + } else if (elem.length) { + elem = elem[0]; } } + if (elem) { + set.width = elem.offsetWidth; + set.height = elem.offsetHeight; + } var scale = set.scale; var width = set.width * scale; var height = set.height * scale; if (!width || !height) { - throw new Error($T.G("IllegalArgs-1", [ViewTxt + " width=0 height=0"])); + throw new Error(ViewTxt + "无宽高"); } + var thisElem = This.elem = document.createElement("div"); + var lowerCss = ["", "transform-origin:0 0;", "transform:scale(" + 1 / scale + ");"]; + thisElem.innerHTML = '
'; + var canvas = This.canvas = thisElem.querySelector("canvas"); + This.ctx = canvas.getContext("2d"); canvas.width = width; canvas.height = height; - This.ctx = canvas.getContext("2d"); + if (elem) { + elem.innerHTML = ""; + elem.appendChild(thisElem); + } if (!Recorder.LibFFT) { - throw new Error($T.G("NeedImport-2", [ViewTxt, "src/extensions/lib.fft.js"])); + throw new Error("需要lib.fft.js支持"); } This.fft = Recorder.LibFFT(1024); @@ -15890,9 +16185,6 @@ https://sourceforge.net/projects/jmp123/files/ //超时没有输入,顶部横条已全部落下,干掉定时器 clearInterval(This.timer); This.timer = 0; - This.lastH = []; //重置高度再绘制一次,避免定时不准没到底就停了 - This.stripesH = []; - This.draw(null, This.sampleRate); return; } if (now - drawTime < interval) { @@ -15944,19 +16236,15 @@ https://sourceforge.net/projects/jmp123/files/ var Y0 = 1 << (Math.round(Math.log(bufferSize) / Math.log(2) + 3) << 1); var logY0 = Math.log(Y0) / Math.log(10); var dBmax = 20 * Math.log(0x7fff) / Math.log(10); - var fftSize = bufferSize / 2, - fftSize5k = fftSize; - if (!set.fullFreq) { - //非绘制所有频率时,计算5khz所在位置,8000采样率及以下最高只有4khz - fftSize5k = Math.min(fftSize, Math.floor(fftSize * 5000 / (sampleRate / 2))); - } - var isFullFreq = fftSize5k == fftSize; - var line80 = isFullFreq ? lineCount : Math.round(lineCount * 0.8); //80%的柱子位置 + var fftSize = bufferSize / 2; + var fftSize5k = Math.min(fftSize, Math.floor(fftSize * 5000 / (sampleRate / 2))); //5khz所在位置,8000采样率及以下最高只有4khz + var fftSize5kIsAll = fftSize5k == fftSize; + var line80 = fftSize5kIsAll ? lineCount : Math.round(lineCount * 0.8); //80%的柱子位置 var fftSizeStep1 = fftSize5k / line80; - var fftSizeStep2 = isFullFreq ? 0 : (fftSize - fftSize5k) / (lineCount - line80); + var fftSizeStep2 = fftSize5kIsAll ? 0 : (fftSize - fftSize5k) / (lineCount - line80); var fftIdx = 0; for (var i = 0; i < lineCount; i++) { - // !fullFreq 时不采用jmp123的非线性划分频段,录音语音并不适用于音乐的频率,应当弱化高频部分 + //不采用jmp123的非线性划分频段,录音语音并不适用于音乐的频率,应当弱化高频部分 //80%关注0-5khz主要人声部分 20%关注剩下的高频,这样不管什么采样率都能做到大部分频率显示一致。 var start = Math.ceil(fftIdx); if (i < line80) { @@ -15966,18 +16254,14 @@ https://sourceforge.net/projects/jmp123/files/ //5khz以上 fftIdx += fftSizeStep2; } - var end = Math.ceil(fftIdx); - if (end == start) end++; - end = Math.min(end, fftSize); + var end = Math.min(Math.ceil(fftIdx), fftSize); //参考AudioGUI.java .drawHistogram方法 //查找当前频段的最大"幅值" var maxAmp = 0; - if (frequencyData) { - for (var j = start; j < end; j++) { - maxAmp = Math.max(maxAmp, Math.abs(frequencyData[j])); - } + for (var j = start; j < end; j++) { + maxAmp = Math.max(maxAmp, Math.abs(frequencyData[j])); } //计算音量 @@ -16015,6 +16299,8 @@ https://sourceforge.net/projects/jmp123/files/ var stripeLinear2 = set.stripeLinear && This.genLinear(ctx, set.stripeLinear, originY, originY + heightY) || linear2; //上半部分的峰值小横条填充 //计算柱子间距 + ctx.shadowBlur = set.shadowBlur * scale; + ctx.shadowColor = set.shadowColor; var mirrorEnable = set.mirrorEnable; var mirrorCount = mirrorEnable ? lineCount * 2 - 1 : lineCount; //镜像柱子数量翻一倍-1根 @@ -16023,105 +16309,78 @@ https://sourceforge.net/projects/jmp123/files/ if (spaceWidth != 0) { widthRatio = (width - spaceWidth * (mirrorCount + 1)) / width; } - for (var i = 0; i < 2; i++) { - var lineFloat = Math.max(1 * scale, width * widthRatio / mirrorCount); //柱子宽度至少1个单位 - var lineWN = Math.floor(lineFloat), - lineWF = lineFloat - lineWN; //提取出小数部分 - var spaceFloat = (width - mirrorCount * lineFloat) / (mirrorCount + 1); //均匀间隔,首尾都留空,可能为负数,柱子将发生重叠 - if (spaceFloat > 0 && spaceFloat < 1) { - widthRatio = 1; - spaceFloat = 0; //不够一个像素,丢弃不绘制间隔,重新计算 - } else break; + var lineWidth = Math.max(1 * scale, Math.floor(width * widthRatio / mirrorCount)); //柱子宽度至少1个单位 + var spaceFloat = (width - mirrorCount * lineWidth) / (mirrorCount + 1); //均匀间隔,首尾都留空,可能为负数,柱子将发生重叠 + + //绘制柱子 + var minHeight = set.minHeight * scale; + var mirrorSubX = spaceFloat + lineWidth / 2; + var XFloat = mirrorEnable ? width / 2 - mirrorSubX : 0; //镜像时,中间柱子位于正中心 + for (var i = 0, xFloat = XFloat, x, y, h; i < lineCount; i++) { + xFloat += spaceFloat; + x = Math.floor(xFloat); + h = Math.max(lastH[i], minHeight); + + //绘制上半部分 + if (originY != 0) { + y = originY - h; + ctx.fillStyle = linear1; + ctx.fillRect(x, y, lineWidth, h); + } + //绘制下半部分 + if (originY != height) { + ctx.fillStyle = linear2; + ctx.fillRect(x, originY, lineWidth, h); + } + xFloat += lineWidth; } - //绘制 - var minHeight = set.minHeight * scale; - var XFloat = mirrorEnable ? (width - lineWN) / 2 - spaceFloat : 0; //镜像时,中间柱子位于正中心 - for (var iMirror = 0; iMirror < 2; iMirror++) { - if (iMirror) { - ctx.save(); - ctx.scale(-1, 1); - } - var xMirror = iMirror ? width : 0; //绘制镜像部分,不用drawImage(canvas)进行镜像绘制,提升兼容性(iOS微信小程序bug https://developers.weixin.qq.com/community/develop/doc/000aaca2148dc8a235a0fb8c66b000) - - //绘制柱子 - ctx.shadowBlur = set.shadowBlur * scale; - ctx.shadowColor = set.shadowColor; - for (var i = 0, xFloat = XFloat, wFloat = 0, x, y, w, h; i < lineCount; i++) { + //绘制柱子顶上峰值小横条 + if (set.stripeEnable) { + var stripeShadowBlur = set.stripeShadowBlur; + ctx.shadowBlur = (stripeShadowBlur == -1 ? set.shadowBlur : stripeShadowBlur) * scale; + ctx.shadowColor = set.stripeShadowColor || set.shadowColor; + var stripeHeight = set.stripeHeight * scale; + for (var i = 0, xFloat = XFloat, x, y, h; i < lineCount; i++) { xFloat += spaceFloat; - x = Math.floor(xFloat) - xMirror; - w = lineWN; - wFloat += lineWF; - if (wFloat >= 1) { - w++; - wFloat--; - } //小数凑够1像素 - h = Math.max(lastH[i], minHeight); + x = Math.floor(xFloat); + h = stripesH[i]; //绘制上半部分 if (originY != 0) { - y = originY - h; - ctx.fillStyle = linear1; - ctx.fillRect(x, y, w, h); + y = originY - h - stripeHeight; + if (y < 0) { + y = 0; + } + ctx.fillStyle = stripeLinear1; + ctx.fillRect(x, y, lineWidth, stripeHeight); } //绘制下半部分 if (originY != height) { - ctx.fillStyle = linear2; - ctx.fillRect(x, originY, w, h); - } - xFloat += w; - } - - //绘制柱子顶上峰值小横条 - if (set.stripeEnable) { - var stripeShadowBlur = set.stripeShadowBlur; - ctx.shadowBlur = (stripeShadowBlur == -1 ? set.shadowBlur : stripeShadowBlur) * scale; - ctx.shadowColor = set.stripeShadowColor || set.shadowColor; - var stripeHeight = set.stripeHeight * scale; - for (var i = 0, xFloat = XFloat, wFloat = 0, x, y, w, h; i < lineCount; i++) { - xFloat += spaceFloat; - x = Math.floor(xFloat) - xMirror; - w = lineWN; - wFloat += lineWF; - if (wFloat >= 1) { - w++; - wFloat--; - } //小数凑够1像素 - h = stripesH[i]; - - //绘制上半部分 - if (originY != 0) { - y = originY - h - stripeHeight; - if (y < 0) { - y = 0; - } - ctx.fillStyle = stripeLinear1; - ctx.fillRect(x, y, w, stripeHeight); + y = originY + h; + if (y + stripeHeight > height) { + y = height - stripeHeight; } - //绘制下半部分 - if (originY != height) { - y = originY + h; - if (y + stripeHeight > height) { - y = height - stripeHeight; - } - ctx.fillStyle = stripeLinear2; - ctx.fillRect(x, y, w, stripeHeight); - } - xFloat += w; + ctx.fillStyle = stripeLinear2; + ctx.fillRect(x, y, lineWidth, stripeHeight); } + xFloat += lineWidth; } - if (iMirror) { - ctx.restore(); - } - if (!mirrorEnable) break; } - if (frequencyData) { - set.onDraw(frequencyData, sampleRate); + + //镜像,从中间直接镜像即可 + if (mirrorEnable) { + var srcW = Math.floor(width / 2); + ctx.save(); + ctx.scale(-1, 1); + ctx.drawImage(This.canvas, Math.ceil(width / 2), 0, srcW, height, -srcW, 0, srcW, height); + ctx.restore(); } + set.onDraw(frequencyData, sampleRate); } }; Recorder[ViewTxt] = FrequencyHistogramView; -}); +})(); /* 时域转频域,快速傅里叶变换(FFT) @@ -16135,111 +16394,104 @@ fft.transform(inBuffer) inBuffer:[Int16,...] 数组长度必须是bufferSize 返回[Float64(Long),...],长度为bufferSize/2 */ -(function (factory) { - var browser = typeof window == "object" && !!window.document; - var win = browser ? window : Object; //非浏览器环境,Recorder挂载在Object下面 - var rec = win.Recorder, - ni = rec.i18n; - factory(rec, ni, ni.$T, browser); -})(function (Recorder, i18n, $T, isBrowser) { + +/* +从FFT.java 移植,Java开源库:jmp123 版本0.3 +https://www.iteye.com/topic/851459 +https://sourceforge.net/projects/jmp123/files/ +*/ +Recorder.LibFFT = function (bufferSize) { + + var FFT_N_LOG, FFT_N, MINY; + var real, imag, sintable, costable; + var bitReverse; + var FFT_Fn = function (bufferSize) { + //bufferSize只能取值2的n次方 + FFT_N_LOG = Math.round(Math.log(bufferSize) / Math.log(2)); + FFT_N = 1 << FFT_N_LOG; + MINY = (FFT_N << 2) * Math.sqrt(2); + real = []; + imag = []; + sintable = [0]; + costable = [0]; + bitReverse = []; + var i, j, k, reve; + for (i = 0; i < FFT_N; i++) { + k = i; + for (j = 0, reve = 0; j != FFT_N_LOG; j++) { + reve <<= 1; + reve |= k & 1; + k >>>= 1; + } + bitReverse[i] = reve; + } + var theta, + dt = 2 * Math.PI / FFT_N; + for (i = (FFT_N >> 1) - 1; i > 0; i--) { + theta = i * dt; + costable[i] = Math.cos(theta); + sintable[i] = Math.sin(theta); + } + }; /* - 从FFT.java 移植,Java开源库:jmp123 版本0.3 - https://www.iteye.com/topic/851459 - https://sourceforge.net/projects/jmp123/files/ + 用于频谱显示的快速傅里叶变换 + inBuffer 输入FFT_N个实数,返回 FFT_N/2个输出值(复数模的平方)。 */ - Recorder.LibFFT = function (bufferSize) { - var FFT_N_LOG, FFT_N, MINY; - var real, imag, sintable, costable; - var bitReverse; - var FFT_Fn = function (bufferSize) { - //bufferSize只能取值2的n次方 - FFT_N_LOG = Math.round(Math.log(bufferSize) / Math.log(2)); - FFT_N = 1 << FFT_N_LOG; - MINY = (FFT_N << 2) * Math.sqrt(2); - real = []; - imag = []; - sintable = [0]; - costable = [0]; - bitReverse = []; - var i, j, k, reve; - for (i = 0; i < FFT_N; i++) { - k = i; - for (j = 0, reve = 0; j != FFT_N_LOG; j++) { - reve <<= 1; - reve |= k & 1; - k >>>= 1; + var getModulus = function (inBuffer) { + var i, + j, + k, + ir, + j0 = 1, + idx = FFT_N_LOG - 1; + var cosv, sinv, tmpr, tmpi; + for (i = 0; i != FFT_N; i++) { + real[i] = inBuffer[bitReverse[i]]; + imag[i] = 0; + } + for (i = FFT_N_LOG; i != 0; i--) { + for (j = 0; j != j0; j++) { + cosv = costable[j << idx]; + sinv = sintable[j << idx]; + for (k = j; k < FFT_N; k += j0 << 1) { + ir = k + j0; + tmpr = cosv * real[ir] - sinv * imag[ir]; + tmpi = cosv * imag[ir] + sinv * real[ir]; + real[ir] = real[k] - tmpr; + imag[ir] = imag[k] - tmpi; + real[k] += tmpr; + imag[k] += tmpi; } - bitReverse[i] = reve; } - var theta, - dt = 2 * Math.PI / FFT_N; - for (i = (FFT_N >> 1) - 1; i > 0; i--) { - theta = i * dt; - costable[i] = Math.cos(theta); - sintable[i] = Math.sin(theta); - } - }; - + j0 <<= 1; + idx--; + } + j = FFT_N >> 1; + var outBuffer = new Float64Array(j); /* - 用于频谱显示的快速傅里叶变换 - inBuffer 输入FFT_N个实数,返回 FFT_N/2个输出值(复数模的平方)。 - */ - var getModulus = function (inBuffer) { - var i, - j, - k, - ir, - j0 = 1, - idx = FFT_N_LOG - 1; - var cosv, sinv, tmpr, tmpi; - for (i = 0; i != FFT_N; i++) { - real[i] = inBuffer[bitReverse[i]]; - imag[i] = 0; - } - for (i = FFT_N_LOG; i != 0; i--) { - for (j = 0; j != j0; j++) { - cosv = costable[j << idx]; - sinv = sintable[j << idx]; - for (k = j; k < FFT_N; k += j0 << 1) { - ir = k + j0; - tmpr = cosv * real[ir] - sinv * imag[ir]; - tmpi = cosv * imag[ir] + sinv * real[ir]; - real[ir] = real[k] - tmpr; - imag[ir] = imag[k] - tmpi; - real[k] += tmpr; - imag[k] += tmpi; - } - } - j0 <<= 1; - idx--; - } - j = FFT_N >> 1; - var outBuffer = new Float64Array(j); - /* - * 输出模的平方: - * for(i = 1; i <= j; i++) - * inBuffer[i-1] = real[i] * real[i] + imag[i] * imag[i]; - * - * 如果FFT只用于频谱显示,可以"淘汰"幅值较小的而减少浮点乘法运算. MINY的值 - * 和Spectrum.Y0,Spectrum.logY0对应. - */ - sinv = MINY; - cosv = -MINY; - for (i = j; i != 0; i--) { - tmpr = real[i]; - tmpi = imag[i]; - if (tmpr > cosv && tmpr < sinv && tmpi > cosv && tmpi < sinv) outBuffer[i - 1] = 0;else outBuffer[i - 1] = Math.round(tmpr * tmpr + tmpi * tmpi); - } - return outBuffer; - }; - FFT_Fn(bufferSize); - return { - transform: getModulus, - bufferSize: FFT_N - }; + * 输出模的平方: + * for(i = 1; i <= j; i++) + * inBuffer[i-1] = real[i] * real[i] + imag[i] * imag[i]; + * + * 如果FFT只用于频谱显示,可以"淘汰"幅值较小的而减少浮点乘法运算. MINY的值 + * 和Spectrum.Y0,Spectrum.logY0对应. + */ + sinv = MINY; + cosv = -MINY; + for (i = j; i != 0; i--) { + tmpr = real[i]; + tmpi = imag[i]; + if (tmpr > cosv && tmpr < sinv && tmpi > cosv && tmpi < sinv) outBuffer[i - 1] = 0;else outBuffer[i - 1] = Math.round(tmpr * tmpr + tmpi * tmpi); + } + return outBuffer; }; -}); + FFT_Fn(bufferSize); + return { + transform: getModulus, + bufferSize: FFT_N + }; +}; var playIcon = "data:image/png;base64,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"; @@ -16538,7 +16790,9 @@ var script$9 = { minHeight: 12, mirrorEnable: true, stripeEnable: false, - linear: [0, '#8FC1FD', 1, '#8FC1FD'] + linear: [0, '#8FC1FD', 1, '#8FC1FD'], + width: 300, + height: 100 }); this.waveStore.Histogram3 = recorder_mp3_min.FrequencyHistogramView({ elem: elem, @@ -16548,7 +16802,9 @@ var script$9 = { fallDuration: 400, stripeEnable: false, mirrorEnable: true, - linear: [0, '#0ac', 1, '#0ac'] + linear: [0, '#0ac', 1, '#0ac'], + width: 300, + height: 100 }); }, toggleRec() { @@ -16585,7 +16841,7 @@ var script$9 = { rec.open(function () { _this.dialogCancel(); // _this.reclog("已打开:"+_this.type+" "+_this.sampleRate+"hz "+_this.bitRate+"kbps",2); - + console.log(waveBoxSelector); // _this.wave=Recorder.WaveView({elem:".ctrlProcessWave"}); _this.initWaveStore(waveBoxSelector); rec.start(); @@ -16828,7 +17084,7 @@ var __vue_render__$9 = function () { !_vm.recBolb ? _c("div", { staticClass: "recwave", - staticStyle: { height: "75%", width: "100%" }, + staticStyle: { height: "80px", width: "100%" }, attrs: { id: _vm.waveBoxKey }, }) : _vm._e(), diff --git a/src/plugin/xml-digital-teaching/lib/imageText.min.css b/src/plugin/xml-digital-teaching/lib/imageText.min.css index 125dd05..d8957de 100644 --- a/src/plugin/xml-digital-teaching/lib/imageText.min.css +++ b/src/plugin/xml-digital-teaching/lib/imageText.min.css @@ -1 +1 @@ -.xml-text-h5 .inline-audio-wrap,.xml-text-h5 .inline-link-wrap{align-items:center}.xml-text-h5 .inline-audio-wrap span,.xml-text-h5 .inline-link-wrap span{display:inline-block}.xml-text-h5 .inline-audio-box{width:20px;height:20px;box-sizing:border-box;position:relative;margin-left:6px}.xml-text-h5 .inline-audio-box .wifi-symbol{width:20px;height:20px;box-sizing:border-box;overflow:hidden;transform:rotate(135deg);position:relative}.xml-text-h5 .inline-audio-box .wifi-symbol .wifi-circle{border:3px solid #418eed;border-radius:50%;position:absolute}.xml-text-h5 .inline-audio-box .wifi-symbol .wifi-circle.first{width:3px;height:3px;background:#0076bc;top:14px;left:14px}.xml-text-h5 .inline-audio-box .wifi-symbol .wifi-circle.second{width:15px;height:15px;top:10px;left:10px}.xml-text-h5 .inline-audio-box .wifi-symbol .wifi-circle.third{width:24px;height:24px;top:6px;left:6px}.xml-text-h5 .inline-audio-box .wifi-symbol.playing .second{animation:fadeInOut 1s infinite .2s}.xml-text-h5 .inline-audio-box .wifi-symbol.playing .third{animation:fadeInOut 1s infinite .4s}@keyframes fadeInOut{0%{opacity:0}100%{opacity:1}}.virtual-input .el-textarea__inner{min-height:0!important;height:0!important;padding:0!important;margin:0!important;border:none!important}.xml-image-lun-bo .el-carousel__item{text-align:center}.el-image__inner[data-v-755c322e]{width:100%!important}.xml-image-ping-pu-h5[data-v-755c322e]{display:flex;flex-direction:column;align-items:center}.xml-image-hua-lang[data-v-755c322e]{display:flex;flex-direction:column;align-items:center} \ No newline at end of file +.xml-text-h5 .inline-audio-wrap,.xml-text-h5 .inline-link-wrap{align-items:center}.xml-text-h5 .inline-audio-wrap span,.xml-text-h5 .inline-link-wrap span{display:inline-block}.xml-text-h5 .inline-audio-box{width:20px;height:20px;box-sizing:border-box;position:relative;margin-left:6px}.xml-text-h5 .inline-audio-box .wifi-symbol{width:20px;height:20px;box-sizing:border-box;overflow:hidden;transform:rotate(135deg);position:relative}.xml-text-h5 .inline-audio-box .wifi-symbol .wifi-circle{border:3px solid #418eed;border-radius:50%;position:absolute}.xml-text-h5 .inline-audio-box .wifi-symbol .wifi-circle.first{width:3px;height:3px;background:#0076bc;top:14px;left:14px}.xml-text-h5 .inline-audio-box .wifi-symbol .wifi-circle.second{width:15px;height:15px;top:10px;left:10px}.xml-text-h5 .inline-audio-box .wifi-symbol .wifi-circle.third{width:24px;height:24px;top:6px;left:6px}.xml-text-h5 .inline-audio-box .wifi-symbol.playing .second{animation:fadeInOut 1s infinite .2s}.xml-text-h5 .inline-audio-box .wifi-symbol.playing .third{animation:fadeInOut 1s infinite .4s}@keyframes fadeInOut{0%{opacity:0}100%{opacity:1}}.virtual-input .el-textarea__inner{min-height:0!important;height:0!important;padding:0!important;margin:0!important;border:none!important}.xml-image-lun-bo .el-carousel__item{text-align:center}.el-image__inner[data-v-fb4f6862]{width:100%!important}.xml-image-ping-pu-h5[data-v-fb4f6862]{display:flex;flex-direction:column;align-items:center}.xml-image-hua-lang[data-v-fb4f6862]{display:flex;flex-direction:column;align-items:center} \ No newline at end of file diff --git a/src/plugin/xml-digital-teaching/lib/index.css b/src/plugin/xml-digital-teaching/lib/index.css index c36b105..896c958 100644 --- a/src/plugin/xml-digital-teaching/lib/index.css +++ b/src/plugin/xml-digital-teaching/lib/index.css @@ -1,32 +1,32 @@ -.preview-container-h5[data-v-deb005fc] { +.preview-container-h5[data-v-2ddaab64] { padding-top: 15px; } -.preview-container-pc[data-v-deb005fc] { +.preview-container-pc[data-v-2ddaab64] { padding-top: 15px; } -.preview-container-pad[data-v-deb005fc] { +.preview-container-pad[data-v-2ddaab64] { padding-top: 15px; } -.preview-container[data-v-deb005fc] .el-dialog__wrapper.preview-box-dialog { +.preview-container[data-v-2ddaab64] .el-dialog__wrapper.preview-box-dialog { display: flex; align-items: center; } -.preview-container[data-v-deb005fc] .el-dialog__wrapper.preview-box-dialog .el-dialog:not(.is-fullscreen) { +.preview-container[data-v-2ddaab64] .el-dialog__wrapper.preview-box-dialog .el-dialog:not(.is-fullscreen) { margin-top: 0 !important; } -.preview-container[data-v-deb005fc] .el-dialog__wrapper.preview-box-dialog .el-dialog__header { +.preview-container[data-v-2ddaab64] .el-dialog__wrapper.preview-box-dialog .el-dialog__header { padding: 0; } -.preview-container[data-v-deb005fc] .el-dialog__wrapper.preview-box-dialog .custom-dialog { +.preview-container[data-v-2ddaab64] .el-dialog__wrapper.preview-box-dialog .custom-dialog { background-color: transparent; box-shadow: none; } -.preview-container[data-v-deb005fc] .el-dialog__wrapper.preview-box-dialog .el-dialog__body { +.preview-container[data-v-2ddaab64] .el-dialog__wrapper.preview-box-dialog .el-dialog__body { padding: 20px 18px; position: relative; background: linear-gradient(-45deg, transparent 11px, #fff 0); } -.preview-container[data-v-deb005fc] .el-dialog__wrapper.preview-box-dialog .el-dialog__body .top-line { +.preview-container[data-v-2ddaab64] .el-dialog__wrapper.preview-box-dialog .el-dialog__body .top-line { position: absolute; top: 0; left: 0; @@ -34,24 +34,24 @@ height: 4px; background: linear-gradient(90deg, #4994fb, #4994fb, #a2c5f9); } -.preview-container[data-v-deb005fc] .el-dialog__wrapper.preview-box-dialog .el-dialog__body .native-html-wrapper { +.preview-container[data-v-2ddaab64] .el-dialog__wrapper.preview-box-dialog .el-dialog__body .native-html-wrapper { max-height: 60vh; overflow-y: scroll; } -.preview-container[data-v-deb005fc] .el-dialog__wrapper.preview-box-dialog .el-dialog__body .native-html-wrapper::-webkit-scrollbar { +.preview-container[data-v-2ddaab64] .el-dialog__wrapper.preview-box-dialog .el-dialog__body .native-html-wrapper::-webkit-scrollbar { width: 0; } -.preview-container[data-v-deb005fc] .el-dialog__wrapper.preview-box-dialog .el-dialog__body .native-html-wrapper h1, -.preview-container[data-v-deb005fc] .el-dialog__wrapper.preview-box-dialog .el-dialog__body .native-html-wrapper h2, -.preview-container[data-v-deb005fc] .el-dialog__wrapper.preview-box-dialog .el-dialog__body .native-html-wrapper h3, -.preview-container[data-v-deb005fc] .el-dialog__wrapper.preview-box-dialog .el-dialog__body .native-html-wrapper h4, -.preview-container[data-v-deb005fc] .el-dialog__wrapper.preview-box-dialog .el-dialog__body .native-html-wrapper h5, -.preview-container[data-v-deb005fc] .el-dialog__wrapper.preview-box-dialog .el-dialog__body .native-html-wrapper h6 { +.preview-container[data-v-2ddaab64] .el-dialog__wrapper.preview-box-dialog .el-dialog__body .native-html-wrapper h1, +.preview-container[data-v-2ddaab64] .el-dialog__wrapper.preview-box-dialog .el-dialog__body .native-html-wrapper h2, +.preview-container[data-v-2ddaab64] .el-dialog__wrapper.preview-box-dialog .el-dialog__body .native-html-wrapper h3, +.preview-container[data-v-2ddaab64] .el-dialog__wrapper.preview-box-dialog .el-dialog__body .native-html-wrapper h4, +.preview-container[data-v-2ddaab64] .el-dialog__wrapper.preview-box-dialog .el-dialog__body .native-html-wrapper h5, +.preview-container[data-v-2ddaab64] .el-dialog__wrapper.preview-box-dialog .el-dialog__body .native-html-wrapper h6 { color: revert; font-size: revert; font-weight: revert; } -.preview-container[data-v-deb005fc] .el-dialog__wrapper.preview-box-dialog .el-dialog__body .bottom-triangle { +.preview-container[data-v-2ddaab64] .el-dialog__wrapper.preview-box-dialog .el-dialog__body .bottom-triangle { position: absolute; bottom: 0; right: 0; @@ -353,14 +353,6 @@ - - - -/*# sourceMappingURL=XmlTextDialog.vue.map */ - -.xml-show-catalog .el-tree-node__content { - display: flex !important; -} @@ -370,23 +362,17 @@ text-align: center; } -.catalog-node-label[data-v-61c986fa] { - display: flex; - align-items: center; -} -.catalog-node-label img[data-v-61c986fa] { - margin-right: 4px; -} -.xml-show-catalog[data-v-61c986fa] .el-tree-node__content { - height: auto; -} -.xml-show-catalog[data-v-61c986fa] .el-tree-node__content .catalog-node-label { - max-width: calc(100% - 24px); - word-break: break-all; - white-space: normal; -} -/*# sourceMappingURL=XmlCatalog.vue.map */ +.xml-text-h5[data-v-5d93942a] { +} +.xml-text-pc[data-v-5d93942a] { +} +.xml-text-h5[data-v-5d93942a] { +} + + + +/*# sourceMappingURL=XmlTextDialog.vue.map */ .xml-text-h5 .inline-audio-wrap, .xml-text-h5 .inline-link-wrap { align-items: center; @@ -457,12 +443,56 @@ } /*# sourceMappingURL=XmlText.vue.map */ +.preview-item-file[data-v-2be4d8c2]:hover, +.slip-over-cover[data-v-2be4d8c2]:hover { + cursor: pointer; +} -.xml-text-h5[data-v-5d93942a] { +/*# sourceMappingURL=XmlResource.vue.map */ + +.xml-show-catalog .el-tree-node__content { + display: flex !important; +} + + +.xml-ebook-container-h5[data-v-7ea50222] { } -.xml-text-pc[data-v-5d93942a] { +.xml-ebook-container-pc[data-v-7ea50222] { } -.xml-text-h5[data-v-5d93942a] { +.xml-ebook-container-pad[data-v-7ea50222] { +} + +.catalog-node-label[data-v-61c986fa] { + display: flex; + align-items: center; +} +.catalog-node-label img[data-v-61c986fa] { + margin-right: 4px; +} +.xml-show-catalog[data-v-61c986fa] .el-tree-node__content { + height: auto; +} +.xml-show-catalog[data-v-61c986fa] .el-tree-node__content .catalog-node-label { + max-width: calc(100% - 24px); + word-break: break-all; + white-space: normal; +} + +/*# sourceMappingURL=XmlCatalog.vue.map */ + +.xml-question-container-h5[data-v-2e04d85c] { +} +.xml-question-container-pc[data-v-2e04d85c] { +} +.xml-question-container-pad[data-v-2e04d85c] { +} + + +.xml-video-container-h5[data-v-82da5782] { +} +.xml-video-container-pc[data-v-82da5782] { +} +.xml-video-container-pad[data-v-82da5782] { } .xml-video-container-pdf[data-v-3c5e97c1] { @@ -492,38 +522,11 @@ /*# sourceMappingURL=XmlVideoImg.vue.map */ -.xml-question-container-h5[data-v-0f531fa4] { -} -.xml-question-container-pc[data-v-0f531fa4] { -} -.xml-question-container-pad[data-v-0f531fa4] { -} - - /*# sourceMappingURL=XmlTestPaper.vue.map */ -.xml-video-container-h5[data-v-82da5782] { -} -.xml-video-container-pc[data-v-82da5782] { -} -.xml-video-container-pad[data-v-82da5782] { -} - -.preview-item-file[data-v-2be4d8c2]:hover, -.slip-over-cover[data-v-2be4d8c2]:hover { - cursor: pointer; -} -/*# sourceMappingURL=XmlResource.vue.map */ - -.xml-ebook-container-h5[data-v-7ea50222] { -} -.xml-ebook-container-pc[data-v-7ea50222] { -} -.xml-ebook-container-pad[data-v-7ea50222] { -} - +/*# sourceMappingURL=second.vue.map */ /*# sourceMappingURL=second.vue.map */ @@ -535,10 +538,25 @@ /*# sourceMappingURL=second.vue.map */ -/*# sourceMappingURL=hexagon.vue.map */ +/*# sourceMappingURL=eighth.vue.map */ -/*# sourceMappingURL=second.vue.map */ +/*# sourceMappingURL=isosceles.vue.map */ + + +/*# sourceMappingURL=eighth.vue.map */ + + +/*# sourceMappingURL=first.vue.map */ + + +/*# sourceMappingURL=eighth.vue.map */ + + +/*# sourceMappingURL=first.vue.map */ + + +/*# sourceMappingURL=ninth.vue.map */ /*# sourceMappingURL=first.vue.map */ @@ -547,37 +565,46 @@ /*# sourceMappingURL=first.vue.map */ -/*# sourceMappingURL=first.vue.map */ +/*# sourceMappingURL=wave.vue.map */ -/*# sourceMappingURL=first.vue.map */ +/*# sourceMappingURL=tenth.vue.map */ + + +/*# sourceMappingURL=quadrangle.vue.map */ + + +/*# sourceMappingURL=ninth.vue.map */ + + +/*# sourceMappingURL=thirteen.vue.map */ + + +/*# sourceMappingURL=seventh.vue.map */ + + +/*# sourceMappingURL=tenth.vue.map */ + + +/*# sourceMappingURL=seventh.vue.map */ + + +/*# sourceMappingURL=seventh.vue.map */ + + +/*# sourceMappingURL=twelve.vue.map */ /*# sourceMappingURL=fourteen.vue.map */ -/*# sourceMappingURL=sixth.vue.map */ +/*# sourceMappingURL=fifteen.vue.map */ /*# sourceMappingURL=fourteen.vue.map */ -/*# sourceMappingURL=sixth.vue.map */ - - -/*# sourceMappingURL=sixth.vue.map */ - - -/*# sourceMappingURL=third.vue.map */ - - -/*# sourceMappingURL=rotundity.vue.map */ - - -/*# sourceMappingURL=third.vue.map */ - - -/*# sourceMappingURL=rectangle.vue.map */ +/*# sourceMappingURL=eleven.vue.map */ /*# sourceMappingURL=third.vue.map */ @@ -586,76 +613,55 @@ /*# sourceMappingURL=third.vue.map */ -/*# sourceMappingURL=fifth.vue.map */ - - -/*# sourceMappingURL=fifth.vue.map */ +/*# sourceMappingURL=third.vue.map */ /*# sourceMappingURL=fifteen.vue.map */ -/*# sourceMappingURL=semicircle.vue.map */ +/*# sourceMappingURL=Greentheme5.vue.map */ -/*# sourceMappingURL=fifth.vue.map */ - - -/*# sourceMappingURL=square.vue.map */ - - -/*# sourceMappingURL=fifteen.vue.map */ - - -/*# sourceMappingURL=twelfth.vue.map */ - - -/*# sourceMappingURL=triangle.vue.map */ - - -/*# sourceMappingURL=thirteenth.vue.map */ - - -/*# sourceMappingURL=eighteen.vue.map */ - - -/*# sourceMappingURL=seventeen.vue.map */ - - -/*# sourceMappingURL=Greentheme2.vue.map */ - - -/*# sourceMappingURL=nineteen.vue.map */ - - -/*# sourceMappingURL=Greentheme2.vue.map */ - - -/*# sourceMappingURL=sixteen.vue.map */ - - -/*# sourceMappingURL=sixteen.vue.map */ - - -/*# sourceMappingURL=Greentheme2.vue.map */ - - -/*# sourceMappingURL=eighteen2.vue.map */ +/*# sourceMappingURL=Greentheme5.vue.map */ /*# sourceMappingURL=Greentheme3.vue.map */ -/*# sourceMappingURL=Greentheme3.vue.map */ +/*# sourceMappingURL=third.vue.map */ /*# sourceMappingURL=Greentheme3.vue.map */ -/*# sourceMappingURL=Greentheme1.vue.map */ +/*# sourceMappingURL=Greentheme4.vue.map */ -/*# sourceMappingURL=Greentheme1.vue.map */ +/*# sourceMappingURL=Greentheme4.vue.map */ + + +/*# sourceMappingURL=Greentheme4.vue.map */ + + +/*# sourceMappingURL=Greentheme3.vue.map */ + + +/*# sourceMappingURL=Yellowtheme3.vue.map */ + + +/*# sourceMappingURL=Yellowtheme3.vue.map */ + + +/*# sourceMappingURL=Yellowtheme3.vue.map */ + + +/*# sourceMappingURL=Greentheme2.vue.map */ + + +/*# sourceMappingURL=Greentheme2.vue.map */ + + +/*# sourceMappingURL=Greentheme2.vue.map */ /*# sourceMappingURL=Yellowtheme1.vue.map */ @@ -667,100 +673,88 @@ /*# sourceMappingURL=Yellowtheme1.vue.map */ +/*# sourceMappingURL=Redtheme1.vue.map */ + + +/*# sourceMappingURL=Redtheme1.vue.map */ + + +/*# sourceMappingURL=Yellowtheme2.vue.map */ + + +/*# sourceMappingURL=Yellowtheme2.vue.map */ + + +/*# sourceMappingURL=Yellowtheme2.vue.map */ + + +/*# sourceMappingURL=Yellowtheme4.vue.map */ + + +/*# sourceMappingURL=Yellowtheme4.vue.map */ + + +/*# sourceMappingURL=Redtheme2.vue.map */ + + +/*# sourceMappingURL=Yellowtheme4.vue.map */ + + +/*# sourceMappingURL=Redtheme2.vue.map */ + + +/*# sourceMappingURL=Redtheme5.vue.map */ + + +/*# sourceMappingURL=Redtheme3.vue.map */ + + +/*# sourceMappingURL=SanQintheme2.vue.map */ + + +/*# sourceMappingURL=SanQintheme2.vue.map */ + + +/*# sourceMappingURL=Redtheme3.vue.map */ + + +/*# sourceMappingURL=Redtheme6.vue.map */ + + +/*# sourceMappingURL=Yellowtheme5.vue.map */ + + /*# sourceMappingURL=SanQintheme1.vue.map */ /*# sourceMappingURL=SanQintheme1.vue.map */ -/*# sourceMappingURL=Greentheme4.vue.map */ +/*# sourceMappingURL=Yellowtheme5.vue.map */ -/*# sourceMappingURL=Greentheme4.vue.map */ +/*# sourceMappingURL=sixteen.vue.map */ -/*# sourceMappingURL=Greentheme4.vue.map */ +/*# sourceMappingURL=Redtheme4.vue.map */ -/*# sourceMappingURL=Greentheme6.vue.map */ +/*# sourceMappingURL=Redtheme4.vue.map */ -/*# sourceMappingURL=Yellowtheme3.vue.map */ - - -/*# sourceMappingURL=Yellowtheme3.vue.map */ - - -/*# sourceMappingURL=Yellowtheme2.vue.map */ - - -/*# sourceMappingURL=Yellowtheme3.vue.map */ - - -/*# sourceMappingURL=Yellowtheme2.vue.map */ - - -/*# sourceMappingURL=Yellowtheme2.vue.map */ - - -/*# sourceMappingURL=Yellowtheme6.vue.map */ - - -/*# sourceMappingURL=Yellowtheme4.vue.map */ - - -/*# sourceMappingURL=Yellowtheme4.vue.map */ - - -/*# sourceMappingURL=SanQintheme2.vue.map */ - - -/*# sourceMappingURL=Yellowtheme4.vue.map */ +/*# sourceMappingURL=sixteen.vue.map */ /*# sourceMappingURL=SanQintheme3.vue.map */ -/*# sourceMappingURL=SanQintheme2.vue.map */ - - /*# sourceMappingURL=SanQintheme3.vue.map */ -/*# sourceMappingURL=Greentheme5.vue.map */ - - -/*# sourceMappingURL=Yellowtheme5.vue.map */ - - -/*# sourceMappingURL=Yellowtheme5.vue.map */ - - -/*# sourceMappingURL=Knowledge.vue.map */ - - -/*# sourceMappingURL=Greentheme5.vue.map */ - - /*# sourceMappingURL=first.vue.map */ -/*# sourceMappingURL=sixth.vue.map */ - - -/*# sourceMappingURL=semicircle.vue.map */ - - -/*# sourceMappingURL=Greentheme4.vue.map */ - - -/*# sourceMappingURL=Yellowtheme5.vue.map */ - - -/*# sourceMappingURL=Greentheme1.vue.map */ - - -/*# sourceMappingURL=fifteen.vue.map */ +/*# sourceMappingURL=Yellowtheme1.vue.map */ .title-text[data-v-616d10ee] { background-color: var(--background-color) !important; } @@ -772,307 +766,301 @@ /*# sourceMappingURL=third.vue.map */ -/*# sourceMappingURL=rectangle.vue.map */ - - -/*# sourceMappingURL=Yellowtheme1.vue.map */ - - -/*# sourceMappingURL=twelfth.vue.map */ - - -/*# sourceMappingURL=Yellowtheme2.vue.map */ - - -/*# sourceMappingURL=thirteenth.vue.map */ +/*# sourceMappingURL=Yellowtheme5.vue.map */ /*# sourceMappingURL=Yellowtheme4.vue.map */ -/*# sourceMappingURL=Yellowtheme6.vue.map */ +/*# sourceMappingURL=Yellowtheme2.vue.map */ -/*# sourceMappingURL=seventeen.vue.map */ +/*# sourceMappingURL=fifteen.vue.map */ -/*# sourceMappingURL=hexagon.vue.map */ - - -/*# sourceMappingURL=nineteen.vue.map */ - - -/*# sourceMappingURL=sixteen.vue.map */ +/*# sourceMappingURL=Greentheme3.vue.map */ /*# sourceMappingURL=Greentheme2.vue.map */ -/*# sourceMappingURL=Greentheme6.vue.map */ - - -/*# sourceMappingURL=Greentheme3.vue.map */ - - -/*# sourceMappingURL=Knowledge.vue.map */ - - /*# sourceMappingURL=fourteen.vue.map */ -/*# sourceMappingURL=triangle.vue.map */ - - -/*# sourceMappingURL=seventh.vue.map */ - - -/*# sourceMappingURL=seventh.vue.map */ - - -/*# sourceMappingURL=seventh.vue.map */ - - -/*# sourceMappingURL=eighth.vue.map */ - - -/*# sourceMappingURL=eighth.vue.map */ - - -/*# sourceMappingURL=eighth.vue.map */ - - -/*# sourceMappingURL=fourth.vue.map */ - - -/*# sourceMappingURL=fourth.vue.map */ - - -/*# sourceMappingURL=fifth.vue.map */ - - -/*# sourceMappingURL=ninth.vue.map */ - - -/*# sourceMappingURL=ninth.vue.map */ - - -/*# sourceMappingURL=isosceles.vue.map */ - - -/*# sourceMappingURL=twelve.vue.map */ - - -/*# sourceMappingURL=wave.vue.map */ - - -/*# sourceMappingURL=quadrangle.vue.map */ - - -/*# sourceMappingURL=thirteen.vue.map */ - - -/*# sourceMappingURL=tenth.vue.map */ - - -/*# sourceMappingURL=tenth.vue.map */ - - -/*# sourceMappingURL=Redtheme6.vue.map */ - - -/*# sourceMappingURL=eleven.vue.map */ - - -/*# sourceMappingURL=Redtheme3.vue.map */ - - -/*# sourceMappingURL=Redtheme3.vue.map */ - - -/*# sourceMappingURL=Redtheme3.vue.map */ - - -/*# sourceMappingURL=second.vue.map */ - - -/*# sourceMappingURL=isosceles.vue.map */ - - -/*# sourceMappingURL=ninth.vue.map */ - - -/*# sourceMappingURL=first.vue.map */ - - -/*# sourceMappingURL=sixteen.vue.map */ - - -/*# sourceMappingURL=eighth.vue.map */ - - -/*# sourceMappingURL=seventh.vue.map */ - - -/*# sourceMappingURL=third.vue.map */ - - -/*# sourceMappingURL=thirteen.vue.map */ - - -/*# sourceMappingURL=quadrangle.vue.map */ - - -/*# sourceMappingURL=tenth.vue.map */ - - -/*# sourceMappingURL=eleven.vue.map */ - - -/*# sourceMappingURL=Greentheme3.vue.map */ - - /*# sourceMappingURL=Greentheme4.vue.map */ -/*# sourceMappingURL=Redtheme2.vue.map */ +/*# sourceMappingURL=sixteen.vue.map */ -/*# sourceMappingURL=Redtheme2.vue.map */ +/*# sourceMappingURL=sixth.vue.map */ -/*# sourceMappingURL=Redtheme2.vue.map */ +/*# sourceMappingURL=sixth.vue.map */ -/*# sourceMappingURL=Redtheme1.vue.map */ +/*# sourceMappingURL=sixth.vue.map */ -/*# sourceMappingURL=Redtheme1.vue.map */ +/*# sourceMappingURL=Redtheme3.vue.map */ -/*# sourceMappingURL=Redtheme1.vue.map */ +/*# sourceMappingURL=sixth.vue.map */ -/*# sourceMappingURL=Redtheme5.vue.map */ +/*# sourceMappingURL=hexagon.vue.map */ + + +/*# sourceMappingURL=fifth.vue.map */ + + +/*# sourceMappingURL=hexagon.vue.map */ + + +/*# sourceMappingURL=fifth.vue.map */ + + +/*# sourceMappingURL=fifth.vue.map */ + + +/*# sourceMappingURL=fifth.vue.map */ + + +/*# sourceMappingURL=rectangle.vue.map */ /*# sourceMappingURL=Redtheme4.vue.map */ -/*# sourceMappingURL=Redtheme4.vue.map */ +/*# sourceMappingURL=rectangle.vue.map */ -/*# sourceMappingURL=Redtheme4.vue.map */ +/*# sourceMappingURL=Redtheme1.vue.map */ + + +/*# sourceMappingURL=Redtheme2.vue.map */ + + +/*# sourceMappingURL=twelfth.vue.map */ + + +/*# sourceMappingURL=twelfth.vue.map */ + + +/*# sourceMappingURL=semicircle.vue.map */ + + +/*# sourceMappingURL=semicircle.vue.map */ + + +/*# sourceMappingURL=square.vue.map */ + + +/*# sourceMappingURL=rotundity.vue.map */ + + +/*# sourceMappingURL=triangle.vue.map */ + + +/*# sourceMappingURL=triangle.vue.map */ + + +/*# sourceMappingURL=thirteenth.vue.map */ + + +/*# sourceMappingURL=thirteenth.vue.map */ + + +/*# sourceMappingURL=seventeen.vue.map */ + + +/*# sourceMappingURL=seventeen.vue.map */ + + +/*# sourceMappingURL=eighteen2.vue.map */ + + +/*# sourceMappingURL=nineteen.vue.map */ + + +/*# sourceMappingURL=nineteen.vue.map */ + + +/*# sourceMappingURL=eighteen.vue.map */ + + +/*# sourceMappingURL=Greentheme1.vue.map */ + + +/*# sourceMappingURL=Greentheme1.vue.map */ + + +/*# sourceMappingURL=Greentheme1.vue.map */ + + +/*# sourceMappingURL=Greentheme6.vue.map */ + + +/*# sourceMappingURL=Greentheme6.vue.map */ + + +/*# sourceMappingURL=eighth.vue.map */ + + +/*# sourceMappingURL=first.vue.map */ + + +/*# sourceMappingURL=quadrangle.vue.map */ + + +/*# sourceMappingURL=tenth.vue.map */ + + +/*# sourceMappingURL=ninth.vue.map */ + + +/*# sourceMappingURL=second.vue.map */ + + +/*# sourceMappingURL=thirteen.vue.map */ + + +/*# sourceMappingURL=third.vue.map */ + + +/*# sourceMappingURL=seventh.vue.map */ + + +/*# sourceMappingURL=sixteen.vue.map */ + + +/*# sourceMappingURL=isosceles.vue.map */ + + +/*# sourceMappingURL=Greentheme3.vue.map */ /*# sourceMappingURL=fourteen.vue.map */ +/*# sourceMappingURL=eleven.vue.map */ + + +/*# sourceMappingURL=Yellowtheme1.vue.map */ + + +/*# sourceMappingURL=Yellowtheme6.vue.map */ + + +/*# sourceMappingURL=Yellowtheme6.vue.map */ + + +/*# sourceMappingURL=Knowledge.vue.map */ + + +/*# sourceMappingURL=Knowledge.vue.map */ + + +/*# sourceMappingURL=Greentheme4.vue.map */ + + /*# sourceMappingURL=Greentheme2.vue.map */ /*# sourceMappingURL=Greentheme5.vue.map */ -/*# sourceMappingURL=Yellowtheme5.vue.map */ - - -/*# sourceMappingURL=Yellowtheme1.vue.map */ - - -/*# sourceMappingURL=Yellowtheme4.vue.map */ - - /*# sourceMappingURL=Yellowtheme2.vue.map */ -/*# sourceMappingURL=Redtheme4.vue.map */ - - /*# sourceMappingURL=Yellowtheme3.vue.map */ +/*# sourceMappingURL=Yellowtheme4.vue.map */ + + +/*# sourceMappingURL=Yellowtheme5.vue.map */ + + /*# sourceMappingURL=Redtheme1.vue.map */ -/*# sourceMappingURL=Redtheme3.vue.map */ - - -/*# sourceMappingURL=Redtheme6.vue.map */ - - -/*# sourceMappingURL=Redtheme2.vue.map */ - - /*# sourceMappingURL=Redtheme5.vue.map */ -/*# sourceMappingURL=Greytheme2.vue.map */ +/*# sourceMappingURL=Redtheme4.vue.map */ -/*# sourceMappingURL=Greytheme3.vue.map */ +/*# sourceMappingURL=fourth.vue.map */ -/*# sourceMappingURL=Greytheme5.vue.map */ +/*# sourceMappingURL=Redtheme3.vue.map */ + + +/*# sourceMappingURL=fourth.vue.map */ + + +/*# sourceMappingURL=Redtheme2.vue.map */ + + +/*# sourceMappingURL=Redtheme6.vue.map */ + + +/*# sourceMappingURL=SanQintheme1.vue.map */ /*# sourceMappingURL=Greytheme1.vue.map */ -/*# sourceMappingURL=eleventh.vue.map */ - - -/*# sourceMappingURL=Greytheme6.vue.map */ +/*# sourceMappingURL=Greytheme3.vue.map */ /*# sourceMappingURL=Greytheme4.vue.map */ +/*# sourceMappingURL=Greytheme2.vue.map */ + + +/*# sourceMappingURL=Greytheme5.vue.map */ + + +/*# sourceMappingURL=Greytheme6.vue.map */ + + +/*# sourceMappingURL=eleventh.vue.map */ + + /*# sourceMappingURL=twelve.vue.map */ -/*# sourceMappingURL=SanQintheme1.vue.map */ - - /*# sourceMappingURL=Bluetheme2.vue.map */ /*# sourceMappingURL=Bluetheme3.vue.map */ +/*# sourceMappingURL=Bluetheme4.vue.map */ + + /*# sourceMappingURL=Bluetheme1.vue.map */ /*# sourceMappingURL=first.vue.map */ -/*# sourceMappingURL=fifth.vue.map */ - - -/*# sourceMappingURL=seventh.vue.map */ - - -/*# sourceMappingURL=sixth.vue.map */ +/*# sourceMappingURL=second.vue.map */ /*# sourceMappingURL=third.vue.map */ -/*# sourceMappingURL=second.vue.map */ +/*# sourceMappingURL=sixth.vue.map */ -/*# sourceMappingURL=fourth.vue.map */ +/*# sourceMappingURL=seventh.vue.map */ -/*# sourceMappingURL=Bluetheme4.vue.map */ - - -/*# sourceMappingURL=tenth.vue.map */ - - -/*# sourceMappingURL=first.vue.map */ - - -/*# sourceMappingURL=second.vue.map */ +/*# sourceMappingURL=fifth.vue.map */ /*# sourceMappingURL=fourth.vue.map */ @@ -1081,49 +1069,64 @@ /*# sourceMappingURL=sixth.vue.map */ +/*# sourceMappingURL=first.vue.map */ + + +/*# sourceMappingURL=fourth.vue.map */ + + +/*# sourceMappingURL=second.vue.map */ + + /*# sourceMappingURL=eleventh.vue.map */ -/*# sourceMappingURL=fifth.vue.map */ - - /*# sourceMappingURL=eighth.vue.map */ /*# sourceMappingURL=seventh.vue.map */ +/*# sourceMappingURL=Bluetheme1.vue.map */ + + +/*# sourceMappingURL=fifth.vue.map */ + + +/*# sourceMappingURL=Greytheme3.vue.map */ + + +/*# sourceMappingURL=ninth.vue.map */ + + /*# sourceMappingURL=Greytheme2.vue.map */ /*# sourceMappingURL=Redtheme1.vue.map */ +/*# sourceMappingURL=Bluetheme2.vue.map */ + + /*# sourceMappingURL=Greytheme5.vue.map */ -/*# sourceMappingURL=Greytheme3.vue.map */ - - -/*# sourceMappingURL=Yellowtheme2.vue.map */ - - -/*# sourceMappingURL=Bluetheme1.vue.map */ - - -/*# sourceMappingURL=Yellowtheme3.vue.map */ - - -/*# sourceMappingURL=Redtheme4.vue.map */ +/*# sourceMappingURL=tenth.vue.map */ /*# sourceMappingURL=Greytheme1.vue.map */ -/*# sourceMappingURL=ninth.vue.map */ +/*# sourceMappingURL=Yellowtheme1.vue.map */ -/*# sourceMappingURL=Bluetheme2.vue.map */ +/*# sourceMappingURL=Redtheme4.vue.map */ + + +/*# sourceMappingURL=Yellowtheme3.vue.map */ + + +/*# sourceMappingURL=Yellowtheme2.vue.map */ .xml-single-ebook-group-h5[data-v-55908341] { } @@ -1165,11 +1168,11 @@ } -.xml-single-text-group-h5[data-v-647015fa] { +.xml-single-resource-group-h5[data-v-2b4774b7] { } -.xml-single-text-group-pc[data-v-647015fa] { +.xml-single-resource-group-pc[data-v-2b4774b7] { } -.xml-single-text-group-pad[data-v-647015fa] { +.xml-single-resource-group-pad[data-v-2b4774b7] { } @@ -1181,11 +1184,14 @@ } -.xml-single-resource-group-h5[data-v-2b4774b7] { + +/*# sourceMappingURL=Bluetheme4.vue.map */ + +.xml-single-text-group-h5[data-v-647015fa] { } -.xml-single-resource-group-pc[data-v-2b4774b7] { +.xml-single-text-group-pc[data-v-647015fa] { } -.xml-single-resource-group-pad[data-v-2b4774b7] { +.xml-single-text-group-pad[data-v-647015fa] { } @@ -1198,31 +1204,16 @@ -/*# sourceMappingURL=Yellowtheme1.vue.map */ - - /*# sourceMappingURL=single-agent-group.vue.map */ -/*# sourceMappingURL=Bluetheme4.vue.map */ - - /*# sourceMappingURL=Thirtytwo.vue.map */ -/*# sourceMappingURL=Thirtythree.vue.map */ - - /*# sourceMappingURL=Thirtyone.vue.map */ -/*# sourceMappingURL=Thirtyfive.vue.map */ - - -/*# sourceMappingURL=Thirtyeight.vue.map */ - - -/*# sourceMappingURL=Thirtyfour.vue.map */ +/*# sourceMappingURL=Thirtythree.vue.map */ /*# sourceMappingURL=Thirtyseven.vue.map */ @@ -1231,28 +1222,43 @@ /*# sourceMappingURL=Thirtysix.vue.map */ +/*# sourceMappingURL=Thirtyfour.vue.map */ + + +/*# sourceMappingURL=Thirtyfive.vue.map */ + + +/*# sourceMappingURL=Thirtyeight.vue.map */ + + /*# sourceMappingURL=Foldtheme1.vue.map */ /*# sourceMappingURL=Tabstheme1.vue.map */ -/*# sourceMappingURL=Redtheme7.vue.map */ - - -/*# sourceMappingURL=Tabstheme3.vue.map */ - - /*# sourceMappingURL=Foldtheme3.vue.map */ +/*# sourceMappingURL=Redtheme7.vue.map */ + + /*# sourceMappingURL=Foldtheme2.vue.map */ +/*# sourceMappingURL=Foldtheme4.vue.map */ + + +/*# sourceMappingURL=Tabstheme4.vue.map */ + + +/*# sourceMappingURL=Tabstheme3.vue.map */ + + /*# sourceMappingURL=Tabstheme2.vue.map */ -/*# sourceMappingURL=Foldtheme4.vue.map */ +/*# sourceMappingURL=Tabstheme5.vue.map */ /*# sourceMappingURL=Foldtheme5.vue.map */ @@ -1261,68 +1267,113 @@ /*# sourceMappingURL=Fortytwo.vue.map */ -/*# sourceMappingURL=Tabstheme5.vue.map */ - - -/*# sourceMappingURL=Tabstheme4.vue.map */ - - /*# sourceMappingURL=Tabstheme6.vue.map */ +/*# sourceMappingURL=Fortythree.vue.map */ + + /*# sourceMappingURL=Fortyfour.vue.map */ /*# sourceMappingURL=Fortyfive.vue.map */ -/*# sourceMappingURL=Fortythree.vue.map */ - - -/*# sourceMappingURL=Twentyfour.vue.map */ +/*# sourceMappingURL=Twentythree.vue.map */ /*# sourceMappingURL=Twentyfive.vue.map */ +/*# sourceMappingURL=Twentysix.vue.map */ + + /*# sourceMappingURL=Twentytwo.vue.map */ -/*# sourceMappingURL=Twentysix.vue.map */ +/*# sourceMappingURL=Twentyeight.vue.map */ + + +/*# sourceMappingURL=Twentyfour.vue.map */ /*# sourceMappingURL=Twentyseven.vue.map */ -/*# sourceMappingURL=Twentythree.vue.map */ +/*# sourceMappingURL=xmlPopup.vue.map */ -/*# sourceMappingURL=Twentyeight.vue.map */ -.el-image__inner[data-v-755c322e] { + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/*# sourceMappingURL=xmlWrapperPage.vue.map */ + + +/*# sourceMappingURL=xmlCollapse.vue.map */ + +.el-image__inner[data-v-fb4f6862] { width: 100% !important; } -.xml-image-ping-pu-h5[data-v-755c322e] { +.xml-image-ping-pu-h5[data-v-fb4f6862] { display: flex; flex-direction: column; align-items: center; } -.xml-image-hua-lang[data-v-755c322e] { +.xml-image-hua-lang[data-v-fb4f6862] { display: flex; flex-direction: column; align-items: center; } - - -/*# sourceMappingURL=xmlCollapse.vue.map */ - - -/*# sourceMappingURL=xmlPopup.vue.map */ - - - -/*# sourceMappingURL=xmlWrapperPage.vue.map */ .preview-container-h5[data-v-25742cb8] { padding-top: 15px; } @@ -1540,150 +1591,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1794,443 +1701,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2384,6 +1854,589 @@ } /*# sourceMappingURL=setPop.vue.map */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .el-dialog__header { background-color: #f2f2f2 !important; } @@ -2484,6 +2537,9 @@ + +/*# sourceMappingURL=QuestionItem.vue.map */ + /*# sourceMappingURL=QuestionItem.vue.map */ @@ -2775,6 +2831,10 @@ + + + + @@ -2934,41 +2994,56 @@ - - - - -.content[data-v-3d2dcb5b] { - width: 100%; +.option-item + .option-item[data-v-6b27b5ec] { + margin-top: 16px; } -.content .stem-content[data-v-3d2dcb5b] { - width: 100%; - box-sizing: border-box; - padding: 5px 14px; - height: auto; - border: 1px solid #e7e7e7; +.option-item[data-v-6b27b5ec] { + display: flex; + background: #fbfbfb; border-radius: 6px; + padding-left: 16px; + cursor: pointer; + transition: all ease 0.3s; + border: 1px solid #fbfbfb; +} +.option-item .questionSeq[data-v-6b27b5ec] { + padding: 8px 0; +} +.option-item.isActive[data-v-6b27b5ec] { + border-color: #2e9adb; +} +.option-item.isTrue[data-v-6b27b5ec] { + border: 1px solid #70b603; +} +.option-item.isTrue[data-v-6b27b5ec] .el-radio__input.is-checked .el-radio__inner { + border-color: #70b603; + background: #70b603; +} +.option-item.isFalse[data-v-6b27b5ec] { + border: 1px solid #d9001b; +} +.option-item.isFalse[data-v-6b27b5ec] .el-radio__input.is-checked .el-radio__inner { + border-color: #d9001b; + background: #d9001b; +} +.option-item[data-v-6b27b5ec]:hover { + background: #ddd; +} +.option-item[data-v-6b27b5ec] .content { cursor: pointer; } -.content .stem-content.no-border[data-v-3d2dcb5b] { - padding: 0; - border: none; - cursor: default; -} -.content .stem-content .placeholder[data-v-3d2dcb5b] { - color: #c0c4cc; - font-size: 14px; +.option-item[data-v-6b27b5ec] .stem-content.no-border { + padding: 8px 14px !important; cursor: pointer; - user-select: none; } -/*# sourceMappingURL=common.vue.map */ +/*# sourceMappingURL=radio.vue.map */ .option-item + .option-item[data-v-fa728c70] { margin-top: 16px; } @@ -3013,6 +3088,31 @@ } /*# sourceMappingURL=checkbox.vue.map */ +.content[data-v-3d2dcb5b] { + width: 100%; +} +.content .stem-content[data-v-3d2dcb5b] { + width: 100%; + box-sizing: border-box; + padding: 5px 14px; + height: auto; + border: 1px solid #e7e7e7; + border-radius: 6px; + cursor: pointer; +} +.content .stem-content.no-border[data-v-3d2dcb5b] { + padding: 0; + border: none; + cursor: default; +} +.content .stem-content .placeholder[data-v-3d2dcb5b] { + color: #c0c4cc; + font-size: 14px; + cursor: pointer; + user-select: none; +} + +/*# sourceMappingURL=common.vue.map */ .option-item + .option-item[data-v-7fac7a23] { margin-top: 16px; } @@ -3057,6 +3157,75 @@ } /*# sourceMappingURL=radio.vue.map */ +.option-item + .option-item[data-v-307b4eb2] { + margin-top: 16px; +} +.option-item[data-v-307b4eb2] { + display: flex; + background: #fbfbfb; + border-radius: 6px; + padding-left: 16px; + cursor: pointer; + transition: all ease 0.3s; + border: 1px solid #fbfbfb; +} +.option-item.isActive[data-v-307b4eb2] { + border-color: #2e9adb; +} +.option-item .questionSeq[data-v-307b4eb2] { + padding: 8px 0; +} +.option-item.isTrue[data-v-307b4eb2] { + border: 1px solid #70b603; +} +.option-item.isTrue[data-v-307b4eb2] .el-checkbox__input.is-checked .el-checkbox__inner { + border-color: #70b603; + background: #70b603; +} +.option-item.isFalse[data-v-307b4eb2] { + border: 1px solid #d9001b; +} +.option-item.isFalse[data-v-307b4eb2] .el-checkbox__input.is-checked .el-checkbox__inner { + border-color: #d9001b; + background: #d9001b; +} +.option-item[data-v-307b4eb2]:hover { + background: #ddd; +} +.option-item[data-v-307b4eb2] .content { + cursor: pointer; +} +.option-item[data-v-307b4eb2] .stem-content.no-border { + padding: 8px 14px !important; + cursor: pointer; +} + +/*# sourceMappingURL=checkbox.vue.map */ +.content[data-v-55ea6f92] { + width: 100%; +} +.content .stem-content[data-v-55ea6f92] { + width: 100%; + box-sizing: border-box; + padding: 5px 14px; + height: auto; + border: 1px solid #e7e7e7; + border-radius: 6px; + cursor: pointer; +} +.content .stem-content.no-border[data-v-55ea6f92] { + padding: 0; + border: none; + cursor: default; +} +.content .stem-content .placeholder[data-v-55ea6f92] { + color: #c0c4cc; + font-size: 14px; + cursor: pointer; + user-select: none; +} + +/*# sourceMappingURL=common.vue.map */ .image-file[data-v-506f1aca] { width: 218px; object-fit: scale-down; @@ -3088,6 +3257,74 @@ } /*# sourceMappingURL=index.vue.map */ +.image-file[data-v-643cc5f7] { + width: 218px; + object-fit: scale-down; +} +.video-file[data-v-643cc5f7] { + width: 408px; +} +.file-render[data-v-643cc5f7] { + width: 100%; +} +.file-info[data-v-643cc5f7] { + flex: 1; + min-width: 0; +} +.file-info.videoHandler[data-v-643cc5f7] { + display: flex; + flex-direction: column; + justify-content: center; +} +.file-info.videoHandler .fileName[data-v-643cc5f7] { + font-size: 18px; + color: #333333; + margin-bottom: 19px; +} +.file-info.videoHandler .fileInfo[data-v-643cc5f7] { + font-size: 14px; + color: #666666; + margin-bottom: 19px; +} + +/*# sourceMappingURL=index.vue.map */ +[data-v-7628e470] .el-dialog__header { + padding: 10px; +} +.video-content[data-v-7628e470] { + width: 180px; + height: 135px; + border-radius: 6px; + overflow: hidden; + position: relative; +} +.video-content .play[data-v-7628e470] { + position: absolute; + left: 50%; + top: 50%; + cursor: pointer; + transform: translateX(-50%) translateY(-50%); +} +.video-mask[data-v-7628e470] { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.5); +} +.video-mask img[data-v-7628e470] { + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50% -50%); + display: block; +} +.video-player[data-v-7628e470] { + width: 100%; +} + +/*# sourceMappingURL=video-play.vue.map */ .audio .audio-icon[data-v-25355b9e] { width: 36px; height: 36px; @@ -3147,24 +3384,83 @@ } /*# sourceMappingURL=audio-play-new.vue.map */ -[data-v-7628e470] .el-dialog__header { +.audio .audio-icon[data-v-160e520c] { + width: 36px; + height: 36px; + margin-right: 20px; +} +.audio .audio-icon img[data-v-160e520c] { + width: 100%; + height: 100%; + display: block; +} +.audio .audio-controls[data-v-160e520c] { + width: 100%; + max-width: 200px; + flex: 1; + height: 36px; +} +.audio .audio-controls .audio-controls--progress[data-v-160e520c], .audio .audio-controls .audio-controls--handler[data-v-160e520c] { + width: 100%; +} +.audio .audio-controls .audio-controls--handler[data-v-160e520c] { + line-height: 1; +} +.audio .audio-controls .audio-controls--handler .play[data-v-160e520c] { + font-size: 24px; +} +.audio .audio-controls .audio-controls--handler .play .play-handler[data-v-160e520c] { + width: 22px; + height: 22px; + display: block; + cursor: pointer; +} +.audio .audio-controls .audio-controls--handler .current-time[data-v-160e520c], .audio .audio-controls .audio-controls--handler .total-time[data-v-160e520c] { + font-size: 12px; + color: #333; +} +.play-handler.mobile[data-v-160e520c] { + width: 20px; + height: 20px; +} +.audio-component[data-v-160e520c] { + display: none; +} +[data-v-160e520c] .el-slider__runway { + margin: 0 0 4px 0; + background: #e3e3e3; + height: 4px; +} +[data-v-160e520c] .el-slider__bar { + height: 4px; +} +[data-v-160e520c] .el-slider__button { + width: 10px; + height: 10px; +} +[data-v-160e520c] .el-slider__button-wrapper { + top: -15px; +} + +/*# sourceMappingURL=audio-play-new.vue.map */ +[data-v-7cccb5ec] .el-dialog__header { padding: 10px; } -.video-content[data-v-7628e470] { +.video-content[data-v-7cccb5ec] { width: 180px; height: 135px; border-radius: 6px; overflow: hidden; position: relative; } -.video-content .play[data-v-7628e470] { +.video-content .play[data-v-7cccb5ec] { position: absolute; left: 50%; top: 50%; cursor: pointer; transform: translateX(-50%) translateY(-50%); } -.video-mask[data-v-7628e470] { +.video-mask[data-v-7cccb5ec] { position: absolute; left: 0; top: 0; @@ -3172,14 +3468,14 @@ height: 100%; background: rgba(0, 0, 0, 0.5); } -.video-mask img[data-v-7628e470] { +.video-mask img[data-v-7cccb5ec] { position: absolute; left: 50%; top: 50%; transform: translate(-50% -50%); display: block; } -.video-player[data-v-7628e470] { +.video-player[data-v-7cccb5ec] { width: 100%; } diff --git a/src/plugin/xml-digital-teaching/lib/index.js b/src/plugin/xml-digital-teaching/lib/index.js index 10bdcf7..e33619f 100644 --- a/src/plugin/xml-digital-teaching/lib/index.js +++ b/src/plugin/xml-digital-teaching/lib/index.js @@ -1,6 +1,6 @@ /* * XmlDigitalTeaching v0.0.1 -* Copyright ©Wed Jun 19 2024 19:48:48 GMT+0800 (中国标准时间) smile +* Copyright ©Fri Jun 21 2024 13:16:29 GMT+0800 (中国标准时间) smile * Released under the ISC License. */ import Vue from 'vue'; @@ -19768,7 +19768,7 @@ if (typeof window !== 'undefined' && window.Vue) { // // -var script$4X = { +var script$52 = { //预览教材目录 name: 'PreviewCatalogRender', props: { @@ -19908,9 +19908,9 @@ function normalizeComponent(template, style, script, scopeId, isFunctionalTempla } /* script */ -const __vue_script__$4X = script$4X; +const __vue_script__$52 = script$52; /* template */ -var __vue_render__$4X = function () { +var __vue_render__$52 = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -19945,17 +19945,17 @@ var __vue_render__$4X = function () { 1 ) }; -var __vue_staticRenderFns__$4X = []; -__vue_render__$4X._withStripped = true; +var __vue_staticRenderFns__$52 = []; +__vue_render__$52._withStripped = true; /* style */ - const __vue_inject_styles__$4X = undefined; + const __vue_inject_styles__$52 = undefined; /* scoped */ - const __vue_scope_id__$4X = "data-v-7da5c6fc"; + const __vue_scope_id__$52 = "data-v-7da5c6fc"; /* module identifier */ - const __vue_module_identifier__$4X = undefined; + const __vue_module_identifier__$52 = undefined; /* functional template */ - const __vue_is_functional_template__$4X = false; + const __vue_is_functional_template__$52 = false; /* style inject */ /* style inject SSR */ @@ -19964,13 +19964,13 @@ __vue_render__$4X._withStripped = true; - const __vue_component__$4X = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4X, staticRenderFns: __vue_staticRenderFns__$4X }, - __vue_inject_styles__$4X, - __vue_script__$4X, - __vue_scope_id__$4X, - __vue_is_functional_template__$4X, - __vue_module_identifier__$4X, + const __vue_component__$52 = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$52, staticRenderFns: __vue_staticRenderFns__$52 }, + __vue_inject_styles__$52, + __vue_script__$52, + __vue_scope_id__$52, + __vue_is_functional_template__$52, + __vue_module_identifier__$52, false, undefined, undefined, @@ -28953,7 +28953,7 @@ var jquery = createCommonjsModule(function (module) { }); // -var script$4W = { +var script$51 = { name: 'PreviewLooseLeafRender', props: { businessType: String, @@ -29082,9 +29082,9 @@ var script$4W = { }; /* script */ -const __vue_script__$4W = script$4W; +const __vue_script__$51 = script$51; /* template */ -var __vue_render__$4W = function () { +var __vue_render__$51 = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -29173,17 +29173,17 @@ var __vue_render__$4W = function () { ), ]) }; -var __vue_staticRenderFns__$4W = []; -__vue_render__$4W._withStripped = true; +var __vue_staticRenderFns__$51 = []; +__vue_render__$51._withStripped = true; /* style */ - const __vue_inject_styles__$4W = undefined; + const __vue_inject_styles__$51 = undefined; /* scoped */ - const __vue_scope_id__$4W = "data-v-25742cb8"; + const __vue_scope_id__$51 = "data-v-25742cb8"; /* module identifier */ - const __vue_module_identifier__$4W = undefined; + const __vue_module_identifier__$51 = undefined; /* functional template */ - const __vue_is_functional_template__$4W = false; + const __vue_is_functional_template__$51 = false; /* style inject */ /* style inject SSR */ @@ -29192,13 +29192,13 @@ __vue_render__$4W._withStripped = true; - const __vue_component__$4W = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4W, staticRenderFns: __vue_staticRenderFns__$4W }, - __vue_inject_styles__$4W, - __vue_script__$4W, - __vue_scope_id__$4W, - __vue_is_functional_template__$4W, - __vue_module_identifier__$4W, + const __vue_component__$51 = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$51, staticRenderFns: __vue_staticRenderFns__$51 }, + __vue_inject_styles__$51, + __vue_script__$51, + __vue_scope_id__$51, + __vue_is_functional_template__$51, + __vue_module_identifier__$51, false, undefined, undefined, @@ -29248,11 +29248,11 @@ Array.prototype.Remove = function (item, all) { } return result ? this : void 0; }; -var script$4V = { +var script$50 = { name: 'XmlRender', components: { - PreviewLooseLeafRender: __vue_component__$4W, - PreviewCatalogRender: __vue_component__$4X + PreviewLooseLeafRender: __vue_component__$51, + PreviewCatalogRender: __vue_component__$52 }, props: { uuid: { @@ -29644,9 +29644,9 @@ var script$4V = { }; /* script */ -const __vue_script__$4V = script$4V; +const __vue_script__$50 = script$50; /* template */ -var __vue_render__$4V = function () { +var __vue_render__$50 = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -29829,17 +29829,17 @@ var __vue_render__$4V = function () { : _c("div", { attrs: { id: "out" } }, [_vm._v("预览地址已失效")]), ]) }; -var __vue_staticRenderFns__$4V = []; -__vue_render__$4V._withStripped = true; +var __vue_staticRenderFns__$50 = []; +__vue_render__$50._withStripped = true; /* style */ - const __vue_inject_styles__$4V = undefined; + const __vue_inject_styles__$50 = undefined; /* scoped */ - const __vue_scope_id__$4V = undefined; + const __vue_scope_id__$50 = undefined; /* module identifier */ - const __vue_module_identifier__$4V = undefined; + const __vue_module_identifier__$50 = undefined; /* functional template */ - const __vue_is_functional_template__$4V = false; + const __vue_is_functional_template__$50 = false; /* style inject */ /* style inject SSR */ @@ -29848,23 +29848,23 @@ __vue_render__$4V._withStripped = true; - const __vue_component__$4V = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4V, staticRenderFns: __vue_staticRenderFns__$4V }, - __vue_inject_styles__$4V, - __vue_script__$4V, - __vue_scope_id__$4V, - __vue_is_functional_template__$4V, - __vue_module_identifier__$4V, + const __vue_component__$50 = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$50, staticRenderFns: __vue_staticRenderFns__$50 }, + __vue_inject_styles__$50, + __vue_script__$50, + __vue_scope_id__$50, + __vue_is_functional_template__$50, + __vue_module_identifier__$50, false, undefined, undefined, undefined ); -__vue_component__$4V.install = (Vue, options = {}) => { +__vue_component__$50.install = (Vue, options = {}) => { Vue.component(createNamespace$1('render', { prefix: options.prefix - }), __vue_component__$4V); + }), __vue_component__$50); }; const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate @@ -30500,7 +30500,7 @@ const ObjectFit = { FILL: 'fill', SCALE_DOWN: 'scale-down' }; -var script$4U = { +var script$4$ = { name: 'DesignPreviewImage', mixins: [Locale], inheritAttrs: false, @@ -30765,13 +30765,17 @@ var script$4U = { return; } if (this.clickEffect === 'dian-ji-fang-da') { + let imgList = []; + this.previewSrcList.map((item, index) => { + imgList.push({ + url: item, + title: this.title[index] + }); + }); this.$xmlImgPreview({ multiple: true, - nowImgIndex: 0, - imgList: [{ - url: this.previewSrcList[0], - title: this.self.title - }] + nowImgIndex: this.current, + imgList }); } if (isByTitle) { @@ -30782,9 +30786,9 @@ var script$4U = { }; /* script */ -const __vue_script__$4U = script$4U; +const __vue_script__$4$ = script$4$; /* template */ -var __vue_render__$4U = function () { +var __vue_render__$4$ = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -30800,7 +30804,7 @@ var __vue_render__$4U = function () { ? _c( "div", { - staticClass: "image-title--lay image-title--on", + staticClass: "xml-image-title image-title--lay image-title--on", style: { textAlign: _vm.titleAlign || "left" }, }, [_vm._v("\n " + _vm._s(_vm.self.title) + "\n ")] @@ -30861,7 +30865,8 @@ var __vue_render__$4U = function () { ? _c( "div", { - staticClass: "image-title--fixed image-title--bottom", + staticClass: + "xml-image-title image-title--fixed image-title--bottom", style: { textAlign: _vm.titleAlign || "left" }, on: { click: function ($event) { @@ -30877,7 +30882,8 @@ var __vue_render__$4U = function () { ? _c( "div", { - staticClass: "image-title--fixed image-title--top", + staticClass: + "xml-image-title image-title--fixed image-title--top", style: { textAlign: _vm.titleAlign || "left" }, on: { click: function ($event) { @@ -30896,7 +30902,8 @@ var __vue_render__$4U = function () { ? _c( "div", { - staticClass: "image-title--lay image-title--under", + staticClass: + "xml-image-title image-title--lay image-title--under", style: { textAlign: _vm.titleAlign || "left" }, }, [_vm._v("\n " + _vm._s(_vm.self.title) + "\n ")] @@ -30906,17 +30913,17 @@ var __vue_render__$4U = function () { 2 ) }; -var __vue_staticRenderFns__$4U = []; -__vue_render__$4U._withStripped = true; +var __vue_staticRenderFns__$4$ = []; +__vue_render__$4$._withStripped = true; /* style */ - const __vue_inject_styles__$4U = undefined; + const __vue_inject_styles__$4$ = undefined; /* scoped */ - const __vue_scope_id__$4U = "data-v-755c322e"; + const __vue_scope_id__$4$ = "data-v-fb4f6862"; /* module identifier */ - const __vue_module_identifier__$4U = undefined; + const __vue_module_identifier__$4$ = undefined; /* functional template */ - const __vue_is_functional_template__$4U = false; + const __vue_is_functional_template__$4$ = false; /* style inject */ /* style inject SSR */ @@ -30925,13 +30932,13 @@ __vue_render__$4U._withStripped = true; - const __vue_component__$4U = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4U, staticRenderFns: __vue_staticRenderFns__$4U }, - __vue_inject_styles__$4U, - __vue_script__$4U, - __vue_scope_id__$4U, - __vue_is_functional_template__$4U, - __vue_module_identifier__$4U, + const __vue_component__$4$ = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4$, staticRenderFns: __vue_staticRenderFns__$4$ }, + __vue_inject_styles__$4$, + __vue_script__$4$, + __vue_scope_id__$4$, + __vue_is_functional_template__$4$, + __vue_module_identifier__$4$, false, undefined, undefined, @@ -31112,7 +31119,7 @@ const Mode = { } }; const mousewheelEventName = isFirefox() ? 'DOMMouseScroll' : 'mousewheel'; -var script$4T = { +var script$4_ = { name: 'XmlImageViewer', props: { urlList: { @@ -31458,10 +31465,10 @@ var script$4T = { }; /* script */ -const __vue_script__$4T = script$4T; +const __vue_script__$4_ = script$4_; /* template */ -var __vue_render__$4T = function () { +var __vue_render__$4_ = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -31674,17 +31681,17 @@ var __vue_render__$4T = function () { ), ]) }; -var __vue_staticRenderFns__$4T = []; -__vue_render__$4T._withStripped = true; +var __vue_staticRenderFns__$4_ = []; +__vue_render__$4_._withStripped = true; /* style */ - const __vue_inject_styles__$4T = undefined; + const __vue_inject_styles__$4_ = undefined; /* scoped */ - const __vue_scope_id__$4T = undefined; + const __vue_scope_id__$4_ = undefined; /* module identifier */ - const __vue_module_identifier__$4T = undefined; + const __vue_module_identifier__$4_ = undefined; /* functional template */ - const __vue_is_functional_template__$4T = false; + const __vue_is_functional_template__$4_ = false; /* style inject */ /* style inject SSR */ @@ -31693,13 +31700,13 @@ __vue_render__$4T._withStripped = true; - const __vue_component__$4T = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4T, staticRenderFns: __vue_staticRenderFns__$4T }, - __vue_inject_styles__$4T, - __vue_script__$4T, - __vue_scope_id__$4T, - __vue_is_functional_template__$4T, - __vue_module_identifier__$4T, + const __vue_component__$4_ = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4_, staticRenderFns: __vue_staticRenderFns__$4_ }, + __vue_inject_styles__$4_, + __vue_script__$4_, + __vue_scope_id__$4_, + __vue_is_functional_template__$4_, + __vue_module_identifier__$4_, false, undefined, undefined, @@ -31707,18 +31714,18 @@ __vue_render__$4T._withStripped = true; ); /* istanbul ignore next */ -__vue_component__$4U.install = function (Vue) { - Vue.component(__vue_component__$4U.name, __vue_component__$4U); +__vue_component__$4$.install = function (Vue) { + Vue.component(__vue_component__$4$.name, __vue_component__$4$); }; // /*** * 文本块 */ -var script$4S = { +var script$4Z = { name: 'XmlImageRender', components: { - previewImageRender: __vue_component__$4U + previewImageRender: __vue_component__$4$ }, props: { //模式:preview 预览 (默认),editor 编辑 @@ -31929,9 +31936,9 @@ var script$4S = { }; /* script */ -const __vue_script__$4S = script$4S; +const __vue_script__$4Z = script$4Z; /* template */ -var __vue_render__$4S = function () { +var __vue_render__$4Z = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -32354,17 +32361,17 @@ var __vue_render__$4S = function () { 2 ) }; -var __vue_staticRenderFns__$4S = []; -__vue_render__$4S._withStripped = true; +var __vue_staticRenderFns__$4Z = []; +__vue_render__$4Z._withStripped = true; /* style */ - const __vue_inject_styles__$4S = undefined; + const __vue_inject_styles__$4Z = undefined; /* scoped */ - const __vue_scope_id__$4S = undefined; + const __vue_scope_id__$4Z = undefined; /* module identifier */ - const __vue_module_identifier__$4S = undefined; + const __vue_module_identifier__$4Z = undefined; /* functional template */ - const __vue_is_functional_template__$4S = false; + const __vue_is_functional_template__$4Z = false; /* style inject */ /* style inject SSR */ @@ -32373,23 +32380,23 @@ __vue_render__$4S._withStripped = true; - const __vue_component__$4S = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4S, staticRenderFns: __vue_staticRenderFns__$4S }, - __vue_inject_styles__$4S, - __vue_script__$4S, - __vue_scope_id__$4S, - __vue_is_functional_template__$4S, - __vue_module_identifier__$4S, + const __vue_component__$4Z = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4Z, staticRenderFns: __vue_staticRenderFns__$4Z }, + __vue_inject_styles__$4Z, + __vue_script__$4Z, + __vue_scope_id__$4Z, + __vue_is_functional_template__$4Z, + __vue_module_identifier__$4Z, false, undefined, undefined, undefined ); -__vue_component__$4S.install = (Vue, options = {}) => { +__vue_component__$4Z.install = (Vue, options = {}) => { Vue.component(createNamespace$1('image-render', { prefix: options.prefix - }), __vue_component__$4S); + }), __vue_component__$4Z); }; // @@ -32561,7 +32568,7 @@ __vue_component__$4S.install = (Vue, options = {}) => { // // import "../block.scss" -var script$4R = { +var script$4Y = { name: 'xmlHtmlRender', components: {}, props: { @@ -32670,10 +32677,10 @@ var script$4R = { }; /* script */ -const __vue_script__$4R = script$4R; +const __vue_script__$4Y = script$4Y; /* template */ -var __vue_render__$4R = function () { +var __vue_render__$4Y = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -32884,17 +32891,17 @@ var __vue_render__$4R = function () { ] ) }; -var __vue_staticRenderFns__$4R = []; -__vue_render__$4R._withStripped = true; +var __vue_staticRenderFns__$4Y = []; +__vue_render__$4Y._withStripped = true; /* style */ - const __vue_inject_styles__$4R = undefined; + const __vue_inject_styles__$4Y = undefined; /* scoped */ - const __vue_scope_id__$4R = undefined; + const __vue_scope_id__$4Y = undefined; /* module identifier */ - const __vue_module_identifier__$4R = undefined; + const __vue_module_identifier__$4Y = undefined; /* functional template */ - const __vue_is_functional_template__$4R = false; + const __vue_is_functional_template__$4Y = false; /* style inject */ /* style inject SSR */ @@ -32903,23 +32910,23 @@ __vue_render__$4R._withStripped = true; - const __vue_component__$4R = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4R, staticRenderFns: __vue_staticRenderFns__$4R }, - __vue_inject_styles__$4R, - __vue_script__$4R, - __vue_scope_id__$4R, - __vue_is_functional_template__$4R, - __vue_module_identifier__$4R, + const __vue_component__$4Y = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4Y, staticRenderFns: __vue_staticRenderFns__$4Y }, + __vue_inject_styles__$4Y, + __vue_script__$4Y, + __vue_scope_id__$4Y, + __vue_is_functional_template__$4Y, + __vue_module_identifier__$4Y, false, undefined, undefined, undefined ); -__vue_component__$4R.install = (Vue, options = {}) => { +__vue_component__$4Y.install = (Vue, options = {}) => { Vue.component(createNamespace$1('html-render', { prefix: options.prefix - }), __vue_component__$4R); + }), __vue_component__$4Y); }; // @@ -32969,7 +32976,7 @@ __vue_component__$4R.install = (Vue, options = {}) => { // // import '../block.scss' -var script$4Q = { +var script$4X = { name: 'XmlCatalogRender', components: {}, inject: ['getCatalogList'], @@ -33087,9 +33094,9 @@ var script$4Q = { }; /* script */ -const __vue_script__$4Q = script$4Q; +const __vue_script__$4X = script$4X; /* template */ -var __vue_render__$4Q = function () { +var __vue_render__$4X = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -33148,17 +33155,17 @@ var __vue_render__$4Q = function () { 1 ) }; -var __vue_staticRenderFns__$4Q = []; -__vue_render__$4Q._withStripped = true; +var __vue_staticRenderFns__$4X = []; +__vue_render__$4X._withStripped = true; /* style */ - const __vue_inject_styles__$4Q = undefined; + const __vue_inject_styles__$4X = undefined; /* scoped */ - const __vue_scope_id__$4Q = "data-v-61c986fa"; + const __vue_scope_id__$4X = "data-v-61c986fa"; /* module identifier */ - const __vue_module_identifier__$4Q = undefined; + const __vue_module_identifier__$4X = undefined; /* functional template */ - const __vue_is_functional_template__$4Q = false; + const __vue_is_functional_template__$4X = false; /* style inject */ /* style inject SSR */ @@ -33167,13 +33174,13 @@ __vue_render__$4Q._withStripped = true; - const __vue_component__$4Q = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4Q, staticRenderFns: __vue_staticRenderFns__$4Q }, - __vue_inject_styles__$4Q, - __vue_script__$4Q, - __vue_scope_id__$4Q, - __vue_is_functional_template__$4Q, - __vue_module_identifier__$4Q, + const __vue_component__$4X = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4X, staticRenderFns: __vue_staticRenderFns__$4X }, + __vue_inject_styles__$4X, + __vue_script__$4X, + __vue_scope_id__$4X, + __vue_is_functional_template__$4X, + __vue_module_identifier__$4X, false, undefined, undefined, @@ -33181,10 +33188,10 @@ __vue_render__$4Q._withStripped = true; ); // 提交 -__vue_component__$4Q.install = (Vue, options = {}) => { +__vue_component__$4X.install = (Vue, options = {}) => { Vue.component(createNamespace$1('catalog-render', { prefix: options.prefix - }), __vue_component__$4Q); + }), __vue_component__$4X); }; // @@ -33307,7 +33314,7 @@ __vue_component__$4Q.install = (Vue, options = {}) => { // // -var script$4P = { +var script$4W = { name: 'XmlTextDialogRender', props: { content: { @@ -33369,8 +33376,8 @@ var script$4P = { var __$_require_static_images_leaflet_icons_scroll_png__ = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAAAPCAYAAAChtYCSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjkxMUYzODUxMkZFMTFFRThGNzY5QzE0NjRGQzZERjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjkxMUYzODYxMkZFMTFFRThGNzY5QzE0NjRGQzZERjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCOTExRjM4MzEyRkUxMUVFOEY3NjlDMTQ2NEZDNkRGNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCOTExRjM4NDEyRkUxMUVFOEY3NjlDMTQ2NEZDNkRGNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pgx/R5cAAAJ7SURBVHja7JpPaNNQHMe/L03TbuqUiehlKv456EE8KV5Ehn/Ag3/w4k1PXibuIljcwIKCiiAoO+lFRRARke2qKCh69KLzNIYbKG6Msbaza9o0z99LGywleYngpenvA1/ya36/95L8ml9e8hJz7Gw/dBzJvfTNa6QcKQuG6VwqpNuk/OtbZyKDTdIQaZh0ivStPSCVtnxzhJTm/DIdjrrAX1UFoonZT3pGuiNoBCmSsYZUJ82EtThx4+02zi2TFCZGB6dDXCnSlqZdNJvF4TtCiyCTXcVZZZJEnAt+nxm3N6tnNaeU6TpiF0gmywXCdGGBbNp5AFIKzE19AoQBq3cdhBAkdcclyecCroRl/Z28ki0diIBOZYtPhsRE9SVDfreujxsDTRtothlnvS4PUQT1234MQccYN7e6PsNyjojcIaCt1OxPnP//f+Quat/b2/b0bWzYdReuW/XOd8NMo2aX4dgl9A/sgZASojA/KyulRbwYGcSx4cfYvu84yoV5SNelxg7qTpVUw/rNu/hywiSGpZ9TSJkWYKS8AUEVR+/aDViYmcTz3EEcHXqIgb2HYH4eH4PZnMqdfPMEP75+gF0pwa051JaqykjTKCJx+OI9ziqTGD4+vU7ntuEViEGieyVvuVJY8PyzX95jefEX1DRvYzQStJDhg92FR985q0xieHB+6z8+pEv9naBdLnBWme57SI8baFeKnC2mKwtkmeTP4c6RfgcFOnaZ36QzSWJa41Nv0tU07pJ6BrlExmXSOdK79siT+Ve+WQV/i8UkgxrJGs+fDvPvJk2Q7qoR5H5TgTi1Fd+8SbpCynB+mQ7GRuNrXh3qo90dyvgjwAA2ZLfYDdkYOgAAAABJRU5ErkJggg=="; /* script */ -const __vue_script__$4P = script$4P; -var __vue_render__$4P = function () { +const __vue_script__$4W = script$4W; +var __vue_render__$4W = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -33477,7 +33484,7 @@ var __vue_render__$4P = function () { : _vm._e(), ]) }; -var __vue_staticRenderFns__$4P = [ +var __vue_staticRenderFns__$4W = [ function () { var _vm = this; var _h = _vm.$createElement; @@ -33523,16 +33530,16 @@ var __vue_staticRenderFns__$4P = [ ]) }, ]; -__vue_render__$4P._withStripped = true; +__vue_render__$4W._withStripped = true; /* style */ - const __vue_inject_styles__$4P = undefined; + const __vue_inject_styles__$4W = undefined; /* scoped */ - const __vue_scope_id__$4P = "data-v-0994a01b"; + const __vue_scope_id__$4W = "data-v-0994a01b"; /* module identifier */ - const __vue_module_identifier__$4P = undefined; + const __vue_module_identifier__$4W = undefined; /* functional template */ - const __vue_is_functional_template__$4P = false; + const __vue_is_functional_template__$4W = false; /* style inject */ /* style inject SSR */ @@ -33541,13 +33548,13 @@ __vue_render__$4P._withStripped = true; - const __vue_component__$4P = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4P, staticRenderFns: __vue_staticRenderFns__$4P }, - __vue_inject_styles__$4P, - __vue_script__$4P, - __vue_scope_id__$4P, - __vue_is_functional_template__$4P, - __vue_module_identifier__$4P, + const __vue_component__$4W = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4W, staticRenderFns: __vue_staticRenderFns__$4W }, + __vue_inject_styles__$4W, + __vue_script__$4W, + __vue_scope_id__$4W, + __vue_is_functional_template__$4W, + __vue_module_identifier__$4W, false, undefined, undefined, @@ -33741,1441 +33748,1083 @@ var recorder_mp3_min = createCommonjsModule(function (module) { https://github.com/xiangyuecn/Recorder src: recorder-core.js,engine/mp3.js,engine/mp3-engine.js */ -!function (e) { - var t = "object" == typeof window && !!window.document, - a = t ? window : Object; - !function (e, w) { +!function (y) { - var S = function () {}, - f = function (e) { - return "number" == typeof e; - }, - N = function (e) { - return new l(e); - }, - M = N.LM = "2024-04-09 19:15", - y = "https://github.com/xiangyuecn/Recorder", - R = "Recorder", - A = "getUserMedia", - V = "srcSampleRate", - D = "sampleRate", - i = "bitRate", - x = "catch", - t = e[R]; - if (t && t.LM == M) return t.CLog(t.i18n.$T("K8zP::重复导入{1}", 0, R), 3); - N.IsOpen = function () { - var e = N.Stream; - if (e) { - var t = e.getTracks && e.getTracks() || e.audioTracks || [], - a = t[0]; - if (a) { - var n = a.readyState; - return "live" == n || n == a.LIVE; - } - } - return !1; - }, N.BufferSize = 4096, N.Destroy = function () { - for (var e in O(R + " Destroy"), L(), a) a[e](); + var v = function () {}, + V = function (e) { + return new t(e); }; - var a = {}; - N.BindDestroy = function (e, t) { - a[e] = t; - }, N.Support = function () { - if (!w) return !1; - var e = navigator.mediaDevices || {}; - return e[A] || (e = navigator)[A] || (e[A] = e.webkitGetUserMedia || e.mozGetUserMedia || e.msGetUserMedia), !!e[A] && (N.Scope = e, !!N.GetContext()); - }, N.GetContext = function (e) { - if (!w) return null; - var t = window.AudioContext; - if (t || (t = window.webkitAudioContext), !t) return null; - var a = N.Ctx; - if (a && "closed" != a.state || (a = N.Ctx = new t(), N.NewCtxs = N.NewCtxs || [], N.BindDestroy("Ctx", function () { - var e = N.Ctx; - e && e.close && (s(e), N.Ctx = 0); - var t = N.NewCtxs; - N.NewCtxs = []; - for (var a = 0; a < t.length; a++) s(t[a]); - })), e && a.close) try { - a = new t(), N.NewCtxs.push(a); - } catch (e) { - O("GetContext tryNew Error", 1, e); + V.LM = "2023-02-01 18:05"; + var T = "Recorder", + d = "getUserMedia", + O = "srcSampleRate", + N = "sampleRate", + x = "catch"; + V.IsOpen = function () { + var e = V.Stream; + if (e) { + var t = e.getTracks && e.getTracks() || e.audioTracks || [], + a = t[0]; + if (a) { + var s = a.readyState; + return "live" == s || s == a.LIVE; } - return a; - }, N.CloseNewCtx = function (e) { - if (e && e != N.Ctx) { - s(e); - for (var t = N.NewCtxs || [], a = t.length, n = 0; n < t.length; n++) if (t[n] == e) { - t.splice(n, 1); - break; - } - O(z("mSxV::剩{1}个GetContext未close", 0, a + "-1=" + t.length), t.length ? 3 : 0); - } - }; - var s = function (e) { - if (e && e.close) { - e._isC = 1; - try { - e.close(); - } catch (e) { - O("ctx close err", 1, e); - } - } - }, - B = N.ResumeCtx = function (a, n, s, r) { - var i = 0, - o = 0, - _ = 0, - l = 0, - f = "EventListener", - c = "ResumeCtx ", - u = function (e, t) { - o && h(), i || (i = 1, e && r(e, l), t && s(l)), t && (!a._LsSC && a["add" + f] && a["add" + f]("statechange", b), a._LsSC = 1, _ = 1); - }, - h = function (e) { - if (!e || !o) { - o = e ? 1 : 0; - for (var t = ["focus", "mousedown", "mouseup", "touchstart", "touchend"], a = 0; a < t.length; a++) window[(e ? "add" : "remove") + f](t[a], b, !0); - } - }, - b = function () { - var e = a.state, - t = p(e); - if (!i && !n(t ? ++l : l)) return u(); - t ? (_ && O(c + "sc " + e, 3), h(1), a.resume().then(function () { - _ && O(c + "sc " + a.state), u(0, 1); - })[x](function (e) { - O(c + "error", 1, e), p(a.state) || u(e.message || "error"); - })) : "closed" == e ? (_ && !a._isC && O(c + "sc " + e, 1), u("ctx closed")) : u(0, 1); - }; - b(); - }, - p = N.CtxSpEnd = function (e) { - return "suspended" == e || "interrupted" == e; - }, - k = function (e) { - var t = e.state, - a = "ctx.state=" + t; - return p(t) && (a += z("nMIy::(注意:ctx不是running状态,rec.open和start至少要有一个在用户操作(触摸、点击等)时进行调用,否则将在rec.start时尝试进行ctx.resume,可能会产生兼容性问题(仅iOS),请参阅文档中runningContext配置)")), a; - }, - T = "ConnectEnableWebM"; - N[T] = !0; - var E = "ConnectEnableWorklet"; - N[E] = !1; - var C = function (e, _) { - var l = e.BufferSize || N.BufferSize, - f = e.Stream, - c = f._RC || f._c || N.GetContext(!0); - f._c = c; - var u, - a, - h, - i = function (e) { - var t = f._m = c.createMediaStreamSource(f), - a = c.destination, - n = "createMediaStreamDestination"; - c[n] && (a = f._d = c[n]()), t.connect(e), e.connect(a); - }, - b = "", - p = f._call, - m = function (e) { - for (var t in p) { - for (var a = e.length, n = new Int16Array(a), s = 0, r = 0; r < a; r++) { - var i = Math.max(-1, Math.min(1, e[r])); - i = i < 0 ? 32768 * i : 32767 * i, n[r] = i, s += Math.abs(i); - } - for (var o in p) p[o](n, s); - return; - } - }, - v = "ScriptProcessor", - d = "audioWorklet", - o = R + " " + d, - g = "RecProc", - w = "MediaRecorder", - S = w + ".WebM.PCM", - M = c.createScriptProcessor || c.createJavaScriptNode, - y = z("ZGlf::。由于{1}内部1秒375次回调,在移动端可能会有性能问题导致回调丢失录音变短,PC端无影响,暂不建议开启{1}。", 0, d), - A = function () { - a = f.isWorklet = !1, n(f), O(z("7TU0::Connect采用老的{1},", 0, v) + Y.get(z(N[E] ? "JwCL::但已设置{1}尝试启用{2}" : "VGjB::可设置{1}尝试启用{2}", 2), [R + "." + E + "=true", d]) + b + y, 3); - var e = f._p = M.call(c, l, 1, 1); - i(e), e.onaudioprocess = function (e) { - var t = e.inputBuffer.getChannelData(0); - m(t); - }; - }, - k = function () { - u = f.isWebM = !1, I(f), a = f.isWorklet = !M || N[E]; - var t = window.AudioWorkletNode; - if (a && c[d] && t) { - var n = function () { - return a && f._na; - }, - s = f._na = function () { - "" !== h && (clearTimeout(h), h = setTimeout(function () { - h = 0, n() && (O(z("MxX1::{1}未返回任何音频,恢复使用{2}", 0, d, v), 3), M && A()); - }, 500)); - }, - r = function () { - if (n()) { - var e = f._n = new t(c, g, { - processorOptions: { - bufferSize: l - } - }); - i(e), e.port.onmessage = function (e) { - h && (clearTimeout(h), h = ""), n() ? m(e.data.val) : a || O(z("XUap::{1}多余回调", 0, d), 3); - }, O(z("yOta::Connect采用{1},设置{2}可恢复老式{3}", 0, d, R + "." + E + "=false", v) + b + y, 3); - } - }, - e = function () { - if (n()) if (c[g]) r();else { - var e, - t, - a = (t = "class " + g + " extends AudioWorkletProcessor{", t += "constructor " + (e = function (e) { - return e.toString().replace(/^function|DEL_/g, "").replace(/\$RA/g, o); - })(function (e) { - DEL_super(e); - var t = this, - a = e.processorOptions.bufferSize; - t.bufferSize = a, t.buffer = new Float32Array(2 * a), t.pos = 0, t.port.onmessage = function (e) { - e.data.kill && (t.kill = !0, $C.log("$RA kill call")); - }, $C.log("$RA .ctor call", e); - }), t += "process " + e(function (e, t, a) { - var n = this, - s = n.bufferSize, - r = n.buffer, - i = n.pos; - if ((e = (e[0] || [])[0] || []).length) { - r.set(e, i); - var o = ~~((i += e.length) / s) * s; - if (o) { - this.port.postMessage({ - val: r.slice(0, o) - }); - var _ = r.subarray(o, i); - (r = new Float32Array(2 * s)).set(_), i = _.length, n.buffer = r; - } - n.pos = i; - } - return !n.kill; - }), t = (t += '}try{registerProcessor("' + g + '", ' + g + ')}catch(e){$C.error("' + o + ' Reg Error",e)}').replace(/\$C\./g, "console."), "data:text/javascript;base64," + btoa(unescape(encodeURIComponent(t)))); - c[d].addModule(a).then(function (e) { - n() && (c[g] = 1, r(), h && s()); - })[x](function (e) { - O(d + ".addModule Error", 1, e), n() && A(); - }); - } - }; - B(c, function () { - return n(); - }, e, e); - } else A(); - }; - !function () { - var e = window[w], - t = "ondataavailable", - a = "audio/webm; codecs=pcm"; - u = f.isWebM = N[T]; - var n = e && t in e.prototype && e.isTypeSupported(a); - if (b = n ? "" : z("VwPd::(此浏览器不支持{1})", 0, S), !_ || !u || !n) return k(); - var s = function () { - return u && f._ra; - }, - r = (f._ra = function () { - "" !== h && (clearTimeout(h), h = setTimeout(function () { - s() && (O(z("vHnb::{1}未返回任何音频,降级使用{2}", 0, w, d), 3), k()); - }, 500)); - }, Object.assign({ - mimeType: a - }, N.ConnectWebMOptions)), - i = f._r = new e(f, r), - o = f._rd = { - sampleRate: c[D] - }; - i[t] = function (e) { - var t = new FileReader(); - t.onloadend = function () { - if (s()) { - var e = P(new Uint8Array(t.result), o); - if (!e) return; - if (-1 == e) return void k(); - h && (clearTimeout(h), h = ""), m(e); - } else u || O(z("O9P7::{1}多余回调", 0, w), 3); - }, t.readAsArrayBuffer(e.data); - }, i.start(~~(l / 48)), O(z("LMEm::Connect采用{1},设置{2}可恢复使用{3}或老式{4}", 0, S, R + "." + T + "=false", d, v)); - }(); - }, - r = function (e) { - e._na && e._na(), e._ra && e._ra(); - }, - n = function (e) { - e._na = null, e._n && (e._n.port.postMessage({ - kill: !0 - }), e._n.disconnect(), e._n = null); - }, - I = function (e) { - if (e._ra = null, e._r) { - try { - e._r.stop(); - } catch (e) { - O("mr stop err", 1, e); - } - e._r = null; - } - }, - L = function (e) { - var t = (e = e || N) == N, - a = e.Stream; - a && (a._m && (a._m.disconnect(), a._m = null), !a._RC && a._c && N.CloseNewCtx(a._c), a._RC = null, a._c = null, a._d && (o(a._d.stream), a._d = null), a._p && (a._p.disconnect(), a._p.onaudioprocess = a._p = null), n(a), I(a), t && o(a)), e.Stream = 0; - }, - o = N.StopS_ = function (e) { - for (var t = e.getTracks && e.getTracks() || e.audioTracks || [], a = 0; a < t.length; a++) { - var n = t[a]; - n.stop && n.stop(); - } - e.stop && e.stop(); - }; - N.SampleData = function (e, t, a, n, s) { - var r = "SampleData"; - n || (n = {}); - var i = n.index || 0, - o = n.offset || 0, - _ = n.filter; - if (_ && _.fn && _.sr != t && (_ = null, O(z("d48C::{1}的filter采样率变了,重设滤波", 0, r), 3)), !_) { - var l = 3 * t / 4 < a ? 0 : a / 2 * 3 / 4; - _ = { - fn: l ? N.IIRFilter(!0, t, l) : 0 - }; - } - _.sr = t; - var f = _.fn, - c = n.frameNext || []; - s || (s = {}); - var u = s.frameSize || 1; - s.frameType && (u = "mp3" == s.frameType ? 1152 : 1); - var h = e.length; - h + 1 < i && O(z("tlbC::{1}似乎传入了未重置chunk {2}", 0, r, i + ">" + h), 3); - for (var b = 0, p = i; p < h; p++) b += e[p].length; - b = Math.max(0, b - Math.floor(o)); - var m = t / a; - 1 < m ? b = Math.floor(b / m) : (m = 1, a = t), b += c.length; - for (var v = new Int16Array(b), d = 0, p = 0; p < c.length; p++) v[d] = c[p], d++; - for (; i < h; i++) { - for (var g = e[i], p = o, w = g.length, S = f && f.Embed, M = 0, y = 0, A = 0, k = 0, R = 0, x = 0; R < w; R++, x++) if (x < w && (S ? (A = g[x], k = S.b0 * A + S.b1 * S.x1 + S.b0 * S.x2 - S.a1 * S.y1 - S.a2 * S.y2, S.x2 = S.x1, S.x1 = A, S.y2 = S.y1, S.y1 = k) : k = f ? f(g[x]) : g[x]), M = y, y = k, 0 != x) { - var B = Math.floor(p); - if (R == B) { - var T = Math.ceil(p), - E = p - B, - C = M, - I = T < w ? y : C, - L = C + (I - C) * E; - 32767 < L ? L = 32767 : L < -32768 && (L = -32768), v[d] = L, d++, p += m; - } - } else R--; - o = Math.max(0, p - w); - } - c = null; - var P = v.length % u; - if (0 < P) { - var H = 2 * (v.length - P); - c = new Int16Array(v.buffer.slice(H)), v = new Int16Array(v.buffer.slice(0, H)); - } - return { - index: i, - offset: o, - filter: _, - frameNext: c, - sampleRate: a, - data: v - }; - }, N.IIRFilter = function (e, t, a) { - var n = 2 * Math.PI * a / t, - s = Math.sin(n), - r = Math.cos(n), - i = s / 2, - o = 1 + i, - _ = -2 * r / o, - l = (1 - i) / o; - if (e) var f = (1 - r) / 2 / o, - c = (1 - r) / o;else var f = (1 + r) / 2 / o, - c = -(1 + r) / o; - var u = 0, - h = 0, - b = 0, - p = 0, - m = 0, - v = function (e) { - return b = f * e + c * u + f * h - _ * p - l * m, h = u, u = e, m = p, p = b; - }; - return v.Embed = { - x1: 0, - x2: 0, - y1: 0, - y2: 0, - b0: f, - b1: c, - a1: _, - a2: l - }, v; - }, N.PowerLevel = function (e, t) { - var a = e / t || 0; - return a < 1251 ? Math.round(a / 1250 * 10) : Math.round(Math.min(100, Math.max(0, 100 * (1 + Math.log(a / 1e4) / Math.log(10))))); - }, N.PowerDBFS = function (e) { - var t = Math.max(.1, e || 0); - return t = Math.min(t, 32767), t = 20 * Math.log(t / 32767) / Math.log(10), Math.max(-100, Math.round(t)); - }, N.CLog = function (e, t) { - if ("object" == typeof console) { - var a = new Date(), - n = ("0" + a.getMinutes()).substr(-2) + ":" + ("0" + a.getSeconds()).substr(-2) + "." + ("00" + a.getMilliseconds()).substr(-3), - s = this && this.envIn && this.envCheck && this.id, - r = ["[" + n + " " + R + (s ? ":" + s : "") + "]" + e], - i = arguments, - o = N.CLog, - _ = 2, - l = o.log || console.log; - for (f(t) ? l = 1 == t ? o.error || console.error : 3 == t ? o.warn || console.warn : l : _ = 1; _ < i.length; _++) r.push(i[_]); - c ? l && l("[IsLoser]" + r[0], 1 < r.length ? r : "") : l.apply(console, r); - } - }; - var O = function () { - N.CLog.apply(this, arguments); - }, - c = !0; - try { - c = !console.log.apply; - } catch (e) {} - var _ = 0; - function l(e) { - var t = this; - t.id = ++_, u(); - var a = { - type: "mp3", - onProcess: S - }; - for (var n in e) a[n] = e[n]; - var s = (t.set = a)[i], - r = a[D]; - (s && !f(s) || r && !f(r)) && t.CLog(z.G("IllegalArgs-1", [z("VtS4::{1}和{2}必须是数值", 0, D, i)]), 1, e), a[i] = +s || 16, a[D] = +r || 16e3, t.state = 0, t._S = 9, t.Sync = { - O: 9, - C: 9 - }; } - N.Sync = { + return !1; + }, V.BufferSize = 4096, V.Destroy = function () { + for (var e in H(T + " Destroy"), S(), a) a[e](); + }; + var a = {}; + V.BindDestroy = function (e, t) { + a[e] = t; + }, V.Support = function () { + var e = navigator.mediaDevices || {}; + return e[d] || (e = navigator)[d] || (e[d] = e.webkitGetUserMedia || e.mozGetUserMedia || e.msGetUserMedia), !!e[d] && (V.Scope = e, !!V.GetContext()); + }, V.GetContext = function () { + var e = y.AudioContext; + return e || (e = y.webkitAudioContext), e ? (V.Ctx && "closed" != V.Ctx.state || (V.Ctx = new e(), V.BindDestroy("Ctx", function () { + var e = V.Ctx; + e && e.close && (e.close(), V.Ctx = 0); + })), V.Ctx) : null; + }; + var E = "ConnectEnableWebM"; + V[E] = !0; + var P = "ConnectEnableWorklet"; + V[P] = !1; + var g = function (e, _) { + var l, + i, + f, + c = e.BufferSize || V.BufferSize, + h = V.Ctx, + u = e.Stream, + o = function (e) { + var t = u._m = h.createMediaStreamSource(u), + a = h.destination, + s = "createMediaStreamDestination"; + h[s] && (a = h[s]()), t.connect(e), e.connect(a); + }, + m = "", + p = u._call, + b = function (e) { + for (var t in p) { + for (var a = e.length, s = new Int16Array(a), n = 0, r = 0; r < a; r++) { + var i = Math.max(-1, Math.min(1, e[r])); + i = i < 0 ? 32768 * i : 32767 * i, s[r] = i, n += Math.abs(i); + } + for (var o in p) p[o](s, n); + return; + } + }, + v = "ScriptProcessor", + d = "audioWorklet", + g = T + " " + d, + S = "RecProc", + M = "MediaRecorder", + w = M + ".WebM.PCM", + R = h.createScriptProcessor || h.createJavaScriptNode, + A = "。由于" + d + "内部1秒375次回调,在移动端可能会有性能问题导致回调丢失录音变短,PC端无影响,暂不建议开启" + d + "。", + B = function () { + i = u.isWorklet = !1, L(u), H("Connect采用老的" + v + "," + (V[P] ? "但已" : "可") + "设置" + T + "." + P + "=true尝试启用" + d + m + A, 3); + var e = u._p = R.call(h, c, 1, 1); + o(e); + var t = "_D220626", + a = V[t]; + a && H("Use " + T + "." + t, 3), e.onaudioprocess = function (e) { + var t = e.inputBuffer.getChannelData(0); + a ? (t = new Float32Array(t), setTimeout(function () { + b(t); + })) : b(t); + }; + }, + k = function () { + l = u.isWebM = !1, I(u), i = u.isWorklet = !R || V[P]; + var t = y.AudioWorkletNode; + if (i && h[d] && t) { + var s = function () { + return i && u._na; + }, + n = u._na = function () { + "" !== f && (clearTimeout(f), f = setTimeout(function () { + f = 0, s() && (H(d + "未返回任何音频,恢复使用" + v, 3), R && B()); + }, 500)); + }, + r = function () { + if (s()) { + var e = u._n = new t(h, S, { + processorOptions: { + bufferSize: c + } + }); + o(e), e.port.onmessage = function (e) { + f && (clearTimeout(f), f = ""), s() ? b(e.data.val) : i || H(d + "多余回调", 3); + }, H("Connect采用" + d + ",设置" + T + "." + P + "=false可恢复老式" + v + m + A, 3); + } + }; + h.resume()[p && "finally"](function () { + if (s()) if (h[S]) r();else { + var e, + t, + a = (t = "class " + S + " extends AudioWorkletProcessor{", t += "constructor " + (e = function (e) { + return e.toString().replace(/^function|DEL_/g, "").replace(/\$RA/g, g); + })(function (e) { + DEL_super(e); + var t = this, + a = e.processorOptions.bufferSize; + t.bufferSize = a, t.buffer = new Float32Array(2 * a), t.pos = 0, t.port.onmessage = function (e) { + e.data.kill && (t.kill = !0, console.log("$RA kill call")); + }, console.log("$RA .ctor call", e); + }), t += "process " + e(function (e, t, a) { + var s = this, + n = s.bufferSize, + r = s.buffer, + i = s.pos; + if ((e = (e[0] || [])[0] || []).length) { + r.set(e, i); + var o = ~~((i += e.length) / n) * n; + if (o) { + this.port.postMessage({ + val: r.slice(0, o) + }); + var _ = r.subarray(o, i); + (r = new Float32Array(2 * n)).set(_), i = _.length, s.buffer = r; + } + s.pos = i; + } + return !s.kill; + }), t += '}try{registerProcessor("' + S + '", ' + S + ')}catch(e){console.error("' + g + '注册失败",e)}', "data:text/javascript;base64," + btoa(unescape(encodeURIComponent(t)))); + h[d].addModule(a).then(function (e) { + s() && (h[S] = 1, r(), f && n()); + })[x](function (e) { + H(d + ".addModule失败", 1, e), s() && B(); + }); + } + }); + } else B(); + }; + !function () { + var e = y[M], + t = "ondataavailable", + a = "audio/webm; codecs=pcm"; + l = u.isWebM = V[E]; + var s = e && t in e.prototype && e.isTypeSupported(a); + if (m = s ? "" : "(此浏览器不支持" + w + ")", !_ || !l || !s) return k(); + var n = function () { + return l && u._ra; + }, + r = (u._ra = function () { + "" !== f && (clearTimeout(f), f = setTimeout(function () { + n() && (H(M + "未返回任何音频,降级使用" + d, 3), k()); + }, 500)); + }, Object.assign({ + mimeType: a + }, V.ConnectWebMOptions)), + i = u._r = new e(u, r), + o = u._rd = { + sampleRate: h[N] + }; + i[t] = function (e) { + var t = new FileReader(); + t.onloadend = function () { + if (n()) { + var e = C(new Uint8Array(t.result), o); + if (!e) return; + if (-1 == e) return void k(); + f && (clearTimeout(f), f = ""), b(e); + } else l || H(M + "多余回调", 3); + }, t.readAsArrayBuffer(e.data); + }, i.start(~~(c / 48)), H("Connect采用" + w + ",设置" + T + "." + E + "=false可恢复使用" + d + "或老式" + v); + }(); + }, + L = function (e) { + e._na = null, e._n && (e._n.port.postMessage({ + kill: !0 + }), e._n.disconnect(), e._n = null); + }, + I = function (e) { + e._ra = null, e._r && (e._r.stop(), e._r = null); + }, + S = function (e) { + var t = (e = e || V) == V, + a = e.Stream; + if (a && (a._m && (a._m.disconnect(), a._m = null), a._p && (a._p.disconnect(), a._p.onaudioprocess = a._p = null), L(a), I(a), t)) { + for (var s = a.getTracks && a.getTracks() || a.audioTracks || [], n = 0; n < s.length; n++) { + var r = s[n]; + r.stop && r.stop(); + } + a.stop && a.stop(); + } + e.Stream = 0; + }; + V.SampleData = function (e, t, a, s, n) { + s || (s = {}); + var r = s.index || 0, + i = s.offset || 0, + o = s.frameNext || []; + n || (n = {}); + var _ = n.frameSize || 1; + n.frameType && (_ = "mp3" == n.frameType ? 1152 : 1); + var l = e.length; + l + 1 < r && H("SampleData似乎传入了未重置chunk " + r + ">" + l, 3); + for (var f = 0, c = r; c < l; c++) f += e[c].length; + f = Math.max(0, f - Math.floor(i)); + var h = t / a; + 1 < h ? f = Math.floor(f / h) : (h = 1, a = t), f += o.length; + for (var u = new Int16Array(f), m = 0, c = 0; c < o.length; c++) u[m] = o[c], m++; + for (; r < l; r++) { + for (var p = e[r], c = i, b = p.length; c < b;) { + var v = Math.floor(c), + d = Math.ceil(c), + g = c - v, + S = p[v], + M = d < b ? p[d] : (e[r + 1] || [S])[0] || 0; + u[m] = S + (M - S) * g, m++, c += h; + } + i = c - b; + } + o = null; + var w = u.length % _; + if (0 < w) { + var R = 2 * (u.length - w); + o = new Int16Array(u.buffer.slice(R)), u = new Int16Array(u.buffer.slice(0, R)); + } + return { + index: r, + offset: i, + frameNext: o, + sampleRate: a, + data: u + }; + }, V.PowerLevel = function (e, t) { + var a = e / t || 0; + return a < 1251 ? Math.round(a / 1250 * 10) : Math.round(Math.min(100, Math.max(0, 100 * (1 + Math.log(a / 1e4) / Math.log(10))))); + }, V.PowerDBFS = function (e) { + var t = Math.max(.1, e || 0); + return t = Math.min(t, 32767), t = 20 * Math.log(t / 32767) / Math.log(10), Math.max(-100, Math.round(t)); + }, V.CLog = function (e, t) { + var a = new Date(), + s = ("0" + a.getMinutes()).substr(-2) + ":" + ("0" + a.getSeconds()).substr(-2) + "." + ("00" + a.getMilliseconds()).substr(-3), + n = this && this.envIn && this.envCheck && this.id, + r = ["[" + s + " " + T + (n ? ":" + n : "") + "]" + e], + i = arguments, + o = y.console || {}, + _ = 2, + l = o.log; + for ("number" == typeof t ? l = 1 == t ? o.error : 3 == t ? o.warn : l : _ = 1; _ < i.length; _++) r.push(i[_]); + f ? l && l("[IsLoser]" + r[0], 1 < r.length ? r : "") : l.apply(o, r); + }; + var H = function () { + V.CLog.apply(this, arguments); + }, + f = !0; + try { + f = !console.log.apply; + } catch (e) {} + var s = 0; + function t(e) { + this.id = ++s, r(); + var t = { + type: "mp3", + bitRate: 16, + sampleRate: 16e3, + onProcess: v + }; + for (var a in e) t[a] = e[a]; + this.set = t, this._S = 9, this.Sync = { O: 9, C: 9 - }, N.prototype = l.prototype = { - CLog: O, - _streamStore: function () { - return this.set.sourceStream ? this : N; - }, - _streamCtx: function () { - var e = this._streamStore().Stream; - return e && e._c; - }, - open: function (e, a) { - var n = this, - s = n.set, - r = n._streamStore(), - i = 0; - e = e || S; - var o = function (e, t) { - t = !!t, n.CLog(z("5tWi::录音open失败:") + e + ",isUserNotAllow:" + t, 1), i && N.CloseNewCtx(i), a && a(e, t); - }; - n._streamTag = A; - var _ = function () { - n.CLog("open ok, id:" + n.id + " stream:" + n._streamTag), e(), n._SO = 0; - }, - l = r.Sync, - f = ++l.O, - c = l.C; - n._O = n._O_ = f, n._SO = n._S; - if (w) { - var t = n.envCheck({ - envName: "H5", - canProcess: !0 - }); - if (t) o(z("A5bm::不能录音:") + t);else if (s.sourceStream) { - if (n._streamTag = "set.sourceStream", !N.GetContext()) return void o(z("1iU7::不支持此浏览器从流中获取录音")); - L(r); - var u = n.Stream = s.sourceStream; - u._RC = s.runningContext, u._call = {}; - try { - C(r); - } catch (e) { - return L(r), void o(z("BTW2::从流中打开录音失败:") + e.message); - } - _(); - } else { - var h = function (e, t) { - try { - window.top.a; - } catch (e) { - return void o(z("Nclz::无权录音(跨域,请尝试给iframe添加麦克风访问策略,如{1})", 0, 'allow="camera;microphone"')); - } - /Permission|Allow/i.test(e) ? o(z("gyO5::用户拒绝了录音权限"), !0) : !1 === window.isSecureContext ? o(z("oWNo::浏览器禁止不安全页面录音,可开启https解决")) : /Found/i.test(e) ? o(t + z("jBa9::,无可用麦克风")) : o(t); - }; - if (N.IsOpen()) _();else if (N.Support()) { - var b = s.runningContext; - b || (b = i = N.GetContext(!0)); - var p = function (t) { - setTimeout(function () { - t._call = {}; - var e = N.Stream; - e && (L(), t._call = e._call), (N.Stream = t)._c = b, t._RC = s.runningContext, function () { - if (c != l.C || !n._O) { - var e = z("dFm8::open被取消"); - return f == l.O ? n.close() : e = z("VtJO::open被中断"), o(e), !0; - } - }() || (N.IsOpen() ? (e && n.CLog(z("upb8::发现同时多次调用open"), 1), C(r, 1), _()) : o(z("Q1GA::录音功能无效:无音频流"))); - }, 100); - }, - m = function (e) { - var t = e.name || e.message || e.code + ":" + e; - n.CLog(z("xEQR::请求录音权限错误"), 1, e), h(t, z("bDOG::无法录音:") + t); - }, - v = s.audioTrackSet || {}; - v[D] = b[D]; - var d = { - audio: v - }; - try { - var g = N.Scope[A](d, p, m); - } catch (e) { - n.CLog(A, 3, e), d = { - audio: !0 - }, g = N.Scope[A](d, p, m); - } - n.CLog(A + "(" + JSON.stringify(d) + ") " + k(b) + z("RiWe::,未配置noiseSuppression和echoCancellation时浏览器可能会自动打开降噪和回声消除,移动端可能会降低系统播放音量(关闭录音后可恢复),请参阅文档中audioTrackSet配置") + "(" + y + ") LM:" + M + " UA:" + navigator.userAgent), g && g.then && g.then(p)[x](m); - } else h("", z("COxc::此浏览器不支持录音")); - } - } else o(z.G("NonBrowser-1", ["open"]) + z("EMJq::,可尝试使用RecordApp解决方案") + "(" + y + "/tree/master/app-support-sample)"); - }, - close: function (e) { - e = e || S; - var t = this, - a = t._streamStore(); - t._stop(); - var n = " stream:" + t._streamTag, - s = a.Sync; - if (t._O = 0, t._O_ != s.O) return t.CLog(z("hWVz::close被忽略(因为同时open了多个rec,只有最后一个会真正close)") + n, 3), void e(); - s.C++, L(a), t.CLog("close," + n), e(); - }, - mock: function (e, t) { - var a = this; - return a._stop(), a.isMock = 1, a.mockEnvInfo = null, a.buffers = [e], a.recSize = e.length, a._setSrcSR(t), a._streamTag = "mock", a; - }, - _setSrcSR: function (e) { - var t = this.set, - a = t[D]; - e < a ? t[D] = e : a = 0, this[V] = e, this.CLog(V + ": " + e + " set." + D + ": " + t[D] + (a ? " " + z("UHvm::忽略") + ": " + a : ""), a ? 3 : 0); - }, - envCheck: function (e) { - var t, - a = this.set, - n = "CPU_BE"; - if (t || N[n] || "function" != typeof Int8Array || new Int8Array(new Int32Array([1]).buffer)[0] || (u(n), t = z("Essp::不支持{1}架构", 0, n)), !t) { - var s = a.type, - r = this[s + "_envCheck"]; - a.takeoffEncodeChunk && (r ? e.canProcess || (t = z("7uMV::{1}环境不支持实时处理", 0, e.envName)) : t = z("2XBl::{1}类型不支持设置takeoffEncodeChunk", 0, s) + (this[s] ? "" : z("LG7e::(未加载编码器)"))), !t && r && (t = this[s + "_envCheck"](e, a)); + }; + } + V.Sync = { + O: 9, + C: 9 + }, V.prototype = t.prototype = { + CLog: H, + _streamStore: function () { + return this.set.sourceStream ? this : V; + }, + open: function (e, a) { + var s = this, + n = s._streamStore(); + e = e || v; + var r = function (e, t) { + t = !!t, s.CLog("录音open失败:" + e + ",isUserNotAllow:" + t, 1), a && a(e, t); + }, + i = function () { + s.CLog("open ok id:" + s.id), e(), s._SO = 0; + }, + o = n.Sync, + _ = ++o.O, + l = o.C; + s._O = s._O_ = _, s._SO = s._S; + var t = s.envCheck({ + envName: "H5", + canProcess: !0 + }); + if (t) r("不能录音:" + t);else if (s.set.sourceStream) { + if (!V.GetContext()) return void r("不支持此浏览器从流中获取录音"); + S(n), s.Stream = s.set.sourceStream, s.Stream._call = {}; + try { + g(n); + } catch (e) { + return void r("从流中打开录音失败:" + e.message); } - return t || ""; - }, - envStart: function (e, t) { - var a = this, - n = a.set; - if (a.isMock = e ? 1 : 0, a.mockEnvInfo = e, a.buffers = [], a.recSize = 0, e && (a._streamTag = "env$" + e.envName), a.state = 1, a.envInLast = 0, a.envInFirst = 0, a.envInFix = 0, a.envInFixTs = [], a._setSrcSR(t), a.engineCtx = 0, a[n.type + "_start"]) { - var s = a.engineCtx = a[n.type + "_start"](n); - s && (s.pcmDatas = [], s.pcmSize = 0); - } - }, - envResume: function () { - this.envInFixTs = []; - }, - envIn: function (e, t) { - var s = this, - r = s.set, - i = s.engineCtx; - if (1 == s.state) { - var a = s[V], - n = e.length, - o = N.PowerLevel(t, n), - _ = s.buffers, - l = _.length; - _.push(e); - var f = _, - c = l, - u = Date.now(), - h = Math.round(n / a * 1e3); - s.envInLast = u, 1 == s.buffers.length && (s.envInFirst = u - h); - var b = s.envInFixTs; - b.splice(0, 0, { - t: u, - d: h - }); - for (var p = u, m = 0, v = 0; v < b.length; v++) { - var d = b[v]; - if (3e3 < u - d.t) { - b.length = v; - break; - } - p = d.t, m += d.d; - } - var g = b[1], - w = u - p, - S = w - m; - if (w / 3 < S && (g && 1e3 < w || 6 <= b.length)) { - var M = u - g.t - h; - if (h / 5 < M) { - var y = !r.disableEnvInFix; - if (s.CLog("[" + u + "]" + Y.get(z(y ? "4Kfd::补偿{1}ms" : "bM5i::未补偿{1}ms", 1), [M]), 3), s.envInFix += M, y) { - var A = new Int16Array(M * a / 1e3); - n += A.length, _.push(A); - } - } - } - var k = s.recSize, - R = n, - x = k + R; - if (s.recSize = x, i) { - var B = N.SampleData(_, a, r[D], i.chunkInfo); - i.chunkInfo = B, k = i.pcmSize, R = B.data.length, x = k + R, i.pcmSize = x, _ = i.pcmDatas, l = _.length, _.push(B.data), a = B[D]; - } - var T = Math.round(x / a * 1e3), - E = _.length, - C = f.length, - I = function () { - for (var e = L ? 0 : -R, t = null == _[0], a = l; a < E; a++) { - var n = _[a]; - null == n ? t = 1 : (e += n.length, i && n.length && s[r.type + "_encode"](i, n)); - } - if (t && i) { - var a = c; - for (f[0] && (a = 0); a < C; a++) f[a] = null; - } - t && (e = L ? R : 0, _[0] = null), i ? i.pcmSize += e : s.recSize += e; - }, - L = 0, - P = "rec.set.onProcess"; + i(); + } else { + var f = function (e, t) { try { - L = r.onProcess(_, o, T, a, l, I); + y.top.a; } catch (e) { - console.error(P + z("gFUF::回调出错是不允许的,需保证不会抛异常"), e); + return void r('无权录音(跨域,请尝试给iframe添加麦克风访问策略,如allow="camera;microphone")'); } - var H = Date.now() - u; - if (10 < H && 1e3 < s.envInFirst - u && s.CLog(P + z("2ghS::低性能,耗时{1}ms", 0, H), 3), !0 === L) { - for (var O = 0, v = l; v < E; v++) null == _[v] ? O = 1 : _[v] = new Int16Array(0); - O ? s.CLog(z("ufqH::未进入异步前不能清除buffers"), 3) : i ? i.pcmSize -= R : s.recSize -= R; - } else I(); - } else s.state || s.CLog("envIn at state=0", 3); - }, - start: function () { - var t = this, - e = 1; - if (t.set.sourceStream ? t.Stream || (e = 0) : N.IsOpen() || (e = 0), e) { - var a = t._streamCtx(); - if (t.CLog(z("kLDN::start 开始录音,") + k(a) + " stream:" + t._streamTag), t._stop(), t.envStart(null, a[D]), t.state = 3, t._SO && t._SO + 1 != t._S) t.CLog(z("Bp2y::start被中断"), 3);else { - t._SO = 0; - var n = function () { - 3 == t.state && (t.state = 1, t.resume()); - }, - s = "AudioContext resume: "; - B(a, function (e) { - return e && t.CLog(s + "wait..."), 3 == t.state; - }, function (e) { - e && t.CLog(s + a.state), n(); - }, function (e) { - t.CLog(s + a.state + z("upkE::,可能无法录音:") + e, 1), n(); - }); + /Permission|Allow/i.test(e) ? r("用户拒绝了录音权限", !0) : !1 === y.isSecureContext ? r("浏览器禁止不安全页面录音,可开启https解决") : /Found/i.test(e) ? r(t + ",无可用麦克风") : r(t); + }; + if (V.IsOpen()) i();else if (V.Support()) { + var c = function (t) { + setTimeout(function () { + t._call = {}; + var e = V.Stream; + e && (S(), t._call = e._call), V.Stream = t, function () { + if (l != o.C || !s._O) { + var e = "open被取消"; + return _ == o.O ? s.close() : e = "open被中断", r(e), !0; + } + }() || (V.IsOpen() ? (e && s.CLog("发现同时多次调用open", 1), g(n, 1), i()) : r("录音功能无效:无音频流")); + }, 100); + }, + h = function (e) { + var t = e.name || e.message || e.code + ":" + e; + s.CLog("请求录音权限错误", 1, e), f(t, "无法录音:" + t); + }, + u = { + noiseSuppression: !1, + echoCancellation: !1 + }, + m = s.set.audioTrackSet; + for (var p in m) u[p] = m[p]; + u.sampleRate = V.Ctx.sampleRate; + try { + var b = V.Scope[d]({ + audio: u + }, c, h); + } catch (e) { + s.CLog(d, 3, e), b = V.Scope[d]({ + audio: !0 + }, c, h); } - } else t.CLog(z("6WmN::start失败:未open"), 1); - }, - pause: function () { - var e = this, - t = e._streamStore().Stream; - e.state && (e.state = 2, e.CLog("pause"), t && delete t._call[e.id]); - }, - resume: function () { - var a = this, - t = a._streamStore().Stream, - n = "resume(wait ctx)"; - if (3 == a.state) a.CLog(n);else if (a.state) { - a.state = 1, a.CLog("resume"), a.envResume(), t && (t._call[a.id] = function (e, t) { - 1 == a.state && a.envIn(e, t); - }, r(t)); - var s = a._streamCtx(); - s && B(s, function (e) { - return e && a.CLog(n + "..."), 1 == a.state; - }, function (e) { - e && a.CLog(n + s.state), r(t); - }, function (e) { - a.CLog(n + s.state + "[err]" + e, 1); - }); + b && b.then && b.then(c)[x](h); + } else f("", "此浏览器不支持录音"); + } + }, + close: function (e) { + e = e || v; + var t = this, + a = t._streamStore(); + t._stop(); + var s = a.Sync; + if (t._O = 0, t._O_ != s.O) return t.CLog("close被忽略(因为同时open了多个rec,只有最后一个会真正close)", 3), void e(); + s.C++, S(a), t.CLog("close"), e(); + }, + mock: function (e, t) { + var a = this; + return a._stop(), a.isMock = 1, a.mockEnvInfo = null, a.buffers = [e], a.recSize = e.length, a[O] = t, a; + }, + envCheck: function (e) { + var t, + a = this.set, + s = "CPU_BE"; + if (t || V[s] || !y.Int8Array || new Int8Array(new Int32Array([1]).buffer)[0] || (r(s), t = "不支持CPU_BE架构"), !t) { + var n = a.type; + this[n + "_envCheck"] ? t = this[n + "_envCheck"](e, a) : a.takeoffEncodeChunk && (t = n + "类型" + (this[n] ? "" : "(未加载编码器)") + "不支持设置takeoffEncodeChunk"); + } + return t || ""; + }, + envStart: function (e, t) { + var a = this, + s = a.set; + a.isMock = e ? 1 : 0, a.mockEnvInfo = e, a.buffers = [], a.recSize = 0, a.envInLast = 0, a.envInFirst = 0, a.envInFix = 0, a.envInFixTs = []; + var n = s[N]; + if (t < n ? s[N] = t : n = 0, a[O] = t, a.CLog(O + ": " + t + " set." + N + ": " + s[N] + (n ? " 忽略" + n : ""), n ? 3 : 0), a.engineCtx = 0, a[s.type + "_start"]) { + var r = a.engineCtx = a[s.type + "_start"](s); + r && (r.pcmDatas = [], r.pcmSize = 0); + } + }, + envResume: function () { + this.envInFixTs = []; + }, + envIn: function (e, t) { + var n = this, + r = n.set, + i = n.engineCtx, + a = n[O], + s = e.length, + o = V.PowerLevel(t, s), + _ = n.buffers, + l = _.length; + _.push(e); + var f = _, + c = l, + h = Date.now(), + u = Math.round(s / a * 1e3); + n.envInLast = h, 1 == n.buffers.length && (n.envInFirst = h - u); + var m = n.envInFixTs; + m.splice(0, 0, { + t: h, + d: u + }); + for (var p = h, b = 0, v = 0; v < m.length; v++) { + var d = m[v]; + if (3e3 < h - d.t) { + m.length = v; + break; } - }, - _stop: function (e) { - var t = this, - a = t.set; - t.isMock || t._S++, t.state && (t.pause(), t.state = 0), !e && t[a.type + "_stop"] && (t[a.type + "_stop"](t.engineCtx), t.engineCtx = 0); - }, - stop: function (c, t, e) { - var u, - h = this, - b = h.set, - a = h.envInLast - h.envInFirst, - n = a && h.buffers.length; - h.CLog(z("Xq4s::stop 和start时差:") + (a ? a + "ms " + z("3CQP::补偿:") + h.envInFix + "ms envIn:" + n + " fps:" + (n / a * 1e3).toFixed(1) : "-") + " stream:" + h._streamTag + " (" + y + ") LM:" + M); - var p = function () { - h._stop(), e && h.close(); - }, - m = function (e) { - h.CLog(z("u8JG::结束录音失败:") + e, 1), t && t(e), p(); - }, - s = function (e, t, a) { - var n = "arraybuffer", - s = "dataType", - r = "DefaultDataType", - i = h[s] || N[r] || "blob", - o = s + "=" + i, - _ = e instanceof ArrayBuffer, - l = 0, - f = _ ? e.byteLength : e.size; - if (i == n ? _ || (l = 1) : "blob" == i ? "function" != typeof Blob ? l = z.G("NonBrowser-1", [o]) + z("1skY::,请设置{1}", 0, R + "." + r + '="' + n + '"') : (_ && (e = new Blob([e], { - type: t - })), e instanceof Blob || (l = 1), t = e.type || t) : l = z.G("NotSupport-1", [o]), h.CLog(z("Wv7l::结束录音 编码花{1}ms 音频时长{2}ms 文件大小{3}b", 0, Date.now() - u, a, f) + " " + o + "," + t), l) m(1 != l ? l : z("Vkbd::{1}编码器返回的不是{2}", 0, b.type, i) + ", " + o);else { - if (b.takeoffEncodeChunk) h.CLog(z("QWnr::启用takeoffEncodeChunk后stop返回的blob长度为0不提供音频数据"), 3);else if (f < Math.max(50, a / 5)) return void m(z("Sz2H::生成的{1}无效", 0, b.type)); - c && c(e, a, t), p(); - } + p = d.t, b += d.d; + } + var g = m[1], + S = h - p; + if (S / 3 < S - b && (g && 1e3 < S || 6 <= m.length)) { + var M = h - g.t - u; + if (u / 5 < M) { + var w = !r.disableEnvInFix; + if (n.CLog("[" + h + "]" + (w ? "" : "未") + "补偿" + M + "ms", 3), n.envInFix += M, w) { + var R = new Int16Array(M * a / 1e3); + s += R.length, _.push(R); + } + } + } + var A = n.recSize, + B = s, + k = A + B; + if (n.recSize = k, i) { + var y = V.SampleData(_, a, r[N], i.chunkInfo); + i.chunkInfo = y, k = (A = i.pcmSize) + (B = y.data.length), i.pcmSize = k, _ = i.pcmDatas, l = _.length, _.push(y.data), a = y[N]; + } + var T = Math.round(k / a * 1e3), + x = _.length, + E = f.length, + P = function () { + for (var e = L ? 0 : -B, t = null == _[0], a = l; a < x; a++) { + var s = _[a]; + null == s ? t = 1 : (e += s.length, i && s.length && n[r.type + "_encode"](i, s)); + } + if (t && i) for (a = c, f[0] && (a = 0); a < E; a++) f[a] = null; + t && (e = L ? B : 0, _[0] = null), i ? i.pcmSize += e : n.recSize += e; + }, + L = 0, + I = "rec.set.onProcess"; + try { + L = r.onProcess(_, o, T, a, l, P); + } catch (e) { + console.error(I + "回调出错是不允许的,需保证不会抛异常", e); + } + var H = Date.now() - h; + if (10 < H && 1e3 < n.envInFirst - h && n.CLog(I + "低性能,耗时" + H + "ms", 3), !0 === L) { + var C = 0; + for (v = l; v < x; v++) null == _[v] ? C = 1 : _[v] = new Int16Array(0); + C ? n.CLog("未进入异步前不能清除buffers", 3) : i ? i.pcmSize -= B : n.recSize -= B; + } else P(); + }, + start: function () { + var t = this, + a = V.Ctx, + e = 1; + if (t.set.sourceStream ? t.Stream || (e = 0) : V.IsOpen() || (e = 0), e) { + if (t.CLog("开始录音"), t._stop(), t.state = 3, t.envStart(null, a[N]), t._SO && t._SO + 1 != t._S) t.CLog("start被中断", 3);else { + t._SO = 0; + var s = function () { + 3 == t.state && (t.state = 1, t.resume()); }; - if (!h.isMock) { - var r = 3 == h.state; - if (!h.state || r) return void m(z("wf9t::未开始录音") + (r ? z("Dl2c::,开始录音前无用户交互导致AudioContext未运行") : "")); + if ("suspended" == a.state) { + var n = "AudioContext resume: "; + t.CLog(n + "wait..."), a.resume().then(function () { + t.CLog(n + a.state), s(); + })[x](function (e) { + t.CLog(n + a.state + " 可能无法录音:" + e.message, 1, e), s(); + }); + } else s(); } - h._stop(!0); - var i = h.recSize; - if (i) { - if (h[b.type]) { - if (h.isMock) { - var o = h.envCheck(h.mockEnvInfo || { + } else t.CLog("未open", 1); + }, + pause: function () { + var e = this; + e.state && (e.state = 2, e.CLog("pause"), delete e._streamStore().Stream._call[e.id]); + }, + resume: function () { + var e, + a = this; + if (a.state) { + a.state = 1, a.CLog("resume"), a.envResume(); + var t = a._streamStore().Stream; + t._call[a.id] = function (e, t) { + 1 == a.state && a.envIn(e, t); + }, (e = t)._na && e._na(), e._ra && e._ra(); + } + }, + _stop: function (e) { + var t = this, + a = t.set; + t.isMock || t._S++, t.state && (t.pause(), t.state = 0), !e && t[a.type + "_stop"] && (t[a.type + "_stop"](t.engineCtx), t.engineCtx = 0); + }, + stop: function (a, t, e) { + var s, + n = this, + r = n.set, + i = n.envInLast - n.envInFirst, + o = i && n.buffers.length; + n.CLog("stop 和start时差" + (i ? i + "ms 补偿" + n.envInFix + "ms envIn:" + o + " fps:" + (o / i * 1e3).toFixed(1) : "-")); + var _ = function () { + n._stop(), e && n.close(); + }, + l = function (e) { + n.CLog("结束录音失败:" + e, 1), t && t(e), _(); + }, + f = function (e, t) { + if (n.CLog("结束录音 编码花" + (Date.now() - s) + "ms 音频时长" + t + "ms 文件大小" + e.size + "b"), r.takeoffEncodeChunk) n.CLog("启用takeoffEncodeChunk后stop返回的blob长度为0不提供音频数据", 3);else if (e.size < Math.max(100, t / 2)) return void l("生成的" + r.type + "无效"); + a && a(e, t), _(); + }; + if (!n.isMock) { + var c = 3 == n.state; + if (!n.state || c) return void l("未开始录音" + (c ? ",开始录音前无用户交互导致AudioContext未运行" : "")); + n._stop(!0); + } + var h = n.recSize; + if (h) { + if (n.buffers[0]) { + if (n[r.type]) { + if (n.isMock) { + var u = n.envCheck(n.mockEnvInfo || { envName: "mock", canProcess: !1 }); - if (o) return void m(z("AxOH::录音错误:") + o); + if (u) return void l("录音错误:" + u); } - var _ = h.engineCtx; - if (h[b.type + "_complete"] && _) { - var l = Math.round(_.pcmSize / b[D] * 1e3); - return u = Date.now(), void h[b.type + "_complete"](_, function (e, t) { - s(e, t, l); - }, m); + var m = n.engineCtx; + if (n[r.type + "_complete"] && m) { + var p = Math.round(m.pcmSize / r[N] * 1e3); + return s = Date.now(), void n[r.type + "_complete"](m, function (e) { + f(e, p); + }, l); } - if (u = Date.now(), h.buffers[0]) { - var f = N.SampleData(h.buffers, h[V], b[D]); - b[D] = f[D]; - var v = f.data, - l = Math.round(v.length / b[D] * 1e3); - h.CLog(z("CxeT::采样:{1} 花:{2}ms", 0, i + "->" + v.length, Date.now() - u)), setTimeout(function () { - u = Date.now(), h[b.type](v, function (e, t) { - s(e, t, l); - }, function (e) { - m(e); - }); + s = Date.now(); + var b = V.SampleData(n.buffers, n[O], r[N]); + r[N] = b[N]; + var v = b.data; + p = Math.round(v.length / r[N] * 1e3), n.CLog("采样" + h + "->" + v.length + " 花:" + (Date.now() - s) + "ms"), setTimeout(function () { + s = Date.now(), n[r.type](v, function (e) { + f(e, p); + }, function (e) { + l(e); }); - } else m(z("xkKd::音频buffers被释放")); - } else m(z("xGuI::未加载{1}编码器,请尝试到{2}的src/engine内找到{1}的编码器并加载", 0, b.type, R)); - } else m(z("Ltz3::未采集到录音")); - } - }; - var P = function (e, t) { - t.pos || (t.pos = [0], t.tracks = {}, t.bytes = []); - var a = t.tracks, - n = [t.pos[0]], - s = function () { - t.pos[0] = n[0]; - }, - r = t.bytes.length, - i = new Uint8Array(r + e.length); - if (i.set(t.bytes), i.set(e, r), t.bytes = i, !t._ht) { - if (j(i, n), X(i, n), !H(j(i, n), [24, 83, 128, 103])) return; - for (j(i, n); n[0] < i.length;) { - var o = j(i, n), - _ = X(i, n), - l = [0], - f = 0; - if (!_) return; - if (H(o, [22, 84, 174, 107])) { - for (; l[0] < _.length;) { - var c = j(_, l), - u = X(_, l), - h = [0], - b = { - channels: 0, - sampleRate: 0 - }; - if (H(c, [174])) for (; h[0] < u.length;) { - var p = j(u, h), - m = X(u, h), - v = [0]; - if (H(p, [215])) { - var d = F(m); - b.number = d, a[d] = b; - } else if (H(p, [131])) { - var d = F(m); - 1 == d ? b.type = "video" : 2 == d ? (b.type = "audio", f || (t.track0 = b), b.idx = f++) : b.type = "Type-" + d; - } else if (H(p, [134])) { - for (var g = "", w = 0; w < m.length; w++) g += String.fromCharCode(m[w]); - b.codec = g; - } else if (H(p, [225])) for (; v[0] < m.length;) { - var S = j(m, v), - M = X(m, v); - if (H(S, [181])) { - var d = 0, - y = new Uint8Array(M.reverse()).buffer; - 4 == M.length ? d = new Float32Array(y)[0] : 8 == M.length ? d = new Float64Array(y)[0] : O("WebM Track !Float", 1, M), b[D] = Math.round(d); - } else H(S, [98, 100]) ? b.bitDepth = F(M) : H(S, [159]) && (b.channels = F(M)); - } + }); + } else l("未加载" + r.type + "编码器"); + } else l("音频buffers被释放"); + } else l("未采集到录音"); + } + }, y[T] && (H("重复引入" + T, 3), y[T].Destroy()), y[T] = V; + var C = function (e, t) { + t.pos || (t.pos = [0], t.tracks = {}, t.bytes = []); + var a = t.tracks, + s = [t.pos[0]], + n = function () { + t.pos[0] = s[0]; + }, + r = t.bytes.length, + i = new Uint8Array(r + e.length); + if (i.set(t.bytes), i.set(e, r), t.bytes = i, !t._ht) { + if (X(i, s), q(i, s), !D(X(i, s), [24, 83, 128, 103])) return; + for (X(i, s); s[0] < i.length;) { + var o = X(i, s), + _ = q(i, s), + l = [0], + f = 0; + if (!_) return; + if (D(o, [22, 84, 174, 107])) { + for (; l[0] < _.length;) { + var c = X(_, l), + h = q(_, l), + u = [0], + m = { + channels: 0, + sampleRate: 0 + }; + if (D(c, [174])) for (; u[0] < h.length;) { + var p = X(h, u), + b = q(h, u), + v = [0]; + if (D(p, [215])) { + var d = Y(b); + m.number = d, a[d] = m; + } else if (D(p, [131])) { + var d = Y(b); + 1 == d ? m.type = "video" : 2 == d ? (m.type = "audio", f || (t.track0 = m), m.idx = f++) : m.type = "Type-" + d; + } else if (D(p, [134])) { + for (var g = "", S = 0; S < b.length; S++) g += String.fromCharCode(b[S]); + m.codec = g; + } else if (D(p, [225])) for (; v[0] < b.length;) { + var M = X(b, v), + w = q(b, v); + if (D(M, [181])) { + var d = 0, + R = new Uint8Array(w.reverse()).buffer; + 4 == w.length ? d = new Float32Array(R)[0] : 8 == w.length ? d = new Float64Array(R)[0] : H("WebM Track !Float", 1, w), m[N] = Math.round(d); + } else D(M, [98, 100]) ? m.bitDepth = Y(w) : D(M, [159]) && (m.channels = Y(w)); } } - t._ht = 1, O("WebM Tracks", a), s(); - break; } - } - } - var A = t.track0; - if (A) { - if (16 == A.bitDepth && /FLOAT/i.test(A.codec) && (A.bitDepth = 32, O("WebM 16->32 bit", 3)), A[D] != t[D] || 32 != A.bitDepth || A.channels < 1 || !/(\b|_)PCM\b/i.test(A.codec)) return t.bytes = [], t.bad || O("WebM Track Unexpected", 3, t), -(t.bad = 1); - for (var k = [], R = 0; n[0] < i.length;) { - var c = j(i, n), - u = X(i, n); - if (!u) break; - if (H(c, [163])) { - var x = 15 & u[0], - b = a[x]; - if (b) { - if (0 === b.idx) { - for (var B = new Uint8Array(u.length - 4), w = 4; w < u.length; w++) B[w - 4] = u[w]; - k.push(B), R += B.length; - } - } else O("WebM !Track" + x, 1, a); - } - s(); - } - if (R) { - var T = new Uint8Array(i.length - t.pos[0]); - T.set(i.subarray(t.pos[0])), t.bytes = T, t.pos[0] = 0; - for (var B = new Uint8Array(R), w = 0, E = 0; w < k.length; w++) B.set(k[w], E), E += k[w].length; - var y = new Float32Array(B.buffer); - if (1 < A.channels) { - for (var C = [], w = 0; w < y.length;) C.push(y[w]), w += A.channels; - y = new Float32Array(C); - } - return y; - } - } - }, - H = function (e, t) { - if (!e || e.length != t.length) return !1; - if (1 == e.length) return e[0] == t[0]; - for (var a = 0; a < e.length; a++) if (e[a] != t[a]) return !1; - return !0; - }, - F = function (e) { - for (var t = "", a = 0; a < e.length; a++) { - var n = e[a]; - t += (n < 16 ? "0" : "") + n.toString(16); - } - return parseInt(t, 16) || 0; - }, - j = function (e, t, a) { - var n = t[0]; - if (!(n >= e.length)) { - var s = e[n], - r = ("0000000" + s.toString(2)).substr(-8), - i = /^(0*1)(\d*)$/.exec(r); - if (i) { - var o = i[1].length, - _ = []; - if (!(n + o > e.length)) { - for (var l = 0; l < o; l++) _[l] = e[n], n++; - return a && (_[0] = parseInt(i[2] || "0", 2)), t[0] = n, _; - } - } - } - }, - X = function (e, t) { - var a = j(e, t, 1); - if (a) { - var n = F(a), - s = t[0], - r = []; - if (n < 2147483647) { - if (s + n > e.length) return; - for (var i = 0; i < n; i++) r[i] = e[s], s++; - } - return t[0] = s, r; - } - }, - Y = N.i18n = { - lang: "zh-CN", - alias: { - "zh-CN": "zh", - "en-US": "en" - }, - locales: {}, - data: {}, - put: function (e, t) { - var a = R + ".i18n.put: ", - n = e.overwrite; - n = null == n || n; - var s = e.lang; - if (!(s = Y.alias[s] || s)) throw new Error(a + "set.lang?"); - var r = Y.locales[s]; - r || (r = {}, Y.locales[s] = r); - for (var i, o = /^([\w\-]+):/, _ = 0; _ < t.length; _++) { - var l = t[_]; - if (i = o.exec(l)) { - var f = i[1], - l = l.substr(f.length + 1); - !n && r[f] || (r[f] = l); - } else O(a + "'key:'? " + l, 3, e); - } - }, - get: function () { - return Y.v_G.apply(null, arguments); - }, - v_G: function (n, s, e) { - s = s || [], e = e || Y.lang, e = Y.alias[e] || e; - var t = Y.locales[e], - r = t && t[n] || ""; - return r || "zh" == e ? (Y.lastLang = e, "=Empty" == r ? "" : r.replace(/\{(\d+)(\!?)\}/g, function (e, t, a) { - return e = s[(t = +t || 0) - 1], (t < 1 || t > s.length) && (e = "{?}", O("i18n[" + n + "] no {" + t + "}: " + r, 3)), a ? "" : e; - })) : "en" == e ? Y.v_G(n, s, "zh") : Y.v_G(n, s, "en"); - }, - $T: function () { - return Y.v_T.apply(null, arguments); - }, - v_T: function () { - for (var e, t = arguments, a = "", n = [], s = 0, r = R + ".i18n.$T:", i = /^([\w\-]*):/, o = 0; o < t.length; o++) { - var _ = t[o]; - if (0 == o) { - if (e = i.exec(_), !(a = e && e[1])) throw new Error(r + "0 'key:'?"); - _ = _.substr(a.length + 1); - } - if (-1 === s) n.push(_);else { - if (s) throw new Error(r + " bad args"); - if (0 === _) s = -1;else if (f(_)) { - if (_ < 1) throw new Error(r + " bad args"); - s = _; - } else { - var l = 1 == o ? "en" : o ? "" : "zh"; - if ((e = i.exec(_)) && (l = e[1] || l, _ = _.substr(e[1].length + 1)), !e || !l) throw new Error(r + o + " 'lang:'?"); - Y.put({ - lang: l, - overwrite: !1 - }, [a + ":" + _]); - } - } - } - return a ? 0 < s ? a : Y.v_G(a, n) : ""; - } - }, - z = Y.$T; - z.G = Y.get, z("NonBrowser-1::非浏览器环境,不支持{1}", 1), z("IllegalArgs-1::参数错误:{1}", 1), z("NeedImport-2::调用{1}需要先导入{2}", 2), z("NotSupport-1::不支持:{1}", 1), N.TrafficImgUrl = "//ia.51.la/go1?id=20469973&pvFlag=1"; - var u = N.Traffic = function (e) { - if (w) { - e = e ? "/" + R + "/Report/" + e : ""; - var t = N.TrafficImgUrl; - if (t) { - var a = N.Traffic, - n = /^(https?:..[^\/#]*\/?)[^#]*/i.exec(location.href) || [], - s = n[1] || "http://file/", - r = (n[0] || s) + e; - if (0 == t.indexOf("//") && (t = /^https:/i.test(r) ? "https:" + t : "http:" + t), e && (t = t + "&cu=" + encodeURIComponent(s + e)), !a[r]) { - a[r] = 1; - var i = new Image(); - i.src = t, O("Traffic Analysis Image: " + (e || R + ".TrafficImgUrl=" + N.TrafficImgUrl)); + t._ht = 1, H("WebM Tracks", a), n(); + break; } } } + var A = t.track0; + if (A) { + if (16 == A.bitDepth && /FLOAT/i.test(A.codec) && (A.bitDepth = 32, H("WebM 16改32位", 3)), A[N] != t[N] || 32 != A.bitDepth || A.channels < 1 || !/(\b|_)PCM\b/i.test(A.codec)) return t.bytes = [], t.bad || H("WebM Track非预期", 3, t), -(t.bad = 1); + for (var B = [], k = 0; s[0] < i.length;) { + var c = X(i, s), + h = q(i, s); + if (!h) break; + if (D(c, [163])) { + var y = 15 & h[0], + m = a[y]; + if (m) { + if (0 === m.idx) { + for (var T = new Uint8Array(h.length - 4), S = 4; S < h.length; S++) T[S - 4] = h[S]; + B.push(T), k += T.length; + } + } else H("WebM !Track" + y, 1, a); + } + n(); + } + if (k) { + var x = new Uint8Array(i.length - t.pos[0]); + x.set(i.subarray(t.pos[0])), t.bytes = x, t.pos[0] = 0; + for (var T = new Uint8Array(k), S = 0, E = 0; S < B.length; S++) T.set(B[S], E), E += B[S].length; + var R = new Float32Array(T.buffer); + if (1 < A.channels) { + for (var P = [], S = 0; S < R.length;) P.push(R[S]), S += A.channels; + R = new Float32Array(P); + } + return R; + } + } + }, + D = function (e, t) { + if (!e || e.length != t.length) return !1; + if (1 == e.length) return e[0] == t[0]; + for (var a = 0; a < e.length; a++) if (e[a] != t[a]) return !1; + return !0; + }, + Y = function (e) { + for (var t = "", a = 0; a < e.length; a++) { + var s = e[a]; + t += (s < 16 ? "0" : "") + s.toString(16); + } + return parseInt(t, 16) || 0; + }, + X = function (e, t, a) { + var s = t[0]; + if (!(s >= e.length)) { + var n = e[s], + r = ("0000000" + n.toString(2)).substr(-8), + i = /^(0*1)(\d*)$/.exec(r); + if (i) { + var o = i[1].length, + _ = []; + if (!(s + o > e.length)) { + for (var l = 0; l < o; l++) _[l] = e[s], s++; + return a && (_[0] = parseInt(i[2] || "0", 2)), t[0] = s, _; + } + } + } + }, + q = function (e, t) { + var a = X(e, t, 1); + if (a) { + var s = Y(a), + n = t[0], + r = []; + if (s < 2147483647) { + if (n + s > e.length) return; + for (var i = 0; i < s; i++) r[i] = e[n], n++; + } + return t[0] = n, r; + } }; - t && (O(z("8HO5::覆盖导入{1}", 0, R), 1), t.Destroy()); - e[R] = N; - }(a, t), module.exports && (module.exports = a.Recorder); -}(), function (e) { - var t = "object" == typeof window && !!window.document, - a = (t ? window : Object).Recorder, - n = a.i18n; - !function (m, e, u, t) { + V.TrafficImgUrl = "//ia.51.la/go1?id=20469973&pvFlag=1"; + var r = V.Traffic = function (e) { + e = e ? "/" + T + "/Report/" + e : ""; + var t = V.TrafficImgUrl; + if (t) { + var a = V.Traffic, + s = /^(https?:..[^\/#]*\/?)[^#]*/i.exec(location.href) || [], + n = s[1] || "http://file/", + r = (s[0] || n) + e; + if (0 == t.indexOf("//") && (t = /^https:/i.test(r) ? "https:" + t : "http:" + t), e && (t = t + "&cu=" + encodeURIComponent(n + e)), !a[r]) { + a[r] = 1; + var i = new Image(); + i.src = t, H("Traffic Analysis Image: " + (e || T + ".TrafficImgUrl=" + V.TrafficImgUrl)); + } + } + }; +}(window), module.exports && (module.exports = Recorder), function () { - var o = "48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000", - _ = "8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 192, 224, 256, 320"; - m.prototype.enc_mp3 = { - stable: !0, - takeEC: "full", - getTestMsg: function () { - return u("Zm7L::采样率范围:{1};比特率范围:{2}(不同比特率支持的采样率范围不同,小于32kbps时采样率需小于32000)", 0, o, _); - } - }; - var h, - v = function (e) { - var t = e.bitRate, - a = e.sampleRate, - n = a; - if (-1 == (" " + _ + ",").indexOf(" " + t + ",") && m.CLog(u("eGB9::{1}不在mp3支持的取值范围:{2}", 0, "bitRate=" + t, _), 3), -1 == (" " + o + ",").indexOf(" " + a + ",")) { - for (var s = o.split(", "), r = [], i = 0; i < s.length; i++) r.push({ - v: +s[i], - s: Math.abs(s[i] - a) - }); - r.sort(function (e, t) { - return e.s - t.s; - }), n = r[0].v, e.sampleRate = n, m.CLog(u("zLTa::sampleRate已更新为{1},因为{2}不在mp3支持的取值范围:{3}", 0, n, a, o), 3); + var i; + Recorder.prototype.enc_mp3 = { + stable: !0, + testmsg: "采样率范围48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000" + }, Recorder.prototype.mp3 = function (a, s, e) { + var n = this.set, + r = a.length, + t = this.mp3_start(n); + if (t) return this.mp3_encode(t, a), void this.mp3_complete(t, s, e, 1); + var i = new Recorder.lamejs.Mp3Encoder(1, n.sampleRate, n.bitRate), + o = [], + _ = 0, + l = 0, + f = function () { + if (_ < r) { + 0 < (e = i.encodeBuffer(a.subarray(_, _ + 57600))).length && (l += e.buffer.byteLength, o.push(e.buffer)), _ += 57600, setTimeout(f); + } else { + var e; + 0 < (e = i.flush()).length && (l += e.buffer.byteLength, o.push(e.buffer)); + var t = c.fn(o, l, r, n.sampleRate); + h(t, n), s(new Blob(o, { + type: "audio/mp3" + })); } - }, - n = function () { - return u.G("NeedImport-2", ["mp3.js", "src/engine/mp3-engine.js"]); - }, - d = t && "function" == typeof Worker; - m.prototype.mp3 = function (r, i, o) { - var e = this, - _ = e.set, - l = r.length; - if (m.lamejs) { - if (d) { - var t = e.mp3_start(_); - if (t) { - if (t.isW) return e.mp3_encode(t, r), void e.mp3_complete(t, i, o, 1); - e.mp3_stop(t); - } - } - v(_); - var f = new m.lamejs.Mp3Encoder(1, _.sampleRate, _.bitRate), - c = new Int8Array(5e5), - u = 0, - h = 0, - b = 0, - p = function () { - try { - if (h < l) var e = f.encodeBuffer(r.subarray(h, h + 57600));else { - b = 1; - var e = f.flush(); - } - } catch (e) { - if (console.error(e), !b) try { - f.flush(); - } catch (e) { - console.error(e); - } - return void o("MP3 Encoder: " + e.message); - } - var t = e.length; - if (0 < t) { - if (u + t > c.length) { - var a = new Int8Array(c.length + Math.max(5e5, t)); - a.set(c.subarray(0, u)), c = a; - } - c.set(e, u), u += t; - } - if (h < l) h += 57600, setTimeout(p);else { - var n = [c.buffer.slice(0, u)], - s = g.fn(n, u, l, _.sampleRate); - w(s, _), i(n[0] || new ArrayBuffer(0), "audio/mp3"); - } - }; - p(); - } else o(n()); - }, m.BindDestroy("mp3Worker", function () { - h && (m.CLog("mp3Worker Destroy"), h.terminate(), h = null); - }), m.prototype.mp3_envCheck = function (e, t) { - var a = ""; - return t.takeoffEncodeChunk && (p() || (a = u("yhUs::当前浏览器版本太低,无法实时处理"))), a || m.lamejs || (a = n()), a; - }, m.prototype.mp3_start = function (e) { - return p(e); - }; - var b = { - id: 0 - }, - p = function (t, e) { - var f, - a = function (e) { + }; + f(); + }, Recorder.BindDestroy("mp3Worker", function () { + Recorder.CLog("mp3Worker Destroy"), i && i.terminate(), i = null; + }), Recorder.prototype.mp3_envCheck = function (e, t) { + var a = ""; + return t.takeoffEncodeChunk && (e.canProcess ? s() || (a = "当前浏览器版本太低,无法实时处理") : a = e.envName + "环境不支持实时处理"), a; + }, Recorder.prototype.mp3_start = function (e) { + return s(e); + }; + var o = { + id: 0 + }, + s = function (e) { + var t = i; + try { + if (!t) { + var a = ");wk_lame();var wk_ctxs={};self.onmessage=" + function (e) { var t = e.data, - a = f.wkScope.wk_ctxs, - n = f.wkScope.wk_lame, - s = f.wkScope.wk_mp3TrimFix, - r = a[t.id]; - if ("init" == t.action) a[t.id] = { + a = wk_ctxs[t.id]; + if ("init" == t.action) wk_ctxs[t.id] = { sampleRate: t.sampleRate, bitRate: t.bitRate, takeoff: t.takeoff, + mp3Size: 0, pcmSize: 0, - memory: new Int8Array(5e5), - mOffset: 0, - encObj: new n.Mp3Encoder(1, t.sampleRate, t.bitRate) - };else if (!r) return; - var i = function (e) { - var t = e.length; - if (r.mOffset + t > r.memory.length) { - var a = new Int8Array(r.memory.length + Math.max(5e5, t)); - a.set(r.memory.subarray(0, r.mOffset)), r.memory = a; - } - r.memory.set(e, r.mOffset), r.mOffset += t; - }; + encArr: [], + encObj: new wk_lame.Mp3Encoder(1, t.sampleRate, t.bitRate) + };else if (!a) return; switch (t.action) { case "stop": - if (!r.isCp) try { - r.encObj.flush(); - } catch (e) { - console.error(e); - } - r.encObj = null, delete a[t.id]; + a.encObj = null, delete wk_ctxs[t.id]; break; case "encode": - if (r.isCp) break; - r.pcmSize += t.pcm.length; - try { - var o = r.encObj.encodeBuffer(t.pcm); - } catch (e) { - r.err = e, console.error(e); - } - o && 0 < o.length && (r.takeoff ? c.onmessage({ + a.pcmSize += t.pcm.length, 0 < (s = a.encObj.encodeBuffer(t.pcm)).length && (a.takeoff ? self.postMessage({ action: "takeoff", id: t.id, - chunk: o - }) : i(o)); + chunk: s + }) : (a.mp3Size += s.buffer.byteLength, a.encArr.push(s.buffer))); break; case "complete": - r.isCp = 1; - try { - var o = r.encObj.flush(); - } catch (e) { - r.err = e, console.error(e); - } - if (o && 0 < o.length && (r.takeoff ? c.onmessage({ + var s; + 0 < (s = a.encObj.flush()).length && (a.takeoff ? self.postMessage({ action: "takeoff", id: t.id, - chunk: o - }) : i(o)), r.err) { - c.onmessage({ - action: t.action, - id: t.id, - err: "MP3 Encoder: " + r.err.message - }); - break; - } - var _ = [r.memory.buffer.slice(0, r.mOffset)], - l = s.fn(_, r.mOffset, r.pcmSize, r.sampleRate); - c.onmessage({ + chunk: s + }) : (a.mp3Size += s.buffer.byteLength, a.encArr.push(s.buffer))); + var n = wk_mp3TrimFix.fn(a.encArr, a.mp3Size, a.pcmSize, a.sampleRate); + self.postMessage({ action: t.action, id: t.id, - blob: _[0] || new ArrayBuffer(0), - meta: l + blob: new Blob(a.encArr, { + type: "audio/mp3" + }), + meta: n }); } - }, - n = function (n) { - c.onmessage = function (e) { - var t = e; - n && (t = e.data); - var a = b[t.id]; - a && ("takeoff" == t.action ? a.set.takeoffEncodeChunk(new Uint8Array(t.chunk.buffer)) : (a.call && a.call(t), a.call = null)); - }; - }, - s = function () { - var e = { - worker: c, - set: t - }; - return t ? (e.id = ++b.id, b[e.id] = e, v(t), c.postMessage({ - action: "init", - id: e.id, - sampleRate: t.sampleRate, - bitRate: t.bitRate, - takeoff: !!t.takeoffEncodeChunk, - x: new Int16Array(5) - })) : c.postMessage({ - x: new Int16Array(5) - }), e; - }, - c = h; - if (e || !d) return m.CLog(u("k9PT::当前环境不支持Web Worker,mp3实时编码器运行在主线程中"), 3), c = { - postMessage: function (e) { - a({ - data: e - }); - } - }, f = { - wkScope: { - wk_ctxs: {}, - wk_lame: m.lamejs, - wk_mp3TrimFix: g - } - }, n(), s(); - try { - if (!c) { - var r = (a + "").replace(/[\w\$]+\.onmessage/g, "self.postMessage"), - i = ");wk_lame();self.onmessage=" + (r = r.replace(/[\w\$]+\.wkScope/g, "wkScope")); - i += ";var wkScope={ wk_ctxs:{},wk_lame:wk_lame", i += ",wk_mp3TrimFix:{rm:" + g.rm + ",fn:" + g.fn + "} }"; - var o = m.lamejs.toString(), - _ = (window.URL || webkitURL).createObjectURL(new Blob(["var wk_lame=(", o, i], { - type: "text/javascript" - })); - c = new Worker(_), setTimeout(function () { - (window.URL || webkitURL).revokeObjectURL(_); - }, 1e4), n(1); - } - var l = s(); - return l.isW = 1, h = c, l; - } catch (e) { - return c && c.terminate(), console.error(e), p(t, 1); - } - }; - m.prototype.mp3_stop = function (e) { - if (e && e.worker) { - e.worker.postMessage({ - action: "stop", - id: e.id - }), e.worker = null, delete b[e.id]; - var t = -1; - for (var a in b) t++; - t && m.CLog(u("fT6M::mp3 worker剩{1}个未stop", 0, t), 3); - } - }, m.prototype.mp3_encode = function (e, t) { - e && e.worker && e.worker.postMessage({ - action: "encode", - id: e.id, - pcm: t - }); - }, m.prototype.mp3_complete = function (t, a, n, s) { - var r = this; - t && t.worker ? (t.call = function (e) { - s && r.mp3_stop(t), e.err ? n(e.err) : (w(e.meta, t.set), a(e.blob, "audio/mp3")); - }, t.worker.postMessage({ - action: "complete", - id: t.id - })) : n(u("mPxH::mp3编码器未start")); - }, m.mp3ReadMeta = function (e, t) { - var a = "undefined" != typeof window && window.parseInt || "undefined" != typeof self && self.parseInt || parseInt, - n = new Uint8Array(e[0] || []); - if (n.length < 4) return null; - var s = function (e, t) { - return ("0000000" + ((t || n)[e] || 0).toString(2)).substr(-8); - }, - r = s(0) + s(1), - i = s(2) + s(3); - if (!/^1{11}/.test(r)) return null; - var o = { - "00": 2.5, - 10: 2, - 11: 1 - }[r.substr(11, 2)], - _ = { - "01": 3 - }[r.substr(13, 2)], - l = { - 1: [44100, 48e3, 32e3], - 2: [22050, 24e3, 16e3], - 2.5: [11025, 12e3, 8e3] - }[o]; - l && (l = l[a(i.substr(4, 2), 2)]); - var f = [[0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160], [0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320]][1 == o ? 1 : 0][a(i.substr(0, 4), 2)]; - if (!(o && _ && f && l)) return null; - for (var c = Math.round(8 * t / f), u = 1 == _ ? 384 : 2 == _ ? 1152 : 1 == o ? 1152 : 576, h = u / l * 1e3, b = Math.floor(u * f / 8 / l * 1e3), p = 0, m = 0, v = 0; v < e.length; v++) { - var d = e[v]; - if (m += d.byteLength, b + 3 <= m) { - var g = new Uint8Array(d), - w = d.byteLength - (m - (b + 3) + 1), - S = s(w, g); - p = "1" == S.charAt(6); - break; - } - } - return p && b++, { - version: o, - layer: _, - sampleRate: l, - bitRate: f, - duration: c, - size: t, - hasPadding: p, - frameSize: b, - frameDurationFloat: h - }; - }; - var g = { - rm: m.mp3ReadMeta, - fn: function (e, t, a, n) { - var s = this.rm(e, t); - if (!s) return { - err: "mp3 unknown format" }; - var r = Math.round(a / n * 1e3), - i = Math.floor((s.duration - r) / s.frameDurationFloat); - if (0 < i) { - var o = i * s.frameSize - (s.hasPadding ? 1 : 0); - t -= o; - for (var _ = 0, l = [], f = 0; f < e.length; f++) { - var c = e[f]; - if (o <= 0) break; - o >= c.byteLength ? (o -= c.byteLength, l.push(c), e.splice(f, 1), f--) : (e[f] = c.slice(o), _ = c, o = 0); - } - var u = this.rm(e, t); - if (!u) { - _ && (e[0] = _); - for (var f = 0; f < l.length; f++) e.splice(f, 0, l[f]); - s.err = "mp3 fix error: 已还原,错误原因不明"; - } - var h = s.trimFix = {}; - h.remove = i, h.removeDuration = Math.round(i * s.frameDurationFloat), h.duration = Math.round(8 * t / s.bitRate); - } - return s; + a += ";var wk_mp3TrimFix={rm:" + c.rm + ",fn:" + c.fn + "}"; + var s = Recorder.lamejs.toString(), + n = (window.URL || webkitURL).createObjectURL(new Blob(["var wk_lame=(", s, a], { + type: "text/javascript" + })); + t = new Worker(n), setTimeout(function () { + (window.URL || webkitURL).revokeObjectURL(n); + }, 1e4), t.onmessage = function (e) { + var t = e.data, + a = o[t.id]; + a && ("takeoff" == t.action ? a.set.takeoffEncodeChunk(new Uint8Array(t.chunk.buffer)) : (a.call && a.call(t), a.call = null)); + }; } + var r = { + worker: t, + set: e, + takeoffQueue: [] + }; + return e ? (r.id = ++o.id, o[r.id] = r, t.postMessage({ + action: "init", + id: r.id, + sampleRate: e.sampleRate, + bitRate: e.bitRate, + takeoff: !!e.takeoffEncodeChunk, + x: new Int16Array(5) + })) : t.postMessage({ + x: new Int16Array(5) + }), i = t, r; + } catch (e) { + return t && t.terminate(), console.error(e), null; + } + }; + Recorder.prototype.mp3_stop = function (e) { + if (e && e.worker) { + e.worker.postMessage({ + action: "stop", + id: e.id + }), e.worker = null, delete o[e.id]; + var t = -1; + for (var a in o) t++; + t && Recorder.CLog("mp3 worker剩" + t + "个在串行等待", 3); + } + }, Recorder.prototype.mp3_encode = function (e, t) { + e && e.worker && e.worker.postMessage({ + action: "encode", + id: e.id, + pcm: t + }); + }, Recorder.prototype.mp3_complete = function (t, a, e, s) { + var n = this; + t && t.worker ? (t.call = function (e) { + h(e.meta, t.set), a(e.blob), s && n.mp3_stop(t); + }, t.worker.postMessage({ + action: "complete", + id: t.id + })) : e("mp3编码器未打开"); + }, Recorder.mp3ReadMeta = function (e, t) { + var a = "object" == typeof window ? window.parseInt : self.parseInt, + s = new Uint8Array(e[0] || []); + if (s.length < 4) return null; + var n = function (e, t) { + return ("0000000" + ((t || s)[e] || 0).toString(2)).substr(-8); }, - w = function (e, t) { - var a = "MP3 Info: "; - (e.sampleRate && e.sampleRate != t.sampleRate || e.bitRate && e.bitRate != t.bitRate) && (m.CLog(a + u("uY9i::和设置的不匹配{1},已更新成{2}", 0, "set:" + t.bitRate + "kbps " + t.sampleRate + "hz", "set:" + e.bitRate + "kbps " + e.sampleRate + "hz"), 3, t), t.sampleRate = e.sampleRate, t.bitRate = e.bitRate); - var n = e.trimFix; - n ? (a += u("iMSm::Fix移除{1}帧", 0, n.remove) + " " + n.removeDuration + "ms -> " + n.duration + "ms", 2 < n.remove && (e.err = (e.err ? e.err + ", " : "") + u("b9zm::移除帧数过多"))) : a += (e.duration || "-") + "ms", e.err ? m.CLog(a, 1, e.err, e) : m.CLog(a, e); - }; - }(a, 0, n.$T, t); -}(), function (e) { + r = n(0) + n(1), + i = n(2) + n(3); + if (!/^1{11}/.test(r)) return null; + var o = { + "00": 2.5, + 10: 2, + 11: 1 + }[r.substr(11, 2)], + _ = { + "01": 3 + }[r.substr(13, 2)], + l = { + 1: [44100, 48e3, 32e3], + 2: [22050, 24e3, 16e3], + 2.5: [11025, 12e3, 8e3] + }[o]; + l && (l = l[a(i.substr(4, 2), 2)]); + var f = [[0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160], [0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320]][1 == o ? 1 : 0][a(i.substr(0, 4), 2)]; + if (!(o && _ && f && l)) return null; + for (var c = Math.round(8 * t / f), h = 1 == _ ? 384 : 2 == _ ? 1152 : 1 == o ? 1152 : 576, u = h / l * 1e3, m = Math.floor(h * f / 8 / l * 1e3), p = 0, b = 0, v = 0; v < e.length; v++) { + var d = e[v]; + if (m + 3 <= (b += d.byteLength)) { + var g = new Uint8Array(d); + p = "1" == n(d.byteLength - (b - (m + 3) + 1), g).charAt(6); + break; + } + } + return p && m++, { + version: o, + layer: _, + sampleRate: l, + bitRate: f, + duration: c, + size: t, + hasPadding: p, + frameSize: m, + frameDurationFloat: u + }; + }; + var c = { + rm: Recorder.mp3ReadMeta, + fn: function (e, t, a, s) { + var n = this.rm(e, t); + if (!n) return { + err: "mp3非预定格式" + }; + var r = Math.round(a / s * 1e3), + i = Math.floor((n.duration - r) / n.frameDurationFloat); + if (0 < i) { + var o = i * n.frameSize - (n.hasPadding ? 1 : 0); + t -= o; + for (var _ = 0, l = [], f = 0; f < e.length; f++) { + var c = e[f]; + if (o <= 0) break; + o >= c.byteLength ? (o -= c.byteLength, l.push(c), e.splice(f, 1), f--) : (e[f] = c.slice(o), _ = c, o = 0); + } + if (!this.rm(e, t)) { + _ && (e[0] = _); + for (f = 0; f < l.length; f++) e.splice(f, 0, l[f]); + n.err = "fix后数据错误,已还原,错误原因不明"; + } + var h = n.trimFix = {}; + h.remove = i, h.removeDuration = Math.round(i * n.frameDurationFloat), h.duration = Math.round(8 * t / n.bitRate); + } + return n; + } + }, + h = function (e, t) { + var a = "MP3信息 "; + (e.sampleRate && e.sampleRate != t.sampleRate || e.bitRate && e.bitRate != t.bitRate) && (Recorder.CLog(a + "和设置的不匹配set:" + t.bitRate + "kbps " + t.sampleRate + "hz,已更新set:" + e.bitRate + "kbps " + e.sampleRate + "hz", 3, t), t.sampleRate = e.sampleRate, t.bitRate = e.bitRate); + var s = e.trimFix; + s ? (a += "Fix移除" + s.remove + "帧" + s.removeDuration + "ms -> " + s.duration + "ms", 2 < s.remove && (e.err = (e.err ? e.err + ", " : "") + "移除帧数过多")) : a += (e.duration || "-") + "ms", e.err ? Recorder.CLog(a, 1, e.err, e) : Recorder.CLog(a, e); + }; +}(), function () { function t() { - var d = function (e) { - return Math.log(e) / Math.log(10); - }, - me = function (e) { - throw new Error("abort(" + e + ")"); - }; - function S(e) { + var B = function (e) { + return Math.log(e) / Math.log(10); + }; + function A(e) { return new Int8Array(e); } - function s(e) { + function n(e) { return new Int16Array(e); } - function ve(e) { + function Ae(e) { return new Int32Array(e); } - function de(e) { + function Be(e) { return new Float32Array(e); } - function n(e) { + function s(e) { return new Float64Array(e); } - function ge(e) { - if (1 == e.length) return de(e[0]); + function ke(e) { + if (1 == e.length) return Be(e[0]); var t = e[0]; e = e.slice(1); - for (var a = [], n = 0; n < t; n++) a.push(ge(e)); + for (var a = [], s = 0; s < t; s++) a.push(ke(e)); return a; } - function w(e) { - if (1 == e.length) return ve(e[0]); + function Y(e) { + if (1 == e.length) return Ae(e[0]); var t = e[0]; e = e.slice(1); - for (var a = [], n = 0; n < t; n++) a.push(w(e)); + for (var a = [], s = 0; s < t; s++) a.push(Y(e)); return a; } - function M(e) { - if (1 == e.length) return s(e[0]); + function p(e) { + if (1 == e.length) return n(e[0]); var t = e[0]; e = e.slice(1); - for (var a = [], n = 0; n < t; n++) a.push(M(e)); + for (var a = [], s = 0; s < t; s++) a.push(p(e)); return a; } - function E(e) { + function O(e) { if (1 == e.length) return new Array(e[0]); var t = e[0]; e = e.slice(1); - for (var a = [], n = 0; n < t; n++) a.push(E(e)); + for (var a = [], s = 0; s < t; s++) a.push(O(e)); return a; } - var we = { - fill: function (e, t, a, n) { - if (2 == arguments.length) for (var s = 0; s < e.length; s++) e[s] = t;else for (var s = t; s < a; s++) e[s] = n; + var ye = { + fill: function (e, t, a, s) { + if (2 == arguments.length) for (var n = 0; n < e.length; n++) e[n] = t;else for (n = t; n < a; n++) e[n] = s; } }, - I = { - arraycopy: function (e, t, a, n, s) { - for (var r = t + s; t < r;) a[n++] = e[t++]; + $ = { + arraycopy: function (e, t, a, s, n) { + for (var r = t + n; t < r;) a[s++] = e[t++]; } }, - V = {}; - function Se(e) { + ee = {}; + function Te(e) { this.ordinal = e; } - V.SQRT2 = 1.4142135623730951, V.FAST_LOG10 = function (e) { - return d(e); - }, V.FAST_LOG10_X = function (e, t) { - return d(e) * t; - }, Se.short_block_allowed = new Se(0), Se.short_block_coupled = new Se(1), Se.short_block_dispensed = new Se(2), Se.short_block_forced = new Se(3); - var D = {}; - function Me(e) { + ee.SQRT2 = 1.4142135623730951, ee.FAST_LOG10 = function (e) { + return B(e); + }, ee.FAST_LOG10_X = function (e, t) { + return B(e) * t; + }, Te.short_block_allowed = new Te(0), Te.short_block_coupled = new Te(1), Te.short_block_dispensed = new Te(2), Te.short_block_forced = new Te(3); + var K = {}; + function xe(e) { this.ordinal = e; } - function ye(e) { + K.MAX_VALUE = 3.4028235e38, xe.vbr_off = new xe(0), xe.vbr_mt = new xe(1), xe.vbr_rh = new xe(2), xe.vbr_abr = new xe(3), xe.vbr_mtrh = new xe(4), xe.vbr_default = xe.vbr_mtrh; + function Ee(e) { var t = e; this.ordinal = function () { return t; }; } - function A() { - var S = null; + function k() { + var M = null; function v(e) { this.bits = 0 | e; } this.qupvt = null, this.setModules = function (e) { - this.qupvt = e, S = e; + this.qupvt = e, M = e; }; - var s = [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 1], [1, 1], [1, 1], [1, 2], [2, 2], [2, 3], [2, 3], [3, 4], [3, 4], [3, 4], [4, 5], [4, 5], [4, 6], [5, 6], [5, 6], [5, 7], [6, 7], [6, 7]]; - function M(e, t, a, n, s, r) { + var n = [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 1], [1, 1], [1, 1], [1, 2], [2, 2], [2, 3], [2, 3], [3, 4], [3, 4], [3, 4], [4, 5], [4, 5], [4, 6], [5, 6], [5, 6], [5, 7], [6, 7], [6, 7]]; + function w(e, t, a, s, n, r) { var i = .5946 / t; - for (e >>= 1; 0 != e--;) s[r++] = i > a[n++] ? 0 : 1, s[r++] = i > a[n++] ? 0 : 1; + for (e >>= 1; 0 != e--;) n[r++] = i > a[s++] ? 0 : 1, n[r++] = i > a[s++] ? 0 : 1; } - function y(e, t, a, n, s, r) { + function R(e, t, a, s, n, r) { var i = (e >>= 1) % 2; for (e >>= 1; 0 != e--;) { - var o, _, l, f, c, u, h, b; - o = a[n++] * t, _ = a[n++] * t, c = 0 | o, l = a[n++] * t, u = 0 | _, f = a[n++] * t, h = 0 | l, o += S.adj43[c], b = 0 | f, _ += S.adj43[u], s[r++] = 0 | o, l += S.adj43[h], s[r++] = 0 | _, f += S.adj43[b], s[r++] = 0 | l, s[r++] = 0 | f; + var o, _, l, f, c, h, u, m; + o = a[s++] * t, _ = a[s++] * t, c = 0 | o, l = a[s++] * t, h = 0 | _, f = a[s++] * t, u = 0 | l, o += M.adj43[c], m = 0 | f, _ += M.adj43[h], n[r++] = 0 | o, l += M.adj43[u], n[r++] = 0 | _, f += M.adj43[m], n[r++] = 0 | l, n[r++] = 0 | f; } - 0 != i && (o = a[n++] * t, _ = a[n++] * t, c = 0 | o, u = 0 | _, o += S.adj43[c], _ += S.adj43[u], s[r++] = 0 | o, s[r++] = 0 | _); + 0 != i && (c = 0 | (o = a[s++] * t), h = 0 | (_ = a[s++] * t), o += M.adj43[c], _ += M.adj43[h], n[r++] = 0 | o, n[r++] = 0 | _); } var o = [1, 2, 5, 7, 7, 10, 10, 13, 13, 13, 13, 13, 13, 13, 13]; - function d(e, t, a, n) { - var s = function (e, t, a) { - var n = 0, - s = 0; + function d(e, t, a, s) { + var n = function (e, t, a) { + var s = 0, + n = 0; do { var r = e[t++], i = e[t++]; - n < r && (n = r), s < i && (s = i); + s < r && (s = r), n < i && (n = i); } while (t < a); - return n < s && (n = s), n; + return s < n && (s = n), s; }(e, t, a); - switch (s) { + switch (n) { case 0: - return s; + return n; case 1: - return function (e, t, a, n) { - var s = 0, - r = k.ht[1].hlen; + return function (e, t, a, s) { + var n = 0, + r = F.ht[1].hlen; do { var i = 2 * e[t + 0] + e[t + 1]; - t += 2, s += r[i]; + t += 2, n += r[i]; } while (t < a); - return n.bits += s, 1; - }(e, t, a, n); + return s.bits += n, 1; + }(e, t, a, s); case 2: case 3: - return function (e, t, a, n, s) { + return function (e, t, a, s, n) { var r, i, o = 0, - _ = k.ht[n].xlen; - i = 2 == n ? k.table23 : k.table56; + _ = F.ht[s].xlen; + i = 2 == s ? F.table23 : F.table56; do { var l = e[t + 0] * _ + e[t + 1]; t += 2, o += i[l]; } while (t < a); - return (r = 65535 & o) < (o >>= 16) && (o = r, n++), s.bits += o, n; - }(e, t, a, o[s - 1], n); + return (r = 65535 & o) < (o >>= 16) && (o = r, s++), n.bits += o, s; + }(e, t, a, o[n - 1], s); case 4: case 5: case 6: @@ -35188,84 +34837,86 @@ src: recorder-core.js,engine/mp3.js,engine/mp3-engine.js case 13: case 14: case 15: - return function (e, t, a, n, s) { + return function (e, t, a, s, n) { var r = 0, i = 0, o = 0, - _ = k.ht[n].xlen, - l = k.ht[n].hlen, - f = k.ht[n + 1].hlen, - c = k.ht[n + 2].hlen; + _ = F.ht[s].xlen, + l = F.ht[s].hlen, + f = F.ht[s + 1].hlen, + c = F.ht[s + 2].hlen; do { - var u = e[t + 0] * _ + e[t + 1]; - t += 2, r += l[u], i += f[u], o += c[u]; + var h = e[t + 0] * _ + e[t + 1]; + t += 2, r += l[h], i += f[h], o += c[h]; } while (t < a); - var h = n; - return i < r && (r = i, h++), o < r && (r = o, h = n + 2), s.bits += r, h; - }(e, t, a, o[s - 1], n); + var u = s; + return i < r && (r = i, u++), o < r && (r = o, u = s + 2), n.bits += r, u; + }(e, t, a, o[n - 1], s); default: + if (x.IXMAX_VAL < n) return s.bits = x.LARGE_BITS, -1; var r, i; - for (T.IXMAX_VAL < s && me(), s -= 15, r = 24; r < 32 && !(k.ht[r].linmax >= s); r++); - for (i = r - 8; i < 24 && !(k.ht[i].linmax >= s); i++); - return function (e, t, a, n, s, r) { + for (n -= 15, r = 24; r < 32 && !(F.ht[r].linmax >= n); r++); + for (i = r - 8; i < 24 && !(F.ht[i].linmax >= n); i++); + return function (e, t, a, s, n, r) { var i, - o = 65536 * k.ht[n].xlen + k.ht[s].xlen, + o = 65536 * F.ht[s].xlen + F.ht[n].xlen, _ = 0; do { var l = e[t++], f = e[t++]; - 0 != l && (14 < l && (l = 15, _ += o), l *= 16), 0 != f && (14 < f && (f = 15, _ += o), l += f), _ += k.largetbl[l]; + 0 != l && (14 < l && (l = 15, _ += o), l *= 16), 0 != f && (14 < f && (f = 15, _ += o), l += f), _ += F.largetbl[l]; } while (t < a); - return (i = 65535 & _) < (_ >>= 16) && (_ = i, n = s), r.bits += _, n; - }(e, t, a, i, r, n); + return (i = 65535 & _) < (_ >>= 16) && (_ = i, s = n), r.bits += _, s; + }(e, t, a, i, r, s); } } - function h(e, t, a, n, s, r, i, o) { - for (var _ = t.big_values, l = 2; l < Ae.SBMAX_l + 1; l++) { + function u(e, t, a, s, n, r, i, o) { + for (var _ = t.big_values, l = 2; l < Pe.SBMAX_l + 1; l++) { var f = e.scalefac_band.l[l]; if (_ <= f) break; - var c = s[l - 2] + t.count1bits; + var c = n[l - 2] + t.count1bits; if (a.part2_3_length <= c) break; - var u = new v(c), - h = d(n, f, _, u); - c = u.bits, a.part2_3_length <= c || (a.assign(t), a.part2_3_length = c, a.region0_count = r[l - 2], a.region1_count = l - 2 - r[l - 2], a.table_select[0] = i[l - 2], a.table_select[1] = o[l - 2], a.table_select[2] = h); + var h = new v(c), + u = d(s, f, _, h); + c = h.bits, a.part2_3_length <= c || (a.assign(t), a.part2_3_length = c, a.region0_count = r[l - 2], a.region1_count = l - 2 - r[l - 2], a.table_select[0] = i[l - 2], a.table_select[1] = o[l - 2], a.table_select[2] = u); } } this.noquant_count_bits = function (e, t, a) { - var n = t.l3_enc, - s = Math.min(576, t.max_nonzero_coeff + 2 >> 1 << 1); - for (null != a && (a.sfb_count1 = 0); 1 < s && 0 == (n[s - 1] | n[s - 2]); s -= 2); - t.count1 = s; - for (var r = 0, i = 0; 3 < s; s -= 4) { + var s = t.l3_enc, + n = Math.min(576, t.max_nonzero_coeff + 2 >> 1 << 1); + for (null != a && (a.sfb_count1 = 0); 1 < n && 0 == (s[n - 1] | s[n - 2]); n -= 2); + t.count1 = n; + for (var r = 0, i = 0; 3 < n; n -= 4) { var o; - if (1 < (2147483647 & (n[s - 1] | n[s - 2] | n[s - 3] | n[s - 4]))) break; - o = 2 * (2 * (2 * n[s - 4] + n[s - 3]) + n[s - 2]) + n[s - 1], r += k.t32l[o], i += k.t33l[o]; + if (1 < (2147483647 & (s[n - 1] | s[n - 2] | s[n - 3] | s[n - 4]))) break; + o = 2 * (2 * (2 * s[n - 4] + s[n - 3]) + s[n - 2]) + s[n - 1], r += F.t32l[o], i += F.t33l[o]; } var _ = r; - if (t.count1table_select = 0, i < r && (_ = i, t.count1table_select = 1), t.count1bits = _, 0 == (t.big_values = s)) return _; - if (t.block_type == Ae.SHORT_TYPE) (r = 3 * e.scalefac_band.s[3]) > t.big_values && (r = t.big_values), i = t.big_values;else if (t.block_type == Ae.NORM_TYPE) { - if (r = t.region0_count = e.bv_scf[s - 2], i = t.region1_count = e.bv_scf[s - 1], i = e.scalefac_band.l[r + i + 2], r = e.scalefac_band.l[r + 1], i < s) { + if (t.count1table_select = 0, i < r && (_ = i, t.count1table_select = 1), t.count1bits = _, 0 == (t.big_values = n)) return _; + if (t.block_type == Pe.SHORT_TYPE) (r = 3 * e.scalefac_band.s[3]) > t.big_values && (r = t.big_values), i = t.big_values;else if (t.block_type == Pe.NORM_TYPE) { + if (r = t.region0_count = e.bv_scf[n - 2], i = t.region1_count = e.bv_scf[n - 1], i = e.scalefac_band.l[r + i + 2], r = e.scalefac_band.l[r + 1], i < n) { var l = new v(_); - t.table_select[2] = d(n, i, s, l), _ = l.bits; + t.table_select[2] = d(s, i, n, l), _ = l.bits; } - } else t.region0_count = 7, t.region1_count = Ae.SBMAX_l - 1 - 7 - 1, r = e.scalefac_band.l[8], (i = s) < r && (r = i); - if (r = Math.min(r, s), i = Math.min(i, s), 0 < r) { - var l = new v(_); - t.table_select[0] = d(n, 0, r, l), _ = l.bits; + } else t.region0_count = 7, t.region1_count = Pe.SBMAX_l - 1 - 7 - 1, (i = n) < (r = e.scalefac_band.l[8]) && (r = i); + if (r = Math.min(r, n), i = Math.min(i, n), 0 < r) { + l = new v(_); + t.table_select[0] = d(s, 0, r, l), _ = l.bits; } if (r < i) { - var l = new v(_); - t.table_select[1] = d(n, r, i, l), _ = l.bits; + l = new v(_); + t.table_select[1] = d(s, r, i, l), _ = l.bits; } - if (2 == e.use_best_huffman && me(), null != a && t.block_type == Ae.NORM_TYPE) { + if (2 == e.use_best_huffman && (t.part2_3_length = _, best_huffman_divide(e, t), _ = t.part2_3_length), null != a && t.block_type == Pe.NORM_TYPE) { for (var f = 0; e.scalefac_band.l[f] < t.big_values;) f++; a.sfb_count1 = f; } return _; - }, this.count_bits = function (e, t, a, n) { - var s = a.l3_enc, - r = T.IXMAX_VAL / S.IPOW20(a.global_gain); - return a.xrpow_max > r ? T.LARGE_BITS : (function (e, t, a, n, s) { + }, this.count_bits = function (e, t, a, s) { + var n = a.l3_enc, + r = x.IXMAX_VAL / M.IPOW20(a.global_gain); + if (a.xrpow_max > r) return x.LARGE_BITS; + if (function (e, t, a, s, n) { var r, i, o, @@ -35273,123 +34924,127 @@ src: recorder-core.js,engine/mp3.js,engine/mp3-engine.js l = 0, f = 0, c = 0, - u = t, - h = 0, - b = u, + h = t, + u = 0, + m = h, p = 0, - m = e, + b = e, v = 0; - for (o = null != s && n.global_gain == s.global_gain, i = n.block_type == Ae.SHORT_TYPE ? 38 : 21, r = 0; r <= i; r++) { + for (o = null != n && s.global_gain == n.global_gain, i = s.block_type == Pe.SHORT_TYPE ? 38 : 21, r = 0; r <= i; r++) { var d = -1; - if ((o || n.block_type == Ae.NORM_TYPE) && (d = n.global_gain - (n.scalefac[r] + (0 != n.preflag ? S.pretab[r] : 0) << n.scalefac_scale + 1) - 8 * n.subblock_gain[n.window[r]]), o && s.step[r] == d) 0 != l && (y(l, a, m, v, b, p), l = 0), 0 != f && me();else { + if ((o || s.block_type == Pe.NORM_TYPE) && (d = s.global_gain - (s.scalefac[r] + (0 != s.preflag ? M.pretab[r] : 0) << s.scalefac_scale + 1) - 8 * s.subblock_gain[s.window[r]]), o && n.step[r] == d) 0 != l && (R(l, a, b, v, m, p), l = 0), 0 != f && (w(f, a, b, v, m, p), f = 0);else { var g, - w = n.width[r]; - if (_ + n.width[r] > n.max_nonzero_coeff && (g = n.max_nonzero_coeff - _ + 1, we.fill(t, n.max_nonzero_coeff, 576, 0), (w = g) < 0 && (w = 0), r = i + 1), 0 == l && 0 == f && (b = u, p = h, m = e, v = c), null != s && 0 < s.sfb_count1 && r >= s.sfb_count1 && 0 < s.step[r] && d >= s.step[r] ? (0 != l && (y(l, a, m, v, b, p), l = 0, b = u, p = h, m = e, v = c), f += w) : (0 != f && (M(f, a, m, v, b, p), f = 0, b = u, p = h, m = e, v = c), l += w), w <= 0) { - 0 != f && me(), 0 != l && me(); + S = s.width[r]; + if (_ + s.width[r] > s.max_nonzero_coeff && (g = s.max_nonzero_coeff - _ + 1, ye.fill(t, s.max_nonzero_coeff, 576, 0), (S = g) < 0 && (S = 0), r = i + 1), 0 == l && 0 == f && (m = h, p = u, b = e, v = c), null != n && 0 < n.sfb_count1 && r >= n.sfb_count1 && 0 < n.step[r] && d >= n.step[r] ? (0 != l && (R(l, a, b, v, m, p), l = 0, m = h, p = u, b = e, v = c), f += S) : (0 != f && (w(f, a, b, v, m, p), f = 0, m = h, p = u, b = e, v = c), l += S), S <= 0) { + 0 != f && (w(f, a, b, v, m, p), f = 0), 0 != l && (R(l, a, b, v, m, p), l = 0); break; } } - r <= i && (h += n.width[r], c += n.width[r], _ += n.width[r]); + r <= i && (u += s.width[r], c += s.width[r], _ += s.width[r]); } - 0 != l && (y(l, a, m, v, b, p), l = 0), 0 != f && me(); - }(t, s, S.IPOW20(a.global_gain), a, n), 0 != (2 & e.substep_shaping) && me(), this.noquant_count_bits(e, a, n)); + 0 != l && (R(l, a, b, v, m, p), l = 0), 0 != f && (w(f, a, b, v, m, p), f = 0); + }(t, n, M.IPOW20(a.global_gain), a, s), 0 != (2 & e.substep_shaping)) for (var i = 0, o = a.global_gain + a.scalefac_scale, _ = .634521682242439 / M.IPOW20(o), l = 0; l < a.sfbmax; l++) { + var f, + c = a.width[l]; + if (0 == e.pseudohalf[l]) i += c;else for (f = i, i += c; f < i; ++f) n[f] = t[f] >= _ ? n[f] : 0; + } + return this.noquant_count_bits(e, a, s); }, this.best_huffman_divide = function (e, t) { - var a = new B(), - n = t.l3_enc, - s = ve(23), - r = ve(23), - i = ve(23), - o = ve(23); - if (t.block_type != Ae.SHORT_TYPE || 1 != e.mode_gr) { - a.assign(t), t.block_type == Ae.NORM_TYPE && (function (e, t, a, n, s, r, i) { - for (var o = t.big_values, _ = 0; _ <= 22; _++) n[_] = T.LARGE_BITS; - for (var _ = 0; _ < 16; _++) { + var a = new T(), + s = t.l3_enc, + n = Ae(23), + r = Ae(23), + i = Ae(23), + o = Ae(23); + if (t.block_type != Pe.SHORT_TYPE || 1 != e.mode_gr) { + a.assign(t), t.block_type == Pe.NORM_TYPE && (!function (e, t, a, s, n, r, i) { + for (var o = t.big_values, _ = 0; _ <= 22; _++) s[_] = x.LARGE_BITS; + for (_ = 0; _ < 16; _++) { var l = e.scalefac_band.l[_ + 1]; if (o <= l) break; var f = 0, c = new v(f), - u = d(a, 0, l, c); + h = d(a, 0, l, c); f = c.bits; - for (var h = 0; h < 8; h++) { - var b = e.scalefac_band.l[_ + h + 2]; - if (o <= b) break; - var p = f; - c = new v(p); - var m = d(a, l, b, c); - p = c.bits, n[_ + h] > p && (n[_ + h] = p, s[_ + h] = _, r[_ + h] = u, i[_ + h] = m); + for (var u = 0; u < 8; u++) { + var m = e.scalefac_band.l[_ + u + 2]; + if (o <= m) break; + var p = f, + b = d(a, l, m, c = new v(p)); + p = c.bits, s[_ + u] > p && (s[_ + u] = p, r[(n[_ + u] = _) + u] = h, i[_ + u] = b); } } - }(e, t, n, s, r, i, o), h(e, a, t, n, s, r, i, o)); + }(e, t, s, n, r, i, o), u(e, a, t, s, n, r, i, o)); var _ = a.big_values; - if (!(0 == _ || 1 < (n[_ - 2] | n[_ - 1]) || 576 < (_ = t.count1 + 2))) { + if (!(0 == _ || 1 < (s[_ - 2] | s[_ - 1]) || 576 < (_ = t.count1 + 2))) { a.assign(t), a.count1 = _; for (var l = 0, f = 0; _ > a.big_values; _ -= 4) { - var c = 2 * (2 * (2 * n[_ - 4] + n[_ - 3]) + n[_ - 2]) + n[_ - 1]; - l += k.t32l[c], f += k.t33l[c]; + var c = 2 * (2 * (2 * s[_ - 4] + s[_ - 3]) + s[_ - 2]) + s[_ - 1]; + l += F.t32l[c], f += F.t33l[c]; } - if (a.big_values = _, a.count1table_select = 0, f < l && (l = f, a.count1table_select = 1), a.count1bits = l, a.block_type == Ae.NORM_TYPE) h(e, a, t, n, s, r, i, o);else { - if (a.part2_3_length = l, l = e.scalefac_band.l[8], _ < l && (l = _), 0 < l) { - var u = new v(a.part2_3_length); - a.table_select[0] = d(n, 0, l, u), a.part2_3_length = u.bits; + if (a.big_values = _, a.count1table_select = 0, f < l && (l = f, a.count1table_select = 1), a.count1bits = l, a.block_type == Pe.NORM_TYPE) u(e, a, t, s, n, r, i, o);else { + if (a.part2_3_length = l, _ < (l = e.scalefac_band.l[8]) && (l = _), 0 < l) { + var h = new v(a.part2_3_length); + a.table_select[0] = d(s, 0, l, h), a.part2_3_length = h.bits; } if (l < _) { - var u = new v(a.part2_3_length); - a.table_select[1] = d(n, l, _, u), a.part2_3_length = u.bits; + h = new v(a.part2_3_length); + a.table_select[1] = d(s, l, _, h), a.part2_3_length = h.bits; } t.part2_3_length > a.part2_3_length && t.assign(a); } } } }; - var u = [1, 1, 1, 1, 8, 2, 2, 2, 4, 4, 4, 8, 8, 8, 16, 16], - b = [1, 2, 4, 8, 1, 2, 4, 8, 2, 4, 8, 2, 4, 8, 4, 8], + var h = [1, 1, 1, 1, 8, 2, 2, 2, 4, 4, 4, 8, 8, 8, 16, 16], + m = [1, 2, 4, 8, 1, 2, 4, 8, 2, 4, 8, 2, 4, 8, 4, 8], p = [0, 0, 0, 0, 3, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4], - m = [0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3]; - A.slen1_tab = p, A.slen2_tab = m, this.best_scalefac_store = function (e, t, a, n) { - var s, + b = [0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3]; + k.slen1_tab = p, k.slen2_tab = b, this.best_scalefac_store = function (e, t, a, s) { + var n, r, i, o, - _ = n.tt[t][a], + _ = s.tt[t][a], l = 0; - for (s = i = 0; s < _.sfbmax; s++) { - var f = _.width[s]; + for (n = i = 0; n < _.sfbmax; n++) { + var f = _.width[n]; for (i += f, o = -f; o < 0 && 0 == _.l3_enc[o + i]; o++); - 0 == o && (_.scalefac[s] = l = -2); + 0 == o && (_.scalefac[n] = l = -2); } if (0 == _.scalefac_scale && 0 == _.preflag) { var c = 0; - for (s = 0; s < _.sfbmax; s++) 0 < _.scalefac[s] && (c |= _.scalefac[s]); + for (n = 0; n < _.sfbmax; n++) 0 < _.scalefac[n] && (c |= _.scalefac[n]); if (0 == (1 & c) && 0 != c) { - for (s = 0; s < _.sfbmax; s++) 0 < _.scalefac[s] && (_.scalefac[s] >>= 1); + for (n = 0; n < _.sfbmax; n++) 0 < _.scalefac[n] && (_.scalefac[n] >>= 1); _.scalefac_scale = l = 1; } } - if (0 == _.preflag && _.block_type != Ae.SHORT_TYPE && 2 == e.mode_gr) { - for (s = 11; s < Ae.SBPSY_l && !(_.scalefac[s] < S.pretab[s] && -2 != _.scalefac[s]); s++); - if (s == Ae.SBPSY_l) { - for (s = 11; s < Ae.SBPSY_l; s++) 0 < _.scalefac[s] && (_.scalefac[s] -= S.pretab[s]); + if (0 == _.preflag && _.block_type != Pe.SHORT_TYPE && 2 == e.mode_gr) { + for (n = 11; n < Pe.SBPSY_l && !(_.scalefac[n] < M.pretab[n] && -2 != _.scalefac[n]); n++); + if (n == Pe.SBPSY_l) { + for (n = 11; n < Pe.SBPSY_l; n++) 0 < _.scalefac[n] && (_.scalefac[n] -= M.pretab[n]); _.preflag = l = 1; } } - for (r = 0; r < 4; r++) n.scfsi[a][r] = 0; - for (2 == e.mode_gr && 1 == t && n.tt[0][a].block_type != Ae.SHORT_TYPE && n.tt[1][a].block_type != Ae.SHORT_TYPE && (function (e, t) { - for (var a, n = t.tt[1][e], s = t.tt[0][e], r = 0; r < k.scfsi_band.length - 1; r++) { - for (a = k.scfsi_band[r]; a < k.scfsi_band[r + 1] && !(s.scalefac[a] != n.scalefac[a] && 0 <= n.scalefac[a]); a++); - if (a == k.scfsi_band[r + 1]) { - for (a = k.scfsi_band[r]; a < k.scfsi_band[r + 1]; a++) n.scalefac[a] = -1; + for (r = 0; r < 4; r++) s.scfsi[a][r] = 0; + for (2 == e.mode_gr && 1 == t && s.tt[0][a].block_type != Pe.SHORT_TYPE && s.tt[1][a].block_type != Pe.SHORT_TYPE && (!function (e, t) { + for (var a, s = t.tt[1][e], n = t.tt[0][e], r = 0; r < F.scfsi_band.length - 1; r++) { + for (a = F.scfsi_band[r]; a < F.scfsi_band[r + 1] && !(n.scalefac[a] != s.scalefac[a] && 0 <= s.scalefac[a]); a++); + if (a == F.scfsi_band[r + 1]) { + for (a = F.scfsi_band[r]; a < F.scfsi_band[r + 1]; a++) s.scalefac[a] = -1; t.scfsi[e][r] = 1; } } var i = 0, o = 0; - for (a = 0; a < 11; a++) -1 != n.scalefac[a] && (o++, i < n.scalefac[a] && (i = n.scalefac[a])); - for (var _ = 0, l = 0; a < Ae.SBPSY_l; a++) -1 != n.scalefac[a] && (l++, _ < n.scalefac[a] && (_ = n.scalefac[a])); - for (var r = 0; r < 16; r++) if (i < u[r] && _ < b[r]) { - var f = p[r] * o + m[r] * l; - n.part2_length > f && (n.part2_length = f, n.scalefac_compress = r); + for (a = 0; a < 11; a++) -1 != s.scalefac[a] && (o++, i < s.scalefac[a] && (i = s.scalefac[a])); + for (var _ = 0, l = 0; a < Pe.SBPSY_l; a++) -1 != s.scalefac[a] && (l++, _ < s.scalefac[a] && (_ = s.scalefac[a])); + for (r = 0; r < 16; r++) if (i < h[r] && _ < m[r]) { + var f = p[r] * o + b[r] * l; + s.part2_length > f && (s.part2_length = f, s.scalefac_compress = r); } - }(a, n), l = 0), s = 0; s < _.sfbmax; s++) -2 == _.scalefac[s] && (_.scalefac[s] = 0); + }(a, s), l = 0), n = 0; n < _.sfbmax; n++) -2 == _.scalefac[n] && (_.scalefac[n] = 0); 0 != l && (2 == e.mode_gr ? this.scale_bitcount(_) : this.scale_bitcount_lsf(e, _)); }; var _ = [0, 18, 36, 54, 54, 36, 54, 72, 54, 72, 90, 72, 90, 108, 108, 126], @@ -35398,458 +35053,476 @@ src: recorder-core.js,engine/mp3.js,engine/mp3-engine.js this.scale_bitcount = function (e) { var t, a, - n, - s = 0, + s, + n = 0, r = 0, i = e.scalefac; - if (e.block_type == Ae.SHORT_TYPE) n = _, 0 != e.mixed_block_flag && (n = l);else if (n = f, 0 == e.preflag) { - for (a = 11; a < Ae.SBPSY_l && !(i[a] < S.pretab[a]); a++); - if (a == Ae.SBPSY_l) for (e.preflag = 1, a = 11; a < Ae.SBPSY_l; a++) i[a] -= S.pretab[a]; + if (e.block_type == Pe.SHORT_TYPE) s = _, 0 != e.mixed_block_flag && (s = l);else if (s = f, 0 == e.preflag) { + for (a = 11; a < Pe.SBPSY_l && !(i[a] < M.pretab[a]); a++); + if (a == Pe.SBPSY_l) for (e.preflag = 1, a = 11; a < Pe.SBPSY_l; a++) i[a] -= M.pretab[a]; } - for (a = 0; a < e.sfbdivide; a++) s < i[a] && (s = i[a]); + for (a = 0; a < e.sfbdivide; a++) n < i[a] && (n = i[a]); for (; a < e.sfbmax; a++) r < i[a] && (r = i[a]); - for (e.part2_length = T.LARGE_BITS, t = 0; t < 16; t++) s < u[t] && r < b[t] && e.part2_length > n[t] && (e.part2_length = n[t], e.scalefac_compress = t); - return e.part2_length == T.LARGE_BITS; + for (e.part2_length = x.LARGE_BITS, t = 0; t < 16; t++) n < h[t] && r < m[t] && e.part2_length > s[t] && (e.part2_length = s[t], e.scalefac_compress = t); + return e.part2_length == x.LARGE_BITS; }; var g = [[15, 15, 7, 7], [15, 15, 7, 0], [7, 3, 0, 0], [15, 31, 31, 0], [7, 7, 7, 0], [3, 3, 0, 0]]; this.scale_bitcount_lsf = function (e, t) { var a, - n, s, + n, r, i, o, _, l, - f = ve(4), + f = Ae(4), c = t.scalefac; for (a = 0 != t.preflag ? 2 : 0, _ = 0; _ < 4; _++) f[_] = 0; - if (t.block_type == Ae.SHORT_TYPE) { - n = 1; - var u = S.nr_of_sfb_block[a][n]; - for (s = l = 0; s < 4; s++) for (r = u[s] / 3, _ = 0; _ < r; _++, l++) for (i = 0; i < 3; i++) c[3 * l + i] > f[s] && (f[s] = c[3 * l + i]); + if (t.block_type == Pe.SHORT_TYPE) { + s = 1; + var h = M.nr_of_sfb_block[a][s]; + for (n = l = 0; n < 4; n++) for (r = h[n] / 3, _ = 0; _ < r; _++, l++) for (i = 0; i < 3; i++) c[3 * l + i] > f[n] && (f[n] = c[3 * l + i]); } else { - n = 0; - var u = S.nr_of_sfb_block[a][n]; - for (s = l = 0; s < 4; s++) for (r = u[s], _ = 0; _ < r; _++, l++) c[l] > f[s] && (f[s] = c[l]); + s = 0; + h = M.nr_of_sfb_block[a][s]; + for (n = l = 0; n < 4; n++) for (r = h[n], _ = 0; _ < r; _++, l++) c[l] > f[n] && (f[n] = c[l]); } - for (o = !1, s = 0; s < 4; s++) f[s] > g[a][s] && (o = !0); + for (o = !1, n = 0; n < 4; n++) f[n] > g[a][n] && (o = !0); if (!o) { - var h, b, p, m; - for (t.sfb_partition_table = S.nr_of_sfb_block[a][n], s = 0; s < 4; s++) t.slen[s] = w[f[s]]; - switch (h = t.slen[0], b = t.slen[1], p = t.slen[2], m = t.slen[3], a) { + var u, m, p, b; + for (t.sfb_partition_table = M.nr_of_sfb_block[a][s], n = 0; n < 4; n++) t.slen[n] = S[f[n]]; + switch (u = t.slen[0], m = t.slen[1], p = t.slen[2], b = t.slen[3], a) { case 0: - t.scalefac_compress = (5 * h + b << 4) + (p << 2) + m; + t.scalefac_compress = (5 * u + m << 4) + (p << 2) + b; break; case 1: - t.scalefac_compress = 400 + (5 * h + b << 2) + p; + t.scalefac_compress = 400 + (5 * u + m << 2) + p; break; case 2: - t.scalefac_compress = 500 + 3 * h + b; + t.scalefac_compress = 500 + 3 * u + m; + break; + default: + $.err.printf("intensity stereo not implemented yet\n"); } } - if (!o) for (t.part2_length = 0, s = 0; s < 4; s++) t.part2_length += t.slen[s] * t.sfb_partition_table[s]; + if (!o) for (n = t.part2_length = 0; n < 4; n++) t.part2_length += t.slen[n] * t.sfb_partition_table[n]; return o; }; - var w = [0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4]; + var S = [0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4]; this.huffman_init = function (e) { for (var t = 2; t <= 576; t += 2) { - for (var a, n = 0; e.scalefac_band.l[++n] < t;); - for (a = s[n][0]; e.scalefac_band.l[a + 1] > t;) a--; - for (a < 0 && (a = s[n][0]), e.bv_scf[t - 2] = a, a = s[n][1]; e.scalefac_band.l[a + e.bv_scf[t - 2] + 2] > t;) a--; - a < 0 && (a = s[n][1]), e.bv_scf[t - 1] = a; + for (var a, s = 0; e.scalefac_band.l[++s] < t;); + for (a = n[s][0]; e.scalefac_band.l[a + 1] > t;) a--; + for (a < 0 && (a = n[s][0]), e.bv_scf[t - 2] = a, a = n[s][1]; e.scalefac_band.l[a + e.bv_scf[t - 2] + 2] > t;) a--; + a < 0 && (a = n[s][1]), e.bv_scf[t - 1] = a; } }; } - function O() {} - function y() { - this.setModules = function (e, t, a) {}; + function X() {} + function M() { + this.setModules = function (e, t, a) { + }; var o = [0, 49345, 49537, 320, 49921, 960, 640, 49729, 50689, 1728, 1920, 51009, 1280, 50625, 50305, 1088, 52225, 3264, 3456, 52545, 3840, 53185, 52865, 3648, 2560, 51905, 52097, 2880, 51457, 2496, 2176, 51265, 55297, 6336, 6528, 55617, 6912, 56257, 55937, 6720, 7680, 57025, 57217, 8e3, 56577, 7616, 7296, 56385, 5120, 54465, 54657, 5440, 55041, 6080, 5760, 54849, 53761, 4800, 4992, 54081, 4352, 53697, 53377, 4160, 61441, 12480, 12672, 61761, 13056, 62401, 62081, 12864, 13824, 63169, 63361, 14144, 62721, 13760, 13440, 62529, 15360, 64705, 64897, 15680, 65281, 16320, 16e3, 65089, 64001, 15040, 15232, 64321, 14592, 63937, 63617, 14400, 10240, 59585, 59777, 10560, 60161, 11200, 10880, 59969, 60929, 11968, 12160, 61249, 11520, 60865, 60545, 11328, 58369, 9408, 9600, 58689, 9984, 59329, 59009, 9792, 8704, 58049, 58241, 9024, 57601, 8640, 8320, 57409, 40961, 24768, 24960, 41281, 25344, 41921, 41601, 25152, 26112, 42689, 42881, 26432, 42241, 26048, 25728, 42049, 27648, 44225, 44417, 27968, 44801, 28608, 28288, 44609, 43521, 27328, 27520, 43841, 26880, 43457, 43137, 26688, 30720, 47297, 47489, 31040, 47873, 31680, 31360, 47681, 48641, 32448, 32640, 48961, 32e3, 48577, 48257, 31808, 46081, 29888, 30080, 46401, 30464, 47041, 46721, 30272, 29184, 45761, 45953, 29504, 45313, 29120, 28800, 45121, 20480, 37057, 37249, 20800, 37633, 21440, 21120, 37441, 38401, 22208, 22400, 38721, 21760, 38337, 38017, 21568, 39937, 23744, 23936, 40257, 24320, 40897, 40577, 24128, 23040, 39617, 39809, 23360, 39169, 22976, 22656, 38977, 34817, 18624, 18816, 35137, 19200, 35777, 35457, 19008, 19968, 36545, 36737, 20288, 36097, 19904, 19584, 35905, 17408, 33985, 34177, 17728, 34561, 18368, 18048, 34369, 33281, 17088, 17280, 33601, 16640, 33217, 32897, 16448]; - this.updateMusicCRC = function (e, t, a, n) { - for (var s = 0; s < n; ++s) e[0] = (r = t[a + s], i = (i = e[0]) >> 8 ^ o[255 & (i ^ r)]); + this.updateMusicCRC = function (e, t, a, s) { + for (var n = 0; n < s; ++n) e[0] = (r = t[a + n], i = (i = e[0]) >> 8 ^ o[255 & (i ^ r)]); var r, i; }; } - function N() { - var i = this, + function q() { + var _ = this, + s = 32773, + c = null, + h = null, r = null, - o = null; - this.setModules = function (e, t, a, n) { - r = a, o = n; + u = null; + this.setModules = function (e, t, a, s) { + c = e, h = t, r = a, u = s; }; - var _ = null, + var m = null, l = 0, - f = 0, - c = 0; + p = 0, + b = 0; function v(e, t, a) { for (; 0 < a;) { - var n; - 0 == c && (c = 8, f++, e.header[e.w_ptr].write_timing == l && (s = e, I.arraycopy(s.header[s.w_ptr].buf, 0, _, f, s.sideinfo_len), f += s.sideinfo_len, l += 8 * s.sideinfo_len, s.w_ptr = s.w_ptr + 1 & j.MAX_HEADER_BUF - 1), _[f] = 0), n = Math.min(a, c), a -= n, c -= n, _[f] |= t >> a << c, l += n; + var s; + 0 == b && (b = 8, p++, e.header[e.w_ptr].write_timing == l && (n = e, $.arraycopy(n.header[n.w_ptr].buf, 0, m, p, n.sideinfo_len), p += n.sideinfo_len, l += 8 * n.sideinfo_len, n.w_ptr = n.w_ptr + 1 & Z.MAX_HEADER_BUF - 1), m[p] = 0), a -= s = Math.min(a, b), b -= s, m[p] |= t >> a << b, l += s; } - var s; + var n; } - function u(e, t) { + function i(e, t, a) { + for (; 0 < a;) { + var s; + 0 == b && (b = 8, m[++p] = 0), a -= s = Math.min(a, b), b -= s, m[p] |= t >> a << b, l += s; + } + } + function o(e, t) { var a, - n = e.internal_flags; - if (8 <= t && (v(n, 76, 8), t -= 8), 8 <= t && (v(n, 65, 8), t -= 8), 8 <= t && (v(n, 77, 8), t -= 8), 8 <= t && (v(n, 69, 8), t -= 8), 32 <= t) { - var s = r.getLameShortVersion(); - if (32 <= t) for (a = 0; a < s.length && 8 <= t; ++a) t -= 8, v(n, s.charCodeAt(a), 8); + s = e.internal_flags; + if (8 <= t && (v(s, 76, 8), t -= 8), 8 <= t && (v(s, 65, 8), t -= 8), 8 <= t && (v(s, 77, 8), t -= 8), 8 <= t && (v(s, 69, 8), t -= 8), 32 <= t) { + var n = r.getLameShortVersion(); + if (32 <= t) for (a = 0; a < n.length && 8 <= t; ++a) t -= 8, v(s, n.charCodeAt(a), 8); } - for (; 1 <= t; t -= 1) v(n, n.ancillary_flag, 1), n.ancillary_flag ^= e.disable_reservoir ? 0 : 1; + for (; 1 <= t; t -= 1) v(s, s.ancillary_flag, 1), s.ancillary_flag ^= e.disable_reservoir ? 0 : 1; } - function h(e, t, a) { - for (var n = e.header[e.h_ptr].ptr; 0 < a;) { - var s = Math.min(a, 8 - (7 & n)); - a -= s, e.header[e.h_ptr].buf[n >> 3] |= t >> a << 8 - (7 & n) - s, n += s; + function f(e, t, a) { + for (var s = e.header[e.h_ptr].ptr; 0 < a;) { + var n = Math.min(a, 8 - (7 & s)); + a -= n, e.header[e.h_ptr].buf[s >> 3] |= t >> a << 8 - (7 & s) - n, s += n; } - e.header[e.h_ptr].ptr = n; + e.header[e.h_ptr].ptr = s; } - function m(e, t) { + function n(e, t) { + e <<= 8; + for (var a = 0; a < 8; a++) 0 != (65536 & ((t <<= 1) ^ (e <<= 1))) && (t ^= s); + return t; + } + function d(e, t) { var a, - n = k.ht[t.count1table_select + 32], - s = 0, + s = F.ht[t.count1table_select + 32], + n = 0, r = t.big_values, i = t.big_values; for (a = (t.count1 - t.big_values) / 4; 0 < a; --a) { var o = 0, _ = 0; - 0 != t.l3_enc[r + 0] && (_ += 8, t.xr[i + 0] < 0 && o++), 0 != t.l3_enc[r + 1] && (_ += 4, o *= 2, t.xr[i + 1] < 0 && o++), 0 != t.l3_enc[r + 2] && (_ += 2, o *= 2, t.xr[i + 2] < 0 && o++), 0 != t.l3_enc[r + 3] && (_++, o *= 2, t.xr[i + 3] < 0 && o++), r += 4, i += 4, v(e, o + n.table[_], n.hlen[_]), s += n.hlen[_]; + 0 != t.l3_enc[r + 0] && (_ += 8, t.xr[i + 0] < 0 && o++), 0 != t.l3_enc[r + 1] && (_ += 4, o *= 2, t.xr[i + 1] < 0 && o++), 0 != t.l3_enc[r + 2] && (_ += 2, o *= 2, t.xr[i + 2] < 0 && o++), 0 != t.l3_enc[r + 3] && (_++, o *= 2, t.xr[i + 3] < 0 && o++), r += 4, i += 4, v(e, o + s.table[_], s.hlen[_]), n += s.hlen[_]; } - return s; + return n; } - function b(e, t, a, n, s) { - var r = k.ht[t], + function g(e, t, a, s, n) { + var r = F.ht[t], i = 0; if (0 == t) return i; - for (var o = a; o < n; o += 2) { + for (var o = a; o < s; o += 2) { var _ = 0, l = 0, f = r.xlen, c = r.xlen, - u = 0, - h = s.l3_enc[o], - b = s.l3_enc[o + 1]; - if (0 != h && (s.xr[o] < 0 && u++, _--), 15 < t) { - if (14 < h) { - var p = h - 15; - u |= p << 1, l = f, h = 15; - } - if (14 < b) { - var m = b - 15; - u <<= f, u |= m, l += f, b = 15; - } + h = 0, + u = n.l3_enc[o], + m = n.l3_enc[o + 1]; + if (0 != u && (n.xr[o] < 0 && h++, _--), 15 < t) { + if (14 < u) h |= u - 15 << 1, l = f, u = 15; + if (14 < m) h <<= f, h |= m - 15, l += f, m = 15; c = 16; } - 0 != b && (u <<= 1, s.xr[o + 1] < 0 && u++, _--), h = h * c + b, l -= _, _ += r.hlen[h], v(e, r.table[h], _), v(e, u, l), i += _ + l; + 0 != m && (h <<= 1, n.xr[o + 1] < 0 && h++, _--), u = u * c + m, l -= _, _ += r.hlen[u], v(e, r.table[u], _), v(e, h, l), i += _ + l; } return i; } - function d(e, t) { + function S(e, t) { var a = 3 * e.scalefac_band.s[3]; a > t.big_values && (a = t.big_values); - var n = b(e, t.table_select[0], 0, a, t); - return n += b(e, t.table_select[1], a, t.big_values, t); + var s = g(e, t.table_select[0], 0, a, t); + return s += g(e, t.table_select[1], a, t.big_values, t); } - function g(e, t) { - var a, n, s, r; + function M(e, t) { + var a, s, n, r; a = t.big_values; var i = t.region0_count + 1; - return s = e.scalefac_band.l[i], i += t.region1_count + 1, r = e.scalefac_band.l[i], a < s && (s = a), a < r && (r = a), n = b(e, t.table_select[0], 0, s, t), n += b(e, t.table_select[1], s, r, t), n += b(e, t.table_select[2], r, a, t); + return n = e.scalefac_band.l[i], i += t.region1_count + 1, a < n && (n = a), a < (r = e.scalefac_band.l[i]) && (r = a), s = g(e, t.table_select[0], 0, n, t), s += g(e, t.table_select[1], n, r, t), s += g(e, t.table_select[2], r, a, t); } - function p() { + function w() { this.total = 0; } - function w(e, t) { + function R(e, t) { var a, - n, s, - r = e.internal_flags; - return r.w_ptr, -1 == (s = r.h_ptr - 1) && (s = j.MAX_HEADER_BUF - 1), a = r.header[s].write_timing - l, 0 <= (t.total = a) && me(), n = i.getframebits(e), a += n, t.total += n, t.total % 8 != 0 ? t.total = 1 + t.total / 8 : t.total = t.total / 8, t.total += f + 1, a; + n, + r, + i, + o = e.internal_flags; + return i = o.w_ptr, -1 == (r = o.h_ptr - 1) && (r = Z.MAX_HEADER_BUF - 1), a = o.header[r].write_timing - l, 0 <= (t.total = a) && (s = 1 + r - i, r < i && (s = 1 + r - i + Z.MAX_HEADER_BUF), a -= 8 * s * o.sideinfo_len), a += n = _.getframebits(e), t.total += n, t.total % 8 != 0 ? t.total = 1 + t.total / 8 : t.total = t.total / 8, t.total += p + 1, a < 0 && $.err.println("strange error flushing buffer ... \n"), a; } this.getframebits = function (e) { var t, a = e.internal_flags; - t = 0 != a.bitrate_index ? k.bitrate_table[e.version][a.bitrate_index] : e.brate; - var n = 0 | 72e3 * (e.version + 1) * t / e.out_samplerate + a.padding; - return 8 * n; + return t = 0 != a.bitrate_index ? F.bitrate_table[e.version][a.bitrate_index] : e.brate, 8 * (0 | 72e3 * (e.version + 1) * t / e.out_samplerate + a.padding); + }, this.CRC_writeheader = function (e, t) { + var a = 65535; + a = n(255 & t[2], a), a = n(255 & t[3], a); + for (var s = 6; s < e.sideinfo_len; s++) a = n(255 & t[s], a); + t[4] = byte(a >> 8), t[5] = byte(255 & a); }, this.flush_bitstream = function (e) { var t, a, - n = e.internal_flags; - n.h_ptr - 1; - t = n.l3_side, (a = w(e, new p())) < 0 || (u(e, a), n.ResvSize = 0, t.main_data_begin = 0, n.findReplayGain && me(), n.findPeakSample && me()); + s = e.internal_flags; + s.h_ptr - 1; + if (t = s.l3_side, !((a = R(e, new w())) < 0)) { + if (o(e, a), s.ResvSize = 0, t.main_data_begin = 0, s.findReplayGain) { + var r = c.GetTitleGain(s.rgdata); + s.RadioGain = 0 | Math.floor(10 * r + .5); + } + s.findPeakSample && (s.noclipGainChange = 0 | Math.ceil(20 * B(s.PeakSample / 32767) * 10), 0 < s.noclipGainChange && (EQ(e.scale, 1) || EQ(e.scale, 0)) ? s.noclipScale = Math.floor(32767 / s.PeakSample * 100) / 100 : s.noclipScale = -1); + } + }, this.add_dummy_byte = function (e, t, a) { + for (var s, n = e.internal_flags; 0 < a--;) for (i(0, t, 8), s = 0; s < Z.MAX_HEADER_BUF; ++s) n.header[s].write_timing += 8; }, this.format_bitstream = function (e) { var t, a = e.internal_flags; t = a.l3_side; - var n = this.getframebits(e); - u(e, t.resvDrain_pre), function (e, t) { + var s = this.getframebits(e); + o(e, t.resvDrain_pre), function (e, t) { var a, - n, s, + n, r = e.internal_flags; - if (a = r.l3_side, r.header[r.h_ptr].ptr = 0, we.fill(r.header[r.h_ptr].buf, 0, r.sideinfo_len, 0), e.out_samplerate < 16e3 ? h(r, 4094, 12) : h(r, 4095, 12), h(r, e.version, 1), h(r, 1, 2), h(r, e.error_protection ? 0 : 1, 1), h(r, r.bitrate_index, 4), h(r, r.samplerate_index, 2), h(r, r.padding, 1), h(r, e.extension, 1), h(r, e.mode.ordinal(), 2), h(r, r.mode_ext, 2), h(r, e.copyright, 1), h(r, e.original, 1), h(r, e.emphasis, 2), e.error_protection && h(r, 0, 16), 1 == e.version) { - for (h(r, a.main_data_begin, 9), 2 == r.channels_out ? h(r, a.private_bits, 3) : h(r, a.private_bits, 5), s = 0; s < r.channels_out; s++) { + if (a = r.l3_side, r.header[r.h_ptr].ptr = 0, ye.fill(r.header[r.h_ptr].buf, 0, r.sideinfo_len, 0), e.out_samplerate < 16e3 ? f(r, 4094, 12) : f(r, 4095, 12), f(r, e.version, 1), f(r, 1, 2), f(r, e.error_protection ? 0 : 1, 1), f(r, r.bitrate_index, 4), f(r, r.samplerate_index, 2), f(r, r.padding, 1), f(r, e.extension, 1), f(r, e.mode.ordinal(), 2), f(r, r.mode_ext, 2), f(r, e.copyright, 1), f(r, e.original, 1), f(r, e.emphasis, 2), e.error_protection && f(r, 0, 16), 1 == e.version) { + for (f(r, a.main_data_begin, 9), 2 == r.channels_out ? f(r, a.private_bits, 3) : f(r, a.private_bits, 5), n = 0; n < r.channels_out; n++) { var i; - for (i = 0; i < 4; i++) h(r, a.scfsi[s][i], 1); + for (i = 0; i < 4; i++) f(r, a.scfsi[n][i], 1); } - for (n = 0; n < 2; n++) for (s = 0; s < r.channels_out; s++) { - var o = a.tt[n][s]; - h(r, o.part2_3_length + o.part2_length, 12), h(r, o.big_values / 2, 9), h(r, o.global_gain, 8), h(r, o.scalefac_compress, 4), o.block_type != Ae.NORM_TYPE ? (h(r, 1, 1), h(r, o.block_type, 2), h(r, o.mixed_block_flag, 1), 14 == o.table_select[0] && (o.table_select[0] = 16), h(r, o.table_select[0], 5), 14 == o.table_select[1] && (o.table_select[1] = 16), h(r, o.table_select[1], 5), h(r, o.subblock_gain[0], 3), h(r, o.subblock_gain[1], 3), h(r, o.subblock_gain[2], 3)) : (h(r, 0, 1), 14 == o.table_select[0] && (o.table_select[0] = 16), h(r, o.table_select[0], 5), 14 == o.table_select[1] && (o.table_select[1] = 16), h(r, o.table_select[1], 5), 14 == o.table_select[2] && (o.table_select[2] = 16), h(r, o.table_select[2], 5), h(r, o.region0_count, 4), h(r, o.region1_count, 3)), h(r, o.preflag, 1), h(r, o.scalefac_scale, 1), h(r, o.count1table_select, 1); - } - } else for (h(r, a.main_data_begin, 8), h(r, a.private_bits, r.channels_out), s = n = 0; s < r.channels_out; s++) { - var o = a.tt[n][s]; - h(r, o.part2_3_length + o.part2_length, 12), h(r, o.big_values / 2, 9), h(r, o.global_gain, 8), h(r, o.scalefac_compress, 9), o.block_type != Ae.NORM_TYPE ? (h(r, 1, 1), h(r, o.block_type, 2), h(r, o.mixed_block_flag, 1), 14 == o.table_select[0] && (o.table_select[0] = 16), h(r, o.table_select[0], 5), 14 == o.table_select[1] && (o.table_select[1] = 16), h(r, o.table_select[1], 5), h(r, o.subblock_gain[0], 3), h(r, o.subblock_gain[1], 3), h(r, o.subblock_gain[2], 3)) : (h(r, 0, 1), 14 == o.table_select[0] && (o.table_select[0] = 16), h(r, o.table_select[0], 5), 14 == o.table_select[1] && (o.table_select[1] = 16), h(r, o.table_select[1], 5), 14 == o.table_select[2] && (o.table_select[2] = 16), h(r, o.table_select[2], 5), h(r, o.region0_count, 4), h(r, o.region1_count, 3)), h(r, o.scalefac_scale, 1), h(r, o.count1table_select, 1); + for (s = 0; s < 2; s++) for (n = 0; n < r.channels_out; n++) f(r, (o = a.tt[s][n]).part2_3_length + o.part2_length, 12), f(r, o.big_values / 2, 9), f(r, o.global_gain, 8), f(r, o.scalefac_compress, 4), o.block_type != Pe.NORM_TYPE ? (f(r, 1, 1), f(r, o.block_type, 2), f(r, o.mixed_block_flag, 1), 14 == o.table_select[0] && (o.table_select[0] = 16), f(r, o.table_select[0], 5), 14 == o.table_select[1] && (o.table_select[1] = 16), f(r, o.table_select[1], 5), f(r, o.subblock_gain[0], 3), f(r, o.subblock_gain[1], 3), f(r, o.subblock_gain[2], 3)) : (f(r, 0, 1), 14 == o.table_select[0] && (o.table_select[0] = 16), f(r, o.table_select[0], 5), 14 == o.table_select[1] && (o.table_select[1] = 16), f(r, o.table_select[1], 5), 14 == o.table_select[2] && (o.table_select[2] = 16), f(r, o.table_select[2], 5), f(r, o.region0_count, 4), f(r, o.region1_count, 3)), f(r, o.preflag, 1), f(r, o.scalefac_scale, 1), f(r, o.count1table_select, 1); + } else for (f(r, a.main_data_begin, 8), f(r, a.private_bits, r.channels_out), n = s = 0; n < r.channels_out; n++) { + var o; + f(r, (o = a.tt[s][n]).part2_3_length + o.part2_length, 12), f(r, o.big_values / 2, 9), f(r, o.global_gain, 8), f(r, o.scalefac_compress, 9), o.block_type != Pe.NORM_TYPE ? (f(r, 1, 1), f(r, o.block_type, 2), f(r, o.mixed_block_flag, 1), 14 == o.table_select[0] && (o.table_select[0] = 16), f(r, o.table_select[0], 5), 14 == o.table_select[1] && (o.table_select[1] = 16), f(r, o.table_select[1], 5), f(r, o.subblock_gain[0], 3), f(r, o.subblock_gain[1], 3), f(r, o.subblock_gain[2], 3)) : (f(r, 0, 1), 14 == o.table_select[0] && (o.table_select[0] = 16), f(r, o.table_select[0], 5), 14 == o.table_select[1] && (o.table_select[1] = 16), f(r, o.table_select[1], 5), 14 == o.table_select[2] && (o.table_select[2] = 16), f(r, o.table_select[2], 5), f(r, o.region0_count, 4), f(r, o.region1_count, 3)), f(r, o.scalefac_scale, 1), f(r, o.count1table_select, 1); } - e.error_protection && me(); + e.error_protection && CRC_writeheader(r, r.header[r.h_ptr].buf); var _ = r.h_ptr; - r.h_ptr = _ + 1 & j.MAX_HEADER_BUF - 1, r.header[r.h_ptr].write_timing = r.header[_].write_timing + t, r.h_ptr, r.w_ptr; - }(e, n); - var s = 8 * a.sideinfo_len; - if (s += function (e) { + r.h_ptr = _ + 1 & Z.MAX_HEADER_BUF - 1, r.header[r.h_ptr].write_timing = r.header[_].write_timing + t, r.h_ptr == r.w_ptr && $.err.println("Error: MAX_HEADER_BUF too small in bitstream.c \n"); + }(e, s); + var n = 8 * a.sideinfo_len; + if (n += function (e) { var t, a, - n, s, + n, r = 0, i = e.internal_flags, o = i.l3_side; if (1 == e.version) for (t = 0; t < 2; t++) for (a = 0; a < i.channels_out; a++) { var _ = o.tt[t][a], - l = A.slen1_tab[_.scalefac_compress], - f = A.slen2_tab[_.scalefac_compress]; - for (n = s = 0; n < _.sfbdivide; n++) -1 != _.scalefac[n] && (v(i, _.scalefac[n], l), s += l); - for (; n < _.sfbmax; n++) -1 != _.scalefac[n] && (v(i, _.scalefac[n], f), s += f); - _.block_type == Ae.SHORT_TYPE ? s += d(i, _) : s += g(i, _), s += m(i, _), r += s; + l = k.slen1_tab[_.scalefac_compress], + f = k.slen2_tab[_.scalefac_compress]; + for (s = n = 0; s < _.sfbdivide; s++) -1 != _.scalefac[s] && (v(i, _.scalefac[s], l), n += l); + for (; s < _.sfbmax; s++) -1 != _.scalefac[s] && (v(i, _.scalefac[s], f), n += f); + _.block_type == Pe.SHORT_TYPE ? n += S(i, _) : n += M(i, _), r += n += d(i, _); } else for (a = t = 0; a < i.channels_out; a++) { var c, - u, - _ = o.tt[t][a], - h = 0; - if (u = n = s = 0, _.block_type == Ae.SHORT_TYPE) { - for (; u < 4; u++) { - var b = _.sfb_partition_table[u] / 3, - p = _.slen[u]; - for (c = 0; c < b; c++, n++) v(i, Math.max(_.scalefac[3 * n + 0], 0), p), v(i, Math.max(_.scalefac[3 * n + 1], 0), p), v(i, Math.max(_.scalefac[3 * n + 2], 0), p), h += 3 * p; + h, + u = 0; + if (h = s = n = 0, (_ = o.tt[t][a]).block_type == Pe.SHORT_TYPE) { + for (; h < 4; h++) { + var m = _.sfb_partition_table[h] / 3, + p = _.slen[h]; + for (c = 0; c < m; c++, s++) v(i, Math.max(_.scalefac[3 * s + 0], 0), p), v(i, Math.max(_.scalefac[3 * s + 1], 0), p), v(i, Math.max(_.scalefac[3 * s + 2], 0), p), u += 3 * p; } - s += d(i, _); + n += S(i, _); } else { - for (; u < 4; u++) { - var b = _.sfb_partition_table[u], - p = _.slen[u]; - for (c = 0; c < b; c++, n++) v(i, Math.max(_.scalefac[n], 0), p), h += p; - } - s += g(i, _); + for (; h < 4; h++) for (m = _.sfb_partition_table[h], p = _.slen[h], c = 0; c < m; c++, s++) v(i, Math.max(_.scalefac[s], 0), p), u += p; + n += M(i, _); } - s += m(i, _), r += h + s; + r += u + (n += d(i, _)); } return r; - }(e), u(e, t.resvDrain_post), s += t.resvDrain_post, t.main_data_begin += (n - s) / 8, w(e, new p()), a.ResvSize, 8 * t.main_data_begin != a.ResvSize && (a.ResvSize = 8 * t.main_data_begin), 1e9 < l) { + }(e), o(e, t.resvDrain_post), n += t.resvDrain_post, t.main_data_begin += (s - n) / 8, R(e, new w()) != a.ResvSize && $.err.println("Internal buffer inconsistency. flushbits <> ResvSize"), 8 * t.main_data_begin != a.ResvSize && ($.err.printf("bit reservoir error: \nl3_side.main_data_begin: %d \nResvoir size: %d \nresv drain (post) %d \nresv drain (pre) %d \nheader and sideinfo: %d \ndata bits: %d \ntotal bits: %d (remainder: %d) \nbitsperframe: %d \n", 8 * t.main_data_begin, a.ResvSize, t.resvDrain_post, t.resvDrain_pre, 8 * a.sideinfo_len, n - t.resvDrain_post - 8 * a.sideinfo_len, n, n % 8, s), $.err.println("This is a fatal error. It has several possible causes:"), $.err.println("90%% LAME compiled with buggy version of gcc using advanced optimizations"), $.err.println(" 9%% Your system is overclocked"), $.err.println(" 1%% bug in LAME encoding library"), a.ResvSize = 8 * t.main_data_begin), 1e9 < l) { var r; - for (r = 0; r < j.MAX_HEADER_BUF; ++r) a.header[r].write_timing -= l; + for (r = 0; r < Z.MAX_HEADER_BUF; ++r) a.header[r].write_timing -= l; l = 0; } return 0; - }, this.copy_buffer = function (e, t, a, n, s) { - var r = f + 1; + }, this.copy_buffer = function (e, t, a, s, n) { + var r = p + 1; if (r <= 0) return 0; - if (0 != n && n < r) return -1; - if (I.arraycopy(_, 0, t, a, r), f = -1, (c = 0) != s) { - var i = ve(1); - i[0] = e.nMusicCRC, o.updateMusicCRC(i, t, a, r), e.nMusicCRC = i[0], 0 < r && (e.VBR_seek_table.nBytesWritten += r), e.decode_on_the_fly && me(); + if (0 != s && s < r) return -1; + if ($.arraycopy(m, 0, t, a, r), p = -1, (b = 0) != n) { + var i = Ae(1); + if (i[0] = e.nMusicCRC, u.updateMusicCRC(i, t, a, r), e.nMusicCRC = i[0], 0 < r && (e.VBR_seek_table.nBytesWritten += r), e.decode_on_the_fly) for (var o, _ = ke([2, 1152]), l = r, f = -1; 0 != f;) if (f = h.hip_decode1_unclipped(e.hip, t, a, l, _[0], _[1]), l = 0, -1 == f && (f = 0), 0 < f) { + if (e.findPeakSample) { + for (o = 0; o < f; o++) _[0][o] > e.PeakSample ? e.PeakSample = _[0][o] : -_[0][o] > e.PeakSample && (e.PeakSample = -_[0][o]); + if (1 < e.channels_out) for (o = 0; o < f; o++) _[1][o] > e.PeakSample ? e.PeakSample = _[1][o] : -_[1][o] > e.PeakSample && (e.PeakSample = -_[1][o]); + } + if (e.findReplayGain && c.AnalyzeSamples(e.rgdata, _[0], 0, _[1], 0, f, e.channels_out) == X.GAIN_ANALYSIS_ERROR) return -6; + } } return r; }, this.init_bit_stream_w = function (e) { - _ = S(Y.LAME_MAXMP3BUFFER), e.h_ptr = e.w_ptr = 0, e.header[e.h_ptr].write_timing = 0, f = -1, l = c = 0; + m = A(U.LAME_MAXMP3BUFFER), e.h_ptr = e.w_ptr = 0, e.header[e.h_ptr].write_timing = 0, p = -1, l = b = 0; }; } - function e(e, t, a, n) { - this.xlen = e, this.linmax = t, this.table = a, this.hlen = n; + function e(e, t, a, s) { + this.xlen = e, this.linmax = t, this.table = a, this.hlen = s; } - D.MAX_VALUE = 3.4028235e38, Me.vbr_off = new Me(0), Me.vbr_mt = new Me(1), Me.vbr_rh = new Me(2), Me.vbr_abr = new Me(3), Me.vbr_mtrh = new Me(4), Me.vbr_default = Me.vbr_mtrh, ye.STEREO = new ye(0), ye.JOINT_STEREO = new ye(1), ye.DUAL_CHANNEL = new ye(2), ye.MONO = new ye(3), ye.NOT_SET = new ye(4), O.STEPS_per_dB = 100, O.MAX_dB = 120, O.GAIN_NOT_ENOUGH_SAMPLES = -24601, O.GAIN_ANALYSIS_ERROR = 0, O.GAIN_ANALYSIS_OK = 1, O.INIT_GAIN_ANALYSIS_ERROR = 0, O.INIT_GAIN_ANALYSIS_OK = 1, O.MAX_ORDER = O.YULE_ORDER = 10, O.MAX_SAMPLES_PER_WINDOW = (O.MAX_SAMP_FREQ = 48e3) * (O.RMS_WINDOW_TIME_NUMERATOR = 1) / (O.RMS_WINDOW_TIME_DENOMINATOR = 20) + 1, y.NUMTOCENTRIES = 100, y.MAXFRAMESIZE = 2880, N.EQ = function (e, t) { + Ee.STEREO = new Ee(0), Ee.JOINT_STEREO = new Ee(1), Ee.DUAL_CHANNEL = new Ee(2), Ee.MONO = new Ee(3), Ee.NOT_SET = new Ee(4), X.STEPS_per_dB = 100, X.MAX_dB = 120, X.GAIN_NOT_ENOUGH_SAMPLES = -24601, X.GAIN_ANALYSIS_ERROR = 0, X.GAIN_ANALYSIS_OK = 1, X.INIT_GAIN_ANALYSIS_ERROR = 0, X.INIT_GAIN_ANALYSIS_OK = 1, X.MAX_ORDER = X.YULE_ORDER = 10, X.MAX_SAMPLES_PER_WINDOW = (X.MAX_SAMP_FREQ = 48e3) * (X.RMS_WINDOW_TIME_NUMERATOR = 1) / (X.RMS_WINDOW_TIME_DENOMINATOR = 20) + 1, M.NUMTOCENTRIES = 100, M.MAXFRAMESIZE = 2880, q.EQ = function (e, t) { return Math.abs(e) > Math.abs(t) ? Math.abs(e - t) <= 1e-6 * Math.abs(e) : Math.abs(e - t) <= 1e-6 * Math.abs(t); - }, N.NEQ = function (e, t) { - return !N.EQ(e, t); + }, q.NEQ = function (e, t) { + return !q.EQ(e, t); }; - var k = {}; - function R(e) { + var F = {}; + function j(e) { this.bits = e; } - function x() { + function y() { this.over_noise = 0, this.tot_noise = 0, this.max_noise = 0, this.over_count = 0, this.over_SSD = 0, this.bits = 0; } - function r(e, t, a, n) { - this.l = ve(1 + Ae.SBMAX_l), this.s = ve(1 + Ae.SBMAX_s), this.psfb21 = ve(1 + Ae.PSFB21), this.psfb12 = ve(1 + Ae.PSFB12); - var s = this.l, + function r(e, t, a, s) { + this.l = Ae(1 + Pe.SBMAX_l), this.s = Ae(1 + Pe.SBMAX_s), this.psfb21 = Ae(1 + Pe.PSFB21), this.psfb12 = Ae(1 + Pe.PSFB12); + var n = this.l, r = this.s; - 4 == arguments.length && (this.arrL = e, this.arrS = t, this.arr21 = a, this.arr12 = n, I.arraycopy(this.arrL, 0, s, 0, Math.min(this.arrL.length, this.l.length)), I.arraycopy(this.arrS, 0, r, 0, Math.min(this.arrS.length, this.s.length)), I.arraycopy(this.arr21, 0, this.psfb21, 0, Math.min(this.arr21.length, this.psfb21.length)), I.arraycopy(this.arr12, 0, this.psfb12, 0, Math.min(this.arr12.length, this.psfb12.length))); + 4 == arguments.length && (this.arrL = e, this.arrS = t, this.arr21 = a, this.arr12 = s, $.arraycopy(this.arrL, 0, n, 0, Math.min(this.arrL.length, this.l.length)), $.arraycopy(this.arrS, 0, r, 0, Math.min(this.arrS.length, this.s.length)), $.arraycopy(this.arr21, 0, this.psfb21, 0, Math.min(this.arr21.length, this.psfb21.length)), $.arraycopy(this.arr12, 0, this.psfb12, 0, Math.min(this.arr12.length, this.psfb12.length))); } - function T() { + function x() { var l = null, - b = null, - n = null; + m = null, + s = null; this.setModules = function (e, t, a) { - l = e, b = t, n = a; + l = e, m = t, s = a; }, this.IPOW20 = function (e) { - return h[e]; + return u[e]; }; - var B = 2.220446049250313e-16, - e = T.IXMAX_VAL, - f = e + 2, - c = T.Q_MAX, - u = T.Q_MAX2, - s = 100; + var T = 2.220446049250313e-16, + f = x.IXMAX_VAL + 2, + c = x.Q_MAX, + h = x.Q_MAX2, + n = 100; this.nr_of_sfb_block = [[[6, 5, 5, 5], [9, 9, 9, 9], [6, 9, 9, 9]], [[6, 5, 7, 3], [9, 9, 12, 6], [6, 9, 12, 6]], [[11, 10, 0, 0], [18, 18, 0, 0], [15, 18, 0, 0]], [[7, 7, 7, 0], [12, 12, 12, 0], [6, 15, 12, 0]], [[6, 6, 6, 3], [12, 9, 9, 6], [6, 12, 9, 6]], [[8, 8, 5, 0], [15, 12, 9, 0], [6, 18, 9, 0]]]; - var M = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 3, 3, 3, 2, 0]; - this.pretab = M, this.sfBandIndex = [new r([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576], [0, 4, 8, 12, 18, 24, 32, 42, 56, 74, 100, 132, 174, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 114, 136, 162, 194, 232, 278, 332, 394, 464, 540, 576], [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 136, 180, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576], [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 52, 62, 74, 90, 110, 134, 162, 196, 238, 288, 342, 418, 576], [0, 4, 8, 12, 16, 22, 30, 40, 52, 66, 84, 106, 136, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 4, 8, 12, 16, 20, 24, 30, 36, 42, 50, 60, 72, 88, 106, 128, 156, 190, 230, 276, 330, 384, 576], [0, 4, 8, 12, 16, 22, 28, 38, 50, 64, 80, 100, 126, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 54, 66, 82, 102, 126, 156, 194, 240, 296, 364, 448, 550, 576], [0, 4, 8, 12, 16, 22, 30, 42, 58, 78, 104, 138, 180, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576], [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576], [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 12, 24, 36, 48, 60, 72, 88, 108, 132, 160, 192, 232, 280, 336, 400, 476, 566, 568, 570, 572, 574, 576], [0, 8, 16, 24, 36, 52, 72, 96, 124, 160, 162, 164, 166, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0])]; - var y = de(c + u + 1), - h = de(c), - p = de(f), - m = de(f); + var w = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 3, 3, 3, 2, 0]; + this.pretab = w, this.sfBandIndex = [new r([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576], [0, 4, 8, 12, 18, 24, 32, 42, 56, 74, 100, 132, 174, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 114, 136, 162, 194, 232, 278, 332, 394, 464, 540, 576], [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 136, 180, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576], [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 52, 62, 74, 90, 110, 134, 162, 196, 238, 288, 342, 418, 576], [0, 4, 8, 12, 16, 22, 30, 40, 52, 66, 84, 106, 136, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 4, 8, 12, 16, 20, 24, 30, 36, 42, 50, 60, 72, 88, 106, 128, 156, 190, 230, 276, 330, 384, 576], [0, 4, 8, 12, 16, 22, 28, 38, 50, 64, 80, 100, 126, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 54, 66, 82, 102, 126, 156, 194, 240, 296, 364, 448, 550, 576], [0, 4, 8, 12, 16, 22, 30, 42, 58, 78, 104, 138, 180, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576], [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576], [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]), new r([0, 12, 24, 36, 48, 60, 72, 88, 108, 132, 160, 192, 232, 280, 336, 400, 476, 566, 568, 570, 572, 574, 576], [0, 8, 16, 24, 36, 52, 72, 96, 124, 160, 162, 164, 166, 192], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0])]; + var R = Be(c + h + 1), + u = Be(c), + p = Be(f), + b = Be(f); function v(e, t) { - var a = n.ATHformula(t, e); - return a -= s, a = Math.pow(10, a / 10 + e.ATHlower); + var a = s.ATHformula(t, e); + return a -= n, a = Math.pow(10, a / 10 + e.ATHlower); } function A(e) { this.s = e; } - this.adj43 = m, this.iteration_init = function (e) { + this.adj43 = b, this.iteration_init = function (e) { var t, a = e.internal_flags, - n = a.l3_side; + s = a.l3_side; if (0 == a.iteration_init_init) { - for (a.iteration_init_init = 1, n.main_data_begin = 0, function (e) { - for (var t = e.internal_flags.ATH.l, a = e.internal_flags.ATH.psfb21, n = e.internal_flags.ATH.s, s = e.internal_flags.ATH.psfb12, r = e.internal_flags, i = e.out_samplerate, o = 0; o < Ae.SBMAX_l; o++) { + for (a.iteration_init_init = 1, s.main_data_begin = 0, function (e) { + for (var t = e.internal_flags.ATH.l, a = e.internal_flags.ATH.psfb21, s = e.internal_flags.ATH.s, n = e.internal_flags.ATH.psfb12, r = e.internal_flags, i = e.out_samplerate, o = 0; o < Pe.SBMAX_l; o++) { var _ = r.scalefac_band.l[o], l = r.scalefac_band.l[o + 1]; - t[o] = D.MAX_VALUE; + t[o] = K.MAX_VALUE; for (var f = _; f < l; f++) { - var c = f * i / 1152, - u = v(e, c); - t[o] = Math.min(t[o], u); + var c = v(e, f * i / 1152); + t[o] = Math.min(t[o], c); } } - for (var o = 0; o < Ae.PSFB21; o++) { - var _ = r.scalefac_band.psfb21[o], - l = r.scalefac_band.psfb21[o + 1]; - a[o] = D.MAX_VALUE; - for (var f = _; f < l; f++) { - var c = f * i / 1152, - u = v(e, c); - a[o] = Math.min(a[o], u); - } + for (o = 0; o < Pe.PSFB21; o++) for (_ = r.scalefac_band.psfb21[o], l = r.scalefac_band.psfb21[o + 1], a[o] = K.MAX_VALUE, f = _; f < l; f++) c = v(e, f * i / 1152), a[o] = Math.min(a[o], c); + for (o = 0; o < Pe.SBMAX_s; o++) { + for (_ = r.scalefac_band.s[o], l = r.scalefac_band.s[o + 1], s[o] = K.MAX_VALUE, f = _; f < l; f++) c = v(e, f * i / 384), s[o] = Math.min(s[o], c); + s[o] *= r.scalefac_band.s[o + 1] - r.scalefac_band.s[o]; } - for (var o = 0; o < Ae.SBMAX_s; o++) { - var _ = r.scalefac_band.s[o], - l = r.scalefac_band.s[o + 1]; - n[o] = D.MAX_VALUE; - for (var f = _; f < l; f++) { - var c = f * i / 384, - u = v(e, c); - n[o] = Math.min(n[o], u); - } - n[o] *= r.scalefac_band.s[o + 1] - r.scalefac_band.s[o]; + for (o = 0; o < Pe.PSFB12; o++) { + for (_ = r.scalefac_band.psfb12[o], l = r.scalefac_band.psfb12[o + 1], n[o] = K.MAX_VALUE, f = _; f < l; f++) c = v(e, f * i / 384), n[o] = Math.min(n[o], c); + n[o] *= r.scalefac_band.s[13] - r.scalefac_band.s[12]; } - for (var o = 0; o < Ae.PSFB12; o++) { - var _ = r.scalefac_band.psfb12[o], - l = r.scalefac_band.psfb12[o + 1]; - s[o] = D.MAX_VALUE; - for (var f = _; f < l; f++) { - var c = f * i / 384, - u = v(e, c); - s[o] = Math.min(s[o], u); - } - s[o] *= r.scalefac_band.s[13] - r.scalefac_band.s[12]; + if (e.noATH) { + for (o = 0; o < Pe.SBMAX_l; o++) t[o] = 1e-20; + for (o = 0; o < Pe.PSFB21; o++) a[o] = 1e-20; + for (o = 0; o < Pe.SBMAX_s; o++) s[o] = 1e-20; + for (o = 0; o < Pe.PSFB12; o++) n[o] = 1e-20; } - e.noATH && me(), r.ATH.floor = 10 * d(v(e, -1)); + r.ATH.floor = 10 * B(v(e, -1)); }(e), p[0] = 0, t = 1; t < f; t++) p[t] = Math.pow(t, 4 / 3); - for (t = 0; t < f - 1; t++) m[t] = t + 1 - Math.pow(.5 * (p[t] + p[t + 1]), .75); - for (m[t] = .5, t = 0; t < c; t++) h[t] = Math.pow(2, -.1875 * (t - 210)); - for (t = 0; t <= c + u; t++) y[t] = Math.pow(2, .25 * (t - 210 - u)); - var s, r, i, o; - for (l.huffman_init(a), 32 <= (t = e.exp_nspsytune >> 2 & 63) && (t -= 64), s = Math.pow(10, t / 4 / 10), 32 <= (t = e.exp_nspsytune >> 8 & 63) && (t -= 64), r = Math.pow(10, t / 4 / 10), 32 <= (t = e.exp_nspsytune >> 14 & 63) && (t -= 64), i = Math.pow(10, t / 4 / 10), 32 <= (t = e.exp_nspsytune >> 20 & 63) && (t -= 64), o = i * Math.pow(10, t / 4 / 10), t = 0; t < Ae.SBMAX_l; t++) _ = t <= 6 ? s : t <= 13 ? r : t <= 20 ? i : o, a.nsPsy.longfact[t] = _; - for (t = 0; t < Ae.SBMAX_s; t++) { + for (t = 0; t < f - 1; t++) b[t] = t + 1 - Math.pow(.5 * (p[t] + p[t + 1]), .75); + for (b[t] = .5, t = 0; t < c; t++) u[t] = Math.pow(2, -.1875 * (t - 210)); + for (t = 0; t <= c + h; t++) R[t] = Math.pow(2, .25 * (t - 210 - h)); + var n, r, i, o; + for (l.huffman_init(a), 32 <= (t = e.exp_nspsytune >> 2 & 63) && (t -= 64), n = Math.pow(10, t / 4 / 10), 32 <= (t = e.exp_nspsytune >> 8 & 63) && (t -= 64), r = Math.pow(10, t / 4 / 10), 32 <= (t = e.exp_nspsytune >> 14 & 63) && (t -= 64), i = Math.pow(10, t / 4 / 10), 32 <= (t = e.exp_nspsytune >> 20 & 63) && (t -= 64), o = i * Math.pow(10, t / 4 / 10), t = 0; t < Pe.SBMAX_l; t++) { + _ = t <= 6 ? n : t <= 13 ? r : t <= 20 ? i : o, a.nsPsy.longfact[t] = _; + } + for (t = 0; t < Pe.SBMAX_s; t++) { var _; - _ = t <= 5 ? s : t <= 10 ? r : t <= 11 ? i : o, a.nsPsy.shortfact[t] = _; + _ = t <= 5 ? n : t <= 10 ? r : t <= 11 ? i : o, a.nsPsy.shortfact[t] = _; } } - }, this.on_pe = function (e, t, a, n, s, r) { + }, this.on_pe = function (e, t, a, s, n, r) { var i, o, _ = e.internal_flags, l = 0, - f = ve(2), - c = new R(l), - u = b.ResvMaxBits(e, n, c, r), - h = (l = c.bits) + u; - for (j.MAX_BITS_PER_GRANULE < h && (h = j.MAX_BITS_PER_GRANULE), o = i = 0; o < _.channels_out; ++o) a[o] = Math.min(j.MAX_BITS_PER_CHANNEL, l / _.channels_out), f[o] = 0 | a[o] * t[s][o] / 700 - a[o], f[o] > 3 * n / 4 && (f[o] = 3 * n / 4), f[o] < 0 && (f[o] = 0), f[o] + a[o] > j.MAX_BITS_PER_CHANNEL && (f[o] = Math.max(0, j.MAX_BITS_PER_CHANNEL - a[o])), i += f[o]; - if (u < i) for (o = 0; o < _.channels_out; ++o) f[o] = u * f[o] / i; - for (o = 0; o < _.channels_out; ++o) a[o] += f[o], u -= f[o]; + f = Ae(2), + c = new j(l), + h = m.ResvMaxBits(e, s, c, r), + u = (l = c.bits) + h; + for (Z.MAX_BITS_PER_GRANULE < u && (u = Z.MAX_BITS_PER_GRANULE), o = i = 0; o < _.channels_out; ++o) a[o] = Math.min(Z.MAX_BITS_PER_CHANNEL, l / _.channels_out), f[o] = 0 | a[o] * t[n][o] / 700 - a[o], f[o] > 3 * s / 4 && (f[o] = 3 * s / 4), f[o] < 0 && (f[o] = 0), f[o] + a[o] > Z.MAX_BITS_PER_CHANNEL && (f[o] = Math.max(0, Z.MAX_BITS_PER_CHANNEL - a[o])), i += f[o]; + if (h < i) for (o = 0; o < _.channels_out; ++o) f[o] = h * f[o] / i; + for (o = 0; o < _.channels_out; ++o) a[o] += f[o], h -= f[o]; for (o = i = 0; o < _.channels_out; ++o) i += a[o]; - return j.MAX_BITS_PER_GRANULE < i && me(), h; + if (Z.MAX_BITS_PER_GRANULE < i) { + for (o = 0; o < _.channels_out; ++o) a[o] *= Z.MAX_BITS_PER_GRANULE, a[o] /= i, a[o]; + } + return u; + }, this.reduce_side = function (e, t, a, s) { + var n = .33 * (.5 - t) / .5; + n < 0 && (n = 0), .5 < n && (n = .5); + var r = 0 | .5 * n * (e[0] + e[1]); + r > Z.MAX_BITS_PER_CHANNEL - e[0] && (r = Z.MAX_BITS_PER_CHANNEL - e[0]), r < 0 && (r = 0), 125 <= e[1] && (125 < e[1] - r ? (e[0] < a && (e[0] += r), e[1] -= r) : (e[0] += e[1] - 125, e[1] = 125)), s < (r = e[0] + e[1]) && (e[0] = s * e[0] / r, e[1] = s * e[1] / r); }, this.athAdjust = function (e, t, a) { - var n = 90.30873362, - s = V.FAST_LOG10_X(t, 10), + var s = 90.30873362, + n = ee.FAST_LOG10_X(t, 10), r = e * e, i = 0; - return s -= a, 1e-20 < r && (i = 1 + V.FAST_LOG10_X(r, 10 / n)), i < 0 && (i = 0), s *= i, s += a + n - 94.82444863, Math.pow(10, .1 * s); - }, this.calc_xmin = function (e, t, a, n) { - var s, + return n -= a, 1e-20 < r && (i = 1 + ee.FAST_LOG10_X(r, 10 / s)), i < 0 && (i = 0), n *= i, n += a + s - 94.82444863, Math.pow(10, .1 * n); + }, this.calc_xmin = function (e, t, a, s) { + var n, r = 0, i = e.internal_flags, o = 0, _ = 0, l = i.ATH, f = a.xr, - c = e.VBR == Me.vbr_mtrh ? 1 : 0, - u = i.masking_lower; - for (e.VBR != Me.vbr_mtrh && e.VBR != Me.vbr_mt || (u = 1), s = 0; s < a.psy_lmax; s++) { - for (w = e.VBR == Me.vbr_rh || e.VBR == Me.vbr_mtrh ? athAdjust(l.adjust, l.l[s], l.floor) : l.adjust * l.l[s], v = a.width[s], S = w / v, M = B, A = v >> 1, y = 0; k = f[o] * f[o], y += k, M += k < S ? k : S, R = f[++o] * f[o], y += R, M += R < S ? R : S, o++, 0 < --A;); - if (w < y && _++, s == Ae.SBPSY_l && me(), 0 != c && (w = M), !e.ATHonly) { - var h = t.en.l[s]; - 0 < h && (x = y * t.thm.l[s] * u / h, 0 != c && (x *= i.nsPsy.longfact[s]), w < x && (w = x)); - } - n[r++] = 0 != c ? w : w * i.nsPsy.longfact[s]; + c = e.VBR == xe.vbr_mtrh ? 1 : 0, + h = i.masking_lower; + for (e.VBR != xe.vbr_mtrh && e.VBR != xe.vbr_mt || (h = 1), n = 0; n < a.psy_lmax; n++) { + S = (g = e.VBR == xe.vbr_rh || e.VBR == xe.vbr_mtrh ? athAdjust(l.adjust, l.l[n], l.floor) : l.adjust * l.l[n]) / (b = a.width[n]), M = T, B = b >> 1, A = 0; + do { + A += k = f[o] * f[o], M += k < S ? k : S, A += y = f[++o] * f[o], M += y < S ? y : S, o++; + } while (0 < --B); + if (g < A && _++, n == Pe.SBPSY_l) M < (R = g * i.nsPsy.longfact[n]) && (M = R); + if (0 != c && (g = M), !e.ATHonly) if (0 < (w = t.en.l[n])) R = A * t.thm.l[n] * h / w, 0 != c && (R *= i.nsPsy.longfact[n]), g < R && (g = R); + s[r++] = 0 != c ? g : g * i.nsPsy.longfact[n]; } - var b = 575; - if (a.block_type != Ae.SHORT_TYPE) for (var p = 576; 0 != p-- && N.EQ(f[p], 0);) b = p; - a.max_nonzero_coeff = b; - for (var m = a.sfb_smin; s < a.psymax; m++, s += 3) { - var v, d, g; - for (g = e.VBR == Me.vbr_rh || e.VBR == Me.vbr_mtrh ? athAdjust(l.adjust, l.s[m], l.floor) : l.adjust * l.s[m], v = a.width[s], d = 0; d < 3; d++) { - var w, + var u = 575; + if (a.block_type != Pe.SHORT_TYPE) for (var m = 576; 0 != m-- && q.EQ(f[m], 0);) u = m; + a.max_nonzero_coeff = u; + for (var p = a.sfb_smin; n < a.psymax; p++, n += 3) { + var b, v, d; + for (d = e.VBR == xe.vbr_rh || e.VBR == xe.vbr_mtrh ? athAdjust(l.adjust, l.s[p], l.floor) : l.adjust * l.s[p], b = a.width[n], v = 0; v < 3; v++) { + var g, S, M, - y = 0, - A = v >> 1; - S = g / v, M = B; + w, + R, + A = 0, + B = b >> 1; + S = d / b, M = T; do { - var k, R; - k = f[o] * f[o], y += k, M += k < S ? k : S, R = f[++o] * f[o], y += R, M += R < S ? R : S, o++; - } while (0 < --A); - if (g < y && _++, m == Ae.SBPSY_s && me(), w = 0 != c ? M : g, !e.ATHonly && !e.ATHshort) { - var x, - h = t.en.s[m][d]; - 0 < h && (x = y * t.thm.s[m][d] * u / h, 0 != c && (x *= i.nsPsy.shortfact[m]), w < x && (w = x)); - } - n[r++] = 0 != c ? w : w * i.nsPsy.shortfact[m]; + var k, y; + A += k = f[o] * f[o], M += k < S ? k : S, A += y = f[++o] * f[o], M += y < S ? y : S, o++; + } while (0 < --B); + if (d < A && _++, p == Pe.SBPSY_s) M < (R = d * i.nsPsy.shortfact[p]) && (M = R); + if (g = 0 != c ? M : d, !e.ATHonly && !e.ATHshort) if (0 < (w = t.en.s[p][v])) R = A * t.thm.s[p][v] * h / w, 0 != c && (R *= i.nsPsy.shortfact[p]), g < R && (g = R); + s[r++] = 0 != c ? g : g * i.nsPsy.shortfact[p]; } - e.useTemporal && (n[r - 3] > n[r - 3 + 1] && (n[r - 3 + 1] += (n[r - 3] - n[r - 3 + 1]) * i.decay), n[r - 3 + 1] > n[r - 3 + 2] && (n[r - 3 + 2] += (n[r - 3 + 1] - n[r - 3 + 2]) * i.decay)); + e.useTemporal && (s[r - 3] > s[r - 3 + 1] && (s[r - 3 + 1] += (s[r - 3] - s[r - 3 + 1]) * i.decay), s[r - 3 + 1] > s[r - 3 + 2] && (s[r - 3 + 2] += (s[r - 3 + 1] - s[r - 3 + 2]) * i.decay)); } return _; - }, this.calc_noise_core = function (e, t, a, n) { - var s = 0, + }, this.calc_noise_core = function (e, t, a, s) { + var n = 0, r = t.s, i = e.l3_enc; - if (r > e.count1) for (; 0 != a--;) _ = e.xr[r], r++, s += _ * _, _ = e.xr[r], r++, s += _ * _;else if (r > e.big_values) { - var o = de(2); - for (o[0] = 0, o[1] = n; 0 != a--;) _ = Math.abs(e.xr[r]) - o[i[r]], r++, s += _ * _, _ = Math.abs(e.xr[r]) - o[i[r]], r++, s += _ * _; + if (r > e.count1) for (; 0 != a--;) { + _ = e.xr[r], r++, n += _ * _, _ = e.xr[r], r++, n += _ * _; + } else if (r > e.big_values) { + var o = Be(2); + for (o[0] = 0, o[1] = s; 0 != a--;) { + _ = Math.abs(e.xr[r]) - o[i[r]], r++, n += _ * _, _ = Math.abs(e.xr[r]) - o[i[r]], r++, n += _ * _; + } } else for (; 0 != a--;) { var _; - _ = Math.abs(e.xr[r]) - p[i[r]] * n, r++, s += _ * _, _ = Math.abs(e.xr[r]) - p[i[r]] * n, r++, s += _ * _; + _ = Math.abs(e.xr[r]) - p[i[r]] * s, r++, n += _ * _, _ = Math.abs(e.xr[r]) - p[i[r]] * s, r++, n += _ * _; } - return t.s = r, s; - }, this.calc_noise = function (e, t, a, n, s) { + return t.s = r, n; + }, this.calc_noise = function (e, t, a, s, n) { var r, i, o = 0, @@ -35857,54 +35530,83 @@ src: recorder-core.js,engine/mp3.js,engine/mp3-engine.js l = 0, f = 0, c = 0, - u = -20, - h = 0, - b = e.scalefac, + h = -20, + u = 0, + m = e.scalefac, p = 0; - for (n.over_SSD = 0, r = 0; r < e.psymax; r++) { - var m, - v = e.global_gain - (b[p++] + (0 != e.preflag ? M[r] : 0) << e.scalefac_scale + 1) - 8 * e.subblock_gain[e.window[r]], + for (r = s.over_SSD = 0; r < e.psymax; r++) { + var b, + v = e.global_gain - (m[p++] + (0 != e.preflag ? w[r] : 0) << e.scalefac_scale + 1) - 8 * e.subblock_gain[e.window[r]], d = 0; - if (null != s && s.step[r] == v) d = s.noise[r], h += e.width[r], a[o++] = d / t[_++], d = s.noise_log[r];else { + if (null != n && n.step[r] == v) d = n.noise[r], u += e.width[r], a[o++] = d / t[_++], d = n.noise_log[r];else { var g, - w = y[v + T.Q_MAX2]; - i = e.width[r] >> 1, h + e.width[r] > e.max_nonzero_coeff && (g = e.max_nonzero_coeff - h + 1, i = 0 < g ? g >> 1 : 0); - var S = new A(h); - d = this.calc_noise_core(e, S, i, w), h = S.s, null != s && (s.step[r] = v, s.noise[r] = d), d = a[o++] = d / t[_++], d = V.FAST_LOG10(Math.max(d, 1e-20)), null != s && (s.noise_log[r] = d); + S = R[v + x.Q_MAX2]; + if (i = e.width[r] >> 1, u + e.width[r] > e.max_nonzero_coeff) i = 0 < (g = e.max_nonzero_coeff - u + 1) ? g >> 1 : 0; + var M = new A(u); + d = this.calc_noise_core(e, M, i, S), u = M.s, null != n && (n.step[r] = v, n.noise[r] = d), d = a[o++] = d / t[_++], d = ee.FAST_LOG10(Math.max(d, 1e-20)), null != n && (n.noise_log[r] = d); } - null != s && (s.global_gain = e.global_gain), c += d, 0 < d && (m = Math.max(0 | 10 * d + .5, 1), n.over_SSD += m * m, l++, f += d), u = Math.max(u, d); + if (null != n && (n.global_gain = e.global_gain), c += d, 0 < d) b = Math.max(0 | 10 * d + .5, 1), s.over_SSD += b * b, l++, f += d; + h = Math.max(h, d); } - return n.over_count = l, n.tot_noise = c, n.over_noise = f, n.max_noise = u, l; + return s.over_count = l, s.tot_noise = c, s.over_noise = f, s.max_noise = h, l; + }, this.set_pinfo = function (e, t, a, s, n) { + var r, + i, + o, + _, + l, + f = e.internal_flags, + c = 0 == t.scalefac_scale ? .5 : 1, + h = t.scalefac, + u = Be(z.SFBMAX), + m = Be(z.SFBMAX), + p = new y(); + calc_xmin(e, a, t, u), calc_noise(t, u, m, p, null); + var b = 0; + for (i = t.sfb_lmax, t.block_type != Pe.SHORT_TYPE && 0 == t.mixed_block_flag && (i = 22), r = 0; r < i; r++) { + var v = f.scalefac_band.l[r], + d = (g = f.scalefac_band.l[r + 1]) - v; + for (_ = 0; b < g; b++) _ += t.xr[b] * t.xr[b]; + _ /= d, l = 1e15, f.pinfo.en[s][n][r] = l * _, f.pinfo.xfsf[s][n][r] = l * u[r] * m[r] / d, 0 < a.en.l[r] && !e.ATHonly ? _ /= a.en.l[r] : _ = 0, f.pinfo.thr[s][n][r] = l * Math.max(_ * a.thm.l[r], f.ATH.l[r]), (f.pinfo.LAMEsfb[s][n][r] = 0) != t.preflag && 11 <= r && (f.pinfo.LAMEsfb[s][n][r] = -c * w[r]), r < Pe.SBPSY_l && (f.pinfo.LAMEsfb[s][n][r] -= c * h[r]); + } + if (t.block_type == Pe.SHORT_TYPE) for (i = r, r = t.sfb_smin; r < Pe.SBMAX_s; r++) { + v = f.scalefac_band.s[r], d = (g = f.scalefac_band.s[r + 1]) - v; + for (var g, S = 0; S < 3; S++) { + for (_ = 0, o = v; o < g; o++) _ += t.xr[b] * t.xr[b], b++; + _ = Math.max(_ / d, 1e-20), l = 1e15, f.pinfo.en_s[s][n][3 * r + S] = l * _, f.pinfo.xfsf_s[s][n][3 * r + S] = l * u[i] * m[i] / d, 0 < a.en.s[r][S] ? _ /= a.en.s[r][S] : _ = 0, (e.ATHonly || e.ATHshort) && (_ = 0), f.pinfo.thr_s[s][n][3 * r + S] = l * Math.max(_ * a.thm.s[r][S], f.ATH.s[r]), f.pinfo.LAMEsfb_s[s][n][3 * r + S] = -2 * t.subblock_gain[S], r < Pe.SBPSY_s && (f.pinfo.LAMEsfb_s[s][n][3 * r + S] -= c * h[i]), i++; + } + } + f.pinfo.LAMEqss[s][n] = t.global_gain, f.pinfo.LAMEmainbits[s][n] = t.part2_3_length + t.part2_length, f.pinfo.LAMEsfbits[s][n] = t.part2_length, f.pinfo.over[s][n] = p.over_count, f.pinfo.max_noise[s][n] = 10 * p.max_noise, f.pinfo.over_noise[s][n] = 10 * p.over_noise, f.pinfo.tot_noise[s][n] = 10 * p.tot_noise, f.pinfo.over_SSD[s][n] = p.over_SSD; }; } - function B() { - this.xr = de(576), this.l3_enc = ve(576), this.scalefac = ve(F.SFBMAX), this.xrpow_max = 0, this.part2_3_length = 0, this.big_values = 0, this.count1 = 0, this.global_gain = 0, this.scalefac_compress = 0, this.block_type = 0, this.mixed_block_flag = 0, this.table_select = ve(3), this.subblock_gain = ve(4), this.region0_count = 0, this.region1_count = 0, this.preflag = 0, this.scalefac_scale = 0, this.count1table_select = 0, this.part2_length = 0, this.sfb_lmax = 0, this.sfb_smin = 0, this.psy_lmax = 0, this.sfbmax = 0, this.psymax = 0, this.sfbdivide = 0, this.width = ve(F.SFBMAX), this.window = ve(F.SFBMAX), this.count1bits = 0, this.sfb_partition_table = null, this.slen = ve(4), this.max_nonzero_coeff = 0; + function T() { + this.xr = Be(576), this.l3_enc = Ae(576), this.scalefac = Ae(z.SFBMAX), this.xrpow_max = 0, this.part2_3_length = 0, this.big_values = 0, this.count1 = 0, this.global_gain = 0, this.scalefac_compress = 0, this.block_type = 0, this.mixed_block_flag = 0, this.table_select = Ae(3), this.subblock_gain = Ae(4), this.region0_count = 0, this.region1_count = 0, this.preflag = 0, this.scalefac_scale = 0, this.count1table_select = 0, this.part2_length = 0, this.sfb_lmax = 0, this.sfb_smin = 0, this.psy_lmax = 0, this.sfbmax = 0, this.psymax = 0, this.sfbdivide = 0, this.width = Ae(z.SFBMAX), this.window = Ae(z.SFBMAX), this.count1bits = 0, this.sfb_partition_table = null, this.slen = Ae(4), this.max_nonzero_coeff = 0; var a = this; - function n(e) { + function s(e) { return new Int32Array(e); } this.assign = function (e) { var t; - a.xr = (t = e.xr, new Float32Array(t)), a.l3_enc = n(e.l3_enc), a.scalefac = n(e.scalefac), a.xrpow_max = e.xrpow_max, a.part2_3_length = e.part2_3_length, a.big_values = e.big_values, a.count1 = e.count1, a.global_gain = e.global_gain, a.scalefac_compress = e.scalefac_compress, a.block_type = e.block_type, a.mixed_block_flag = e.mixed_block_flag, a.table_select = n(e.table_select), a.subblock_gain = n(e.subblock_gain), a.region0_count = e.region0_count, a.region1_count = e.region1_count, a.preflag = e.preflag, a.scalefac_scale = e.scalefac_scale, a.count1table_select = e.count1table_select, a.part2_length = e.part2_length, a.sfb_lmax = e.sfb_lmax, a.sfb_smin = e.sfb_smin, a.psy_lmax = e.psy_lmax, a.sfbmax = e.sfbmax, a.psymax = e.psymax, a.sfbdivide = e.sfbdivide, a.width = n(e.width), a.window = n(e.window), a.count1bits = e.count1bits, a.sfb_partition_table = e.sfb_partition_table.slice(0), a.slen = n(e.slen), a.max_nonzero_coeff = e.max_nonzero_coeff; + a.xr = (t = e.xr, new Float32Array(t)), a.l3_enc = s(e.l3_enc), a.scalefac = s(e.scalefac), a.xrpow_max = e.xrpow_max, a.part2_3_length = e.part2_3_length, a.big_values = e.big_values, a.count1 = e.count1, a.global_gain = e.global_gain, a.scalefac_compress = e.scalefac_compress, a.block_type = e.block_type, a.mixed_block_flag = e.mixed_block_flag, a.table_select = s(e.table_select), a.subblock_gain = s(e.subblock_gain), a.region0_count = e.region0_count, a.region1_count = e.region1_count, a.preflag = e.preflag, a.scalefac_scale = e.scalefac_scale, a.count1table_select = e.count1table_select, a.part2_length = e.part2_length, a.sfb_lmax = e.sfb_lmax, a.sfb_smin = e.sfb_smin, a.psy_lmax = e.psy_lmax, a.sfbmax = e.sfbmax, a.psymax = e.psymax, a.sfbdivide = e.sfbdivide, a.width = s(e.width), a.window = s(e.window), a.count1bits = e.count1bits, a.sfb_partition_table = e.sfb_partition_table.slice(0), a.slen = s(e.slen), a.max_nonzero_coeff = e.max_nonzero_coeff; }; } - k.t1HB = [1, 1, 1, 0], k.t2HB = [1, 2, 1, 3, 1, 1, 3, 2, 0], k.t3HB = [3, 2, 1, 1, 1, 1, 3, 2, 0], k.t5HB = [1, 2, 6, 5, 3, 1, 4, 4, 7, 5, 7, 1, 6, 1, 1, 0], k.t6HB = [7, 3, 5, 1, 6, 2, 3, 2, 5, 4, 4, 1, 3, 3, 2, 0], k.t7HB = [1, 2, 10, 19, 16, 10, 3, 3, 7, 10, 5, 3, 11, 4, 13, 17, 8, 4, 12, 11, 18, 15, 11, 2, 7, 6, 9, 14, 3, 1, 6, 4, 5, 3, 2, 0], k.t8HB = [3, 4, 6, 18, 12, 5, 5, 1, 2, 16, 9, 3, 7, 3, 5, 14, 7, 3, 19, 17, 15, 13, 10, 4, 13, 5, 8, 11, 5, 1, 12, 4, 4, 1, 1, 0], k.t9HB = [7, 5, 9, 14, 15, 7, 6, 4, 5, 5, 6, 7, 7, 6, 8, 8, 8, 5, 15, 6, 9, 10, 5, 1, 11, 7, 9, 6, 4, 1, 14, 4, 6, 2, 6, 0], k.t10HB = [1, 2, 10, 23, 35, 30, 12, 17, 3, 3, 8, 12, 18, 21, 12, 7, 11, 9, 15, 21, 32, 40, 19, 6, 14, 13, 22, 34, 46, 23, 18, 7, 20, 19, 33, 47, 27, 22, 9, 3, 31, 22, 41, 26, 21, 20, 5, 3, 14, 13, 10, 11, 16, 6, 5, 1, 9, 8, 7, 8, 4, 4, 2, 0], k.t11HB = [3, 4, 10, 24, 34, 33, 21, 15, 5, 3, 4, 10, 32, 17, 11, 10, 11, 7, 13, 18, 30, 31, 20, 5, 25, 11, 19, 59, 27, 18, 12, 5, 35, 33, 31, 58, 30, 16, 7, 5, 28, 26, 32, 19, 17, 15, 8, 14, 14, 12, 9, 13, 14, 9, 4, 1, 11, 4, 6, 6, 6, 3, 2, 0], k.t12HB = [9, 6, 16, 33, 41, 39, 38, 26, 7, 5, 6, 9, 23, 16, 26, 11, 17, 7, 11, 14, 21, 30, 10, 7, 17, 10, 15, 12, 18, 28, 14, 5, 32, 13, 22, 19, 18, 16, 9, 5, 40, 17, 31, 29, 17, 13, 4, 2, 27, 12, 11, 15, 10, 7, 4, 1, 27, 12, 8, 12, 6, 3, 1, 0], k.t13HB = [1, 5, 14, 21, 34, 51, 46, 71, 42, 52, 68, 52, 67, 44, 43, 19, 3, 4, 12, 19, 31, 26, 44, 33, 31, 24, 32, 24, 31, 35, 22, 14, 15, 13, 23, 36, 59, 49, 77, 65, 29, 40, 30, 40, 27, 33, 42, 16, 22, 20, 37, 61, 56, 79, 73, 64, 43, 76, 56, 37, 26, 31, 25, 14, 35, 16, 60, 57, 97, 75, 114, 91, 54, 73, 55, 41, 48, 53, 23, 24, 58, 27, 50, 96, 76, 70, 93, 84, 77, 58, 79, 29, 74, 49, 41, 17, 47, 45, 78, 74, 115, 94, 90, 79, 69, 83, 71, 50, 59, 38, 36, 15, 72, 34, 56, 95, 92, 85, 91, 90, 86, 73, 77, 65, 51, 44, 43, 42, 43, 20, 30, 44, 55, 78, 72, 87, 78, 61, 46, 54, 37, 30, 20, 16, 53, 25, 41, 37, 44, 59, 54, 81, 66, 76, 57, 54, 37, 18, 39, 11, 35, 33, 31, 57, 42, 82, 72, 80, 47, 58, 55, 21, 22, 26, 38, 22, 53, 25, 23, 38, 70, 60, 51, 36, 55, 26, 34, 23, 27, 14, 9, 7, 34, 32, 28, 39, 49, 75, 30, 52, 48, 40, 52, 28, 18, 17, 9, 5, 45, 21, 34, 64, 56, 50, 49, 45, 31, 19, 12, 15, 10, 7, 6, 3, 48, 23, 20, 39, 36, 35, 53, 21, 16, 23, 13, 10, 6, 1, 4, 2, 16, 15, 17, 27, 25, 20, 29, 11, 17, 12, 16, 8, 1, 1, 0, 1], k.t15HB = [7, 12, 18, 53, 47, 76, 124, 108, 89, 123, 108, 119, 107, 81, 122, 63, 13, 5, 16, 27, 46, 36, 61, 51, 42, 70, 52, 83, 65, 41, 59, 36, 19, 17, 15, 24, 41, 34, 59, 48, 40, 64, 50, 78, 62, 80, 56, 33, 29, 28, 25, 43, 39, 63, 55, 93, 76, 59, 93, 72, 54, 75, 50, 29, 52, 22, 42, 40, 67, 57, 95, 79, 72, 57, 89, 69, 49, 66, 46, 27, 77, 37, 35, 66, 58, 52, 91, 74, 62, 48, 79, 63, 90, 62, 40, 38, 125, 32, 60, 56, 50, 92, 78, 65, 55, 87, 71, 51, 73, 51, 70, 30, 109, 53, 49, 94, 88, 75, 66, 122, 91, 73, 56, 42, 64, 44, 21, 25, 90, 43, 41, 77, 73, 63, 56, 92, 77, 66, 47, 67, 48, 53, 36, 20, 71, 34, 67, 60, 58, 49, 88, 76, 67, 106, 71, 54, 38, 39, 23, 15, 109, 53, 51, 47, 90, 82, 58, 57, 48, 72, 57, 41, 23, 27, 62, 9, 86, 42, 40, 37, 70, 64, 52, 43, 70, 55, 42, 25, 29, 18, 11, 11, 118, 68, 30, 55, 50, 46, 74, 65, 49, 39, 24, 16, 22, 13, 14, 7, 91, 44, 39, 38, 34, 63, 52, 45, 31, 52, 28, 19, 14, 8, 9, 3, 123, 60, 58, 53, 47, 43, 32, 22, 37, 24, 17, 12, 15, 10, 2, 1, 71, 37, 34, 30, 28, 20, 17, 26, 21, 16, 10, 6, 8, 6, 2, 0], k.t16HB = [1, 5, 14, 44, 74, 63, 110, 93, 172, 149, 138, 242, 225, 195, 376, 17, 3, 4, 12, 20, 35, 62, 53, 47, 83, 75, 68, 119, 201, 107, 207, 9, 15, 13, 23, 38, 67, 58, 103, 90, 161, 72, 127, 117, 110, 209, 206, 16, 45, 21, 39, 69, 64, 114, 99, 87, 158, 140, 252, 212, 199, 387, 365, 26, 75, 36, 68, 65, 115, 101, 179, 164, 155, 264, 246, 226, 395, 382, 362, 9, 66, 30, 59, 56, 102, 185, 173, 265, 142, 253, 232, 400, 388, 378, 445, 16, 111, 54, 52, 100, 184, 178, 160, 133, 257, 244, 228, 217, 385, 366, 715, 10, 98, 48, 91, 88, 165, 157, 148, 261, 248, 407, 397, 372, 380, 889, 884, 8, 85, 84, 81, 159, 156, 143, 260, 249, 427, 401, 392, 383, 727, 713, 708, 7, 154, 76, 73, 141, 131, 256, 245, 426, 406, 394, 384, 735, 359, 710, 352, 11, 139, 129, 67, 125, 247, 233, 229, 219, 393, 743, 737, 720, 885, 882, 439, 4, 243, 120, 118, 115, 227, 223, 396, 746, 742, 736, 721, 712, 706, 223, 436, 6, 202, 224, 222, 218, 216, 389, 386, 381, 364, 888, 443, 707, 440, 437, 1728, 4, 747, 211, 210, 208, 370, 379, 734, 723, 714, 1735, 883, 877, 876, 3459, 865, 2, 377, 369, 102, 187, 726, 722, 358, 711, 709, 866, 1734, 871, 3458, 870, 434, 0, 12, 10, 7, 11, 10, 17, 11, 9, 13, 12, 10, 7, 5, 3, 1, 3], k.t24HB = [15, 13, 46, 80, 146, 262, 248, 434, 426, 669, 653, 649, 621, 517, 1032, 88, 14, 12, 21, 38, 71, 130, 122, 216, 209, 198, 327, 345, 319, 297, 279, 42, 47, 22, 41, 74, 68, 128, 120, 221, 207, 194, 182, 340, 315, 295, 541, 18, 81, 39, 75, 70, 134, 125, 116, 220, 204, 190, 178, 325, 311, 293, 271, 16, 147, 72, 69, 135, 127, 118, 112, 210, 200, 188, 352, 323, 306, 285, 540, 14, 263, 66, 129, 126, 119, 114, 214, 202, 192, 180, 341, 317, 301, 281, 262, 12, 249, 123, 121, 117, 113, 215, 206, 195, 185, 347, 330, 308, 291, 272, 520, 10, 435, 115, 111, 109, 211, 203, 196, 187, 353, 332, 313, 298, 283, 531, 381, 17, 427, 212, 208, 205, 201, 193, 186, 177, 169, 320, 303, 286, 268, 514, 377, 16, 335, 199, 197, 191, 189, 181, 174, 333, 321, 305, 289, 275, 521, 379, 371, 11, 668, 184, 183, 179, 175, 344, 331, 314, 304, 290, 277, 530, 383, 373, 366, 10, 652, 346, 171, 168, 164, 318, 309, 299, 287, 276, 263, 513, 375, 368, 362, 6, 648, 322, 316, 312, 307, 302, 292, 284, 269, 261, 512, 376, 370, 364, 359, 4, 620, 300, 296, 294, 288, 282, 273, 266, 515, 380, 374, 369, 365, 361, 357, 2, 1033, 280, 278, 274, 267, 264, 259, 382, 378, 372, 367, 363, 360, 358, 356, 0, 43, 20, 19, 17, 15, 13, 11, 9, 7, 6, 4, 7, 5, 3, 1, 3], k.t32HB = [1, 10, 8, 20, 12, 20, 16, 32, 14, 12, 24, 0, 28, 16, 24, 16], k.t33HB = [15, 28, 26, 48, 22, 40, 36, 64, 14, 24, 20, 32, 12, 16, 8, 0], k.t1l = [1, 4, 3, 5], k.t2l = [1, 4, 7, 4, 5, 7, 6, 7, 8], k.t3l = [2, 3, 7, 4, 4, 7, 6, 7, 8], k.t5l = [1, 4, 7, 8, 4, 5, 8, 9, 7, 8, 9, 10, 8, 8, 9, 10], k.t6l = [3, 4, 6, 8, 4, 4, 6, 7, 5, 6, 7, 8, 7, 7, 8, 9], k.t7l = [1, 4, 7, 9, 9, 10, 4, 6, 8, 9, 9, 10, 7, 7, 9, 10, 10, 11, 8, 9, 10, 11, 11, 11, 8, 9, 10, 11, 11, 12, 9, 10, 11, 12, 12, 12], k.t8l = [2, 4, 7, 9, 9, 10, 4, 4, 6, 10, 10, 10, 7, 6, 8, 10, 10, 11, 9, 10, 10, 11, 11, 12, 9, 9, 10, 11, 12, 12, 10, 10, 11, 11, 13, 13], k.t9l = [3, 4, 6, 7, 9, 10, 4, 5, 6, 7, 8, 10, 5, 6, 7, 8, 9, 10, 7, 7, 8, 9, 9, 10, 8, 8, 9, 9, 10, 11, 9, 9, 10, 10, 11, 11], k.t10l = [1, 4, 7, 9, 10, 10, 10, 11, 4, 6, 8, 9, 10, 11, 10, 10, 7, 8, 9, 10, 11, 12, 11, 11, 8, 9, 10, 11, 12, 12, 11, 12, 9, 10, 11, 12, 12, 12, 12, 12, 10, 11, 12, 12, 13, 13, 12, 13, 9, 10, 11, 12, 12, 12, 13, 13, 10, 10, 11, 12, 12, 13, 13, 13], k.t11l = [2, 4, 6, 8, 9, 10, 9, 10, 4, 5, 6, 8, 10, 10, 9, 10, 6, 7, 8, 9, 10, 11, 10, 10, 8, 8, 9, 11, 10, 12, 10, 11, 9, 10, 10, 11, 11, 12, 11, 12, 9, 10, 11, 12, 12, 13, 12, 13, 9, 9, 9, 10, 11, 12, 12, 12, 9, 9, 10, 11, 12, 12, 12, 12], k.t12l = [4, 4, 6, 8, 9, 10, 10, 10, 4, 5, 6, 7, 9, 9, 10, 10, 6, 6, 7, 8, 9, 10, 9, 10, 7, 7, 8, 8, 9, 10, 10, 10, 8, 8, 9, 9, 10, 10, 10, 11, 9, 9, 10, 10, 10, 11, 10, 11, 9, 9, 9, 10, 10, 11, 11, 12, 10, 10, 10, 11, 11, 11, 11, 12], k.t13l = [1, 5, 7, 8, 9, 10, 10, 11, 10, 11, 12, 12, 13, 13, 14, 14, 4, 6, 8, 9, 10, 10, 11, 11, 11, 11, 12, 12, 13, 14, 14, 14, 7, 8, 9, 10, 11, 11, 12, 12, 11, 12, 12, 13, 13, 14, 15, 15, 8, 9, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 15, 15, 9, 9, 11, 11, 12, 12, 13, 13, 12, 13, 13, 14, 14, 15, 15, 16, 10, 10, 11, 12, 12, 12, 13, 13, 13, 13, 14, 13, 15, 15, 16, 16, 10, 11, 12, 12, 13, 13, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16, 11, 11, 12, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 18, 18, 10, 10, 11, 12, 12, 13, 13, 14, 14, 14, 14, 15, 15, 16, 17, 17, 11, 11, 12, 12, 13, 13, 13, 15, 14, 15, 15, 16, 16, 16, 18, 17, 11, 12, 12, 13, 13, 14, 14, 15, 14, 15, 16, 15, 16, 17, 18, 19, 12, 12, 12, 13, 14, 14, 14, 14, 15, 15, 15, 16, 17, 17, 17, 18, 12, 13, 13, 14, 14, 15, 14, 15, 16, 16, 17, 17, 17, 18, 18, 18, 13, 13, 14, 15, 15, 15, 16, 16, 16, 16, 16, 17, 18, 17, 18, 18, 14, 14, 14, 15, 15, 15, 17, 16, 16, 19, 17, 17, 17, 19, 18, 18, 13, 14, 15, 16, 16, 16, 17, 16, 17, 17, 18, 18, 21, 20, 21, 18], k.t15l = [3, 5, 6, 8, 8, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 14, 5, 5, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 13, 6, 7, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 13, 13, 13, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13, 9, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 13, 13, 13, 14, 10, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 14, 14, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 14, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 14, 14, 14, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 15, 14, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 15, 12, 12, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 14, 14, 15, 15, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 14, 15, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 15, 15], k.t16_5l = [1, 5, 7, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 11, 4, 6, 8, 9, 10, 11, 11, 11, 12, 12, 12, 13, 14, 13, 14, 11, 7, 8, 9, 10, 11, 11, 12, 12, 13, 12, 13, 13, 13, 14, 14, 12, 9, 9, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 13, 10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 12, 10, 10, 11, 11, 12, 13, 13, 14, 13, 14, 14, 15, 15, 15, 16, 13, 11, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 16, 13, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 17, 17, 13, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 13, 12, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 15, 16, 15, 14, 12, 13, 12, 13, 14, 14, 14, 14, 15, 16, 16, 16, 17, 17, 16, 13, 13, 13, 13, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 14, 13, 14, 14, 14, 14, 15, 15, 15, 15, 17, 16, 16, 16, 16, 18, 14, 15, 14, 14, 14, 15, 15, 16, 16, 16, 18, 17, 17, 17, 19, 17, 14, 14, 15, 13, 14, 16, 16, 15, 16, 16, 17, 18, 17, 19, 17, 16, 14, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 12], k.t16l = [1, 5, 7, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 10, 4, 6, 8, 9, 10, 11, 11, 11, 12, 12, 12, 13, 14, 13, 14, 10, 7, 8, 9, 10, 11, 11, 12, 12, 13, 12, 13, 13, 13, 14, 14, 11, 9, 9, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 12, 10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 11, 10, 10, 11, 11, 12, 13, 13, 14, 13, 14, 14, 15, 15, 15, 16, 12, 11, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 16, 12, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 17, 17, 12, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 12, 12, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 15, 16, 15, 13, 12, 13, 12, 13, 14, 14, 14, 14, 15, 16, 16, 16, 17, 17, 16, 12, 13, 13, 13, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 17, 16, 16, 16, 16, 18, 13, 15, 14, 14, 14, 15, 15, 16, 16, 16, 18, 17, 17, 17, 19, 17, 13, 14, 15, 13, 14, 16, 16, 15, 16, 16, 17, 18, 17, 19, 17, 16, 13, 10, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 10], k.t24l = [4, 5, 7, 8, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 13, 10, 5, 6, 7, 8, 9, 10, 10, 11, 11, 11, 12, 12, 12, 12, 12, 10, 7, 7, 8, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 9, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 12, 13, 9, 10, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 9, 11, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 10, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 10, 12, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 10, 12, 12, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 10, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 10, 13, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 6], k.t32l = [1, 5, 5, 7, 5, 8, 7, 9, 5, 7, 7, 9, 7, 9, 9, 10], k.t33l = [4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8], k.ht = [new e(0, 0, null, null), new e(2, 0, k.t1HB, k.t1l), new e(3, 0, k.t2HB, k.t2l), new e(3, 0, k.t3HB, k.t3l), new e(0, 0, null, null), new e(4, 0, k.t5HB, k.t5l), new e(4, 0, k.t6HB, k.t6l), new e(6, 0, k.t7HB, k.t7l), new e(6, 0, k.t8HB, k.t8l), new e(6, 0, k.t9HB, k.t9l), new e(8, 0, k.t10HB, k.t10l), new e(8, 0, k.t11HB, k.t11l), new e(8, 0, k.t12HB, k.t12l), new e(16, 0, k.t13HB, k.t13l), new e(0, 0, null, k.t16_5l), new e(16, 0, k.t15HB, k.t15l), new e(1, 1, k.t16HB, k.t16l), new e(2, 3, k.t16HB, k.t16l), new e(3, 7, k.t16HB, k.t16l), new e(4, 15, k.t16HB, k.t16l), new e(6, 63, k.t16HB, k.t16l), new e(8, 255, k.t16HB, k.t16l), new e(10, 1023, k.t16HB, k.t16l), new e(13, 8191, k.t16HB, k.t16l), new e(4, 15, k.t24HB, k.t24l), new e(5, 31, k.t24HB, k.t24l), new e(6, 63, k.t24HB, k.t24l), new e(7, 127, k.t24HB, k.t24l), new e(8, 255, k.t24HB, k.t24l), new e(9, 511, k.t24HB, k.t24l), new e(11, 2047, k.t24HB, k.t24l), new e(13, 8191, k.t24HB, k.t24l), new e(0, 0, k.t32HB, k.t32l), new e(0, 0, k.t33HB, k.t33l)], k.largetbl = [65540, 327685, 458759, 589832, 655369, 655370, 720906, 720907, 786443, 786444, 786444, 851980, 851980, 851980, 917517, 655370, 262149, 393222, 524295, 589832, 655369, 720906, 720906, 720907, 786443, 786443, 786444, 851980, 917516, 851980, 917516, 655370, 458759, 524295, 589832, 655369, 720905, 720906, 786442, 786443, 851979, 786443, 851979, 851980, 851980, 917516, 917517, 720905, 589832, 589832, 655369, 720905, 720906, 786442, 786442, 786443, 851979, 851979, 917515, 917516, 917516, 983052, 983052, 786441, 655369, 655369, 720905, 720906, 786442, 786442, 851978, 851979, 851979, 917515, 917516, 917516, 983052, 983052, 983053, 720905, 655370, 655369, 720906, 720906, 786442, 851978, 851979, 917515, 851979, 917515, 917516, 983052, 983052, 983052, 1048588, 786441, 720906, 720906, 720906, 786442, 851978, 851979, 851979, 851979, 917515, 917516, 917516, 917516, 983052, 983052, 1048589, 786441, 720907, 720906, 786442, 786442, 851979, 851979, 851979, 917515, 917516, 983052, 983052, 983052, 983052, 1114125, 1114125, 786442, 720907, 786443, 786443, 851979, 851979, 851979, 917515, 917515, 983051, 983052, 983052, 983052, 1048588, 1048589, 1048589, 786442, 786443, 786443, 786443, 851979, 851979, 917515, 917515, 983052, 983052, 983052, 983052, 1048588, 983053, 1048589, 983053, 851978, 786444, 851979, 786443, 851979, 917515, 917516, 917516, 917516, 983052, 1048588, 1048588, 1048589, 1114125, 1114125, 1048589, 786442, 851980, 851980, 851979, 851979, 917515, 917516, 983052, 1048588, 1048588, 1048588, 1048588, 1048589, 1048589, 983053, 1048589, 851978, 851980, 917516, 917516, 917516, 917516, 983052, 983052, 983052, 983052, 1114124, 1048589, 1048589, 1048589, 1048589, 1179661, 851978, 983052, 917516, 917516, 917516, 983052, 983052, 1048588, 1048588, 1048589, 1179661, 1114125, 1114125, 1114125, 1245197, 1114125, 851978, 917517, 983052, 851980, 917516, 1048588, 1048588, 983052, 1048589, 1048589, 1114125, 1179661, 1114125, 1245197, 1114125, 1048589, 851978, 655369, 655369, 655369, 720905, 720905, 786441, 786441, 786441, 851977, 851977, 851977, 851978, 851978, 851978, 851978, 655366], k.table23 = [65538, 262147, 458759, 262148, 327684, 458759, 393222, 458759, 524296], k.table56 = [65539, 262148, 458758, 524296, 262148, 327684, 524294, 589831, 458757, 524294, 589831, 655368, 524295, 524295, 589832, 655369], k.bitrate_table = [[0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, -1], [0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, -1], [0, 8, 16, 24, 32, 40, 48, 56, 64, -1, -1, -1, -1, -1, -1, -1]], k.samplerate_table = [[22050, 24e3, 16e3, -1], [44100, 48e3, 32e3, -1], [11025, 12e3, 8e3, -1]], k.scfsi_band = [0, 6, 11, 16, 21], T.Q_MAX = 257, T.Q_MAX2 = 116, T.LARGE_BITS = 1e5, T.IXMAX_VAL = 8206; - var F = {}; - function C() { - var r, g; + F.t1HB = [1, 1, 1, 0], F.t2HB = [1, 2, 1, 3, 1, 1, 3, 2, 0], F.t3HB = [3, 2, 1, 1, 1, 1, 3, 2, 0], F.t5HB = [1, 2, 6, 5, 3, 1, 4, 4, 7, 5, 7, 1, 6, 1, 1, 0], F.t6HB = [7, 3, 5, 1, 6, 2, 3, 2, 5, 4, 4, 1, 3, 3, 2, 0], F.t7HB = [1, 2, 10, 19, 16, 10, 3, 3, 7, 10, 5, 3, 11, 4, 13, 17, 8, 4, 12, 11, 18, 15, 11, 2, 7, 6, 9, 14, 3, 1, 6, 4, 5, 3, 2, 0], F.t8HB = [3, 4, 6, 18, 12, 5, 5, 1, 2, 16, 9, 3, 7, 3, 5, 14, 7, 3, 19, 17, 15, 13, 10, 4, 13, 5, 8, 11, 5, 1, 12, 4, 4, 1, 1, 0], F.t9HB = [7, 5, 9, 14, 15, 7, 6, 4, 5, 5, 6, 7, 7, 6, 8, 8, 8, 5, 15, 6, 9, 10, 5, 1, 11, 7, 9, 6, 4, 1, 14, 4, 6, 2, 6, 0], F.t10HB = [1, 2, 10, 23, 35, 30, 12, 17, 3, 3, 8, 12, 18, 21, 12, 7, 11, 9, 15, 21, 32, 40, 19, 6, 14, 13, 22, 34, 46, 23, 18, 7, 20, 19, 33, 47, 27, 22, 9, 3, 31, 22, 41, 26, 21, 20, 5, 3, 14, 13, 10, 11, 16, 6, 5, 1, 9, 8, 7, 8, 4, 4, 2, 0], F.t11HB = [3, 4, 10, 24, 34, 33, 21, 15, 5, 3, 4, 10, 32, 17, 11, 10, 11, 7, 13, 18, 30, 31, 20, 5, 25, 11, 19, 59, 27, 18, 12, 5, 35, 33, 31, 58, 30, 16, 7, 5, 28, 26, 32, 19, 17, 15, 8, 14, 14, 12, 9, 13, 14, 9, 4, 1, 11, 4, 6, 6, 6, 3, 2, 0], F.t12HB = [9, 6, 16, 33, 41, 39, 38, 26, 7, 5, 6, 9, 23, 16, 26, 11, 17, 7, 11, 14, 21, 30, 10, 7, 17, 10, 15, 12, 18, 28, 14, 5, 32, 13, 22, 19, 18, 16, 9, 5, 40, 17, 31, 29, 17, 13, 4, 2, 27, 12, 11, 15, 10, 7, 4, 1, 27, 12, 8, 12, 6, 3, 1, 0], F.t13HB = [1, 5, 14, 21, 34, 51, 46, 71, 42, 52, 68, 52, 67, 44, 43, 19, 3, 4, 12, 19, 31, 26, 44, 33, 31, 24, 32, 24, 31, 35, 22, 14, 15, 13, 23, 36, 59, 49, 77, 65, 29, 40, 30, 40, 27, 33, 42, 16, 22, 20, 37, 61, 56, 79, 73, 64, 43, 76, 56, 37, 26, 31, 25, 14, 35, 16, 60, 57, 97, 75, 114, 91, 54, 73, 55, 41, 48, 53, 23, 24, 58, 27, 50, 96, 76, 70, 93, 84, 77, 58, 79, 29, 74, 49, 41, 17, 47, 45, 78, 74, 115, 94, 90, 79, 69, 83, 71, 50, 59, 38, 36, 15, 72, 34, 56, 95, 92, 85, 91, 90, 86, 73, 77, 65, 51, 44, 43, 42, 43, 20, 30, 44, 55, 78, 72, 87, 78, 61, 46, 54, 37, 30, 20, 16, 53, 25, 41, 37, 44, 59, 54, 81, 66, 76, 57, 54, 37, 18, 39, 11, 35, 33, 31, 57, 42, 82, 72, 80, 47, 58, 55, 21, 22, 26, 38, 22, 53, 25, 23, 38, 70, 60, 51, 36, 55, 26, 34, 23, 27, 14, 9, 7, 34, 32, 28, 39, 49, 75, 30, 52, 48, 40, 52, 28, 18, 17, 9, 5, 45, 21, 34, 64, 56, 50, 49, 45, 31, 19, 12, 15, 10, 7, 6, 3, 48, 23, 20, 39, 36, 35, 53, 21, 16, 23, 13, 10, 6, 1, 4, 2, 16, 15, 17, 27, 25, 20, 29, 11, 17, 12, 16, 8, 1, 1, 0, 1], F.t15HB = [7, 12, 18, 53, 47, 76, 124, 108, 89, 123, 108, 119, 107, 81, 122, 63, 13, 5, 16, 27, 46, 36, 61, 51, 42, 70, 52, 83, 65, 41, 59, 36, 19, 17, 15, 24, 41, 34, 59, 48, 40, 64, 50, 78, 62, 80, 56, 33, 29, 28, 25, 43, 39, 63, 55, 93, 76, 59, 93, 72, 54, 75, 50, 29, 52, 22, 42, 40, 67, 57, 95, 79, 72, 57, 89, 69, 49, 66, 46, 27, 77, 37, 35, 66, 58, 52, 91, 74, 62, 48, 79, 63, 90, 62, 40, 38, 125, 32, 60, 56, 50, 92, 78, 65, 55, 87, 71, 51, 73, 51, 70, 30, 109, 53, 49, 94, 88, 75, 66, 122, 91, 73, 56, 42, 64, 44, 21, 25, 90, 43, 41, 77, 73, 63, 56, 92, 77, 66, 47, 67, 48, 53, 36, 20, 71, 34, 67, 60, 58, 49, 88, 76, 67, 106, 71, 54, 38, 39, 23, 15, 109, 53, 51, 47, 90, 82, 58, 57, 48, 72, 57, 41, 23, 27, 62, 9, 86, 42, 40, 37, 70, 64, 52, 43, 70, 55, 42, 25, 29, 18, 11, 11, 118, 68, 30, 55, 50, 46, 74, 65, 49, 39, 24, 16, 22, 13, 14, 7, 91, 44, 39, 38, 34, 63, 52, 45, 31, 52, 28, 19, 14, 8, 9, 3, 123, 60, 58, 53, 47, 43, 32, 22, 37, 24, 17, 12, 15, 10, 2, 1, 71, 37, 34, 30, 28, 20, 17, 26, 21, 16, 10, 6, 8, 6, 2, 0], F.t16HB = [1, 5, 14, 44, 74, 63, 110, 93, 172, 149, 138, 242, 225, 195, 376, 17, 3, 4, 12, 20, 35, 62, 53, 47, 83, 75, 68, 119, 201, 107, 207, 9, 15, 13, 23, 38, 67, 58, 103, 90, 161, 72, 127, 117, 110, 209, 206, 16, 45, 21, 39, 69, 64, 114, 99, 87, 158, 140, 252, 212, 199, 387, 365, 26, 75, 36, 68, 65, 115, 101, 179, 164, 155, 264, 246, 226, 395, 382, 362, 9, 66, 30, 59, 56, 102, 185, 173, 265, 142, 253, 232, 400, 388, 378, 445, 16, 111, 54, 52, 100, 184, 178, 160, 133, 257, 244, 228, 217, 385, 366, 715, 10, 98, 48, 91, 88, 165, 157, 148, 261, 248, 407, 397, 372, 380, 889, 884, 8, 85, 84, 81, 159, 156, 143, 260, 249, 427, 401, 392, 383, 727, 713, 708, 7, 154, 76, 73, 141, 131, 256, 245, 426, 406, 394, 384, 735, 359, 710, 352, 11, 139, 129, 67, 125, 247, 233, 229, 219, 393, 743, 737, 720, 885, 882, 439, 4, 243, 120, 118, 115, 227, 223, 396, 746, 742, 736, 721, 712, 706, 223, 436, 6, 202, 224, 222, 218, 216, 389, 386, 381, 364, 888, 443, 707, 440, 437, 1728, 4, 747, 211, 210, 208, 370, 379, 734, 723, 714, 1735, 883, 877, 876, 3459, 865, 2, 377, 369, 102, 187, 726, 722, 358, 711, 709, 866, 1734, 871, 3458, 870, 434, 0, 12, 10, 7, 11, 10, 17, 11, 9, 13, 12, 10, 7, 5, 3, 1, 3], F.t24HB = [15, 13, 46, 80, 146, 262, 248, 434, 426, 669, 653, 649, 621, 517, 1032, 88, 14, 12, 21, 38, 71, 130, 122, 216, 209, 198, 327, 345, 319, 297, 279, 42, 47, 22, 41, 74, 68, 128, 120, 221, 207, 194, 182, 340, 315, 295, 541, 18, 81, 39, 75, 70, 134, 125, 116, 220, 204, 190, 178, 325, 311, 293, 271, 16, 147, 72, 69, 135, 127, 118, 112, 210, 200, 188, 352, 323, 306, 285, 540, 14, 263, 66, 129, 126, 119, 114, 214, 202, 192, 180, 341, 317, 301, 281, 262, 12, 249, 123, 121, 117, 113, 215, 206, 195, 185, 347, 330, 308, 291, 272, 520, 10, 435, 115, 111, 109, 211, 203, 196, 187, 353, 332, 313, 298, 283, 531, 381, 17, 427, 212, 208, 205, 201, 193, 186, 177, 169, 320, 303, 286, 268, 514, 377, 16, 335, 199, 197, 191, 189, 181, 174, 333, 321, 305, 289, 275, 521, 379, 371, 11, 668, 184, 183, 179, 175, 344, 331, 314, 304, 290, 277, 530, 383, 373, 366, 10, 652, 346, 171, 168, 164, 318, 309, 299, 287, 276, 263, 513, 375, 368, 362, 6, 648, 322, 316, 312, 307, 302, 292, 284, 269, 261, 512, 376, 370, 364, 359, 4, 620, 300, 296, 294, 288, 282, 273, 266, 515, 380, 374, 369, 365, 361, 357, 2, 1033, 280, 278, 274, 267, 264, 259, 382, 378, 372, 367, 363, 360, 358, 356, 0, 43, 20, 19, 17, 15, 13, 11, 9, 7, 6, 4, 7, 5, 3, 1, 3], F.t32HB = [1, 10, 8, 20, 12, 20, 16, 32, 14, 12, 24, 0, 28, 16, 24, 16], F.t33HB = [15, 28, 26, 48, 22, 40, 36, 64, 14, 24, 20, 32, 12, 16, 8, 0], F.t1l = [1, 4, 3, 5], F.t2l = [1, 4, 7, 4, 5, 7, 6, 7, 8], F.t3l = [2, 3, 7, 4, 4, 7, 6, 7, 8], F.t5l = [1, 4, 7, 8, 4, 5, 8, 9, 7, 8, 9, 10, 8, 8, 9, 10], F.t6l = [3, 4, 6, 8, 4, 4, 6, 7, 5, 6, 7, 8, 7, 7, 8, 9], F.t7l = [1, 4, 7, 9, 9, 10, 4, 6, 8, 9, 9, 10, 7, 7, 9, 10, 10, 11, 8, 9, 10, 11, 11, 11, 8, 9, 10, 11, 11, 12, 9, 10, 11, 12, 12, 12], F.t8l = [2, 4, 7, 9, 9, 10, 4, 4, 6, 10, 10, 10, 7, 6, 8, 10, 10, 11, 9, 10, 10, 11, 11, 12, 9, 9, 10, 11, 12, 12, 10, 10, 11, 11, 13, 13], F.t9l = [3, 4, 6, 7, 9, 10, 4, 5, 6, 7, 8, 10, 5, 6, 7, 8, 9, 10, 7, 7, 8, 9, 9, 10, 8, 8, 9, 9, 10, 11, 9, 9, 10, 10, 11, 11], F.t10l = [1, 4, 7, 9, 10, 10, 10, 11, 4, 6, 8, 9, 10, 11, 10, 10, 7, 8, 9, 10, 11, 12, 11, 11, 8, 9, 10, 11, 12, 12, 11, 12, 9, 10, 11, 12, 12, 12, 12, 12, 10, 11, 12, 12, 13, 13, 12, 13, 9, 10, 11, 12, 12, 12, 13, 13, 10, 10, 11, 12, 12, 13, 13, 13], F.t11l = [2, 4, 6, 8, 9, 10, 9, 10, 4, 5, 6, 8, 10, 10, 9, 10, 6, 7, 8, 9, 10, 11, 10, 10, 8, 8, 9, 11, 10, 12, 10, 11, 9, 10, 10, 11, 11, 12, 11, 12, 9, 10, 11, 12, 12, 13, 12, 13, 9, 9, 9, 10, 11, 12, 12, 12, 9, 9, 10, 11, 12, 12, 12, 12], F.t12l = [4, 4, 6, 8, 9, 10, 10, 10, 4, 5, 6, 7, 9, 9, 10, 10, 6, 6, 7, 8, 9, 10, 9, 10, 7, 7, 8, 8, 9, 10, 10, 10, 8, 8, 9, 9, 10, 10, 10, 11, 9, 9, 10, 10, 10, 11, 10, 11, 9, 9, 9, 10, 10, 11, 11, 12, 10, 10, 10, 11, 11, 11, 11, 12], F.t13l = [1, 5, 7, 8, 9, 10, 10, 11, 10, 11, 12, 12, 13, 13, 14, 14, 4, 6, 8, 9, 10, 10, 11, 11, 11, 11, 12, 12, 13, 14, 14, 14, 7, 8, 9, 10, 11, 11, 12, 12, 11, 12, 12, 13, 13, 14, 15, 15, 8, 9, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 15, 15, 9, 9, 11, 11, 12, 12, 13, 13, 12, 13, 13, 14, 14, 15, 15, 16, 10, 10, 11, 12, 12, 12, 13, 13, 13, 13, 14, 13, 15, 15, 16, 16, 10, 11, 12, 12, 13, 13, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16, 11, 11, 12, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 18, 18, 10, 10, 11, 12, 12, 13, 13, 14, 14, 14, 14, 15, 15, 16, 17, 17, 11, 11, 12, 12, 13, 13, 13, 15, 14, 15, 15, 16, 16, 16, 18, 17, 11, 12, 12, 13, 13, 14, 14, 15, 14, 15, 16, 15, 16, 17, 18, 19, 12, 12, 12, 13, 14, 14, 14, 14, 15, 15, 15, 16, 17, 17, 17, 18, 12, 13, 13, 14, 14, 15, 14, 15, 16, 16, 17, 17, 17, 18, 18, 18, 13, 13, 14, 15, 15, 15, 16, 16, 16, 16, 16, 17, 18, 17, 18, 18, 14, 14, 14, 15, 15, 15, 17, 16, 16, 19, 17, 17, 17, 19, 18, 18, 13, 14, 15, 16, 16, 16, 17, 16, 17, 17, 18, 18, 21, 20, 21, 18], F.t15l = [3, 5, 6, 8, 8, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 14, 5, 5, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 13, 6, 7, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 13, 13, 13, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13, 9, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 13, 13, 13, 14, 10, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 14, 14, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 14, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 14, 14, 14, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 15, 14, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 15, 12, 12, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 14, 14, 15, 15, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 14, 15, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 15, 15], F.t16_5l = [1, 5, 7, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 11, 4, 6, 8, 9, 10, 11, 11, 11, 12, 12, 12, 13, 14, 13, 14, 11, 7, 8, 9, 10, 11, 11, 12, 12, 13, 12, 13, 13, 13, 14, 14, 12, 9, 9, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 13, 10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 12, 10, 10, 11, 11, 12, 13, 13, 14, 13, 14, 14, 15, 15, 15, 16, 13, 11, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 16, 13, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 17, 17, 13, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 13, 12, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 15, 16, 15, 14, 12, 13, 12, 13, 14, 14, 14, 14, 15, 16, 16, 16, 17, 17, 16, 13, 13, 13, 13, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 14, 13, 14, 14, 14, 14, 15, 15, 15, 15, 17, 16, 16, 16, 16, 18, 14, 15, 14, 14, 14, 15, 15, 16, 16, 16, 18, 17, 17, 17, 19, 17, 14, 14, 15, 13, 14, 16, 16, 15, 16, 16, 17, 18, 17, 19, 17, 16, 14, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 12], F.t16l = [1, 5, 7, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 10, 4, 6, 8, 9, 10, 11, 11, 11, 12, 12, 12, 13, 14, 13, 14, 10, 7, 8, 9, 10, 11, 11, 12, 12, 13, 12, 13, 13, 13, 14, 14, 11, 9, 9, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 12, 10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 11, 10, 10, 11, 11, 12, 13, 13, 14, 13, 14, 14, 15, 15, 15, 16, 12, 11, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 16, 12, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 17, 17, 12, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 12, 12, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 15, 16, 15, 13, 12, 13, 12, 13, 14, 14, 14, 14, 15, 16, 16, 16, 17, 17, 16, 12, 13, 13, 13, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 17, 16, 16, 16, 16, 18, 13, 15, 14, 14, 14, 15, 15, 16, 16, 16, 18, 17, 17, 17, 19, 17, 13, 14, 15, 13, 14, 16, 16, 15, 16, 16, 17, 18, 17, 19, 17, 16, 13, 10, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 10], F.t24l = [4, 5, 7, 8, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 13, 10, 5, 6, 7, 8, 9, 10, 10, 11, 11, 11, 12, 12, 12, 12, 12, 10, 7, 7, 8, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 9, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 12, 13, 9, 10, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 9, 11, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 10, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 10, 12, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 10, 12, 12, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 10, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 10, 13, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 6], F.t32l = [1, 5, 5, 7, 5, 8, 7, 9, 5, 7, 7, 9, 7, 9, 9, 10], F.t33l = [4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8], F.ht = [new e(0, 0, null, null), new e(2, 0, F.t1HB, F.t1l), new e(3, 0, F.t2HB, F.t2l), new e(3, 0, F.t3HB, F.t3l), new e(0, 0, null, null), new e(4, 0, F.t5HB, F.t5l), new e(4, 0, F.t6HB, F.t6l), new e(6, 0, F.t7HB, F.t7l), new e(6, 0, F.t8HB, F.t8l), new e(6, 0, F.t9HB, F.t9l), new e(8, 0, F.t10HB, F.t10l), new e(8, 0, F.t11HB, F.t11l), new e(8, 0, F.t12HB, F.t12l), new e(16, 0, F.t13HB, F.t13l), new e(0, 0, null, F.t16_5l), new e(16, 0, F.t15HB, F.t15l), new e(1, 1, F.t16HB, F.t16l), new e(2, 3, F.t16HB, F.t16l), new e(3, 7, F.t16HB, F.t16l), new e(4, 15, F.t16HB, F.t16l), new e(6, 63, F.t16HB, F.t16l), new e(8, 255, F.t16HB, F.t16l), new e(10, 1023, F.t16HB, F.t16l), new e(13, 8191, F.t16HB, F.t16l), new e(4, 15, F.t24HB, F.t24l), new e(5, 31, F.t24HB, F.t24l), new e(6, 63, F.t24HB, F.t24l), new e(7, 127, F.t24HB, F.t24l), new e(8, 255, F.t24HB, F.t24l), new e(9, 511, F.t24HB, F.t24l), new e(11, 2047, F.t24HB, F.t24l), new e(13, 8191, F.t24HB, F.t24l), new e(0, 0, F.t32HB, F.t32l), new e(0, 0, F.t33HB, F.t33l)], F.largetbl = [65540, 327685, 458759, 589832, 655369, 655370, 720906, 720907, 786443, 786444, 786444, 851980, 851980, 851980, 917517, 655370, 262149, 393222, 524295, 589832, 655369, 720906, 720906, 720907, 786443, 786443, 786444, 851980, 917516, 851980, 917516, 655370, 458759, 524295, 589832, 655369, 720905, 720906, 786442, 786443, 851979, 786443, 851979, 851980, 851980, 917516, 917517, 720905, 589832, 589832, 655369, 720905, 720906, 786442, 786442, 786443, 851979, 851979, 917515, 917516, 917516, 983052, 983052, 786441, 655369, 655369, 720905, 720906, 786442, 786442, 851978, 851979, 851979, 917515, 917516, 917516, 983052, 983052, 983053, 720905, 655370, 655369, 720906, 720906, 786442, 851978, 851979, 917515, 851979, 917515, 917516, 983052, 983052, 983052, 1048588, 786441, 720906, 720906, 720906, 786442, 851978, 851979, 851979, 851979, 917515, 917516, 917516, 917516, 983052, 983052, 1048589, 786441, 720907, 720906, 786442, 786442, 851979, 851979, 851979, 917515, 917516, 983052, 983052, 983052, 983052, 1114125, 1114125, 786442, 720907, 786443, 786443, 851979, 851979, 851979, 917515, 917515, 983051, 983052, 983052, 983052, 1048588, 1048589, 1048589, 786442, 786443, 786443, 786443, 851979, 851979, 917515, 917515, 983052, 983052, 983052, 983052, 1048588, 983053, 1048589, 983053, 851978, 786444, 851979, 786443, 851979, 917515, 917516, 917516, 917516, 983052, 1048588, 1048588, 1048589, 1114125, 1114125, 1048589, 786442, 851980, 851980, 851979, 851979, 917515, 917516, 983052, 1048588, 1048588, 1048588, 1048588, 1048589, 1048589, 983053, 1048589, 851978, 851980, 917516, 917516, 917516, 917516, 983052, 983052, 983052, 983052, 1114124, 1048589, 1048589, 1048589, 1048589, 1179661, 851978, 983052, 917516, 917516, 917516, 983052, 983052, 1048588, 1048588, 1048589, 1179661, 1114125, 1114125, 1114125, 1245197, 1114125, 851978, 917517, 983052, 851980, 917516, 1048588, 1048588, 983052, 1048589, 1048589, 1114125, 1179661, 1114125, 1245197, 1114125, 1048589, 851978, 655369, 655369, 655369, 720905, 720905, 786441, 786441, 786441, 851977, 851977, 851977, 851978, 851978, 851978, 851978, 655366], F.table23 = [65538, 262147, 458759, 262148, 327684, 458759, 393222, 458759, 524296], F.table56 = [65539, 262148, 458758, 524296, 262148, 327684, 524294, 589831, 458757, 524294, 589831, 655368, 524295, 524295, 589832, 655369], F.bitrate_table = [[0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, -1], [0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, -1], [0, 8, 16, 24, 32, 40, 48, 56, 64, -1, -1, -1, -1, -1, -1, -1]], F.samplerate_table = [[22050, 24e3, 16e3, -1], [44100, 48e3, 32e3, -1], [11025, 12e3, 8e3, -1]], F.scfsi_band = [0, 6, 11, 16, 21], x.Q_MAX = 257, x.Q_MAX2 = 116, x.LARGE_BITS = 1e5, x.IXMAX_VAL = 8206; + var z = {}; + function w() { + var v, g, M; this.rv = null, this.qupvt = null; var w, - s = new function () { + n = new function () { this.setModules = function (e, t) {}; }(); - function S(e) { + function R(e) { this.ordinal = e; } function o(e) { for (var t = 0; t < e.sfbmax; t++) if (e.scalefac[t] + e.subblock_gain[e.window[t]] == 0) return !1; return !0; } - function M(e, t, a, n, s) { + function A(e, t, a, s, n) { var r; switch (e) { default: @@ -35912,10 +35614,13 @@ src: recorder-core.js,engine/mp3.js,engine/mp3-engine.js 0 < t.over_count ? (r = a.over_SSD <= t.over_SSD, a.over_SSD == t.over_SSD && (r = a.bits < t.bits)) : r = a.max_noise < 0 && 10 * a.max_noise + a.bits <= 10 * t.max_noise + t.bits; break; case 0: - r = a.over_count < t.over_count || a.over_count == t.over_count && a.over_noise < t.over_noise || a.over_count == t.over_count && N.EQ(a.over_noise, t.over_noise) && a.tot_noise < t.tot_noise; + r = a.over_count < t.over_count || a.over_count == t.over_count && a.over_noise < t.over_noise || a.over_count == t.over_count && q.EQ(a.over_noise, t.over_noise) && a.tot_noise < t.tot_noise; break; case 8: - me(); + a.max_noise = function (e, t) { + for (var a, s = 1e-37, n = 0; n < t.psymax; n++) s += (a = e[n], ee.FAST_LOG10(.368 + .632 * a * a * a)); + return Math.max(1e-20, s); + }(n, s); case 1: r = a.max_noise < t.max_noise; break; @@ -35929,25 +35634,25 @@ src: recorder-core.js,engine/mp3.js,engine/mp3-engine.js r = a.max_noise <= 0 && .2 < t.max_noise || a.max_noise <= 0 && t.max_noise < 0 && t.max_noise > a.max_noise - .2 && a.tot_noise < t.tot_noise || a.max_noise <= 0 && 0 < t.max_noise && t.max_noise > a.max_noise - .2 && a.tot_noise < t.tot_noise + t.over_noise || 0 < a.max_noise && -.05 < t.max_noise && t.max_noise > a.max_noise - .1 && a.tot_noise + a.over_noise < t.tot_noise + t.over_noise || 0 < a.max_noise && -.1 < t.max_noise && t.max_noise > a.max_noise - .15 && a.tot_noise + a.over_noise + a.over_noise < t.tot_noise + t.over_noise + t.over_noise; break; case 5: - r = a.over_noise < t.over_noise || N.EQ(a.over_noise, t.over_noise) && a.tot_noise < t.tot_noise; + r = a.over_noise < t.over_noise || q.EQ(a.over_noise, t.over_noise) && a.tot_noise < t.tot_noise; break; case 6: - r = a.over_noise < t.over_noise || N.EQ(a.over_noise, t.over_noise) && (a.max_noise < t.max_noise || N.EQ(a.max_noise, t.max_noise) && a.tot_noise <= t.tot_noise); + r = a.over_noise < t.over_noise || q.EQ(a.over_noise, t.over_noise) && (a.max_noise < t.max_noise || q.EQ(a.max_noise, t.max_noise) && a.tot_noise <= t.tot_noise); break; case 7: r = a.over_count < t.over_count || a.over_noise < t.over_noise; } return 0 == t.over_count && (r = r && a.bits < t.bits), r; } - function y(e, t, a, n, s) { + function B(e, t, a, s, n) { var r = e.internal_flags; - !function (e, t, a, n, s) { + !function (e, t, a, s, n) { var r, i = e.internal_flags; r = 0 == t.scalefac_scale ? 1.2968395546510096 : 1.6817928305074292; for (var o = 0, _ = 0; _ < t.sfbmax; _++) o < a[_] && (o = a[_]); var l = i.noise_shaping_amp; - switch (3 == l && me(), l) { + switch (3 == l && (l = n ? 2 : 1), l) { case 2: break; case 1: @@ -35957,536 +35662,734 @@ src: recorder-core.js,engine/mp3.js,engine/mp3-engine.js default: 1 < o ? o = 1 : o *= .95; } - for (var f = 0, _ = 0; _ < t.sfbmax; _++) { + var f = 0; + for (_ = 0; _ < t.sfbmax; _++) { var c, - u = t.width[_]; - if (f += u, !(a[_] < o)) { - for (0 != (2 & i.substep_shaping) && me(), t.scalefac[_]++, c = -u; c < 0; c++) n[f + c] *= r, n[f + c] > t.xrpow_max && (t.xrpow_max = n[f + c]); + h = t.width[_]; + if (f += h, !(a[_] < o)) { + if (0 != (2 & i.substep_shaping) && (i.pseudohalf[_] = 0 == i.pseudohalf[_] ? 1 : 0, 0 == i.pseudohalf[_] && 2 == i.noise_shaping_amp)) return; + for (t.scalefac[_]++, c = -h; c < 0; c++) s[f + c] *= r, s[f + c] > t.xrpow_max && (t.xrpow_max = s[f + c]); if (2 == i.noise_shaping_amp) return; } } - }(e, t, a, n); + }(e, t, a, s, n); var i = o(t); - return !(i || (i = 2 == r.mode_gr ? w.scale_bitcount(t) : w.scale_bitcount_lsf(r, t)) && (1 < r.noise_shaping && (we.fill(r.pseudohalf, 0), 0 == t.scalefac_scale ? (function (e, t) { - for (var a = 0, n = 0; n < e.sfbmax; n++) { - var s = e.width[n], - r = e.scalefac[n]; - if (0 != e.preflag && (r += g.pretab[n]), a += s, 0 != (1 & r)) { + return !i && (!(i = 2 == r.mode_gr ? w.scale_bitcount(t) : w.scale_bitcount_lsf(r, t)) || (1 < r.noise_shaping && (ye.fill(r.pseudohalf, 0), 0 == t.scalefac_scale ? (!function (e, t) { + for (var a = 0, s = 0; s < e.sfbmax; s++) { + var n = e.width[s], + r = e.scalefac[s]; + if (0 != e.preflag && (r += M.pretab[s]), a += n, 0 != (1 & r)) { r++; - for (var i = -s; i < 0; i++) t[a + i] *= 1.2968395546510096, t[a + i] > e.xrpow_max && (e.xrpow_max = t[a + i]); + for (var i = -n; i < 0; i++) t[a + i] *= 1.2968395546510096, t[a + i] > e.xrpow_max && (e.xrpow_max = t[a + i]); } - e.scalefac[n] = r >> 1; + e.scalefac[s] = r >> 1; } e.preflag = 0, e.scalefac_scale = 1; - }(t, n), i = !1) : t.block_type == Ae.SHORT_TYPE && 0 < r.subblock_gain && (i = function (e, t, a) { - var n, - s = t.scalefac; - for (n = 0; n < t.sfb_lmax; n++) if (16 <= s[n]) return !0; + }(t, s), i = !1) : t.block_type == Pe.SHORT_TYPE && 0 < r.subblock_gain && (i = function (e, t, a) { + var s, + n = t.scalefac; + for (s = 0; s < t.sfb_lmax; s++) if (16 <= n[s]) return !0; for (var r = 0; r < 3; r++) { var i = 0, o = 0; - for (n = t.sfb_lmax + r; n < t.sfbdivide; n += 3) i < s[n] && (i = s[n]); - for (; n < t.sfbmax; n += 3) o < s[n] && (o = s[n]); + for (s = t.sfb_lmax + r; s < t.sfbdivide; s += 3) i < n[s] && (i = n[s]); + for (; s < t.sfbmax; s += 3) o < n[s] && (o = n[s]); if (!(i < 16 && o < 8)) { if (7 <= t.subblock_gain[r]) return !0; t.subblock_gain[r]++; var _ = e.scalefac_band.l[t.sfb_lmax]; - for (n = t.sfb_lmax + r; n < t.sfbmax; n += 3) { - var l = t.width[n], - f = s[n]; - if (0 <= (f -= 4 >> t.scalefac_scale)) s[n] = f, _ += 3 * l;else { - s[n] = 0; + for (s = t.sfb_lmax + r; s < t.sfbmax; s += 3) { + var l = t.width[s], + f = n[s]; + if (0 <= (f -= 4 >> t.scalefac_scale)) n[s] = f, _ += 3 * l;else { + n[s] = 0; var c = 210 + (f << t.scalefac_scale + 1); - h = g.IPOW20(c), _ += l * (r + 1); - for (var u = -l; u < 0; u++) a[_ + u] *= h, a[_ + u] > t.xrpow_max && (t.xrpow_max = a[_ + u]); + u = M.IPOW20(c), _ += l * (r + 1); + for (var h = -l; h < 0; h++) a[_ + h] *= u, a[_ + h] > t.xrpow_max && (t.xrpow_max = a[_ + h]); _ += l * (3 - r - 1); } } - var h = g.IPOW20(202); - _ += t.width[n] * (r + 1); - for (var u = -t.width[n]; u < 0; u++) a[_ + u] *= h, a[_ + u] > t.xrpow_max && (t.xrpow_max = a[_ + u]); + var u = M.IPOW20(202); + for (_ += t.width[s] * (r + 1), h = -t.width[s]; h < 0; h++) a[_ + h] *= u, a[_ + h] > t.xrpow_max && (t.xrpow_max = a[_ + h]); } } return !1; - }(r, t, n) || o(t))), i || (i = 2 == r.mode_gr ? w.scale_bitcount(t) : w.scale_bitcount_lsf(r, t)), i)); + }(r, t, s) || o(t))), i || (i = 2 == r.mode_gr ? w.scale_bitcount(t) : w.scale_bitcount_lsf(r, t)), !i)); } - this.setModules = function (e, t, a, n) { - r = t, this.rv = t, g = a, this.qupvt = a, w = n, s.setModules(g, w); + this.setModules = function (e, t, a, s) { + v = e, g = t, this.rv = t, M = a, this.qupvt = a, w = s, n.setModules(M, w); + }, this.ms_convert = function (e, t) { + for (var a = 0; a < 576; ++a) { + var s = e.tt[t][0].xr[a], + n = e.tt[t][1].xr[a]; + e.tt[t][0].xr[a] = (s + n) * (.5 * ee.SQRT2), e.tt[t][1].xr[a] = (s - n) * (.5 * ee.SQRT2); + } }, this.init_xrpow = function (e, t, a) { - var n = 0, - s = 0 | t.max_nonzero_coeff; - if (t.xrpow_max = 0, we.fill(a, s, 576, 0), 1e-20 < (n = function (e, t, a, n) { - for (var s = n = 0; s <= a; ++s) { - var r = Math.abs(e.xr[s]); - n += r, t[s] = Math.sqrt(r * Math.sqrt(r)), t[s] > e.xrpow_max && (e.xrpow_max = t[s]); + var s = 0, + n = 0 | t.max_nonzero_coeff; + if (t.xrpow_max = 0, ye.fill(a, n, 576, 0), 1e-20 < (s = function (e, t, a, s) { + for (var n = s = 0; n <= a; ++n) { + var r = Math.abs(e.xr[n]); + s += r, t[n] = Math.sqrt(r * Math.sqrt(r)), t[n] > e.xrpow_max && (e.xrpow_max = t[n]); } - return n; - }(t, a, s, n))) { + return s; + }(t, a, n, s))) { var r = 0; 0 != (2 & e.substep_shaping) && (r = 1); for (var i = 0; i < t.psymax; i++) e.pseudohalf[i] = r; return !0; } - return we.fill(t.l3_enc, 0, 576, 0), !1; + return ye.fill(t.l3_enc, 0, 576, 0), !1; }, this.init_outer_loop = function (e, t) { - t.part2_3_length = 0, t.big_values = 0, t.count1 = 0, t.global_gain = 210, t.scalefac_compress = 0, t.table_select[0] = 0, t.table_select[1] = 0, t.table_select[2] = 0, t.subblock_gain[0] = 0, t.subblock_gain[1] = 0, t.subblock_gain[2] = 0, t.subblock_gain[3] = 0, t.region0_count = 0, t.region1_count = 0, t.preflag = 0, t.scalefac_scale = 0, t.count1table_select = 0, t.part2_length = 0, t.sfb_lmax = Ae.SBPSY_l, t.sfb_smin = Ae.SBPSY_s, t.psy_lmax = e.sfb21_extra ? Ae.SBMAX_l : Ae.SBPSY_l, t.psymax = t.psy_lmax, t.sfbmax = t.sfb_lmax, t.sfbdivide = 11; - for (var a = 0; a < Ae.SBMAX_l; a++) t.width[a] = e.scalefac_band.l[a + 1] - e.scalefac_band.l[a], t.window[a] = 3; - if (t.block_type == Ae.SHORT_TYPE) { - var n = de(576); - t.sfb_smin = 0, (t.sfb_lmax = 0) != t.mixed_block_flag && me(), t.psymax = t.sfb_lmax + 3 * ((e.sfb21_extra ? Ae.SBMAX_s : Ae.SBPSY_s) - t.sfb_smin), t.sfbmax = t.sfb_lmax + 3 * (Ae.SBPSY_s - t.sfb_smin), t.sfbdivide = t.sfbmax - 18, t.psy_lmax = t.sfb_lmax; - var s = e.scalefac_band.l[t.sfb_lmax]; - I.arraycopy(t.xr, 0, n, 0, 576); - for (var a = t.sfb_smin; a < Ae.SBMAX_s; a++) for (var r = e.scalefac_band.s[a], i = e.scalefac_band.s[a + 1], o = 0; o < 3; o++) for (var _ = r; _ < i; _++) t.xr[s++] = n[3 * _ + o]; - for (var l = t.sfb_lmax, a = t.sfb_smin; a < Ae.SBMAX_s; a++) t.width[l] = t.width[l + 1] = t.width[l + 2] = e.scalefac_band.s[a + 1] - e.scalefac_band.s[a], t.window[l] = 0, t.window[l + 1] = 1, t.window[l + 2] = 2, l += 3; + t.part2_3_length = 0, t.big_values = 0, t.count1 = 0, t.global_gain = 210, t.scalefac_compress = 0, t.table_select[0] = 0, t.table_select[1] = 0, t.table_select[2] = 0, t.subblock_gain[0] = 0, t.subblock_gain[1] = 0, t.subblock_gain[2] = 0, t.subblock_gain[3] = 0, t.region0_count = 0, t.region1_count = 0, t.preflag = 0, t.scalefac_scale = 0, t.count1table_select = 0, t.part2_length = 0, t.sfb_lmax = Pe.SBPSY_l, t.sfb_smin = Pe.SBPSY_s, t.psy_lmax = e.sfb21_extra ? Pe.SBMAX_l : Pe.SBPSY_l, t.psymax = t.psy_lmax, t.sfbmax = t.sfb_lmax, t.sfbdivide = 11; + for (var a = 0; a < Pe.SBMAX_l; a++) t.width[a] = e.scalefac_band.l[a + 1] - e.scalefac_band.l[a], t.window[a] = 3; + if (t.block_type == Pe.SHORT_TYPE) { + var s = Be(576); + t.sfb_smin = 0, (t.sfb_lmax = 0) != t.mixed_block_flag && (t.sfb_smin = 3, t.sfb_lmax = 2 * e.mode_gr + 4), t.psymax = t.sfb_lmax + 3 * ((e.sfb21_extra ? Pe.SBMAX_s : Pe.SBPSY_s) - t.sfb_smin), t.sfbmax = t.sfb_lmax + 3 * (Pe.SBPSY_s - t.sfb_smin), t.sfbdivide = t.sfbmax - 18, t.psy_lmax = t.sfb_lmax; + var n = e.scalefac_band.l[t.sfb_lmax]; + $.arraycopy(t.xr, 0, s, 0, 576); + for (a = t.sfb_smin; a < Pe.SBMAX_s; a++) for (var r = e.scalefac_band.s[a], i = e.scalefac_band.s[a + 1], o = 0; o < 3; o++) for (var _ = r; _ < i; _++) t.xr[n++] = s[3 * _ + o]; + var l = t.sfb_lmax; + for (a = t.sfb_smin; a < Pe.SBMAX_s; a++) t.width[l] = t.width[l + 1] = t.width[l + 2] = e.scalefac_band.s[a + 1] - e.scalefac_band.s[a], t.window[l] = 0, t.window[l + 1] = 1, t.window[l + 2] = 2, l += 3; } - t.count1bits = 0, t.sfb_partition_table = g.nr_of_sfb_block[0][0], t.slen[0] = 0, t.slen[1] = 0, t.slen[2] = 0, t.slen[3] = 0, t.max_nonzero_coeff = 575, we.fill(t.scalefac, 0), function (e, t) { + t.count1bits = 0, t.sfb_partition_table = M.nr_of_sfb_block[0][0], t.slen[0] = 0, t.slen[1] = 0, t.slen[2] = 0, t.slen[3] = 0, t.max_nonzero_coeff = 575, ye.fill(t.scalefac, 0), function (e, t) { var a = e.ATH, - n = t.xr; - if (t.block_type != Ae.SHORT_TYPE) for (var s = !1, r = Ae.PSFB21 - 1; 0 <= r && !s; r--) { + s = t.xr; + if (t.block_type != Pe.SHORT_TYPE) for (var n = !1, r = Pe.PSFB21 - 1; 0 <= r && !n; r--) { var i = e.scalefac_band.psfb21[r], o = e.scalefac_band.psfb21[r + 1], - _ = g.athAdjust(a.adjust, a.psfb21[r], a.floor); + _ = M.athAdjust(a.adjust, a.psfb21[r], a.floor); 1e-12 < e.nsPsy.longfact[21] && (_ *= e.nsPsy.longfact[21]); for (var l = o - 1; i <= l; l--) { - if (!(Math.abs(n[l]) < _)) { - s = !0; + if (!(Math.abs(s[l]) < _)) { + n = !0; break; } - n[l] = 0; + s[l] = 0; } - } else for (var f = 0; f < 3; f++) for (var s = !1, r = Ae.PSFB12 - 1; 0 <= r && !s; r--) { - var i = 3 * e.scalefac_band.s[12] + (e.scalefac_band.s[13] - e.scalefac_band.s[12]) * f + (e.scalefac_band.psfb12[r] - e.scalefac_band.psfb12[0]), - o = i + (e.scalefac_band.psfb12[r + 1] - e.scalefac_band.psfb12[r]), - c = g.athAdjust(a.adjust, a.psfb12[r], a.floor); - 1e-12 < e.nsPsy.shortfact[12] && (c *= e.nsPsy.shortfact[12]); - for (var l = o - 1; i <= l; l--) { - if (!(Math.abs(n[l]) < c)) { - s = !0; + } else for (var f = 0; f < 3; f++) for (n = !1, r = Pe.PSFB12 - 1; 0 <= r && !n; r--) { + o = (i = 3 * e.scalefac_band.s[12] + (e.scalefac_band.s[13] - e.scalefac_band.s[12]) * f + (e.scalefac_band.psfb12[r] - e.scalefac_band.psfb12[0])) + (e.scalefac_band.psfb12[r + 1] - e.scalefac_band.psfb12[r]); + var c = M.athAdjust(a.adjust, a.psfb12[r], a.floor); + for (1e-12 < e.nsPsy.shortfact[12] && (c *= e.nsPsy.shortfact[12]), l = o - 1; i <= l; l--) { + if (!(Math.abs(s[l]) < c)) { + n = !0; break; } - n[l] = 0; + s[l] = 0; } } }(e, t); - }, S.BINSEARCH_NONE = new S(0), S.BINSEARCH_UP = new S(1), S.BINSEARCH_DOWN = new S(2), this.outer_loop = function (e, t, a, n, s, r) { + }, R.BINSEARCH_NONE = new R(0), R.BINSEARCH_UP = new R(1), R.BINSEARCH_DOWN = new R(2), this.trancate_smallspectrums = function (e, t, a, s) { + var n = Be(z.SFBMAX); + if ((0 != (4 & e.substep_shaping) || t.block_type != Pe.SHORT_TYPE) && 0 == (128 & e.substep_shaping)) { + M.calc_noise(t, a, n, new y(), null); + for (var r = 0; r < 576; r++) { + var i = 0; + 0 != t.l3_enc[r] && (i = Math.abs(t.xr[r])), s[r] = i; + } + r = 0; + var o = 8; + t.block_type == Pe.SHORT_TYPE && (o = 6); + do { + var _, + l, + f, + c, + h = t.width[o]; + if (r += h, !(1 <= n[o] || (ye.sort(s, r - h, h), q.EQ(s[r - 1], 0)))) { + _ = (1 - n[o]) * a[o], c = l = 0; + do { + var u; + for (f = 1; c + f < h && !q.NEQ(s[c + r - h], s[c + r + f - h]); f++); + if (_ < (u = s[c + r - h] * s[c + r - h] * f)) { + 0 != c && (l = s[c + r - h - 1]); + break; + } + _ -= u, c += f; + } while (c < h); + if (!q.EQ(l, 0)) for (; Math.abs(t.xr[r - h]) <= l && (t.l3_enc[r - h] = 0), 0 < --h;); + } + } while (++o < t.psymax); + t.part2_3_length = w.noquant_count_bits(e, t, null); + } + }, this.outer_loop = function (e, t, a, s, n, r) { var i = e.internal_flags, - o = new B(), - _ = de(576), - l = de(F.SFBMAX), - f = new x(), + o = new T(), + _ = Be(576), + l = Be(z.SFBMAX), + f = new y(), c = new function () { - this.global_gain = 0, this.sfb_count1 = 0, this.step = ve(39), this.noise = de(39), this.noise_log = de(39); + this.global_gain = 0, this.sfb_count1 = 0, this.step = Ae(39), this.noise = Be(39), this.noise_log = Be(39); }(), - u = 9999999, - h = !1; - if (function (e, t, a, n, s) { + h = 9999999, + u = !1, + m = !1, + p = 0; + if (function (e, t, a, s, n) { var r, - i = e.CurrentStep[n], + i = e.CurrentStep[s], o = !1, - _ = e.OldValue[n], - l = S.BINSEARCH_NONE; + _ = e.OldValue[s], + l = R.BINSEARCH_NONE; for (t.global_gain = _, a -= t.part2_length;;) { var f; - if (r = w.count_bits(e, s, t, null), 1 == i || r == a) break; - a < r ? (l == S.BINSEARCH_DOWN && (o = !0), o && (i /= 2), l = S.BINSEARCH_UP, f = i) : (l == S.BINSEARCH_UP && (o = !0), o && (i /= 2), l = S.BINSEARCH_DOWN, f = -i), t.global_gain += f, t.global_gain < 0 && me(), 255 < t.global_gain && me(); + if (r = w.count_bits(e, n, t, null), 1 == i || r == a) break; + a < r ? (l == R.BINSEARCH_DOWN && (o = !0), o && (i /= 2), l = R.BINSEARCH_UP, f = i) : (l == R.BINSEARCH_UP && (o = !0), o && (i /= 2), l = R.BINSEARCH_DOWN, f = -i), t.global_gain += f, t.global_gain < 0 && (o = !(t.global_gain = 0)), 255 < t.global_gain && (t.global_gain = 255, o = !0); } - for (; a < r && t.global_gain < 255;) t.global_gain++, r = w.count_bits(e, s, t, null); - e.CurrentStep[n] = 4 <= _ - t.global_gain ? 4 : 2, e.OldValue[n] = t.global_gain, t.part2_3_length = r; - }(i, t, r, s, n), 0 == i.noise_shaping) return 100; - g.calc_noise(t, a, l, f, c), f.bits = t.part2_3_length, o.assign(t); + for (; a < r && t.global_gain < 255;) t.global_gain++, r = w.count_bits(e, n, t, null); + e.CurrentStep[s] = 4 <= _ - t.global_gain ? 4 : 2, e.OldValue[s] = t.global_gain, t.part2_3_length = r; + }(i, t, r, n, s), 0 == i.noise_shaping) return 100; + M.calc_noise(t, a, l, f, c), f.bits = t.part2_3_length, o.assign(t); var b = 0; - for (I.arraycopy(n, 0, _, 0, 576); !h;) { + for ($.arraycopy(s, 0, _, 0, 576); !u;) { do { - var p, - m = new x(), - v = 255; - if (p = 0 != (2 & i.substep_shaping) ? 20 : 3, i.sfb21_extra && me(), !y(e, o, l, n)) break; - 0 != o.scalefac_scale && (v = 254); - var d = r - o.part2_length; - if (d <= 0) break; - for (; (o.part2_3_length = w.count_bits(i, n, o, c)) > d && o.global_gain <= v;) o.global_gain++; - if (o.global_gain > v) break; - if (0 == f.over_count) { - for (; (o.part2_3_length = w.count_bits(i, n, o, c)) > u && o.global_gain <= v;) o.global_gain++; - if (o.global_gain > v) break; + var v, + d = new y(), + g = 255; + if (v = 0 != (2 & i.substep_shaping) ? 20 : 3, i.sfb21_extra) { + if (1 < l[o.sfbmax]) break; + if (o.block_type == Pe.SHORT_TYPE && (1 < l[o.sfbmax + 1] || 1 < l[o.sfbmax + 2])) break; } - if (g.calc_noise(o, a, l, m, c), m.bits = o.part2_3_length, 0 != (M(t.block_type != Ae.SHORT_TYPE ? e.quant_comp : e.quant_comp_short, f, m) ? 1 : 0)) u = t.part2_3_length, f = m, t.assign(o), b = 0, I.arraycopy(n, 0, _, 0, 576);else if (0 == i.full_outer_loop) { - if (++b > p && 0 == f.over_count) break; - i.noise_shaping_amp, i.noise_shaping_amp; + if (!B(e, o, l, s, m)) break; + 0 != o.scalefac_scale && (g = 254); + var S = r - o.part2_length; + if (S <= 0) break; + for (; (o.part2_3_length = w.count_bits(i, s, o, c)) > S && o.global_gain <= g;) o.global_gain++; + if (o.global_gain > g) break; + if (0 == f.over_count) { + for (; (o.part2_3_length = w.count_bits(i, s, o, c)) > h && o.global_gain <= g;) o.global_gain++; + if (o.global_gain > g) break; + } + if (M.calc_noise(o, a, l, d, c), d.bits = o.part2_3_length, 0 != (A(t.block_type != Pe.SHORT_TYPE ? e.quant_comp : e.quant_comp_short, f, d, o, l) ? 1 : 0)) h = t.part2_3_length, f = d, t.assign(o), b = 0, $.arraycopy(s, 0, _, 0, 576);else if (0 == i.full_outer_loop) { + if (++b > v && 0 == f.over_count) break; + if (3 == i.noise_shaping_amp && m && 30 < b) break; + if (3 == i.noise_shaping_amp && m && 15 < o.global_gain - p) break; } } while (o.global_gain + o.scalefac_scale < 255); - 3 == i.noise_shaping_amp ? me() : h = !0; + 3 == i.noise_shaping_amp ? m ? u = !0 : (o.assign(t), $.arraycopy(_, 0, s, 0, 576), b = 0, p = o.global_gain, m = !0) : u = !0; } - return e.VBR == Me.vbr_rh || e.VBR == Me.vbr_mtrh ? I.arraycopy(_, 0, n, 0, 576) : 0 != (1 & i.substep_shaping) && me(), f.over_count; + return e.VBR == xe.vbr_rh || e.VBR == xe.vbr_mtrh ? $.arraycopy(_, 0, s, 0, 576) : 0 != (1 & i.substep_shaping) && trancate_smallspectrums(i, t, a, s), f.over_count; }, this.iteration_finish_one = function (e, t, a) { - var n = e.l3_side, - s = n.tt[t][a]; - w.best_scalefac_store(e, t, a, n), 1 == e.use_best_huffman && w.best_huffman_divide(e, s), r.ResvAdjust(e, s); + var s = e.l3_side, + n = s.tt[t][a]; + w.best_scalefac_store(e, t, a, s), 1 == e.use_best_huffman && w.best_huffman_divide(e, n), g.ResvAdjust(e, n); + }, this.VBR_encode_granule = function (e, t, a, s, n, r, i) { + var o, + _ = e.internal_flags, + l = new T(), + f = Be(576), + c = i, + h = i + 1, + u = (i + r) / 2, + m = 0, + p = _.sfb21_extra; + for (ye.fill(l.l3_enc, 0); _.sfb21_extra = !(c - 42 < u) && p, outer_loop(e, t, a, s, n, u) <= 0 ? (m = 1, h = t.part2_3_length, l.assign(t), $.arraycopy(s, 0, f, 0, 576), o = (i = h - 32) - r, u = (i + r) / 2) : (o = i - (r = u + 32), u = (i + r) / 2, 0 != m && (m = 2, t.assign(l), $.arraycopy(f, 0, s, 0, 576))), 12 < o;); + _.sfb21_extra = p, 2 == m && $.arraycopy(l.l3_enc, 0, t.l3_enc, 0, 576); + }, this.get_framebits = function (e, t) { + var a = e.internal_flags; + a.bitrate_index = a.VBR_min_bitrate; + var s = v.getframebits(e); + a.bitrate_index = 1, s = v.getframebits(e); + for (var n = 1; n <= a.VBR_max_bitrate; n++) { + a.bitrate_index = n; + var r = new j(s); + t[n] = g.ResvFrameBegin(e, r), s = r.bits; + } + }, this.VBR_old_prepare = function (e, t, a, s, n, r, i, o, _) { + var l, + f = e.internal_flags, + c = 0, + h = 1, + u = 0; + f.bitrate_index = f.VBR_max_bitrate; + var m = g.ResvFrameBegin(e, new j(0)) / f.mode_gr; + get_framebits(e, r); + for (var p = 0; p < f.mode_gr; p++) { + var b = M.on_pe(e, t, o[p], m, p, 0); + f.mode_ext == Pe.MPG_MD_MS_LR && (ms_convert(f.l3_side, p), M.reduce_side(o[p], a[p], m, b)); + for (var v = 0; v < f.channels_out; ++v) { + var d = f.l3_side.tt[p][v]; + d.block_type != Pe.SHORT_TYPE ? (c = 1.28 / (1 + Math.exp(3.5 - t[p][v] / 300)) - .05, l = f.PSY.mask_adjust - c) : (c = 2.56 / (1 + Math.exp(3.5 - t[p][v] / 300)) - .14, l = f.PSY.mask_adjust_short - c), f.masking_lower = Math.pow(10, .1 * l), init_outer_loop(f, d), _[p][v] = M.calc_xmin(e, s[p][v], d, n[p][v]), 0 != _[p][v] && (h = 0), i[p][v] = 126, u += o[p][v]; + } + } + for (p = 0; p < f.mode_gr; p++) for (v = 0; v < f.channels_out; v++) u > r[f.VBR_max_bitrate] && (o[p][v] *= r[f.VBR_max_bitrate], o[p][v] /= u), i[p][v] > o[p][v] && (i[p][v] = o[p][v]); + return h; + }, this.bitpressure_strategy = function (e, t, a, s) { + for (var n = 0; n < e.mode_gr; n++) for (var r = 0; r < e.channels_out; r++) { + for (var i = e.l3_side.tt[n][r], o = t[n][r], _ = 0, l = 0; l < i.psy_lmax; l++) o[_++] *= 1 + .029 * l * l / Pe.SBMAX_l / Pe.SBMAX_l; + if (i.block_type == Pe.SHORT_TYPE) for (l = i.sfb_smin; l < Pe.SBMAX_s; l++) o[_++] *= 1 + .029 * l * l / Pe.SBMAX_s / Pe.SBMAX_s, o[_++] *= 1 + .029 * l * l / Pe.SBMAX_s / Pe.SBMAX_s, o[_++] *= 1 + .029 * l * l / Pe.SBMAX_s / Pe.SBMAX_s; + s[n][r] = 0 | Math.max(a[n][r], .9 * s[n][r]); + } + }, this.VBR_new_prepare = function (e, t, a, s, n, r) { + var i, + o = e.internal_flags, + _ = 1, + l = 0, + f = 0; + if (e.free_format) { + o.bitrate_index = 0; + c = new j(l); + i = g.ResvFrameBegin(e, c), l = c.bits, n[0] = i; + } else { + o.bitrate_index = o.VBR_max_bitrate; + var c = new j(l); + g.ResvFrameBegin(e, c), l = c.bits, get_framebits(e, n), i = n[o.VBR_max_bitrate]; + } + for (var h = 0; h < o.mode_gr; h++) { + M.on_pe(e, t, r[h], l, h, 0), o.mode_ext == Pe.MPG_MD_MS_LR && ms_convert(o.l3_side, h); + for (var u = 0; u < o.channels_out; ++u) { + var m = o.l3_side.tt[h][u]; + o.masking_lower = Math.pow(10, .1 * o.PSY.mask_adjust), init_outer_loop(o, m), 0 != M.calc_xmin(e, a[h][u], m, s[h][u]) && (_ = 0), f += r[h][u]; + } + } + for (h = 0; h < o.mode_gr; h++) for (u = 0; u < o.channels_out; u++) i < f && (r[h][u] *= i, r[h][u] /= f); + return _; + }, this.calc_target_bits = function (e, t, a, s, n, r) { + var i, + o, + _, + l, + f = e.internal_flags, + c = f.l3_side, + h = 0; + f.bitrate_index = f.VBR_max_bitrate; + var u = new j(h); + for (r[0] = g.ResvFrameBegin(e, u), h = u.bits, f.bitrate_index = 1, h = v.getframebits(e) - 8 * f.sideinfo_len, n[0] = h / (f.mode_gr * f.channels_out), h = e.VBR_mean_bitrate_kbps * e.framesize * 1e3, 0 != (1 & f.substep_shaping) && (h *= 1.09), h /= e.out_samplerate, h -= 8 * f.sideinfo_len, h /= f.mode_gr * f.channels_out, (i = .93 + .07 * (11 - e.compression_ratio) / 5.5) < .9 && (i = .9), 1 < i && (i = 1), o = 0; o < f.mode_gr; o++) { + var m = 0; + for (_ = 0; _ < f.channels_out; _++) { + if (s[o][_] = int(i * h), 700 < t[o][_]) { + var p = int((t[o][_] - 700) / 1.4), + b = c.tt[o][_]; + s[o][_] = int(i * h), b.block_type == Pe.SHORT_TYPE && p < h / 2 && (p = h / 2), 3 * h / 2 < p ? p = 3 * h / 2 : p < 0 && (p = 0), s[o][_] += p; + } + s[o][_] > Z.MAX_BITS_PER_CHANNEL && (s[o][_] = Z.MAX_BITS_PER_CHANNEL), m += s[o][_]; + } + if (Z.MAX_BITS_PER_GRANULE < m) for (_ = 0; _ < f.channels_out; ++_) s[o][_] *= Z.MAX_BITS_PER_GRANULE, s[o][_] /= m; + } + if (f.mode_ext == Pe.MPG_MD_MS_LR) for (o = 0; o < f.mode_gr; o++) M.reduce_side(s[o], a[o], h * f.channels_out, Z.MAX_BITS_PER_GRANULE); + for (o = l = 0; o < f.mode_gr; o++) for (_ = 0; _ < f.channels_out; _++) s[o][_] > Z.MAX_BITS_PER_CHANNEL && (s[o][_] = Z.MAX_BITS_PER_CHANNEL), l += s[o][_]; + if (l > r[0]) for (o = 0; o < f.mode_gr; o++) for (_ = 0; _ < f.channels_out; _++) s[o][_] *= r[0], s[o][_] /= l; }; } - function L() { + function N() { this.thm = new i(), this.en = new i(); } - function Ae() { - var k = Ae.MPG_MD_MS_LR, - R = null, - x = this.psy = null, - B = null; - this.setModules = function (e, t, a, n) { - R = e, this.psy = t, x = t, B = n; + function Pe() { + var E = Pe.FFTOFFSET, + P = Pe.MPG_MD_MS_LR, + L = null, + I = this.psy = null, + H = null, + C = null; + this.setModules = function (e, t, a, s) { + L = e, this.psy = t, I = t, H = s, C = a; }; - var T = new function () { - var u = [-.1482523854003001, 32.308141959636465, 296.40344946382766, 883.1344870032432, 11113.947376231741, 1057.2713659324597, 305.7402417275812, 30.825928907280012, 3.8533188138216365, 59.42900443849514, 709.5899960123345, 5281.91112291017, -5829.66483675846, -817.6293103748613, -76.91656988279972, -4.594269939176596, .9063471690191471, .1960342806591213, -.15466694054279598, 34.324387823855965, 301.8067566458425, 817.599602898885, 11573.795901679885, 1181.2520595540152, 321.59731579894424, 31.232021761053772, 3.7107095756221318, 53.650946155329365, 684.167428119626, 5224.56624370173, -6366.391851890084, -908.9766368219582, -89.83068876699639, -5.411397422890401, .8206787908286602, .3901806440322567, -.16070888947830023, 36.147034243915876, 304.11815768187864, 732.7429163887613, 11989.60988270091, 1300.012278487897, 335.28490093152146, 31.48816102859945, 3.373875931311736, 47.232241542899175, 652.7371796173471, 5132.414255594984, -6909.087078780055, -1001.9990371107289, -103.62185754286375, -6.104916304710272, .7416505462720353, .5805693545089249, -.16636367662261495, 37.751650073343995, 303.01103387567713, 627.9747488785183, 12358.763425278165, 1412.2779918482834, 346.7496836825721, 31.598286663170416, 3.1598635433980946, 40.57878626349686, 616.1671130880391, 5007.833007176154, -7454.040671756168, -1095.7960341867115, -118.24411666465777, -6.818469345853504, .6681786379192989, .7653668647301797, -.1716176790982088, 39.11551877123304, 298.3413246578966, 503.5259106886539, 12679.589408408976, 1516.5821921214542, 355.9850766329023, 31.395241710249053, 2.9164211881972335, 33.79716964664243, 574.8943997801362, 4853.234992253242, -7997.57021486075, -1189.7624067269965, -133.6444792601766, -7.7202770609839915, .5993769336819237, .9427934736519954, -.17645823955292173, 40.21879108166477, 289.9982036694474, 359.3226160751053, 12950.259102786438, 1612.1013903507662, 362.85067106591504, 31.045922092242872, 2.822222032597987, 26.988862316190684, 529.8996541764288, 4671.371946949588, -8535.899136645805, -1282.5898586244496, -149.58553632943463, -8.643494270763135, .5345111359507916, 1.111140466039205, -.36174739330527045, 41.04429910497807, 277.5463268268618, 195.6386023135583, 13169.43812144731, 1697.6433561479398, 367.40983966190305, 30.557037410382826, 2.531473372857427, 20.070154905927314, 481.50208566532336, 4464.970341588308, -9065.36882077239, -1373.62841526722, -166.1660487028118, -9.58289321133207, .4729647758913199, 1.268786568327291, -.36970682634889585, 41.393213350082036, 261.2935935556502, 12.935476055240873, 13336.131683328815, 1772.508612059496, 369.76534388639965, 29.751323653701338, 2.4023193045459172, 13.304795348228817, 430.5615775526625, 4237.0568611071185, -9581.931701634761, -1461.6913552409758, -183.12733958476446, -10.718010163869403, .41421356237309503, 1.414213562373095, -.37677560326535325, 41.619486213528496, 241.05423794991074, -187.94665032361226, 13450.063605744153, 1836.153896465782, 369.4908799925761, 29.001847876923147, 2.0714759319987186, 6.779591200894186, 377.7767837205709, 3990.386575512536, -10081.709459700915, -1545.947424837898, -200.3762958015653, -11.864482073055006, .3578057213145241, 1.546020906725474, -.3829366947518991, 41.1516456456653, 216.47684307105183, -406.1569483347166, 13511.136535077321, 1887.8076599260432, 367.3025214564151, 28.136213436723654, 1.913880671464418, .3829366947518991, 323.85365704338597, 3728.1472257487526, -10561.233882199509, -1625.2025997821418, -217.62525175416, -13.015432208941645, .3033466836073424, 1.66293922460509, -.5822628872992417, 40.35639251440489, 188.20071124269245, -640.2706748618148, 13519.21490106562, 1927.6022433578062, 362.8197642637487, 26.968821921868447, 1.7463817695935329, -5.62650678237171, 269.3016715297017, 3453.386536448852, -11016.145278780888, -1698.6569643425091, -234.7658734267683, -14.16351421663124, .2504869601913055, 1.76384252869671, -.5887180101749253, 39.23429103868072, 155.76096234403798, -889.2492977967378, 13475.470561874661, 1955.0535223723712, 356.4450994756727, 25.894952980042156, 1.5695032905781554, -11.181939564328772, 214.80884394039484, 3169.1640829158237, -11443.321309975563, -1765.1588461316153, -251.68908574481912, -15.49755935939164, .198912367379658, 1.847759065022573, -.7912582233652842, 37.39369355329111, 119.699486012458, -1151.0956593239027, 13380.446257078214, 1970.3952110853447, 348.01959814116185, 24.731487364283044, 1.3850130831637748, -16.421408865300393, 161.05030052864092, 2878.3322807850063, -11838.991423510031, -1823.985884688674, -268.2854986386903, -16.81724543849939, .1483359875383474, 1.913880671464418, -.7960642926861912, 35.2322109610459, 80.01928065061526, -1424.0212633405113, 13235.794061869668, 1973.804052543835, 337.9908651258184, 23.289159354463873, 1.3934255946442087, -21.099669467133474, 108.48348407242611, 2583.700758091299, -12199.726194855148, -1874.2780658979746, -284.2467154529415, -18.11369784385905, .09849140335716425, 1.961570560806461, -.998795456205172, 32.56307803611191, 36.958364584370486, -1706.075448829146, 13043.287458812016, 1965.3831106103316, 326.43182772364605, 22.175018750622293, 1.198638339011324, -25.371248002043963, 57.53505923036915, 2288.41886619975, -12522.674544337233, -1914.8400385312243, -299.26241273417224, -19.37805630698734, .04912684976946725, 1.990369453344394, .035780907 * V.SQRT2 * .5 / 2384e-9, .017876148 * V.SQRT2 * .5 / 2384e-9, .003134727 * V.SQRT2 * .5 / 2384e-9, .002457142 * V.SQRT2 * .5 / 2384e-9, 971317e-9 * V.SQRT2 * .5 / 2384e-9, 218868e-9 * V.SQRT2 * .5 / 2384e-9, 101566e-9 * V.SQRT2 * .5 / 2384e-9, 13828e-9 * V.SQRT2 * .5 / 2384e-9, 12804.797818791945, 1945.5515939597317, 313.4244966442953, 49591e-9 / 2384e-9, 1995.1556208053692, 21458e-9 / 2384e-9, -69618e-9 / 2384e-9], - A = [[2.382191739347913e-13, 6.423305872147834e-13, 9.400849094049688e-13, 1.122435026096556e-12, 1.183840321267481e-12, 1.122435026096556e-12, 9.40084909404969e-13, 6.423305872147839e-13, 2.382191739347918e-13, 5.456116108943412e-12, 4.878985199565852e-12, 4.240448995017367e-12, 3.559909094758252e-12, 2.858043359288075e-12, 2.156177623817898e-12, 1.475637723558783e-12, 8.371015190102974e-13, 2.599706096327376e-13, -5.456116108943412e-12, -4.878985199565852e-12, -4.240448995017367e-12, -3.559909094758252e-12, -2.858043359288076e-12, -2.156177623817898e-12, -1.475637723558783e-12, -8.371015190102975e-13, -2.599706096327376e-13, -2.382191739347923e-13, -6.423305872147843e-13, -9.400849094049696e-13, -1.122435026096556e-12, -1.183840321267481e-12, -1.122435026096556e-12, -9.400849094049694e-13, -6.42330587214784e-13, -2.382191739347918e-13], [2.382191739347913e-13, 6.423305872147834e-13, 9.400849094049688e-13, 1.122435026096556e-12, 1.183840321267481e-12, 1.122435026096556e-12, 9.400849094049688e-13, 6.423305872147841e-13, 2.382191739347918e-13, 5.456116108943413e-12, 4.878985199565852e-12, 4.240448995017367e-12, 3.559909094758253e-12, 2.858043359288075e-12, 2.156177623817898e-12, 1.475637723558782e-12, 8.371015190102975e-13, 2.599706096327376e-13, -5.461314069809755e-12, -4.921085770524055e-12, -4.343405037091838e-12, -3.732668368707687e-12, -3.093523840190885e-12, -2.430835727329465e-12, -1.734679010007751e-12, -9.74825365660928e-13, -2.797435120168326e-13, 0, 0, 0, 0, 0, 0, -2.283748241799531e-13, -4.037858874020686e-13, -2.146547464825323e-13], [.1316524975873958, .414213562373095, .7673269879789602, 1.091308501069271, 1.303225372841206, 1.56968557711749, 1.920982126971166, 2.414213562373094, 3.171594802363212, 4.510708503662055, 7.595754112725146, 22.90376554843115, .984807753012208, .6427876096865394, .3420201433256688, .9396926207859084, -.1736481776669303, -.7660444431189779, .8660254037844387, .5, -.5144957554275265, -.4717319685649723, -.3133774542039019, -.1819131996109812, -.09457419252642064, -.04096558288530405, -.01419856857247115, -.003699974673760037, .8574929257125442, .8817419973177052, .9496286491027329, .9833145924917901, .9955178160675857, .9991605581781475, .999899195244447, .9999931550702802], [0, 0, 0, 0, 0, 0, 2.283748241799531e-13, 4.037858874020686e-13, 2.146547464825323e-13, 5.461314069809755e-12, 4.921085770524055e-12, 4.343405037091838e-12, 3.732668368707687e-12, 3.093523840190885e-12, 2.430835727329466e-12, 1.734679010007751e-12, 9.74825365660928e-13, 2.797435120168326e-13, -5.456116108943413e-12, -4.878985199565852e-12, -4.240448995017367e-12, -3.559909094758253e-12, -2.858043359288075e-12, -2.156177623817898e-12, -1.475637723558782e-12, -8.371015190102975e-13, -2.599706096327376e-13, -2.382191739347913e-13, -6.423305872147834e-13, -9.400849094049688e-13, -1.122435026096556e-12, -1.183840321267481e-12, -1.122435026096556e-12, -9.400849094049688e-13, -6.423305872147841e-13, -2.382191739347918e-13]], - k = A[Ae.SHORT_TYPE], - S = A[Ae.SHORT_TYPE], - R = A[Ae.SHORT_TYPE], - x = A[Ae.SHORT_TYPE], - B = [0, 1, 16, 17, 8, 9, 24, 25, 4, 5, 20, 21, 12, 13, 28, 29, 2, 3, 18, 19, 10, 11, 26, 27, 6, 7, 22, 23, 14, 15, 30, 31]; - function T(e, t, a) { - for (var n, s, r, i = 10, o = t + 238 - 14 - 286, _ = -15; _ < 0; _++) { + var V = new function () { + var h = [-.1482523854003001, 32.308141959636465, 296.40344946382766, 883.1344870032432, 11113.947376231741, 1057.2713659324597, 305.7402417275812, 30.825928907280012, 3.8533188138216365, 59.42900443849514, 709.5899960123345, 5281.91112291017, -5829.66483675846, -817.6293103748613, -76.91656988279972, -4.594269939176596, .9063471690191471, .1960342806591213, -.15466694054279598, 34.324387823855965, 301.8067566458425, 817.599602898885, 11573.795901679885, 1181.2520595540152, 321.59731579894424, 31.232021761053772, 3.7107095756221318, 53.650946155329365, 684.167428119626, 5224.56624370173, -6366.391851890084, -908.9766368219582, -89.83068876699639, -5.411397422890401, .8206787908286602, .3901806440322567, -.16070888947830023, 36.147034243915876, 304.11815768187864, 732.7429163887613, 11989.60988270091, 1300.012278487897, 335.28490093152146, 31.48816102859945, 3.373875931311736, 47.232241542899175, 652.7371796173471, 5132.414255594984, -6909.087078780055, -1001.9990371107289, -103.62185754286375, -6.104916304710272, .7416505462720353, .5805693545089249, -.16636367662261495, 37.751650073343995, 303.01103387567713, 627.9747488785183, 12358.763425278165, 1412.2779918482834, 346.7496836825721, 31.598286663170416, 3.1598635433980946, 40.57878626349686, 616.1671130880391, 5007.833007176154, -7454.040671756168, -1095.7960341867115, -118.24411666465777, -6.818469345853504, .6681786379192989, .7653668647301797, -.1716176790982088, 39.11551877123304, 298.3413246578966, 503.5259106886539, 12679.589408408976, 1516.5821921214542, 355.9850766329023, 31.395241710249053, 2.9164211881972335, 33.79716964664243, 574.8943997801362, 4853.234992253242, -7997.57021486075, -1189.7624067269965, -133.6444792601766, -7.7202770609839915, .5993769336819237, .9427934736519954, -.17645823955292173, 40.21879108166477, 289.9982036694474, 359.3226160751053, 12950.259102786438, 1612.1013903507662, 362.85067106591504, 31.045922092242872, 2.822222032597987, 26.988862316190684, 529.8996541764288, 4671.371946949588, -8535.899136645805, -1282.5898586244496, -149.58553632943463, -8.643494270763135, .5345111359507916, 1.111140466039205, -.36174739330527045, 41.04429910497807, 277.5463268268618, 195.6386023135583, 13169.43812144731, 1697.6433561479398, 367.40983966190305, 30.557037410382826, 2.531473372857427, 20.070154905927314, 481.50208566532336, 4464.970341588308, -9065.36882077239, -1373.62841526722, -166.1660487028118, -9.58289321133207, .4729647758913199, 1.268786568327291, -.36970682634889585, 41.393213350082036, 261.2935935556502, 12.935476055240873, 13336.131683328815, 1772.508612059496, 369.76534388639965, 29.751323653701338, 2.4023193045459172, 13.304795348228817, 430.5615775526625, 4237.0568611071185, -9581.931701634761, -1461.6913552409758, -183.12733958476446, -10.718010163869403, .41421356237309503, 1.414213562373095, -.37677560326535325, 41.619486213528496, 241.05423794991074, -187.94665032361226, 13450.063605744153, 1836.153896465782, 369.4908799925761, 29.001847876923147, 2.0714759319987186, 6.779591200894186, 377.7767837205709, 3990.386575512536, -10081.709459700915, -1545.947424837898, -200.3762958015653, -11.864482073055006, .3578057213145241, 1.546020906725474, -.3829366947518991, 41.1516456456653, 216.47684307105183, -406.1569483347166, 13511.136535077321, 1887.8076599260432, 367.3025214564151, 28.136213436723654, 1.913880671464418, .3829366947518991, 323.85365704338597, 3728.1472257487526, -10561.233882199509, -1625.2025997821418, -217.62525175416, -13.015432208941645, .3033466836073424, 1.66293922460509, -.5822628872992417, 40.35639251440489, 188.20071124269245, -640.2706748618148, 13519.21490106562, 1927.6022433578062, 362.8197642637487, 26.968821921868447, 1.7463817695935329, -5.62650678237171, 269.3016715297017, 3453.386536448852, -11016.145278780888, -1698.6569643425091, -234.7658734267683, -14.16351421663124, .2504869601913055, 1.76384252869671, -.5887180101749253, 39.23429103868072, 155.76096234403798, -889.2492977967378, 13475.470561874661, 1955.0535223723712, 356.4450994756727, 25.894952980042156, 1.5695032905781554, -11.181939564328772, 214.80884394039484, 3169.1640829158237, -11443.321309975563, -1765.1588461316153, -251.68908574481912, -15.49755935939164, .198912367379658, 1.847759065022573, -.7912582233652842, 37.39369355329111, 119.699486012458, -1151.0956593239027, 13380.446257078214, 1970.3952110853447, 348.01959814116185, 24.731487364283044, 1.3850130831637748, -16.421408865300393, 161.05030052864092, 2878.3322807850063, -11838.991423510031, -1823.985884688674, -268.2854986386903, -16.81724543849939, .1483359875383474, 1.913880671464418, -.7960642926861912, 35.2322109610459, 80.01928065061526, -1424.0212633405113, 13235.794061869668, 1973.804052543835, 337.9908651258184, 23.289159354463873, 1.3934255946442087, -21.099669467133474, 108.48348407242611, 2583.700758091299, -12199.726194855148, -1874.2780658979746, -284.2467154529415, -18.11369784385905, .09849140335716425, 1.961570560806461, -.998795456205172, 32.56307803611191, 36.958364584370486, -1706.075448829146, 13043.287458812016, 1965.3831106103316, 326.43182772364605, 22.175018750622293, 1.198638339011324, -25.371248002043963, 57.53505923036915, 2288.41886619975, -12522.674544337233, -1914.8400385312243, -299.26241273417224, -19.37805630698734, .04912684976946725, 1.990369453344394, .035780907 * ee.SQRT2 * .5 / 2384e-9, .017876148 * ee.SQRT2 * .5 / 2384e-9, .003134727 * ee.SQRT2 * .5 / 2384e-9, .002457142 * ee.SQRT2 * .5 / 2384e-9, 971317e-9 * ee.SQRT2 * .5 / 2384e-9, 218868e-9 * ee.SQRT2 * .5 / 2384e-9, 101566e-9 * ee.SQRT2 * .5 / 2384e-9, 13828e-9 * ee.SQRT2 * .5 / 2384e-9, 12804.797818791945, 1945.5515939597317, 313.4244966442953, 49591e-9 / 2384e-9, 1995.1556208053692, 21458e-9 / 2384e-9, -69618e-9 / 2384e-9], + z = [[2.382191739347913e-13, 6.423305872147834e-13, 9.400849094049688e-13, 1.122435026096556e-12, 1.183840321267481e-12, 1.122435026096556e-12, 9.40084909404969e-13, 6.423305872147839e-13, 2.382191739347918e-13, 5.456116108943412e-12, 4.878985199565852e-12, 4.240448995017367e-12, 3.559909094758252e-12, 2.858043359288075e-12, 2.156177623817898e-12, 1.475637723558783e-12, 8.371015190102974e-13, 2.599706096327376e-13, -5.456116108943412e-12, -4.878985199565852e-12, -4.240448995017367e-12, -3.559909094758252e-12, -2.858043359288076e-12, -2.156177623817898e-12, -1.475637723558783e-12, -8.371015190102975e-13, -2.599706096327376e-13, -2.382191739347923e-13, -6.423305872147843e-13, -9.400849094049696e-13, -1.122435026096556e-12, -1.183840321267481e-12, -1.122435026096556e-12, -9.400849094049694e-13, -6.42330587214784e-13, -2.382191739347918e-13], [2.382191739347913e-13, 6.423305872147834e-13, 9.400849094049688e-13, 1.122435026096556e-12, 1.183840321267481e-12, 1.122435026096556e-12, 9.400849094049688e-13, 6.423305872147841e-13, 2.382191739347918e-13, 5.456116108943413e-12, 4.878985199565852e-12, 4.240448995017367e-12, 3.559909094758253e-12, 2.858043359288075e-12, 2.156177623817898e-12, 1.475637723558782e-12, 8.371015190102975e-13, 2.599706096327376e-13, -5.461314069809755e-12, -4.921085770524055e-12, -4.343405037091838e-12, -3.732668368707687e-12, -3.093523840190885e-12, -2.430835727329465e-12, -1.734679010007751e-12, -9.74825365660928e-13, -2.797435120168326e-13, 0, 0, 0, 0, 0, 0, -2.283748241799531e-13, -4.037858874020686e-13, -2.146547464825323e-13], [.1316524975873958, .414213562373095, .7673269879789602, 1.091308501069271, 1.303225372841206, 1.56968557711749, 1.920982126971166, 2.414213562373094, 3.171594802363212, 4.510708503662055, 7.595754112725146, 22.90376554843115, .984807753012208, .6427876096865394, .3420201433256688, .9396926207859084, -.1736481776669303, -.7660444431189779, .8660254037844387, .5, -.5144957554275265, -.4717319685649723, -.3133774542039019, -.1819131996109812, -.09457419252642064, -.04096558288530405, -.01419856857247115, -.003699974673760037, .8574929257125442, .8817419973177052, .9496286491027329, .9833145924917901, .9955178160675857, .9991605581781475, .999899195244447, .9999931550702802], [0, 0, 0, 0, 0, 0, 2.283748241799531e-13, 4.037858874020686e-13, 2.146547464825323e-13, 5.461314069809755e-12, 4.921085770524055e-12, 4.343405037091838e-12, 3.732668368707687e-12, 3.093523840190885e-12, 2.430835727329466e-12, 1.734679010007751e-12, 9.74825365660928e-13, 2.797435120168326e-13, -5.456116108943413e-12, -4.878985199565852e-12, -4.240448995017367e-12, -3.559909094758253e-12, -2.858043359288075e-12, -2.156177623817898e-12, -1.475637723558782e-12, -8.371015190102975e-13, -2.599706096327376e-13, -2.382191739347913e-13, -6.423305872147834e-13, -9.400849094049688e-13, -1.122435026096556e-12, -1.183840321267481e-12, -1.122435026096556e-12, -9.400849094049688e-13, -6.423305872147841e-13, -2.382191739347918e-13]], + Z = z[Pe.SHORT_TYPE], + K = z[Pe.SHORT_TYPE], + G = z[Pe.SHORT_TYPE], + U = z[Pe.SHORT_TYPE], + Q = [0, 1, 16, 17, 8, 9, 24, 25, 4, 5, 20, 21, 12, 13, 28, 29, 2, 3, 18, 19, 10, 11, 26, 27, 6, 7, 22, 23, 14, 15, 30, 31]; + function W(e, t, a) { + for (var s, n, r, i = 10, o = t + 238 - 14 - 286, _ = -15; _ < 0; _++) { var l, f, c; - l = u[i + -10], f = e[o + -224] * l, c = e[t + 224] * l, l = u[i + -9], f += e[o + -160] * l, c += e[t + 160] * l, l = u[i + -8], f += e[o + -96] * l, c += e[t + 96] * l, l = u[i + -7], f += e[o + -32] * l, c += e[t + 32] * l, l = u[i + -6], f += e[o + 32] * l, c += e[t + -32] * l, l = u[i + -5], f += e[o + 96] * l, c += e[t + -96] * l, l = u[i + -4], f += e[o + 160] * l, c += e[t + -160] * l, l = u[i + -3], f += e[o + 224] * l, c += e[t + -224] * l, l = u[i + -2], f += e[t + -256] * l, c -= e[o + 256] * l, l = u[i + -1], f += e[t + -192] * l, c -= e[o + 192] * l, l = u[i + 0], f += e[t + -128] * l, c -= e[o + 128] * l, l = u[i + 1], f += e[t + -64] * l, c -= e[o + 64] * l, l = u[i + 2], f += e[t + 0] * l, c -= e[o + 0] * l, l = u[i + 3], f += e[t + 64] * l, c -= e[o + -64] * l, l = u[i + 4], f += e[t + 128] * l, c -= e[o + -128] * l, l = u[i + 5], f += e[t + 192] * l, c -= e[o + -192] * l, f *= u[i + 6], l = c - f, a[30 + 2 * _] = c + f, a[31 + 2 * _] = u[i + 7] * l, i += 18, t--, o++; + l = h[i + -10], f = e[o + -224] * l, c = e[t + 224] * l, l = h[i + -9], f += e[o + -160] * l, c += e[t + 160] * l, l = h[i + -8], f += e[o + -96] * l, c += e[t + 96] * l, l = h[i + -7], f += e[o + -32] * l, c += e[t + 32] * l, l = h[i + -6], f += e[o + 32] * l, c += e[t + -32] * l, l = h[i + -5], f += e[o + 96] * l, c += e[t + -96] * l, l = h[i + -4], f += e[o + 160] * l, c += e[t + -160] * l, l = h[i + -3], f += e[o + 224] * l, c += e[t + -224] * l, l = h[i + -2], f += e[t + -256] * l, c -= e[o + 256] * l, l = h[i + -1], f += e[t + -192] * l, c -= e[o + 192] * l, l = h[i + 0], f += e[t + -128] * l, c -= e[o + 128] * l, l = h[i + 1], f += e[t + -64] * l, c -= e[o + 64] * l, l = h[i + 2], f += e[t + 0] * l, c -= e[o + 0] * l, l = h[i + 3], f += e[t + 64] * l, c -= e[o + -64] * l, l = h[i + 4], f += e[t + 128] * l, c -= e[o + -128] * l, l = h[i + 5], f += e[t + 192] * l, l = (c -= e[o + -192] * l) - (f *= h[i + 6]), a[30 + 2 * _] = c + f, a[31 + 2 * _] = h[i + 7] * l, i += 18, t--, o++; } - c = e[t + -16] * u[i + -10], f = e[t + -32] * u[i + -2], c += (e[t + -48] - e[t + 16]) * u[i + -9], f += e[t + -96] * u[i + -1], c += (e[t + -80] + e[t + 48]) * u[i + -8], f += e[t + -160] * u[i + 0], c += (e[t + -112] - e[t + 80]) * u[i + -7], f += e[t + -224] * u[i + 1], c += (e[t + -144] + e[t + 112]) * u[i + -6], f -= e[t + 32] * u[i + 2], c += (e[t + -176] - e[t + 144]) * u[i + -5], f -= e[t + 96] * u[i + 3], c += (e[t + -208] + e[t + 176]) * u[i + -4], f -= e[t + 160] * u[i + 4], c += (e[t + -240] - e[t + 208]) * u[i + -3], f -= e[t + 224], n = f - c, s = f + c, c = a[14], f = a[15] - c, a[31] = s + c, a[30] = n + f, a[15] = n - f, a[14] = s - c, r = a[28] - a[0], a[0] += a[28], a[28] = r * u[i + -36 + 7], r = a[29] - a[1], a[1] += a[29], a[29] = r * u[i + -36 + 7], r = a[26] - a[2], a[2] += a[26], a[26] = r * u[i + -72 + 7], r = a[27] - a[3], a[3] += a[27], a[27] = r * u[i + -72 + 7], r = a[24] - a[4], a[4] += a[24], a[24] = r * u[i + -108 + 7], r = a[25] - a[5], a[5] += a[25], a[25] = r * u[i + -108 + 7], r = a[22] - a[6], a[6] += a[22], a[22] = r * V.SQRT2, r = a[23] - a[7], a[7] += a[23], a[23] = r * V.SQRT2 - a[7], a[7] -= a[6], a[22] -= a[7], a[23] -= a[22], r = a[6], a[6] = a[31] - r, a[31] = a[31] + r, r = a[7], a[7] = a[30] - r, a[30] = a[30] + r, r = a[22], a[22] = a[15] - r, a[15] = a[15] + r, r = a[23], a[23] = a[14] - r, a[14] = a[14] + r, r = a[20] - a[8], a[8] += a[20], a[20] = r * u[i + -180 + 7], r = a[21] - a[9], a[9] += a[21], a[21] = r * u[i + -180 + 7], r = a[18] - a[10], a[10] += a[18], a[18] = r * u[i + -216 + 7], r = a[19] - a[11], a[11] += a[19], a[19] = r * u[i + -216 + 7], r = a[16] - a[12], a[12] += a[16], a[16] = r * u[i + -252 + 7], r = a[17] - a[13], a[13] += a[17], a[17] = r * u[i + -252 + 7], r = -a[20] + a[24], a[20] += a[24], a[24] = r * u[i + -216 + 7], r = -a[21] + a[25], a[21] += a[25], a[25] = r * u[i + -216 + 7], r = a[4] - a[8], a[4] += a[8], a[8] = r * u[i + -216 + 7], r = a[5] - a[9], a[5] += a[9], a[9] = r * u[i + -216 + 7], r = a[0] - a[12], a[0] += a[12], a[12] = r * u[i + -72 + 7], r = a[1] - a[13], a[1] += a[13], a[13] = r * u[i + -72 + 7], r = a[16] - a[28], a[16] += a[28], a[28] = r * u[i + -72 + 7], r = -a[17] + a[29], a[17] += a[29], a[29] = r * u[i + -72 + 7], r = V.SQRT2 * (a[2] - a[10]), a[2] += a[10], a[10] = r, r = V.SQRT2 * (a[3] - a[11]), a[3] += a[11], a[11] = r, r = V.SQRT2 * (-a[18] + a[26]), a[18] += a[26], a[26] = r - a[18], r = V.SQRT2 * (-a[19] + a[27]), a[19] += a[27], a[27] = r - a[19], r = a[2], a[19] -= a[3], a[3] -= r, a[2] = a[31] - r, a[31] += r, r = a[3], a[11] -= a[19], a[18] -= r, a[3] = a[30] - r, a[30] += r, r = a[18], a[27] -= a[11], a[19] -= r, a[18] = a[15] - r, a[15] += r, r = a[19], a[10] -= r, a[19] = a[14] - r, a[14] += r, r = a[10], a[11] -= r, a[10] = a[23] - r, a[23] += r, r = a[11], a[26] -= r, a[11] = a[22] - r, a[22] += r, r = a[26], a[27] -= r, a[26] = a[7] - r, a[7] += r, r = a[27], a[27] = a[6] - r, a[6] += r, r = V.SQRT2 * (a[0] - a[4]), a[0] += a[4], a[4] = r, r = V.SQRT2 * (a[1] - a[5]), a[1] += a[5], a[5] = r, r = V.SQRT2 * (a[16] - a[20]), a[16] += a[20], a[20] = r, r = V.SQRT2 * (a[17] - a[21]), a[17] += a[21], a[21] = r, r = -V.SQRT2 * (a[8] - a[12]), a[8] += a[12], a[12] = r - a[8], r = -V.SQRT2 * (a[9] - a[13]), a[9] += a[13], a[13] = r - a[9], r = -V.SQRT2 * (a[25] - a[29]), a[25] += a[29], a[29] = r - a[25], r = -V.SQRT2 * (a[24] + a[28]), a[24] -= a[28], a[28] = r - a[24], r = a[24] - a[16], a[24] = r, r = a[20] - r, a[20] = r, r = a[28] - r, a[28] = r, r = a[25] - a[17], a[25] = r, r = a[21] - r, a[21] = r, r = a[29] - r, a[29] = r, r = a[17] - a[1], a[17] = r, r = a[9] - r, a[9] = r, r = a[25] - r, a[25] = r, r = a[5] - r, a[5] = r, r = a[21] - r, a[21] = r, r = a[13] - r, a[13] = r, r = a[29] - r, a[29] = r, r = a[1] - a[0], a[1] = r, r = a[16] - r, a[16] = r, r = a[17] - r, a[17] = r, r = a[8] - r, a[8] = r, r = a[9] - r, a[9] = r, r = a[24] - r, a[24] = r, r = a[25] - r, a[25] = r, r = a[4] - r, a[4] = r, r = a[5] - r, a[5] = r, r = a[20] - r, a[20] = r, r = a[21] - r, a[21] = r, r = a[12] - r, a[12] = r, r = a[13] - r, a[13] = r, r = a[28] - r, a[28] = r, r = a[29] - r, a[29] = r, r = a[0], a[0] += a[31], a[31] -= r, r = a[1], a[1] += a[30], a[30] -= r, r = a[16], a[16] += a[15], a[15] -= r, r = a[17], a[17] += a[14], a[14] -= r, r = a[8], a[8] += a[23], a[23] -= r, r = a[9], a[9] += a[22], a[22] -= r, r = a[24], a[24] += a[7], a[7] -= r, r = a[25], a[25] += a[6], a[6] -= r, r = a[4], a[4] += a[27], a[27] -= r, r = a[5], a[5] += a[26], a[26] -= r, r = a[20], a[20] += a[11], a[11] -= r, r = a[21], a[21] += a[10], a[10] -= r, r = a[12], a[12] += a[19], a[19] -= r, r = a[13], a[13] += a[18], a[18] -= r, r = a[28], a[28] += a[3], a[3] -= r, r = a[29], a[29] += a[2], a[2] -= r; + c = e[t + -16] * h[i + -10], f = e[t + -32] * h[i + -2], c += (e[t + -48] - e[t + 16]) * h[i + -9], f += e[t + -96] * h[i + -1], c += (e[t + -80] + e[t + 48]) * h[i + -8], f += e[t + -160] * h[i + 0], c += (e[t + -112] - e[t + 80]) * h[i + -7], f += e[t + -224] * h[i + 1], c += (e[t + -144] + e[t + 112]) * h[i + -6], f -= e[t + 32] * h[i + 2], c += (e[t + -176] - e[t + 144]) * h[i + -5], f -= e[t + 96] * h[i + 3], c += (e[t + -208] + e[t + 176]) * h[i + -4], f -= e[t + 160] * h[i + 4], c += (e[t + -240] - e[t + 208]) * h[i + -3], s = (f -= e[t + 224]) - c, n = f + c, c = a[14], f = a[15] - c, a[31] = n + c, a[30] = s + f, a[15] = s - f, a[14] = n - c, r = a[28] - a[0], a[0] += a[28], a[28] = r * h[i + -36 + 7], r = a[29] - a[1], a[1] += a[29], a[29] = r * h[i + -36 + 7], r = a[26] - a[2], a[2] += a[26], a[26] = r * h[i + -72 + 7], r = a[27] - a[3], a[3] += a[27], a[27] = r * h[i + -72 + 7], r = a[24] - a[4], a[4] += a[24], a[24] = r * h[i + -108 + 7], r = a[25] - a[5], a[5] += a[25], a[25] = r * h[i + -108 + 7], r = a[22] - a[6], a[6] += a[22], a[22] = r * ee.SQRT2, r = a[23] - a[7], a[7] += a[23], a[23] = r * ee.SQRT2 - a[7], a[7] -= a[6], a[22] -= a[7], a[23] -= a[22], r = a[6], a[6] = a[31] - r, a[31] = a[31] + r, r = a[7], a[7] = a[30] - r, a[30] = a[30] + r, r = a[22], a[22] = a[15] - r, a[15] = a[15] + r, r = a[23], a[23] = a[14] - r, a[14] = a[14] + r, r = a[20] - a[8], a[8] += a[20], a[20] = r * h[i + -180 + 7], r = a[21] - a[9], a[9] += a[21], a[21] = r * h[i + -180 + 7], r = a[18] - a[10], a[10] += a[18], a[18] = r * h[i + -216 + 7], r = a[19] - a[11], a[11] += a[19], a[19] = r * h[i + -216 + 7], r = a[16] - a[12], a[12] += a[16], a[16] = r * h[i + -252 + 7], r = a[17] - a[13], a[13] += a[17], a[17] = r * h[i + -252 + 7], r = -a[20] + a[24], a[20] += a[24], a[24] = r * h[i + -216 + 7], r = -a[21] + a[25], a[21] += a[25], a[25] = r * h[i + -216 + 7], r = a[4] - a[8], a[4] += a[8], a[8] = r * h[i + -216 + 7], r = a[5] - a[9], a[5] += a[9], a[9] = r * h[i + -216 + 7], r = a[0] - a[12], a[0] += a[12], a[12] = r * h[i + -72 + 7], r = a[1] - a[13], a[1] += a[13], a[13] = r * h[i + -72 + 7], r = a[16] - a[28], a[16] += a[28], a[28] = r * h[i + -72 + 7], r = -a[17] + a[29], a[17] += a[29], a[29] = r * h[i + -72 + 7], r = ee.SQRT2 * (a[2] - a[10]), a[2] += a[10], a[10] = r, r = ee.SQRT2 * (a[3] - a[11]), a[3] += a[11], a[11] = r, r = ee.SQRT2 * (-a[18] + a[26]), a[18] += a[26], a[26] = r - a[18], r = ee.SQRT2 * (-a[19] + a[27]), a[19] += a[27], a[27] = r - a[19], r = a[2], a[19] -= a[3], a[3] -= r, a[2] = a[31] - r, a[31] += r, r = a[3], a[11] -= a[19], a[18] -= r, a[3] = a[30] - r, a[30] += r, r = a[18], a[27] -= a[11], a[19] -= r, a[18] = a[15] - r, a[15] += r, r = a[19], a[10] -= r, a[19] = a[14] - r, a[14] += r, r = a[10], a[11] -= r, a[10] = a[23] - r, a[23] += r, r = a[11], a[26] -= r, a[11] = a[22] - r, a[22] += r, r = a[26], a[27] -= r, a[26] = a[7] - r, a[7] += r, r = a[27], a[27] = a[6] - r, a[6] += r, r = ee.SQRT2 * (a[0] - a[4]), a[0] += a[4], a[4] = r, r = ee.SQRT2 * (a[1] - a[5]), a[1] += a[5], a[5] = r, r = ee.SQRT2 * (a[16] - a[20]), a[16] += a[20], a[20] = r, r = ee.SQRT2 * (a[17] - a[21]), a[17] += a[21], a[21] = r, r = -ee.SQRT2 * (a[8] - a[12]), a[8] += a[12], a[12] = r - a[8], r = -ee.SQRT2 * (a[9] - a[13]), a[9] += a[13], a[13] = r - a[9], r = -ee.SQRT2 * (a[25] - a[29]), a[25] += a[29], a[29] = r - a[25], r = -ee.SQRT2 * (a[24] + a[28]), a[24] -= a[28], a[28] = r - a[24], r = a[24] - a[16], a[24] = r, r = a[20] - r, a[20] = r, r = a[28] - r, a[28] = r, r = a[25] - a[17], a[25] = r, r = a[21] - r, a[21] = r, r = a[29] - r, a[29] = r, r = a[17] - a[1], a[17] = r, r = a[9] - r, a[9] = r, r = a[25] - r, a[25] = r, r = a[5] - r, a[5] = r, r = a[21] - r, a[21] = r, r = a[13] - r, a[13] = r, r = a[29] - r, a[29] = r, r = a[1] - a[0], a[1] = r, r = a[16] - r, a[16] = r, r = a[17] - r, a[17] = r, r = a[8] - r, a[8] = r, r = a[9] - r, a[9] = r, r = a[24] - r, a[24] = r, r = a[25] - r, a[25] = r, r = a[4] - r, a[4] = r, r = a[5] - r, a[5] = r, r = a[20] - r, a[20] = r, r = a[21] - r, a[21] = r, r = a[12] - r, a[12] = r, r = a[13] - r, a[13] = r, r = a[28] - r, a[28] = r, r = a[29] - r, a[29] = r, r = a[0], a[0] += a[31], a[31] -= r, r = a[1], a[1] += a[30], a[30] -= r, r = a[16], a[16] += a[15], a[15] -= r, r = a[17], a[17] += a[14], a[14] -= r, r = a[8], a[8] += a[23], a[23] -= r, r = a[9], a[9] += a[22], a[22] -= r, r = a[24], a[24] += a[7], a[7] -= r, r = a[25], a[25] += a[6], a[6] -= r, r = a[4], a[4] += a[27], a[27] -= r, r = a[5], a[5] += a[26], a[26] -= r, r = a[20], a[20] += a[11], a[11] -= r, r = a[21], a[21] += a[10], a[10] -= r, r = a[12], a[12] += a[19], a[19] -= r, r = a[13], a[13] += a[18], a[18] -= r, r = a[28], a[28] += a[3], a[3] -= r, r = a[29], a[29] += a[2], a[2] -= r; } - function E(e, t) { + function J(e, t) { for (var a = 0; a < 3; a++) { - var n, s, r, i, o, _; - i = e[t + 6] * A[Ae.SHORT_TYPE][0] - e[t + 15], n = e[t + 0] * A[Ae.SHORT_TYPE][2] - e[t + 9], s = i + n, r = i - n, i = e[t + 15] * A[Ae.SHORT_TYPE][0] + e[t + 6], n = e[t + 9] * A[Ae.SHORT_TYPE][2] + e[t + 0], o = i + n, _ = -i + n, n = 2.069978111953089e-11 * (e[t + 3] * A[Ae.SHORT_TYPE][1] - e[t + 12]), i = 2.069978111953089e-11 * (e[t + 12] * A[Ae.SHORT_TYPE][1] + e[t + 3]), e[t + 0] = 1.90752519173728e-11 * s + n, e[t + 15] = 1.90752519173728e-11 * -o + i, r = .8660254037844387 * r * 1.907525191737281e-11, o = .5 * o * 1.907525191737281e-11 + i, e[t + 3] = r - o, e[t + 6] = r + o, s = .5 * s * 1.907525191737281e-11 - n, _ = .8660254037844387 * _ * 1.907525191737281e-11, e[t + 9] = s + _, e[t + 12] = s - _, t++; + var s, n, r, i, o, _; + n = (i = e[t + 6] * z[Pe.SHORT_TYPE][0] - e[t + 15]) + (s = e[t + 0] * z[Pe.SHORT_TYPE][2] - e[t + 9]), r = i - s, o = (i = e[t + 15] * z[Pe.SHORT_TYPE][0] + e[t + 6]) + (s = e[t + 9] * z[Pe.SHORT_TYPE][2] + e[t + 0]), _ = -i + s, s = 2.069978111953089e-11 * (e[t + 3] * z[Pe.SHORT_TYPE][1] - e[t + 12]), i = 2.069978111953089e-11 * (e[t + 12] * z[Pe.SHORT_TYPE][1] + e[t + 3]), e[t + 0] = 1.90752519173728e-11 * n + s, e[t + 15] = 1.90752519173728e-11 * -o + i, r = .8660254037844387 * r * 1.907525191737281e-11, o = .5 * o * 1.907525191737281e-11 + i, e[t + 3] = r - o, e[t + 6] = r + o, n = .5 * n * 1.907525191737281e-11 - s, _ = .8660254037844387 * _ * 1.907525191737281e-11, e[t + 9] = n + _, e[t + 12] = n - _, t++; } } - function C(e, t, a) { - var n, s, r, i, o, _, l, f, c, u, h, b, p, m, v, d, g, w; - r = a[17] - a[9], o = a[15] - a[11], _ = a[14] - a[12], l = a[0] + a[8], f = a[1] + a[7], c = a[2] + a[6], u = a[3] + a[5], e[t + 17] = l + c - u - (f - a[4]), s = (l + c - u) * S[19] + (f - a[4]), n = (r - o - _) * S[18], e[t + 5] = n + s, e[t + 6] = n - s, i = (a[16] - a[10]) * S[18], f = f * S[19] + a[4], n = r * S[12] + i + o * S[13] + _ * S[14], s = -l * S[16] + f - c * S[17] + u * S[15], e[t + 1] = n + s, e[t + 2] = n - s, n = r * S[13] - i - o * S[14] + _ * S[12], s = -l * S[17] + f - c * S[15] + u * S[16], e[t + 9] = n + s, e[t + 10] = n - s, n = r * S[14] - i + o * S[12] - _ * S[13], s = l * S[15] - f + c * S[16] - u * S[17], e[t + 13] = n + s, e[t + 14] = n - s, h = a[8] - a[0], p = a[6] - a[2], m = a[5] - a[3], v = a[17] + a[9], d = a[16] + a[10], g = a[15] + a[11], w = a[14] + a[12], e[t + 0] = v + g + w + (d + a[13]), n = (v + g + w) * S[19] - (d + a[13]), s = (h - p + m) * S[18], e[t + 11] = n + s, e[t + 12] = n - s, b = (a[7] - a[1]) * S[18], d = a[13] - d * S[19], n = v * S[15] - d + g * S[16] + w * S[17], s = h * S[14] + b + p * S[12] + m * S[13], e[t + 3] = n + s, e[t + 4] = n - s, n = -v * S[17] + d - g * S[15] - w * S[16], s = h * S[13] + b - p * S[14] - m * S[12], e[t + 7] = n + s, e[t + 8] = n - s, n = -v * S[16] + d - g * S[17] - w * S[15], s = h * S[12] - b + p * S[13] - m * S[14], e[t + 15] = n + s, e[t + 16] = n - s; - } this.mdct_sub48 = function (e, t, a) { - for (var n = t, s = 286, r = 0; r < e.channels_out; r++) { - for (var i = 0; i < e.mode_gr; i++) { - for (var o, _ = e.l3_side.tt[i][r], l = _.xr, f = 0, c = e.sb_sample[r][1 - i], u = 0, h = 0; h < 9; h++) for (T(n, s, c[u]), T(n, s + 32, c[u + 1]), u += 2, s += 64, o = 1; o < 32; o += 2) c[u - 1][o] *= -1; - for (o = 0; o < 32; o++, f += 18) { - var b = _.block_type, - p = e.sb_sample[r][i], - m = e.sb_sample[r][1 - i]; - if (0 != _.mixed_block_flag && o < 2 && (b = 0), e.amp_filter[o] < 1e-12) we.fill(l, f + 0, f + 18, 0);else if (e.amp_filter[o] < 1 && me(), b == Ae.SHORT_TYPE) { - for (var h = -3; h < 0; h++) { - var v = A[Ae.SHORT_TYPE][h + 3]; - l[f + 3 * h + 9] = p[9 + h][B[o]] * v - p[8 - h][B[o]], l[f + 3 * h + 18] = p[14 - h][B[o]] * v + p[15 + h][B[o]], l[f + 3 * h + 10] = p[15 + h][B[o]] * v - p[14 - h][B[o]], l[f + 3 * h + 19] = m[2 - h][B[o]] * v + m[3 + h][B[o]], l[f + 3 * h + 11] = m[3 + h][B[o]] * v - m[2 - h][B[o]], l[f + 3 * h + 20] = m[8 - h][B[o]] * v + m[9 + h][B[o]]; + for (var s, n, r, i, o, _, l, f, c, h, u, m, p, b, v, d, g, S, M, w, R, A = t, B = 286, k = 0; k < e.channels_out; k++) { + for (var y = 0; y < e.mode_gr; y++) { + for (var T, x = e.l3_side.tt[y][k], E = x.xr, P = 0, L = e.sb_sample[k][1 - y], I = 0, H = 0; H < 9; H++) for (W(A, B, L[I]), W(A, B + 32, L[I + 1]), I += 2, B += 64, T = 1; T < 32; T += 2) L[I - 1][T] *= -1; + for (T = 0; T < 32; T++, P += 18) { + var C = x.block_type, + V = e.sb_sample[k][y], + O = e.sb_sample[k][1 - y]; + if (0 != x.mixed_block_flag && T < 2 && (C = 0), e.amp_filter[T] < 1e-12) ye.fill(E, P + 0, P + 18, 0);else { + if (e.amp_filter[T] < 1) for (H = 0; H < 18; H++) O[H][Q[T]] *= e.amp_filter[T]; + if (C == Pe.SHORT_TYPE) { + for (H = -3; H < 0; H++) { + var N = z[Pe.SHORT_TYPE][H + 3]; + E[P + 3 * H + 9] = V[9 + H][Q[T]] * N - V[8 - H][Q[T]], E[P + 3 * H + 18] = V[14 - H][Q[T]] * N + V[15 + H][Q[T]], E[P + 3 * H + 10] = V[15 + H][Q[T]] * N - V[14 - H][Q[T]], E[P + 3 * H + 19] = O[2 - H][Q[T]] * N + O[3 + H][Q[T]], E[P + 3 * H + 11] = O[3 + H][Q[T]] * N - O[2 - H][Q[T]], E[P + 3 * H + 20] = O[8 - H][Q[T]] * N + O[9 + H][Q[T]]; + } + J(E, P); + } else { + var D = Be(18); + for (H = -9; H < 0; H++) { + var Y, X; + Y = z[C][H + 27] * O[H + 9][Q[T]] + z[C][H + 36] * O[8 - H][Q[T]], X = z[C][H + 9] * V[H + 9][Q[T]] - z[C][H + 18] * V[8 - H][Q[T]], D[H + 9] = Y - X * Z[3 + H + 9], D[H + 18] = Y * Z[3 + H + 9] + X; + } + s = E, n = P, R = w = M = S = g = d = v = b = p = m = u = h = c = f = l = _ = o = i = void 0, _ = (r = D)[17] - r[9], f = r[15] - r[11], c = r[14] - r[12], h = r[0] + r[8], u = r[1] + r[7], m = r[2] + r[6], p = r[3] + r[5], s[n + 17] = h + m - p - (u - r[4]), o = (h + m - p) * K[19] + (u - r[4]), i = (_ - f - c) * K[18], s[n + 5] = i + o, s[n + 6] = i - o, l = (r[16] - r[10]) * K[18], u = u * K[19] + r[4], i = _ * K[12] + l + f * K[13] + c * K[14], o = -h * K[16] + u - m * K[17] + p * K[15], s[n + 1] = i + o, s[n + 2] = i - o, i = _ * K[13] - l - f * K[14] + c * K[12], o = -h * K[17] + u - m * K[15] + p * K[16], s[n + 9] = i + o, s[n + 10] = i - o, i = _ * K[14] - l + f * K[12] - c * K[13], o = h * K[15] - u + m * K[16] - p * K[17], s[n + 13] = i + o, s[n + 14] = i - o, b = r[8] - r[0], d = r[6] - r[2], g = r[5] - r[3], S = r[17] + r[9], M = r[16] + r[10], w = r[15] + r[11], R = r[14] + r[12], s[n + 0] = S + w + R + (M + r[13]), i = (S + w + R) * K[19] - (M + r[13]), o = (b - d + g) * K[18], s[n + 11] = i + o, s[n + 12] = i - o, v = (r[7] - r[1]) * K[18], M = r[13] - M * K[19], i = S * K[15] - M + w * K[16] + R * K[17], o = b * K[14] + v + d * K[12] + g * K[13], s[n + 3] = i + o, s[n + 4] = i - o, i = -S * K[17] + M - w * K[15] - R * K[16], o = b * K[13] + v - d * K[14] - g * K[12], s[n + 7] = i + o, s[n + 8] = i - o, i = -S * K[16] + M - w * K[17] - R * K[15], o = b * K[12] - v + d * K[13] - g * K[14], s[n + 15] = i + o, s[n + 16] = i - o; } - E(l, f); - } else { - for (var d = de(18), h = -9; h < 0; h++) { - var g, w; - g = A[b][h + 27] * m[h + 9][B[o]] + A[b][h + 36] * m[8 - h][B[o]], w = A[b][h + 9] * p[h + 9][B[o]] - A[b][h + 18] * p[8 - h][B[o]], d[h + 9] = g - w * k[3 + h + 9], d[h + 18] = g * k[3 + h + 9] + w; - } - C(l, f, d); } - if (b != Ae.SHORT_TYPE && 0 != o) for (var h = 7; 0 <= h; --h) { - var S, M; - S = l[f + h] * R[20 + h] + l[f + -1 - h] * x[28 + h], M = l[f + h] * x[28 + h] - l[f + -1 - h] * R[20 + h], l[f + -1 - h] = S, l[f + h] = M; + if (C != Pe.SHORT_TYPE && 0 != T) for (H = 7; 0 <= H; --H) { + var q, F; + q = E[P + H] * G[20 + H] + E[P + -1 - H] * U[28 + H], F = E[P + H] * U[28 + H] - E[P + -1 - H] * G[20 + H], E[P + -1 - H] = q, E[P + H] = F; } } } - if (n = a, s = 286, 1 == e.mode_gr) for (var y = 0; y < 18; y++) I.arraycopy(e.sb_sample[r][1][y], 0, e.sb_sample[r][0][y], 0, 32); + if (A = a, B = 286, 1 == e.mode_gr) for (var j = 0; j < 18; j++) $.arraycopy(e.sb_sample[k][1][j], 0, e.sb_sample[k][0][j], 0, 32); } }; }(); - this.lame_encode_mp3_frame = function (e, t, a, n, s, r) { + this.lame_encode_mp3_frame = function (e, t, a, s, n, r) { var i, - o = E([2, 2]); - o[0][0] = new L(), o[0][1] = new L(), o[1][0] = new L(), o[1][1] = new L(); + o = O([2, 2]); + o[0][0] = new N(), o[0][1] = new N(), o[1][0] = new N(), o[1][1] = new N(); var _, - l = E([2, 2]); - l[0][0] = new L(), l[0][1] = new L(), l[1][0] = new L(), l[1][1] = new L(); + l = O([2, 2]); + l[0][0] = new N(), l[0][1] = new N(), l[1][0] = new N(), l[1][1] = new N(); var f, c, - u, - h = [null, null], - b = e.internal_flags, - p = ge([2, 4]), - m = [[0, 0], [0, 0]], - v = [[0, 0], [0, 0]]; - if (h[0] = t, h[1] = a, 0 == b.lame_encode_frame_init && function (e, t) { + h, + u = [null, null], + m = e.internal_flags, + p = ke([2, 4]), + b = [.5, .5], + v = [[0, 0], [0, 0]], + d = [[0, 0], [0, 0]]; + if (u[0] = t, u[1] = a, 0 == m.lame_encode_frame_init && function (e, t) { var a, - n, - s = e.internal_flags; - if (0 == s.lame_encode_frame_init) { + s, + n = e.internal_flags; + if (0 == n.lame_encode_frame_init) { var r, i, - o = de(2014), - _ = de(2014); - for (s.lame_encode_frame_init = 1, i = r = 0; r < 286 + 576 * (1 + s.mode_gr); ++r) r < 576 * s.mode_gr ? (o[r] = 0, 2 == s.channels_out && (_[r] = 0)) : (o[r] = t[0][i], 2 == s.channels_out && (_[r] = t[1][i]), ++i); - for (n = 0; n < s.mode_gr; n++) for (a = 0; a < s.channels_out; a++) s.l3_side.tt[n][a].block_type = Ae.SHORT_TYPE; - T.mdct_sub48(s, o, _); + o = Be(2014), + _ = Be(2014); + for (n.lame_encode_frame_init = 1, i = r = 0; r < 286 + 576 * (1 + n.mode_gr); ++r) r < 576 * n.mode_gr ? (o[r] = 0, 2 == n.channels_out && (_[r] = 0)) : (o[r] = t[0][i], 2 == n.channels_out && (_[r] = t[1][i]), ++i); + for (s = 0; s < n.mode_gr; s++) for (a = 0; a < n.channels_out; a++) n.l3_side.tt[s][a].block_type = Pe.SHORT_TYPE; + V.mdct_sub48(n, o, _); } - }(e, h), b.padding = 0, (b.slot_lag -= b.frac_SpF) < 0 && (b.slot_lag += e.out_samplerate, b.padding = 1), 0 != b.psymodel) { - var d, - g = [null, null], - w = 0, - S = ve(2); - for (u = 0; u < b.mode_gr; u++) { - for (c = 0; c < b.channels_out; c++) g[c] = h[c], w = 576 + 576 * u - Ae.FFTOFFSET; - if (e.VBR == Me.vbr_mtrh || e.VBR == Me.vbr_mt ? me() : d = x.L3psycho_anal_ns(e, g, w, u, o, l, m[u], v[u], p[u], S), 0 != d) return -4; - for (e.mode == ye.JOINT_STEREO && me(), c = 0; c < b.channels_out; c++) { - var M = b.l3_side.tt[u][c]; - M.block_type = S[c], M.mixed_block_flag = 0; + }(e, u), m.padding = 0, (m.slot_lag -= m.frac_SpF) < 0 && (m.slot_lag += e.out_samplerate, m.padding = 1), 0 != m.psymodel) { + var g = [null, null], + S = 0, + M = Ae(2); + for (h = 0; h < m.mode_gr; h++) { + for (c = 0; c < m.channels_out; c++) g[c] = u[c], S = 576 + 576 * h - Pe.FFTOFFSET; + if (0 != (e.VBR == xe.vbr_mtrh || e.VBR == xe.vbr_mt ? I.L3psycho_anal_vbr(e, g, S, h, o, l, v[h], d[h], p[h], M) : I.L3psycho_anal_ns(e, g, S, h, o, l, v[h], d[h], p[h], M))) return -4; + for (e.mode == Ee.JOINT_STEREO && (b[h] = p[h][2] + p[h][3], 0 < b[h] && (b[h] = p[h][3] / b[h])), c = 0; c < m.channels_out; c++) { + var w = m.l3_side.tt[h][c]; + w.block_type = M[c], w.mixed_block_flag = 0; } } - } else me(); + } else for (h = 0; h < m.mode_gr; h++) for (c = 0; c < m.channels_out; c++) m.l3_side.tt[h][c].block_type = Pe.NORM_TYPE, m.l3_side.tt[h][c].mixed_block_flag = 0, d[h][c] = v[h][c] = 700; if (function (e) { var t, a; - if (0 == e.ATH.useAdjust) return e.ATH.adjust = 1; - if (a = e.loudness_sq[0][0], t = e.loudness_sq[1][0], 2 == e.channels_out ? me() : (a += a, t += t), 2 == e.mode_gr && (a = Math.max(a, t)), a *= .5, .03125 < (a *= e.ATH.aaSensitivityP)) 1 <= e.ATH.adjust ? e.ATH.adjust = 1 : e.ATH.adjust < e.ATH.adjustLimit && (e.ATH.adjust = e.ATH.adjustLimit), e.ATH.adjustLimit = 1;else { - var n = 31.98 * a + 625e-6; - e.ATH.adjust >= n ? (e.ATH.adjust *= .075 * n + .925, e.ATH.adjust < n && (e.ATH.adjust = n)) : e.ATH.adjustLimit >= n ? e.ATH.adjust = n : e.ATH.adjust < e.ATH.adjustLimit && (e.ATH.adjust = e.ATH.adjustLimit), e.ATH.adjustLimit = n; + if (0 != e.ATH.useAdjust) { + if (a = e.loudness_sq[0][0], t = e.loudness_sq[1][0], 2 == e.channels_out ? (a += e.loudness_sq[0][1], t += e.loudness_sq[1][1]) : (a += a, t += t), 2 == e.mode_gr && (a = Math.max(a, t)), a *= .5, .03125 < (a *= e.ATH.aaSensitivityP)) 1 <= e.ATH.adjust ? e.ATH.adjust = 1 : e.ATH.adjust < e.ATH.adjustLimit && (e.ATH.adjust = e.ATH.adjustLimit), e.ATH.adjustLimit = 1;else { + var s = 31.98 * a + 625e-6; + e.ATH.adjust >= s ? (e.ATH.adjust *= .075 * s + .925, e.ATH.adjust < s && (e.ATH.adjust = s)) : e.ATH.adjustLimit >= s ? e.ATH.adjust = s : e.ATH.adjust < e.ATH.adjustLimit && (e.ATH.adjust = e.ATH.adjustLimit), e.ATH.adjustLimit = s; + } + } else e.ATH.adjust = 1; + }(m), V.mdct_sub48(m, u[0], u[1]), m.mode_ext = Pe.MPG_MD_LR_LR, e.force_ms) m.mode_ext = Pe.MPG_MD_MS_LR;else if (e.mode == Ee.JOINT_STEREO) { + var R = 0, + A = 0; + for (h = 0; h < m.mode_gr; h++) for (c = 0; c < m.channels_out; c++) R += d[h][c], A += v[h][c]; + if (R <= 1 * A) { + var B = m.l3_side.tt[0], + k = m.l3_side.tt[m.mode_gr - 1]; + B[0].block_type == B[1].block_type && k[0].block_type == k[1].block_type && (m.mode_ext = Pe.MPG_MD_MS_LR); } - }(b), T.mdct_sub48(b, h[0], h[1]), b.mode_ext = Ae.MPG_MD_LR_LR, e.force_ms ? b.mode_ext = Ae.MPG_MD_MS_LR : e.mode == ye.JOINT_STEREO && me(), b.mode_ext == k ? (_ = l, f = v) : (_ = o, f = m), e.analysis && null != b.pinfo && me(), e.VBR == Me.vbr_off || e.VBR == Me.vbr_abr) { - var y, A; - for (y = 0; y < 18; y++) b.nsPsy.pefirbuf[y] = b.nsPsy.pefirbuf[y + 1]; - for (u = A = 0; u < b.mode_gr; u++) for (c = 0; c < b.channels_out; c++) A += f[u][c]; - for (b.nsPsy.pefirbuf[18] = A, A = b.nsPsy.pefirbuf[9], y = 0; y < 9; y++) A += (b.nsPsy.pefirbuf[y] + b.nsPsy.pefirbuf[18 - y]) * Ae.fircoef[y]; - for (A = 3350 * b.mode_gr * b.channels_out / A, u = 0; u < b.mode_gr; u++) for (c = 0; c < b.channels_out; c++) f[u][c] *= A; } - return b.iteration_loop.iteration_loop(e, f, [.5, .5], _), R.format_bitstream(e), i = R.copy_buffer(b, n, s, r, 1), e.bWriteVbrTag && B.addVbrFrame(e), e.analysis && null != b.pinfo && me(), function (e) { - var t, a; - for (e.bitrate_stereoMode_Hist[e.bitrate_index][4]++, e.bitrate_stereoMode_Hist[15][4]++, 2 == e.channels_out && me(), t = 0; t < e.mode_gr; ++t) for (a = 0; a < e.channels_out; ++a) { - var n = 0 | e.l3_side.tt[t][a].block_type; - 0 != e.l3_side.tt[t][a].mixed_block_flag && (n = 4), e.bitrate_blockType_Hist[e.bitrate_index][n]++, e.bitrate_blockType_Hist[e.bitrate_index][5]++, e.bitrate_blockType_Hist[15][n]++, e.bitrate_blockType_Hist[15][5]++; + if (m.mode_ext == P ? (_ = l, f = d) : (_ = o, f = v), e.analysis && null != m.pinfo) for (h = 0; h < m.mode_gr; h++) for (c = 0; c < m.channels_out; c++) m.pinfo.ms_ratio[h] = m.ms_ratio[h], m.pinfo.ms_ener_ratio[h] = b[h], m.pinfo.blocktype[h][c] = m.l3_side.tt[h][c].block_type, m.pinfo.pe[h][c] = f[h][c], $.arraycopy(m.l3_side.tt[h][c].xr, 0, m.pinfo.xr[h][c], 0, 576), m.mode_ext == P && (m.pinfo.ers[h][c] = m.pinfo.ers[h][c + 2], $.arraycopy(m.pinfo.energy[h][c + 2], 0, m.pinfo.energy[h][c], 0, m.pinfo.energy[h][c].length)); + if (e.VBR == xe.vbr_off || e.VBR == xe.vbr_abr) { + var y, T; + for (y = 0; y < 18; y++) m.nsPsy.pefirbuf[y] = m.nsPsy.pefirbuf[y + 1]; + for (h = T = 0; h < m.mode_gr; h++) for (c = 0; c < m.channels_out; c++) T += f[h][c]; + for (m.nsPsy.pefirbuf[18] = T, T = m.nsPsy.pefirbuf[9], y = 0; y < 9; y++) T += (m.nsPsy.pefirbuf[y] + m.nsPsy.pefirbuf[18 - y]) * Pe.fircoef[y]; + for (T = 3350 * m.mode_gr * m.channels_out / T, h = 0; h < m.mode_gr; h++) for (c = 0; c < m.channels_out; c++) f[h][c] *= T; + } + if (m.iteration_loop.iteration_loop(e, f, b, _), L.format_bitstream(e), i = L.copy_buffer(m, s, n, r, 1), e.bWriteVbrTag && H.addVbrFrame(e), e.analysis && null != m.pinfo) { + for (c = 0; c < m.channels_out; c++) { + var x; + for (x = 0; x < E; x++) m.pinfo.pcmdata[c][x] = m.pinfo.pcmdata[c][x + e.framesize]; + for (x = E; x < 1600; x++) m.pinfo.pcmdata[c][x] = u[c][x - E]; } - }(b), i; + C.set_frame_pinfo(e, _); + } + return function (e) { + var t, a; + for (e.bitrate_stereoMode_Hist[e.bitrate_index][4]++, e.bitrate_stereoMode_Hist[15][4]++, 2 == e.channels_out && (e.bitrate_stereoMode_Hist[e.bitrate_index][e.mode_ext]++, e.bitrate_stereoMode_Hist[15][e.mode_ext]++), t = 0; t < e.mode_gr; ++t) for (a = 0; a < e.channels_out; ++a) { + var s = 0 | e.l3_side.tt[t][a].block_type; + 0 != e.l3_side.tt[t][a].mixed_block_flag && (s = 4), e.bitrate_blockType_Hist[e.bitrate_index][s]++, e.bitrate_blockType_Hist[e.bitrate_index][5]++, e.bitrate_blockType_Hist[15][s]++, e.bitrate_blockType_Hist[15][5]++; + } + }(m), i; }; } function i() { - this.l = de(Ae.SBMAX_l), this.s = ge([Ae.SBMAX_s, 3]); - var n = this; + this.l = Be(Pe.SBMAX_l), this.s = ke([Pe.SBMAX_s, 3]); + var s = this; this.assign = function (e) { - I.arraycopy(e.l, 0, n.l, 0, Ae.SBMAX_l); - for (var t = 0; t < Ae.SBMAX_s; t++) for (var a = 0; a < 3; a++) n.s[t][a] = e.s[t][a]; + $.arraycopy(e.l, 0, s.l, 0, Pe.SBMAX_l); + for (var t = 0; t < Pe.SBMAX_s; t++) for (var a = 0; a < 3; a++) s.s[t][a] = e.s[t][a]; }; } - function j() { + function Z() { var e = 40; function t() { - this.write_timing = 0, this.ptr = 0, this.buf = S(e); + this.write_timing = 0, this.ptr = 0, this.buf = A(e); } - this.Class_ID = 0, this.lame_encode_frame_init = 0, this.iteration_init_init = 0, this.fill_buffer_resample_init = 0, this.mfbuf = ge([2, j.MFSIZE]), this.mode_gr = 0, this.channels_in = 0, this.channels_out = 0, this.resample_ratio = 0, this.mf_samples_to_encode = 0, this.mf_size = 0, this.VBR_min_bitrate = 0, this.VBR_max_bitrate = 0, this.bitrate_index = 0, this.samplerate_index = 0, this.mode_ext = 0, this.lowpass1 = 0, this.lowpass2 = 0, this.highpass1 = 0, this.highpass2 = 0, this.noise_shaping = 0, this.noise_shaping_amp = 0, this.substep_shaping = 0, this.psymodel = 0, this.noise_shaping_stop = 0, this.subblock_gain = 0, this.use_best_huffman = 0, this.full_outer_loop = 0, this.l3_side = new function () { - this.tt = [[null, null], [null, null]], this.main_data_begin = 0, this.private_bits = 0, this.resvDrain_pre = 0, this.resvDrain_post = 0, this.scfsi = [ve(4), ve(4)]; - for (var e = 0; e < 2; e++) for (var t = 0; t < 2; t++) this.tt[e][t] = new B(); - }(), this.ms_ratio = de(2), this.padding = 0, this.frac_SpF = 0, this.slot_lag = 0, this.tag_spec = null, this.nMusicCRC = 0, this.OldValue = ve(2), this.CurrentStep = ve(2), this.masking_lower = 0, this.bv_scf = ve(576), this.pseudohalf = ve(F.SFBMAX), this.sfb21_extra = !1, this.inbuf_old = new Array(2), this.blackfilt = new Array(2 * j.BPC + 1), this.itime = n(2), this.sideinfo_len = 0, this.sb_sample = ge([2, 2, 18, Ae.SBLIMIT]), this.amp_filter = de(32), this.header = new Array(j.MAX_HEADER_BUF), this.h_ptr = 0, this.w_ptr = 0, this.ancillary_flag = 0, this.ResvSize = 0, this.ResvMax = 0, this.scalefac_band = new r(), this.minval_l = de(Ae.CBANDS), this.minval_s = de(Ae.CBANDS), this.nb_1 = ge([4, Ae.CBANDS]), this.nb_2 = ge([4, Ae.CBANDS]), this.nb_s1 = ge([4, Ae.CBANDS]), this.nb_s2 = ge([4, Ae.CBANDS]), this.s3_ss = null, this.s3_ll = null, this.decay = 0, this.thm = new Array(4), this.en = new Array(4), this.tot_ener = de(4), this.loudness_sq = ge([2, 2]), this.loudness_sq_save = de(2), this.mld_l = de(Ae.SBMAX_l), this.mld_s = de(Ae.SBMAX_s), this.bm_l = ve(Ae.SBMAX_l), this.bo_l = ve(Ae.SBMAX_l), this.bm_s = ve(Ae.SBMAX_s), this.bo_s = ve(Ae.SBMAX_s), this.npart_l = 0, this.npart_s = 0, this.s3ind = w([Ae.CBANDS, 2]), this.s3ind_s = w([Ae.CBANDS, 2]), this.numlines_s = ve(Ae.CBANDS), this.numlines_l = ve(Ae.CBANDS), this.rnumlines_l = de(Ae.CBANDS), this.mld_cb_l = de(Ae.CBANDS), this.mld_cb_s = de(Ae.CBANDS), this.numlines_s_num1 = 0, this.numlines_l_num1 = 0, this.pe = de(4), this.ms_ratio_s_old = 0, this.ms_ratio_l_old = 0, this.ms_ener_ratio_old = 0, this.blocktype_old = ve(2), this.nsPsy = new function () { - this.last_en_subshort = ge([4, 9]), this.lastAttacks = ve(4), this.pefirbuf = de(19), this.longfact = de(Ae.SBMAX_l), this.shortfact = de(Ae.SBMAX_s), this.attackthre = 0, this.attackthre_s = 0; + this.Class_ID = 0, this.lame_encode_frame_init = 0, this.iteration_init_init = 0, this.fill_buffer_resample_init = 0, this.mfbuf = ke([2, Z.MFSIZE]), this.mode_gr = 0, this.channels_in = 0, this.channels_out = 0, this.resample_ratio = 0, this.mf_samples_to_encode = 0, this.mf_size = 0, this.VBR_min_bitrate = 0, this.VBR_max_bitrate = 0, this.bitrate_index = 0, this.samplerate_index = 0, this.mode_ext = 0, this.lowpass1 = 0, this.lowpass2 = 0, this.highpass1 = 0, this.highpass2 = 0, this.noise_shaping = 0, this.noise_shaping_amp = 0, this.substep_shaping = 0, this.psymodel = 0, this.noise_shaping_stop = 0, this.subblock_gain = 0, this.use_best_huffman = 0, this.full_outer_loop = 0, this.l3_side = new function () { + this.tt = [[null, null], [null, null]], this.main_data_begin = 0, this.private_bits = 0, this.resvDrain_pre = 0, this.resvDrain_post = 0, this.scfsi = [Ae(4), Ae(4)]; + for (var e = 0; e < 2; e++) for (var t = 0; t < 2; t++) this.tt[e][t] = new T(); + }(), this.ms_ratio = Be(2), this.padding = 0, this.frac_SpF = 0, this.slot_lag = 0, this.tag_spec = null, this.nMusicCRC = 0, this.OldValue = Ae(2), this.CurrentStep = Ae(2), this.masking_lower = 0, this.bv_scf = Ae(576), this.pseudohalf = Ae(z.SFBMAX), this.sfb21_extra = !1, this.inbuf_old = new Array(2), this.blackfilt = new Array(2 * Z.BPC + 1), this.itime = s(2), this.sideinfo_len = 0, this.sb_sample = ke([2, 2, 18, Pe.SBLIMIT]), this.amp_filter = Be(32), this.header = new Array(Z.MAX_HEADER_BUF), this.h_ptr = 0, this.w_ptr = 0, this.ancillary_flag = 0, this.ResvSize = 0, this.ResvMax = 0, this.scalefac_band = new r(), this.minval_l = Be(Pe.CBANDS), this.minval_s = Be(Pe.CBANDS), this.nb_1 = ke([4, Pe.CBANDS]), this.nb_2 = ke([4, Pe.CBANDS]), this.nb_s1 = ke([4, Pe.CBANDS]), this.nb_s2 = ke([4, Pe.CBANDS]), this.s3_ss = null, this.s3_ll = null, this.decay = 0, this.thm = new Array(4), this.en = new Array(4), this.tot_ener = Be(4), this.loudness_sq = ke([2, 2]), this.loudness_sq_save = Be(2), this.mld_l = Be(Pe.SBMAX_l), this.mld_s = Be(Pe.SBMAX_s), this.bm_l = Ae(Pe.SBMAX_l), this.bo_l = Ae(Pe.SBMAX_l), this.bm_s = Ae(Pe.SBMAX_s), this.bo_s = Ae(Pe.SBMAX_s), this.npart_l = 0, this.npart_s = 0, this.s3ind = Y([Pe.CBANDS, 2]), this.s3ind_s = Y([Pe.CBANDS, 2]), this.numlines_s = Ae(Pe.CBANDS), this.numlines_l = Ae(Pe.CBANDS), this.rnumlines_l = Be(Pe.CBANDS), this.mld_cb_l = Be(Pe.CBANDS), this.mld_cb_s = Be(Pe.CBANDS), this.numlines_s_num1 = 0, this.numlines_l_num1 = 0, this.pe = Be(4), this.ms_ratio_s_old = 0, this.ms_ratio_l_old = 0, this.ms_ener_ratio_old = 0, this.blocktype_old = Ae(2), this.nsPsy = new function () { + this.last_en_subshort = ke([4, 9]), this.lastAttacks = Ae(4), this.pefirbuf = Be(19), this.longfact = Be(Pe.SBMAX_l), this.shortfact = Be(Pe.SBMAX_s), this.attackthre = 0, this.attackthre_s = 0; }(), this.VBR_seek_table = new function () { this.sum = 0, this.seen = 0, this.want = 0, this.pos = 0, this.size = 0, this.bag = null, this.nVbrNumFrames = 0, this.nBytesWritten = 0, this.TotalFrameSize = 0; - }(), this.ATH = null, this.PSY = null, this.nogap_total = 0, this.nogap_current = 0, this.decode_on_the_fly = !0, this.findReplayGain = !0, this.findPeakSample = !0, this.PeakSample = 0, this.RadioGain = 0, this.AudiophileGain = 0, this.rgdata = null, this.noclipGainChange = 0, this.noclipScale = 0, this.bitrate_stereoMode_Hist = w([16, 5]), this.bitrate_blockType_Hist = w([16, 6]), this.pinfo = null, this.hip = null, this.in_buffer_nsamples = 0, this.in_buffer_0 = null, this.in_buffer_1 = null, this.iteration_loop = null; + }(), this.ATH = null, this.PSY = null, this.nogap_total = 0, this.nogap_current = 0, this.decode_on_the_fly = !0, this.findReplayGain = !0, this.findPeakSample = !0, this.PeakSample = 0, this.RadioGain = 0, this.AudiophileGain = 0, this.rgdata = null, this.noclipGainChange = 0, this.noclipScale = 0, this.bitrate_stereoMode_Hist = Y([16, 5]), this.bitrate_blockType_Hist = Y([16, 6]), this.pinfo = null, this.hip = null, this.in_buffer_nsamples = 0, this.in_buffer_0 = null, this.in_buffer_1 = null, this.iteration_loop = null; for (var a = 0; a < this.en.length; a++) this.en[a] = new i(); - for (var a = 0; a < this.thm.length; a++) this.thm[a] = new i(); - for (var a = 0; a < this.header.length; a++) this.header[a] = new t(); + for (a = 0; a < this.thm.length; a++) this.thm[a] = new i(); + for (a = 0; a < this.header.length; a++) this.header[a] = new t(); } - function X() { - var k = new function () { - var h = de(Ae.BLKSIZE), - p = de(Ae.BLKSIZE_s / 2), - x = [.9238795325112867, .3826834323650898, .9951847266721969, .0980171403295606, .9996988186962042, .02454122852291229, .9999811752826011, .006135884649154475]; - function m(e, t, a) { - var n, - s, + function G() { + var B = new function () { + var u = Be(Pe.BLKSIZE), + p = Be(Pe.BLKSIZE_s / 2), + y = [.9238795325112867, .3826834323650898, .9951847266721969, .0980171403295606, .9996988186962042, .02454122852291229, .9999811752826011, .006135884649154475]; + function b(e, t, a) { + var s, + n, r, i = 0, o = t + (a <<= 1); - n = 4; + s = 4; do { - var _, l, f, c, u, h, b; - for (b = n >> 1, h = (u = (c = n) << 1) + c, n = u << 1, r = (s = t) + b; S = e[s + 0] - e[s + c], w = e[s + 0] + e[s + c], k = e[s + u] - e[s + h], y = e[s + u] + e[s + h], e[s + u] = w - y, e[s + 0] = w + y, e[s + h] = S - k, e[s + c] = S + k, S = e[r + 0] - e[r + c], w = e[r + 0] + e[r + c], k = V.SQRT2 * e[r + h], y = V.SQRT2 * e[r + u], e[r + u] = w - y, e[r + 0] = w + y, e[r + h] = S - k, e[r + c] = S + k, r += n, (s += n) < o;); - for (l = x[i + 0], _ = x[i + 1], f = 1; f < b; f++) { - var p, m; - p = 1 - 2 * _ * _, m = 2 * _ * l, s = t + f, r = t + c - f; + var _, l, f, c, h, u, m; + for (m = s >> 1, u = (h = (c = s) << 1) + c, s = h << 1, r = (n = t) + m; M = e[n + 0] - e[n + c], S = e[n + 0] + e[n + c], B = e[n + h] - e[n + u], R = e[n + h] + e[n + u], e[n + h] = S - R, e[n + 0] = S + R, e[n + u] = M - B, e[n + c] = M + B, M = e[r + 0] - e[r + c], S = e[r + 0] + e[r + c], B = ee.SQRT2 * e[r + u], R = ee.SQRT2 * e[r + h], e[r + h] = S - R, e[r + 0] = S + R, e[r + u] = M - B, e[r + c] = M + B, r += s, (n += s) < o;); + for (l = y[i + 0], _ = y[i + 1], f = 1; f < m; f++) { + var p, b; + p = 1 - 2 * _ * _, b = 2 * _ * l, n = t + f, r = t + c - f; do { - var v, d, g, w, S, M, y, A, k, R; - d = m * e[s + c] - p * e[r + c], v = p * e[s + c] + m * e[r + c], S = e[s + 0] - v, w = e[s + 0] + v, M = e[r + 0] - d, g = e[r + 0] + d, d = m * e[s + h] - p * e[r + h], v = p * e[s + h] + m * e[r + h], k = e[s + u] - v, y = e[s + u] + v, R = e[r + u] - d, A = e[r + u] + d, d = _ * y - l * R, v = l * y + _ * R, e[s + u] = w - v, e[s + 0] = w + v, e[r + h] = M - d, e[r + c] = M + d, d = l * A - _ * k, v = _ * A + l * k, e[r + u] = g - v, e[r + 0] = g + v, e[s + h] = S - d, e[s + c] = S + d, r += n, s += n; - } while (s < o); - l = (p = l) * x[i + 0] - _ * x[i + 1], _ = p * x[i + 1] + _ * x[i + 0]; + var v, d, g, S, M, w, R, A, B, k; + d = b * e[n + c] - p * e[r + c], v = p * e[n + c] + b * e[r + c], M = e[n + 0] - v, S = e[n + 0] + v, w = e[r + 0] - d, g = e[r + 0] + d, d = b * e[n + u] - p * e[r + u], v = p * e[n + u] + b * e[r + u], B = e[n + h] - v, R = e[n + h] + v, k = e[r + h] - d, A = e[r + h] + d, d = _ * R - l * k, v = l * R + _ * k, e[n + h] = S - v, e[n + 0] = S + v, e[r + u] = w - d, e[r + c] = w + d, d = l * A - _ * B, v = _ * A + l * B, e[r + h] = g - v, e[r + 0] = g + v, e[n + u] = M - d, e[n + c] = M + d, r += s, n += s; + } while (n < o); + l = (p = l) * y[i + 0] - _ * y[i + 1], _ = p * y[i + 1] + _ * y[i + 0]; } i += 2; - } while (n < a); + } while (s < a); } var v = [0, 128, 64, 192, 32, 160, 96, 224, 16, 144, 80, 208, 48, 176, 112, 240, 8, 136, 72, 200, 40, 168, 104, 232, 24, 152, 88, 216, 56, 184, 120, 248, 4, 132, 68, 196, 36, 164, 100, 228, 20, 148, 84, 212, 52, 180, 116, 244, 12, 140, 76, 204, 44, 172, 108, 236, 28, 156, 92, 220, 60, 188, 124, 252, 2, 130, 66, 194, 34, 162, 98, 226, 18, 146, 82, 210, 50, 178, 114, 242, 10, 138, 74, 202, 42, 170, 106, 234, 26, 154, 90, 218, 58, 186, 122, 250, 6, 134, 70, 198, 38, 166, 102, 230, 22, 150, 86, 214, 54, 182, 118, 246, 14, 142, 78, 206, 46, 174, 110, 238, 30, 158, 94, 222, 62, 190, 126, 254]; - this.fft_short = function (e, t, a, n, s) { + this.fft_short = function (e, t, a, s, n) { for (var r = 0; r < 3; r++) { - var i = Ae.BLKSIZE_s / 2, + var i = Pe.BLKSIZE_s / 2, o = 65535 & 192 * (r + 1), - _ = Ae.BLKSIZE_s / 8 - 1; + _ = Pe.BLKSIZE_s / 8 - 1; do { var l, f, c, - u, h, - b = 255 & v[_ << 2]; - l = p[b] * n[a][s + b + o], h = p[127 - b] * n[a][s + b + o + 128], f = l - h, l += h, c = p[b + 64] * n[a][s + b + o + 64], h = p[63 - b] * n[a][s + b + o + 192], u = c - h, c += h, i -= 4, t[r][i + 0] = l + c, t[r][i + 2] = l - c, t[r][i + 1] = f + u, t[r][i + 3] = f - u, l = p[b + 1] * n[a][s + b + o + 1], h = p[126 - b] * n[a][s + b + o + 129], f = l - h, l += h, c = p[b + 65] * n[a][s + b + o + 65], h = p[62 - b] * n[a][s + b + o + 193], u = c - h, c += h, t[r][i + Ae.BLKSIZE_s / 2 + 0] = l + c, t[r][i + Ae.BLKSIZE_s / 2 + 2] = l - c, t[r][i + Ae.BLKSIZE_s / 2 + 1] = f + u, t[r][i + Ae.BLKSIZE_s / 2 + 3] = f - u; + u, + m = 255 & v[_ << 2]; + f = (l = p[m] * s[a][n + m + o]) - (u = p[127 - m] * s[a][n + m + o + 128]), l += u, h = (c = p[m + 64] * s[a][n + m + o + 64]) - (u = p[63 - m] * s[a][n + m + o + 192]), c += u, i -= 4, t[r][i + 0] = l + c, t[r][i + 2] = l - c, t[r][i + 1] = f + h, t[r][i + 3] = f - h, f = (l = p[m + 1] * s[a][n + m + o + 1]) - (u = p[126 - m] * s[a][n + m + o + 129]), l += u, h = (c = p[m + 65] * s[a][n + m + o + 65]) - (u = p[62 - m] * s[a][n + m + o + 193]), c += u, t[r][i + Pe.BLKSIZE_s / 2 + 0] = l + c, t[r][i + Pe.BLKSIZE_s / 2 + 2] = l - c, t[r][i + Pe.BLKSIZE_s / 2 + 1] = f + h, t[r][i + Pe.BLKSIZE_s / 2 + 3] = f - h; } while (0 <= --_); - m(t[r], i, Ae.BLKSIZE_s / 2); + b(t[r], i, Pe.BLKSIZE_s / 2); } - }, this.fft_long = function (e, t, a, n, s) { - var r = Ae.BLKSIZE / 8 - 1, - i = Ae.BLKSIZE / 2; + }, this.fft_long = function (e, t, a, s, n) { + var r = Pe.BLKSIZE / 8 - 1, + i = Pe.BLKSIZE / 2; do { var o, _, l, f, c, - u = 255 & v[r]; - o = h[u] * n[a][s + u], c = h[u + 512] * n[a][s + u + 512], _ = o - c, o += c, l = h[u + 256] * n[a][s + u + 256], c = h[u + 768] * n[a][s + u + 768], f = l - c, l += c, t[0 + (i -= 4)] = o + l, t[i + 2] = o - l, t[i + 1] = _ + f, t[i + 3] = _ - f, o = h[u + 1] * n[a][s + u + 1], c = h[u + 513] * n[a][s + u + 513], _ = o - c, o += c, l = h[u + 257] * n[a][s + u + 257], c = h[u + 769] * n[a][s + u + 769], f = l - c, l += c, t[i + Ae.BLKSIZE / 2 + 0] = o + l, t[i + Ae.BLKSIZE / 2 + 2] = o - l, t[i + Ae.BLKSIZE / 2 + 1] = _ + f, t[i + Ae.BLKSIZE / 2 + 3] = _ - f; + h = 255 & v[r]; + _ = (o = u[h] * s[a][n + h]) - (c = u[h + 512] * s[a][n + h + 512]), o += c, f = (l = u[h + 256] * s[a][n + h + 256]) - (c = u[h + 768] * s[a][n + h + 768]), l += c, t[0 + (i -= 4)] = o + l, t[i + 2] = o - l, t[i + 1] = _ + f, t[i + 3] = _ - f, _ = (o = u[h + 1] * s[a][n + h + 1]) - (c = u[h + 513] * s[a][n + h + 513]), o += c, f = (l = u[h + 257] * s[a][n + h + 257]) - (c = u[h + 769] * s[a][n + h + 769]), l += c, t[i + Pe.BLKSIZE / 2 + 0] = o + l, t[i + Pe.BLKSIZE / 2 + 2] = o - l, t[i + Pe.BLKSIZE / 2 + 1] = _ + f, t[i + Pe.BLKSIZE / 2 + 3] = _ - f; } while (0 <= --r); - m(t, i, Ae.BLKSIZE / 2); + b(t, i, Pe.BLKSIZE / 2); }, this.init_fft = function (e) { - for (var t = 0; t < Ae.BLKSIZE; t++) h[t] = .42 - .5 * Math.cos(2 * Math.PI * (t + .5) / Ae.BLKSIZE) + .08 * Math.cos(4 * Math.PI * (t + .5) / Ae.BLKSIZE); - for (var t = 0; t < Ae.BLKSIZE_s / 2; t++) p[t] = .5 * (1 - Math.cos(2 * Math.PI * (t + .5) / Ae.BLKSIZE_s)); + for (var t = 0; t < Pe.BLKSIZE; t++) u[t] = .42 - .5 * Math.cos(2 * Math.PI * (t + .5) / Pe.BLKSIZE) + .08 * Math.cos(4 * Math.PI * (t + .5) / Pe.BLKSIZE); + for (t = 0; t < Pe.BLKSIZE_s / 2; t++) p[t] = .5 * (1 - Math.cos(2 * Math.PI * (t + .5) / Pe.BLKSIZE_s)); }; }(), - R = 2.302585092994046, + k = 2.302585092994046, + _e = 2, + le = 16, d = 2, g = 16, E = .34, - v = 1 / 217621504 / (Ae.BLKSIZE / 2), - w = .2302585093; - function se(e, t, a, n, s, r, i, o, _, l, f) { + n = 1 / 217621504 / (Pe.BLKSIZE / 2), + fe = .3, + ce = 21, + S = .2302585093; + function M(e) { + return e; + } + function N(e, t) { + for (var a = 0, s = 0; s < Pe.BLKSIZE / 2; ++s) a += e[s] * t.ATH.eql_w[s]; + return a *= n; + } + function he(e, t, a, s, n, r, i, o, _, l, f) { var c = e.internal_flags; - _ < 2 ? (k.fft_long(c, n[s], _, l, f), k.fft_short(c, r[i], _, l, f)) : 2 == _ && me(), t[0] = n[s + 0][0], t[0] *= t[0]; - for (var u = Ae.BLKSIZE / 2 - 1; 0 <= u; --u) { - var h = n[s + 0][Ae.BLKSIZE / 2 - u], - b = n[s + 0][Ae.BLKSIZE / 2 + u]; - t[Ae.BLKSIZE / 2 - u] = .5 * (h * h + b * b); - } - for (var p = 2; 0 <= p; --p) { - a[p][0] = r[i + 0][p][0], a[p][0] *= a[p][0]; - for (var u = Ae.BLKSIZE_s / 2 - 1; 0 <= u; --u) { - var h = r[i + 0][p][Ae.BLKSIZE_s / 2 - u], - b = r[i + 0][p][Ae.BLKSIZE_s / 2 + u]; - a[p][Ae.BLKSIZE_s / 2 - u] = .5 * (h * h + b * b); + if (_ < 2) B.fft_long(c, s[n], _, l, f), B.fft_short(c, r[i], _, l, f);else if (2 == _) { + for (var h = Pe.BLKSIZE - 1; 0 <= h; --h) { + var u = s[n + 0][h], + m = s[n + 1][h]; + s[n + 0][h] = (u + m) * ee.SQRT2 * .5, s[n + 1][h] = (u - m) * ee.SQRT2 * .5; + } + for (var p = 2; 0 <= p; --p) for (h = Pe.BLKSIZE_s - 1; 0 <= h; --h) { + u = r[i + 0][p][h], m = r[i + 1][p][h]; + r[i + 0][p][h] = (u + m) * ee.SQRT2 * .5, r[i + 1][p][h] = (u - m) * ee.SQRT2 * .5; } } - for (var m = 0, u = 11; u < Ae.HBLKSIZE; u++) m += t[u]; - c.tot_ener[_] = m, e.analysis && me(), 2 == e.athaa_loudapprox && _ < 2 && (c.loudness_sq[o][_] = c.loudness_sq_save[_], c.loudness_sq_save[_] = function (e, t) { - for (var a = 0, n = 0; n < Ae.BLKSIZE / 2; ++n) a += e[n] * t.ATH.eql_w[n]; - return a *= v; - }(t, c)); + t[0] = M(s[n + 0][0]), t[0] *= t[0]; + for (h = Pe.BLKSIZE / 2 - 1; 0 <= h; --h) { + var b = s[n + 0][Pe.BLKSIZE / 2 - h], + v = s[n + 0][Pe.BLKSIZE / 2 + h]; + t[Pe.BLKSIZE / 2 - h] = M(.5 * (b * b + v * v)); + } + for (p = 2; 0 <= p; --p) { + a[p][0] = r[i + 0][p][0], a[p][0] *= a[p][0]; + for (h = Pe.BLKSIZE_s / 2 - 1; 0 <= h; --h) { + b = r[i + 0][p][Pe.BLKSIZE_s / 2 - h], v = r[i + 0][p][Pe.BLKSIZE_s / 2 + h]; + a[p][Pe.BLKSIZE_s / 2 - h] = M(.5 * (b * b + v * v)); + } + } + var d = 0; + for (h = 11; h < Pe.HBLKSIZE; h++) d += t[h]; + if (c.tot_ener[_] = d, e.analysis) { + for (h = 0; h < Pe.HBLKSIZE; h++) c.pinfo.energy[o][_][h] = c.pinfo.energy_save[_][h], c.pinfo.energy_save[_][h] = t[h]; + c.pinfo.pe[o][_] = c.pe[_]; + } + 2 == e.athaa_loudapprox && _ < 2 && (c.loudness_sq[o][_] = c.loudness_sq_save[_], c.loudness_sq_save[_] = N(t, c)); } - var x, - B, + var y, T, - C = 8, - I = 23, - L = 15, - re = [1, .79433, .63096, .63096, .63096, .63096, .63096, .25119, .11749], - f = [3.3246 * 3.3246, 3.23837 * 3.23837, 9.9500500969, 9.0247369744, 8.1854926609, 7.0440875649, 2.46209 * 2.46209, 2.284 * 2.284, 4.4892710641, 1.96552 * 1.96552, 1.82335 * 1.82335, 1.69146 * 1.69146, 2.4621061921, 2.1508568964, 1.37074 * 1.37074, 1.31036 * 1.31036, 1.5691069696, 1.4555939904, 1.16203 * 1.16203, 1.2715945225, 1.09428 * 1.09428, 1.0659 * 1.0659, 1.0779838276, 1.0382591025, 1], + x, + P = 8, + L = 23, + I = 15, + ue = [1, .79433, .63096, .63096, .63096, .63096, .63096, .25119, .11749]; + var f = [3.3246 * 3.3246, 3.23837 * 3.23837, 9.9500500969, 9.0247369744, 8.1854926609, 7.0440875649, 2.46209 * 2.46209, 2.284 * 2.284, 4.4892710641, 1.96552 * 1.96552, 1.82335 * 1.82335, 1.69146 * 1.69146, 2.4621061921, 2.1508568964, 1.37074 * 1.37074, 1.31036 * 1.31036, 1.5691069696, 1.4555939904, 1.16203 * 1.16203, 1.2715945225, 1.09428 * 1.09428, 1.0659 * 1.0659, 1.0779838276, 1.0382591025, 1], c = [1.7782755904, 1.35879 * 1.35879, 1.38454 * 1.38454, 1.39497 * 1.39497, 1.40548 * 1.40548, 1.3537 * 1.3537, 1.6999465924, 1.22321 * 1.22321, 1.3169398564, 1], - u = [5.5396212496, 2.29259 * 2.29259, 4.9868695969, 2.12675 * 2.12675, 2.02545 * 2.02545, 1.87894 * 1.87894, 1.74303 * 1.74303, 1.61695 * 1.61695, 2.2499700001, 1.39148 * 1.39148, 1.29083 * 1.29083, 1.19746 * 1.19746, 1.2339655056, 1.0779838276]; - function ie(e, t, a, n, s, r) { + h = [5.5396212496, 2.29259 * 2.29259, 4.9868695969, 2.12675 * 2.12675, 2.02545 * 2.02545, 1.87894 * 1.87894, 1.74303 * 1.74303, 1.61695 * 1.61695, 2.2499700001, 1.39148 * 1.39148, 1.29083 * 1.29083, 1.19746 * 1.19746, 1.2339655056, 1.0779838276]; + function me(e, t, a, s, n, r) { var i; if (e < t) { - if (!(t < e * B)) return e + t; + if (!(t < e * T)) return e + t; i = t / e; } else { - if (t * B <= e) return e + t; + if (t * T <= e) return e + t; i = e / t; } - if (e += t, n + 3 <= 6) { - if (x <= i) return e; - var o = 0 | V.FAST_LOG10_X(i, 16); + if (e += t, s + 3 <= 6) { + if (y <= i) return e; + var o = 0 | ee.FAST_LOG10_X(i, 16); return e * c[o]; } - var _, - l, - o = 0 | V.FAST_LOG10_X(i, 16); - return t = 0 != r ? s.ATH.cb_s[a] * s.ATH.adjust : s.ATH.cb_l[a] * s.ATH.adjust, e < T * t ? t < e ? (_ = 1, o <= 13 && (_ = u[o]), l = V.FAST_LOG10_X(e / t, 10 / 15), e * ((f[o] - _) * l + _)) : 13 < o ? e : e * u[o] : e * f[o]; + var _, l; + o = 0 | ee.FAST_LOG10_X(i, 16); + return t = 0 != r ? n.ATH.cb_s[a] * n.ATH.adjust : n.ATH.cb_l[a] * n.ATH.adjust, e < x * t ? t < e ? (_ = 1, o <= 13 && (_ = h[o]), l = ee.FAST_LOG10_X(e / t, 10 / 15), e * ((f[o] - _) * l + _)) : 13 < o ? e : e * h[o] : e * f[o]; } - function oe(e, t, a, n, s) { + var r = [1.7782755904, 1.35879 * 1.35879, 1.38454 * 1.38454, 1.39497 * 1.39497, 1.40548 * 1.40548, 1.3537 * 1.3537, 1.6999465924, 1.22321 * 1.22321, 1.3169398564, 1]; + function A(e, t, a) { + var s; + if (e < 0 && (e = 0), t < 0 && (t = 0), e <= 0) return t; + if (t <= 0) return e; + if (s = e < t ? t / e : e / t, -2 <= a && a <= 2) { + if (y <= s) return e + t; + var n = 0 | ee.FAST_LOG10_X(s, 16); + return (e + t) * r[n]; + } + return s < T ? e + t : (e < t && (e = t), e); + } + function pe(e, t, a, s, n) { var r, i, o = 0, _ = 0; - for (r = i = 0; r < Ae.SBMAX_s; ++i, ++r) { + for (r = i = 0; r < Pe.SBMAX_s; ++i, ++r) { for (var l = e.bo_s[r], f = e.npart_s, c = l < f ? l : f; i < c;) o += t[i], _ += a[i], i++; - if (e.en[n].s[r][s] = o, e.thm[n].s[r][s] = _, f <= i) { + if (e.en[s].s[r][n] = o, e.thm[s].s[r][n] = _, f <= i) { ++r; break; } - var u = e.PSY.bo_s_weight[r], - h = 1 - u; - o = u * t[i], _ = u * a[i], e.en[n].s[r][s] += o, e.thm[n].s[r][s] += _, o = h * t[i], _ = h * a[i]; + var h = e.PSY.bo_s_weight[r], + u = 1 - h; + o = h * t[i], _ = h * a[i], e.en[s].s[r][n] += o, e.thm[s].s[r][n] += _, o = u * t[i], _ = u * a[i]; } - for (; r < Ae.SBMAX_s; ++r) e.en[n].s[r][s] = 0, e.thm[n].s[r][s] = 0; + for (; r < Pe.SBMAX_s; ++r) e.en[s].s[r][n] = 0, e.thm[s].s[r][n] = 0; } - function _e(e, t, a, n) { - var s, + function be(e, t, a, s) { + var n, r, i = 0, o = 0; - for (s = r = 0; s < Ae.SBMAX_l; ++r, ++s) { - for (var _ = e.bo_l[s], l = e.npart_l, f = _ < l ? _ : l; r < f;) i += t[r], o += a[r], r++; - if (e.en[n].l[s] = i, e.thm[n].l[s] = o, l <= r) { - ++s; + for (n = r = 0; n < Pe.SBMAX_l; ++r, ++n) { + for (var _ = e.bo_l[n], l = e.npart_l, f = _ < l ? _ : l; r < f;) i += t[r], o += a[r], r++; + if (e.en[s].l[n] = i, e.thm[s].l[n] = o, l <= r) { + ++n; break; } - var c = e.PSY.bo_l_weight[s], - u = 1 - c; - i = c * t[r], o = c * a[r], e.en[n].l[s] += i, e.thm[n].l[s] += o, i = u * t[r], o = u * a[r]; + var c = e.PSY.bo_l_weight[n], + h = 1 - c; + i = c * t[r], o = c * a[r], e.en[s].l[n] += i, e.thm[s].l[n] += o, i = h * t[r], o = h * a[r]; } - for (; s < Ae.SBMAX_l; ++s) e.en[n].l[s] = 0, e.thm[n].l[s] = 0; + for (; n < Pe.SBMAX_l; ++n) e.en[s].l[n] = 0, e.thm[s].l[n] = 0; } - function le(e, t, a, n, s, r) { + function ve(e, t, a, s, n, r) { var i, o, _ = e.internal_flags; for (o = i = 0; o < _.npart_s; ++o) { - for (var l = 0, f = 0, c = _.numlines_s[o], u = 0; u < c; ++u, ++i) { - var h = t[r][i]; - l += h, f < h && (f = h); + for (var l = 0, f = 0, c = _.numlines_s[o], h = 0; h < c; ++h, ++i) { + var u = t[r][i]; + l += u, f < u && (f = u); } a[o] = l; } for (i = o = 0; o < _.npart_s; o++) { - var b = _.s3ind_s[o][0], - p = _.s3_ss[i++] * a[b]; - for (++b; b <= _.s3ind_s[o][1];) p += _.s3_ss[i] * a[b], ++i, ++b; - var m = d * _.nb_s1[s][o]; - if (n[o] = Math.min(p, m), _.blocktype_old[1 & s] == Ae.SHORT_TYPE) { - var m = g * _.nb_s2[s][o], - v = n[o]; - n[o] = Math.min(m, v); + var m = _.s3ind_s[o][0], + p = _.s3_ss[i++] * a[m]; + for (++m; m <= _.s3ind_s[o][1];) p += _.s3_ss[i] * a[m], ++i, ++m; + var b = d * _.nb_s1[n][o]; + if (s[o] = Math.min(p, b), _.blocktype_old[1 & n] == Pe.SHORT_TYPE) { + b = g * _.nb_s2[n][o]; + var v = s[o]; + s[o] = Math.min(b, v); } - _.nb_s2[s][o] = _.nb_s1[s][o], _.nb_s1[s][o] = p; + _.nb_s2[n][o] = _.nb_s1[n][o], _.nb_s1[n][o] = p; } - for (; o <= Ae.CBANDS; ++o) a[o] = 0, n[o] = 0; + for (; o <= Pe.CBANDS; ++o) a[o] = 0, s[o] = 0; } - function fe(e, t, a) { + function de(e, t, a) { return 1 <= a ? e : a <= 0 ? t : 0 < t ? Math.pow(e / t, a) * t : 0; } var _ = [11.8, 13.6, 17.2, 32, 46.5, 51.3, 57.5, 67.1, 71.5, 84.6, 97.6, 130]; - function ce(e, t) { - for (var a = 309.07, n = 0; n < Ae.SBMAX_s - 1; n++) for (var s = 0; s < 3; s++) { - var r = e.thm.s[n][s]; + function ge(e, t) { + for (var a = 309.07, s = 0; s < Pe.SBMAX_s - 1; s++) for (var n = 0; n < 3; n++) { + var r = e.thm.s[s][n]; if (0 < r) { var i = r * t, - o = e.en.s[n][s]; - i < o && (a += 1e10 * i < o ? _[n] * (10 * R) : _[n] * V.FAST_LOG10(o / i)); + o = e.en.s[s][n]; + i < o && (a += 1e10 * i < o ? _[s] * (10 * k) : _[s] * ee.FAST_LOG10(o / i)); } } return a; } var o = [6.8, 5.8, 5.8, 6.4, 6.5, 9.9, 12.1, 14.4, 15, 18.9, 21.6, 26.9, 34.2, 40.2, 46.8, 56.5, 60.7, 73.9, 85.7, 93.4, 126.1]; - function ue(e, t) { - for (var a = 281.0575, n = 0; n < Ae.SBMAX_l - 1; n++) { - var s = e.thm.l[n]; - if (0 < s) { - var r = s * t, - i = e.en.l[n]; - r < i && (a += 1e10 * r < i ? o[n] * (10 * R) : o[n] * V.FAST_LOG10(i / r)); + function Se(e, t) { + for (var a = 281.0575, s = 0; s < Pe.SBMAX_l - 1; s++) { + var n = e.thm.l[s]; + if (0 < n) { + var r = n * t, + i = e.en.l[s]; + r < i && (a += 1e10 * r < i ? o[s] * (10 * k) : o[s] * ee.FAST_LOG10(i / r)); } } return a; } - function he(e, t, a, n, s) { + function Me(e, t, a, s, n) { var r, i; for (r = i = 0; r < e.npart_l; ++r) { var o, @@ -36496,495 +36399,894 @@ src: recorder-core.js,engine/mp3.js,engine/mp3-engine.js var f = t[i]; _ += f, l < f && (l = f); } - a[r] = _, n[r] = l, s[r] = _ * e.rnumlines_l[r]; + a[r] = _, s[r] = l, n[r] = _ * e.rnumlines_l[r]; } } - function be(e, t, a, n) { - var s = re.length - 1, + function we(e, t, a, s) { + var n = ue.length - 1, r = 0, i = a[r] + a[r + 1]; - if (0 < i) { - var o = t[r]; - o < t[r + 1] && (o = t[r + 1]); - var _ = 0 | (i = 20 * (2 * o - i) / (i * (e.numlines_l[r] + e.numlines_l[r + 1] - 1))); - s < _ && (_ = s), n[r] = _; - } else n[r] = 0; - for (r = 1; r < e.npart_l - 1; r++) if (0 < (i = a[r - 1] + a[r] + a[r + 1])) { - var o = t[r - 1]; - o < t[r] && (o = t[r]), o < t[r + 1] && (o = t[r + 1]); - var _ = 0 | (i = 20 * (3 * o - i) / (i * (e.numlines_l[r - 1] + e.numlines_l[r] + e.numlines_l[r + 1] - 1))); - s < _ && (_ = s), n[r] = _; - } else n[r] = 0; - if (0 < (i = a[r - 1] + a[r])) { - var o = t[r - 1]; - o < t[r] && (o = t[r]); - var _ = 0 | (i = 20 * (2 * o - i) / (i * (e.numlines_l[r - 1] + e.numlines_l[r] - 1))); - s < _ && (_ = s), n[r] = _; - } else n[r] = 0; + 0 < i ? ((o = t[r]) < t[r + 1] && (o = t[r + 1]), n < (_ = 0 | (i = 20 * (2 * o - i) / (i * (e.numlines_l[r] + e.numlines_l[r + 1] - 1)))) && (_ = n), s[r] = _) : s[r] = 0; + for (r = 1; r < e.npart_l - 1; r++) { + var o, _; + if (0 < (i = a[r - 1] + a[r] + a[r + 1])) (o = t[r - 1]) < t[r] && (o = t[r]), o < t[r + 1] && (o = t[r + 1]), n < (_ = 0 | (i = 20 * (3 * o - i) / (i * (e.numlines_l[r - 1] + e.numlines_l[r] + e.numlines_l[r + 1] - 1)))) && (_ = n), s[r] = _;else s[r] = 0; + } + 0 < (i = a[r - 1] + a[r]) ? ((o = t[r - 1]) < t[r] && (o = t[r]), n < (_ = 0 | (i = 20 * (2 * o - i) / (i * (e.numlines_l[r - 1] + e.numlines_l[r] - 1)))) && (_ = n), s[r] = _) : s[r] = 0; } - var pe = [-1.730326e-17, -.01703172, -1.349528e-17, .0418072, -6.73278e-17, -.0876324, -3.0835e-17, .1863476, -1.104424e-16, -.627638]; - function P(e) { + var Re = [-1.730326e-17, -.01703172, -1.349528e-17, .0418072, -6.73278e-17, -.0876324, -3.0835e-17, .1863476, -1.104424e-16, -.627638]; + function D(e, t, a, s, n, r, i, o) { + var _ = e.internal_flags; + if (s < 2) B.fft_long(_, i[o], s, t, a);else if (2 == s) for (var l = Pe.BLKSIZE - 1; 0 <= l; --l) { + var f = i[o + 0][l], + c = i[o + 1][l]; + i[o + 0][l] = (f + c) * ee.SQRT2 * .5, i[o + 1][l] = (f - c) * ee.SQRT2 * .5; + } + r[0] = M(i[o + 0][0]), r[0] *= r[0]; + for (l = Pe.BLKSIZE / 2 - 1; 0 <= l; --l) { + var h = i[o + 0][Pe.BLKSIZE / 2 - l], + u = i[o + 0][Pe.BLKSIZE / 2 + l]; + r[Pe.BLKSIZE / 2 - l] = M(.5 * (h * h + u * u)); + } + var m = 0; + for (l = 11; l < Pe.HBLKSIZE; l++) m += r[l]; + if (_.tot_ener[s] = m, e.analysis) { + for (l = 0; l < Pe.HBLKSIZE; l++) _.pinfo.energy[n][s][l] = _.pinfo.energy_save[s][l], _.pinfo.energy_save[s][l] = r[l]; + _.pinfo.pe[n][s] = _.pe[s]; + } + } + function Y(e, t, a, s, n, r, i, o) { + var _ = e.internal_flags; + if (0 == n && s < 2 && B.fft_short(_, i[o], s, t, a), 2 == s) for (var l = Pe.BLKSIZE_s - 1; 0 <= l; --l) { + var f = i[o + 0][n][l], + c = i[o + 1][n][l]; + i[o + 0][n][l] = (f + c) * ee.SQRT2 * .5, i[o + 1][n][l] = (f - c) * ee.SQRT2 * .5; + } + r[n][0] = i[o + 0][n][0], r[n][0] *= r[n][0]; + for (l = Pe.BLKSIZE_s / 2 - 1; 0 <= l; --l) { + var h = i[o + 0][n][Pe.BLKSIZE_s / 2 - l], + u = i[o + 0][n][Pe.BLKSIZE_s / 2 + l]; + r[n][Pe.BLKSIZE_s / 2 - l] = M(.5 * (h * h + u * u)); + } + } + this.L3psycho_anal_ns = function (e, t, a, s, n, r, i, o, _, l) { + var f, + c, + h, + u, + m, + p, + b, + v, + d, + g, + S = e.internal_flags, + M = ke([2, Pe.BLKSIZE]), + w = ke([2, 3, Pe.BLKSIZE_s]), + R = Be(Pe.CBANDS + 1), + A = Be(Pe.CBANDS + 1), + B = Be(Pe.CBANDS + 2), + k = Ae(2), + y = Ae(2), + T = ke([2, 576]), + x = Ae(Pe.CBANDS + 2), + E = Ae(Pe.CBANDS + 2); + for (ye.fill(E, 0), f = S.channels_out, e.mode == Ee.JOINT_STEREO && (f = 4), d = e.VBR == xe.vbr_off ? 0 == S.ResvMax ? 0 : S.ResvSize / S.ResvMax * .5 : e.VBR == xe.vbr_rh || e.VBR == xe.vbr_mtrh || e.VBR == xe.vbr_mt ? .6 : 1, c = 0; c < S.channels_out; c++) { + var P = t[c], + L = a + 576 - 350 - ce + 192; + for (u = 0; u < 576; u++) { + var I, H; + for (I = P[L + u + 10], m = H = 0; m < (ce - 1) / 2 - 1; m += 2) I += Re[m] * (P[L + u + m] + P[L + u + ce - m]), H += Re[m + 1] * (P[L + u + m + 1] + P[L + u + ce - m - 1]); + T[c][u] = I + H; + } + n[s][c].en.assign(S.en[c]), n[s][c].thm.assign(S.thm[c]), 2 < f && (r[s][c].en.assign(S.en[c + 2]), r[s][c].thm.assign(S.thm[c + 2])); + } + for (c = 0; c < f; c++) { + var C, + V = Be(12), + O = [0, 0, 0, 0], + N = Be(12), + D = 1, + Y = Be(Pe.CBANDS), + X = Be(Pe.CBANDS), + q = [0, 0, 0, 0], + F = Be(Pe.HBLKSIZE), + j = ke([3, Pe.HBLKSIZE_s]); + for (u = 0; u < 3; u++) V[u] = S.nsPsy.last_en_subshort[c][u + 6], N[u] = V[u] / S.nsPsy.last_en_subshort[c][u + 4], O[0] += V[u]; + if (2 == c) for (u = 0; u < 576; u++) { + var z, Z; + z = T[0][u], Z = T[1][u], T[0][u] = z + Z, T[1][u] = z - Z; + } + var K = T[1 & c], + G = 0; + for (u = 0; u < 9; u++) { + for (var U = G + 64, Q = 1; G < U; G++) Q < Math.abs(K[G]) && (Q = Math.abs(K[G])); + S.nsPsy.last_en_subshort[c][u] = V[u + 3] = Q, O[1 + u / 3] += Q, Q > V[u + 3 - 2] ? Q /= V[u + 3 - 2] : Q = V[u + 3 - 2] > 10 * Q ? V[u + 3 - 2] / (10 * Q) : 0, N[u + 3] = Q; + } + if (e.analysis) { + var W = N[0]; + for (u = 1; u < 12; u++) W < N[u] && (W = N[u]); + S.pinfo.ers[s][c] = S.pinfo.ers_save[c], S.pinfo.ers_save[c] = W; + } + for (C = 3 == c ? S.nsPsy.attackthre_s : S.nsPsy.attackthre, u = 0; u < 12; u++) 0 == q[u / 3] && N[u] > C && (q[u / 3] = u % 3 + 1); + for (u = 1; u < 4; u++) { + (O[u - 1] > O[u] ? O[u - 1] / O[u] : O[u] / O[u - 1]) < 1.7 && (q[u] = 0, 1 == u && (q[0] = 0)); + } + for (0 != q[0] && 0 != S.nsPsy.lastAttacks[c] && (q[0] = 0), 3 != S.nsPsy.lastAttacks[c] && q[0] + q[1] + q[2] + q[3] == 0 || ((D = 0) != q[1] && 0 != q[0] && (q[1] = 0), 0 != q[2] && 0 != q[1] && (q[2] = 0), 0 != q[3] && 0 != q[2] && (q[3] = 0)), c < 2 ? y[c] = D : 0 == D && (y[0] = y[1] = 0), _[c] = S.tot_ener[c], he(e, F, j, M, 1 & c, w, 1 & c, s, c, t, a), Me(S, F, R, Y, X), we(S, Y, X, x), v = 0; v < 3; v++) { + var J, $; + for (ve(e, j, A, B, c, v), pe(S, A, B, c, v), b = 0; b < Pe.SBMAX_s; b++) { + if ($ = S.thm[c].s[b][v], $ *= .8, 2 <= q[v] || 1 == q[v + 1]) { + var ee = 0 != v ? v - 1 : 2; + Q = de(S.thm[c].s[b][ee], $, .6 * d); + $ = Math.min($, Q); + } + if (1 == q[v]) { + ee = 0 != v ? v - 1 : 2, Q = de(S.thm[c].s[b][ee], $, fe * d); + $ = Math.min($, Q); + } else if (0 != v && 3 == q[v - 1] || 0 == v && 3 == S.nsPsy.lastAttacks[c]) { + ee = 2 != v ? v + 1 : 0, Q = de(S.thm[c].s[b][ee], $, fe * d); + $ = Math.min($, Q); + } + J = V[3 * v + 3] + V[3 * v + 4] + V[3 * v + 5], 6 * V[3 * v + 5] < J && ($ *= .5, 6 * V[3 * v + 4] < J && ($ *= .5)), S.thm[c].s[b][v] = $; + } + } + for (S.nsPsy.lastAttacks[c] = q[2], h = p = 0; h < S.npart_l; h++) { + for (var te = S.s3ind[h][0], ae = R[te] * ue[x[te]], se = S.s3_ll[p++] * ae; ++te <= S.s3ind[h][1];) ae = R[te] * ue[x[te]], se = me(se, S.s3_ll[p++] * ae, te, te - h, S, 0); + se *= .158489319246111, S.blocktype_old[1 & c] == Pe.SHORT_TYPE ? B[h] = se : B[h] = de(Math.min(se, Math.min(_e * S.nb_1[c][h], le * S.nb_2[c][h])), se, d), S.nb_2[c][h] = S.nb_1[c][h], S.nb_1[c][h] = se; + } + for (; h <= Pe.CBANDS; ++h) R[h] = 0, B[h] = 0; + be(S, R, B, c); + } + (e.mode != Ee.STEREO && e.mode != Ee.JOINT_STEREO || 0 < e.interChRatio && function (e, t) { + var a = e.internal_flags; + if (1 < a.channels_out) { + for (var s = 0; s < Pe.SBMAX_l; s++) { + var n = a.thm[0].l[s], + r = a.thm[1].l[s]; + a.thm[0].l[s] += r * t, a.thm[1].l[s] += n * t; + } + for (s = 0; s < Pe.SBMAX_s; s++) for (var i = 0; i < 3; i++) n = a.thm[0].s[s][i], r = a.thm[1].s[s][i], a.thm[0].s[s][i] += r * t, a.thm[1].s[s][i] += n * t; + } + }(e, e.interChRatio), e.mode == Ee.JOINT_STEREO) && (!function (e) { + for (var t = 0; t < Pe.SBMAX_l; t++) if (!(e.thm[0].l[t] > 1.58 * e.thm[1].l[t] || e.thm[1].l[t] > 1.58 * e.thm[0].l[t])) { + var a = e.mld_l[t] * e.en[3].l[t], + s = Math.max(e.thm[2].l[t], Math.min(e.thm[3].l[t], a)); + a = e.mld_l[t] * e.en[2].l[t]; + var n = Math.max(e.thm[3].l[t], Math.min(e.thm[2].l[t], a)); + e.thm[2].l[t] = s, e.thm[3].l[t] = n; + } + for (t = 0; t < Pe.SBMAX_s; t++) for (var r = 0; r < 3; r++) e.thm[0].s[t][r] > 1.58 * e.thm[1].s[t][r] || e.thm[1].s[t][r] > 1.58 * e.thm[0].s[t][r] || (a = e.mld_s[t] * e.en[3].s[t][r], s = Math.max(e.thm[2].s[t][r], Math.min(e.thm[3].s[t][r], a)), a = e.mld_s[t] * e.en[2].s[t][r], n = Math.max(e.thm[3].s[t][r], Math.min(e.thm[2].s[t][r], a)), e.thm[2].s[t][r] = s, e.thm[3].s[t][r] = n); + }(S), g = e.msfix, 0 < Math.abs(g) && function (e, t, a) { + var s = t, + n = Math.pow(10, a); + t *= 2, s *= 2; + for (var r = 0; r < Pe.SBMAX_l; r++) f = e.ATH.cb_l[e.bm_l[r]] * n, (o = Math.min(Math.max(e.thm[0].l[r], f), Math.max(e.thm[1].l[r], f))) * t < (_ = Math.max(e.thm[2].l[r], f)) + (l = Math.max(e.thm[3].l[r], f)) && (_ *= c = o * s / (_ + l), l *= c), e.thm[2].l[r] = Math.min(_, e.thm[2].l[r]), e.thm[3].l[r] = Math.min(l, e.thm[3].l[r]); + for (n *= Pe.BLKSIZE_s / Pe.BLKSIZE, r = 0; r < Pe.SBMAX_s; r++) for (var i = 0; i < 3; i++) { + var o, _, l, f, c; + f = e.ATH.cb_s[e.bm_s[r]] * n, (o = Math.min(Math.max(e.thm[0].s[r][i], f), Math.max(e.thm[1].s[r][i], f))) * t < (_ = Math.max(e.thm[2].s[r][i], f)) + (l = Math.max(e.thm[3].s[r][i], f)) && (_ *= c = o * t / (_ + l), l *= c), e.thm[2].s[r][i] = Math.min(e.thm[2].s[r][i], _), e.thm[3].s[r][i] = Math.min(e.thm[3].s[r][i], l); + } + }(S, g, e.ATHlower * S.ATH.adjust)); + for (function (e, t, a, s) { + var n = e.internal_flags; + e.short_blocks != Te.short_block_coupled || 0 != t[0] && 0 != t[1] || (t[0] = t[1] = 0); + for (var r = 0; r < n.channels_out; r++) s[r] = Pe.NORM_TYPE, e.short_blocks == Te.short_block_dispensed && (t[r] = 1), e.short_blocks == Te.short_block_forced && (t[r] = 0), 0 != t[r] ? n.blocktype_old[r] == Pe.SHORT_TYPE && (s[r] = Pe.STOP_TYPE) : (s[r] = Pe.SHORT_TYPE, n.blocktype_old[r] == Pe.NORM_TYPE && (n.blocktype_old[r] = Pe.START_TYPE), n.blocktype_old[r] == Pe.STOP_TYPE && (n.blocktype_old[r] = Pe.SHORT_TYPE)), a[r] = n.blocktype_old[r], n.blocktype_old[r] = s[r]; + }(e, y, l, k), c = 0; c < f; c++) { + var ne, + re, + ie, + oe = 0; + 1 < c ? (ne = o, oe = -2, re = Pe.NORM_TYPE, l[0] != Pe.SHORT_TYPE && l[1] != Pe.SHORT_TYPE || (re = Pe.SHORT_TYPE), ie = r[s][c - 2]) : (ne = i, oe = 0, re = l[c], ie = n[s][c]), ne[oe + c] = re == Pe.SHORT_TYPE ? ge(ie, S.masking_lower) : Se(ie, S.masking_lower), e.analysis && (S.pinfo.pe[s][c] = ne[oe + c]); + } + return 0; + }; + var X = [-1.730326e-17, -.01703172, -1.349528e-17, .0418072, -6.73278e-17, -.0876324, -3.0835e-17, .1863476, -1.104424e-16, -.627638]; + function q(e, t, a) { + if (0 == a) for (var s = 0; s < e.npart_s; s++) e.nb_s2[t][s] = e.nb_s1[t][s], e.nb_s1[t][s] = 0; + } + function F(e, t) { + for (var a = 0; a < e.npart_l; a++) e.nb_2[t][a] = e.nb_1[t][a], e.nb_1[t][a] = 0; + } + function j(e, t, a, s, n, r) { + var i, + o, + _, + l = e.internal_flags, + f = new float[Pe.CBANDS](), + c = Be(Pe.CBANDS), + h = new int[Pe.CBANDS](); + for (_ = o = 0; _ < l.npart_s; ++_) { + var u = 0, + m = 0, + p = l.numlines_s[_]; + for (i = 0; i < p; ++i, ++o) { + var b = t[r][o]; + u += b, m < b && (m = b); + } + a[_] = u, f[_] = m, c[_] = u / p; + } + for (; _ < Pe.CBANDS; ++_) f[_] = 0, c[_] = 0; + for (function (e, t, a, s) { + var n = ue.length - 1, + r = 0, + i = a[r] + a[r + 1]; + for (0 < i ? ((o = t[r]) < t[r + 1] && (o = t[r + 1]), n < (_ = 0 | (i = 20 * (2 * o - i) / (i * (e.numlines_s[r] + e.numlines_s[r + 1] - 1)))) && (_ = n), s[r] = _) : s[r] = 0, r = 1; r < e.npart_s - 1; r++) { + var o, _; + 0 < (i = a[r - 1] + a[r] + a[r + 1]) ? ((o = t[r - 1]) < t[r] && (o = t[r]), o < t[r + 1] && (o = t[r + 1]), n < (_ = 0 | (i = 20 * (3 * o - i) / (i * (e.numlines_s[r - 1] + e.numlines_s[r] + e.numlines_s[r + 1] - 1)))) && (_ = n), s[r] = _) : s[r] = 0; + } + 0 < (i = a[r - 1] + a[r]) ? ((o = t[r - 1]) < t[r] && (o = t[r]), n < (_ = 0 | (i = 20 * (2 * o - i) / (i * (e.numlines_s[r - 1] + e.numlines_s[r] - 1)))) && (_ = n), s[r] = _) : s[r] = 0; + }(l, f, c, h), o = _ = 0; _ < l.npart_s; _++) { + var v, + d, + g, + S, + M, + w = l.s3ind_s[_][0], + R = l.s3ind_s[_][1]; + for (v = h[w], d = 1, S = l.s3_ss[o] * a[w] * ue[h[w]], ++o, ++w; w <= R;) v += h[w], d += 1, S = A(S, g = l.s3_ss[o] * a[w] * ue[h[w]], w - _), ++o, ++w; + S *= M = .5 * ue[v = (1 + 2 * v) / (2 * d)], s[_] = S, l.nb_s2[n][_] = l.nb_s1[n][_], l.nb_s1[n][_] = S, g = f[_], g *= l.minval_s[_], g *= M, s[_] > g && (s[_] = g), 1 < l.masking_lower && (s[_] *= l.masking_lower), s[_] > a[_] && (s[_] = a[_]), l.masking_lower < 1 && (s[_] *= l.masking_lower); + } + for (; _ < Pe.CBANDS; ++_) a[_] = 0, s[_] = 0; + } + function z(e, t, a, s, n) { + var r, + i = Be(Pe.CBANDS), + o = Be(Pe.CBANDS), + _ = Ae(Pe.CBANDS + 2); + Me(e, t, a, i, o), we(e, i, o, _); + var l = 0; + for (r = 0; r < e.npart_l; r++) { + var f, + c, + h, + u = e.s3ind[r][0], + m = e.s3ind[r][1], + p = 0, + b = 0; + for (p = _[u], b += 1, c = e.s3_ll[l] * a[u] * ue[_[u]], ++l, ++u; u <= m;) p += _[u], b += 1, c = A(c, f = e.s3_ll[l] * a[u] * ue[_[u]], u - r), ++l, ++u; + if (c *= h = .5 * ue[p = (1 + 2 * p) / (2 * b)], e.blocktype_old[1 & n] == Pe.SHORT_TYPE) { + var v = _e * e.nb_1[n][r]; + s[r] = 0 < v ? Math.min(c, v) : Math.min(c, a[r] * fe); + } else { + var d = le * e.nb_2[n][r], + g = _e * e.nb_1[n][r]; + d <= 0 && (d = c), g <= 0 && (g = c), v = e.blocktype_old[1 & n] == Pe.NORM_TYPE ? Math.min(g, d) : g, s[r] = Math.min(c, v); + } + e.nb_2[n][r] = e.nb_1[n][r], e.nb_1[n][r] = c, f = i[r], f *= e.minval_l[r], f *= h, s[r] > f && (s[r] = f), 1 < e.masking_lower && (s[r] *= e.masking_lower), s[r] > a[r] && (s[r] = a[r]), e.masking_lower < 1 && (s[r] *= e.masking_lower); + } + for (; r < Pe.CBANDS; ++r) a[r] = 0, s[r] = 0; + } + function Z(e, t, a, s, n, r, i) { + for (var o, _, l = 2 * r, f = 0 < r ? Math.pow(10, n) : 1, c = 0; c < i; ++c) { + var h = e[2][c], + u = e[3][c], + m = t[0][c], + p = t[1][c], + b = t[2][c], + v = t[3][c]; + if (m <= 1.58 * p && p <= 1.58 * m) { + var d = a[c] * u, + g = a[c] * h; + _ = Math.max(b, Math.min(v, d)), o = Math.max(v, Math.min(b, g)); + } else _ = b, o = v; + if (0 < r) { + var S, + M, + w = s[c] * f; + if (S = Math.min(Math.max(m, w), Math.max(p, w)), 0 < (M = (b = Math.max(_, w)) + (v = Math.max(o, w))) && S * l < M) { + var R = S * l / M; + b *= R, v *= R; + } + _ = Math.min(b, _), o = Math.min(v, o); + } + h < _ && (_ = h), u < o && (o = u), t[2][c] = _, t[3][c] = o; + } + } + function w(e, t) { + var a; + return (a = 0 <= e ? 27 * -e : e * t) <= -72 ? 0 : Math.exp(a * S); + } + function R(e) { + var t, + a, + s = 0; + for (s = 0; 1e-20 < w(s, e); s -= 1); + for (n = s, r = 0; 1e-12 < Math.abs(r - n);) 0 < w(s = (r + n) / 2, e) ? r = s : n = s; + t = n; + var n, r; + s = 0; + for (s = 0; 1e-20 < w(s, e); s += 1); + for (n = 0, r = s; 1e-12 < Math.abs(r - n);) 0 < w(s = (r + n) / 2, e) ? n = s : r = s; + a = r; + var i, + o = 0; + for (i = 0; i <= 1e3; ++i) { + o += w(s = t + i * (a - t) / 1e3, e); + } + return 1001 / (o * (a - t)); + } + function H(e) { return e < 0 && (e = 0), e *= .001, 13 * Math.atan(.76 * e) + 3.5 * Math.atan(e * e / 56.25); } - function H(e, t, a, n, s, r, i, o, _, l, f, c) { - var u, - h = de(Ae.CBANDS + 1), - b = o / (15 < c ? 1152 : 384), - p = ve(Ae.HBLKSIZE); + function C(e, t, a, s, n, r, i, o, _, l, f, c) { + var h, + u = Be(Pe.CBANDS + 1), + m = o / (15 < c ? 1152 : 384), + p = Ae(Pe.HBLKSIZE); o /= _; - var m = 0, + var b = 0, v = 0; - for (u = 0; u < Ae.CBANDS; u++) { + for (h = 0; h < Pe.CBANDS; h++) { var d; - for (x = P(o * m), h[u] = o * m, d = m; P(o * d) - x < E && d <= _ / 2; d++); - for (e[u] = d - m, v = u + 1; m < d;) p[m++] = u; - if (_ / 2 < m) { - m = _ / 2, ++u; + for (y = H(o * b), u[h] = o * b, d = b; H(o * d) - y < E && d <= _ / 2; d++); + for (e[h] = d - b, v = h + 1; b < d;) p[b++] = h; + if (_ / 2 < b) { + b = _ / 2, ++h; break; } } - h[u] = o * m; + u[h] = o * b; for (var g = 0; g < c; g++) { - var w, S, M, y, A; - M = l[g], y = l[g + 1], (w = 0 | Math.floor(.5 + f * (M - .5))) < 0 && (w = 0), S = 0 | Math.floor(.5 + f * (y - .5)), _ / 2 < S && (S = _ / 2), a[g] = (p[w] + p[S]) / 2, t[g] = p[S]; - var k = b * y; - i[g] = (k - h[t[g]]) / (h[t[g] + 1] - h[t[g]]), i[g] < 0 ? i[g] = 0 : 1 < i[g] && (i[g] = 1), A = P(o * l[g] * f), A = Math.min(A, 15.5) / 15.5, r[g] = Math.pow(10, 1.25 * (1 - Math.cos(Math.PI * A)) - 2.5); + var S, M, w, R, A; + w = l[g], R = l[g + 1], (S = 0 | Math.floor(.5 + f * (w - .5))) < 0 && (S = 0), _ / 2 < (M = 0 | Math.floor(.5 + f * (R - .5))) && (M = _ / 2), a[g] = (p[S] + p[M]) / 2, t[g] = p[M]; + var B = m * R; + i[g] = (B - u[t[g]]) / (u[t[g] + 1] - u[t[g]]), i[g] < 0 ? i[g] = 0 : 1 < i[g] && (i[g] = 1), A = H(o * l[g] * f), A = Math.min(A, 15.5) / 15.5, r[g] = Math.pow(10, 1.25 * (1 - Math.cos(Math.PI * A)) - 2.5); } - for (var R = m = 0; R < v; R++) { - var x, - B, - T = e[R]; - x = P(o * m), B = P(o * (m + T - 1)), n[R] = .5 * (x + B), x = P(o * (m - .5)), B = P(o * (m + T - .5)), s[R] = B - x, m += T; + for (var k = b = 0; k < v; k++) { + var y, + T, + x = e[k]; + y = H(o * b), T = H(o * (b + x - 1)), s[k] = .5 * (y + T), y = H(o * (b - .5)), T = H(o * (b + x - .5)), n[k] = T - y, b += x; } return v; } - function O(e, t, a, n, s, r) { + function V(e, t, a, s, n, r) { var i, o, _, l, f, c, - u = ge([Ae.CBANDS, Ae.CBANDS]), - h = 0; - if (r) for (var b = 0; b < t; b++) for (i = 0; i < t; i++) { - var p = (o = a[b] - a[i], c = f = l = _ = void 0, _ = o, l = .5 <= (_ *= 0 <= _ ? 3 : 1.5) && _ <= 2.5 ? 8 * ((c = _ - .5) * c - 2 * c) : 0, ((f = 15.811389 + 7.5 * (_ += .474) - 17.5 * Math.sqrt(1 + _ * _)) <= -60 ? 0 : (_ = Math.exp((l + f) * w), _ /= .6609193)) * n[i]); - u[b][i] = p * s[b]; - } else me(); - for (var b = 0; b < t; b++) { - for (i = 0; i < t && !(0 < u[b][i]); i++); - for (e[b][0] = i, i = t - 1; 0 < i && !(0 < u[b][i]); i--); - e[b][1] = i, h += e[b][1] - e[b][0] + 1; + h = ke([Pe.CBANDS, Pe.CBANDS]), + u = 0; + if (r) for (var m = 0; m < t; m++) for (i = 0; i < t; i++) { + var p = (o = a[m] - a[i], c = f = l = _ = void 0, _ = o, l = .5 <= (_ *= 0 <= _ ? 3 : 1.5) && _ <= 2.5 ? 8 * ((c = _ - .5) * c - 2 * c) : 0, ((f = 15.811389 + 7.5 * (_ += .474) - 17.5 * Math.sqrt(1 + _ * _)) <= -60 ? 0 : (_ = Math.exp((l + f) * S), _ /= .6609193)) * s[i]); + h[m][i] = p * n[m]; + } else for (i = 0; i < t; i++) { + var b = 15 + Math.min(21 / a[i], 12), + v = R(b); + for (m = 0; m < t; m++) { + p = v * w(a[m] - a[i], b) * s[i]; + h[m][i] = p * n[m]; + } } - for (var m = de(h), v = 0, b = 0; b < t; b++) for (i = e[b][0]; i <= e[b][1]; i++) m[v++] = u[b][i]; - return m; + for (m = 0; m < t; m++) { + for (i = 0; i < t && !(0 < h[m][i]); i++); + for (e[m][0] = i, i = t - 1; 0 < i && !(0 < h[m][i]); i--); + e[m][1] = i, u += e[m][1] - e[m][0] + 1; + } + var d = Be(u), + g = 0; + for (m = 0; m < t; m++) for (i = e[m][0]; i <= e[m][1]; i++) d[g++] = h[m][i]; + return d; } - function N(e) { - var t = P(e); + function O(e) { + var t = H(e); return t = Math.min(t, 15.5) / 15.5, Math.pow(10, 1.25 * (1 - Math.cos(Math.PI * t)) - 2.5); } - function n(e, t) { - e < -.3 && (e = 3410), e /= 1e3, e = Math.max(.1, e); - var a = 3.64 * Math.pow(e, -.8) - 6.8 * Math.exp(-.6 * Math.pow(e - 3.4, 2)) + 6 * Math.exp(-.15 * Math.pow(e - 8.7, 2)) + .001 * (.6 + .04 * t) * Math.pow(e, 4); - return a; + function s(e, t) { + return e < -.3 && (e = 3410), e /= 1e3, e = Math.max(.1, e), 3.64 * Math.pow(e, -.8) - 6.8 * Math.exp(-.6 * Math.pow(e - 3.4, 2)) + 6 * Math.exp(-.15 * Math.pow(e - 8.7, 2)) + .001 * (.6 + .04 * t) * Math.pow(e, 4); } - this.L3psycho_anal_ns = function (e, t, a, n, s, r, i, o, _, l) { + this.L3psycho_anal_vbr = function (e, t, a, s, n, r, i, o, _, l) { var f, c, - u, h, - b, - p, + u, m, - v, - d, - g = e.internal_flags, - w = ge([2, Ae.BLKSIZE]), - S = ge([2, 3, Ae.BLKSIZE_s]), - M = de(Ae.CBANDS + 1), - y = de(Ae.CBANDS + 1), - A = de(Ae.CBANDS + 2), - k = ve(2), - R = ve(2), - x = ge([2, 576]), - B = ve(Ae.CBANDS + 2), - T = ve(Ae.CBANDS + 2); - for (we.fill(T, 0), f = g.channels_out, e.mode == ye.JOINT_STEREO && (f = 4), d = e.VBR == Me.vbr_off ? 0 == g.ResvMax ? 0 : g.ResvSize / g.ResvMax * .5 : e.VBR == Me.vbr_rh || e.VBR == Me.vbr_mtrh || e.VBR == Me.vbr_mt ? .6 : 1, c = 0; c < g.channels_out; c++) { - var E = t[c], - C = a + 576 - 350 - 21 + 192; - for (h = 0; h < 576; h++) { - var I, L; - for (I = E[C + h + 10], b = L = 0; b < 9; b += 2) I += pe[b] * (E[C + h + b] + E[C + h + 21 - b]), L += pe[b + 1] * (E[C + h + b + 1] + E[C + h + 21 - b - 1]); - x[c][h] = I + L; - } - s[n][c].en.assign(g.en[c]), s[n][c].thm.assign(g.thm[c]), 2 < f && me(); - } - for (c = 0; c < f; c++) { - var P, - H = de(12), - O = [0, 0, 0, 0], - N = de(12), - V = 1, - D = de(Ae.CBANDS), - F = de(Ae.CBANDS), - j = [0, 0, 0, 0], - X = de(Ae.HBLKSIZE), - Y = ge([3, Ae.HBLKSIZE_s]); - for (h = 0; h < 3; h++) H[h] = g.nsPsy.last_en_subshort[c][h + 6], N[h] = H[h] / g.nsPsy.last_en_subshort[c][h + 4], O[0] += H[h]; - 2 == c && me(); - var z = x[1 & c], - q = 0; - for (h = 0; h < 9; h++) { - for (var G = q + 64, U = 1; q < G; q++) U < Math.abs(z[q]) && (U = Math.abs(z[q])); - g.nsPsy.last_en_subshort[c][h] = H[h + 3] = U, O[1 + h / 3] += U, U > H[h + 3 - 2] ? U /= H[h + 3 - 2] : U = H[h + 3 - 2] > 10 * U ? H[h + 3 - 2] / (10 * U) : 0, N[h + 3] = U; - } - for (e.analysis && me(), P = 3 == c ? g.nsPsy.attackthre_s : g.nsPsy.attackthre, h = 0; h < 12; h++) 0 == j[h / 3] && N[h] > P && (j[h / 3] = h % 3 + 1); - for (h = 1; h < 4; h++) (O[h - 1] > O[h] ? O[h - 1] / O[h] : O[h] / O[h - 1]) < 1.7 && (j[h] = 0, 1 == h && (j[0] = 0)); - for (0 != j[0] && 0 != g.nsPsy.lastAttacks[c] && (j[0] = 0), 3 != g.nsPsy.lastAttacks[c] && j[0] + j[1] + j[2] + j[3] == 0 || ((V = 0) != j[1] && 0 != j[0] && (j[1] = 0), 0 != j[2] && 0 != j[1] && (j[2] = 0), 0 != j[3] && 0 != j[2] && (j[3] = 0)), c < 2 ? R[c] = V : me(), _[c] = g.tot_ener[c], se(e, X, Y, w, 1 & c, S, 1 & c, n, c, t, a), he(g, X, M, D, F), be(g, D, F, B), v = 0; v < 3; v++) { - var K, Z; - for (le(e, Y, y, A, c, v), oe(g, y, A, c, v), m = 0; m < Ae.SBMAX_s; m++) { - if (Z = g.thm[c].s[m][v], Z *= .8, 2 <= j[v] || 1 == j[v + 1]) { - var W = 0 != v ? v - 1 : 2, - U = fe(g.thm[c].s[m][W], Z, .6 * d); - Z = Math.min(Z, U); - } - if (1 == j[v]) { - var W = 0 != v ? v - 1 : 2, - U = fe(g.thm[c].s[m][W], Z, .3 * d); - Z = Math.min(Z, U); - } else if (0 != v && 3 == j[v - 1] || 0 == v && 3 == g.nsPsy.lastAttacks[c]) { - var W = 2 != v ? v + 1 : 0, - U = fe(g.thm[c].s[m][W], Z, .3 * d); - Z = Math.min(Z, U); - } - K = H[3 * v + 3] + H[3 * v + 4] + H[3 * v + 5], 6 * H[3 * v + 5] < K && (Z *= .5, 6 * H[3 * v + 4] < K && (Z *= .5)), g.thm[c].s[m][v] = Z; + p = e.internal_flags, + b = Be(Pe.HBLKSIZE), + v = ke([3, Pe.HBLKSIZE_s]), + d = ke([2, Pe.BLKSIZE]), + g = ke([2, 3, Pe.BLKSIZE_s]), + S = ke([4, Pe.CBANDS]), + M = ke([4, Pe.CBANDS]), + w = ke([4, 3]), + R = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], + A = Ae(2), + B = e.mode == Ee.JOINT_STEREO ? 4 : p.channels_out; + !function (e, t, a, s, n, r, i, o, _, l) { + for (var f = ke([2, 576]), c = e.internal_flags, h = c.channels_out, u = e.mode == Ee.JOINT_STEREO ? 4 : h, m = 0; m < h; m++) { + firbuf = t[m]; + for (var p = a + 576 - 350 - ce + 192, b = 0; b < 576; b++) { + var v, d; + v = firbuf[p + b + 10]; + for (var g = d = 0; g < (ce - 1) / 2 - 1; g += 2) v += X[g] * (firbuf[p + b + g] + firbuf[p + b + ce - g]), d += X[g + 1] * (firbuf[p + b + g + 1] + firbuf[p + b + ce - g - 1]); + f[m][b] = v + d; } + n[s][m].en.assign(c.en[m]), n[s][m].thm.assign(c.thm[m]), 2 < u && (r[s][m].en.assign(c.en[m + 2]), r[s][m].thm.assign(c.thm[m + 2])); } - for (g.nsPsy.lastAttacks[c] = j[2], u = p = 0; u < g.npart_l; u++) { - for (var Q = g.s3ind[u][0], $ = M[Q] * re[B[Q]], J = g.s3_ll[p++] * $; ++Q <= g.s3ind[u][1];) $ = M[Q] * re[B[Q]], J = ie(J, g.s3_ll[p++] * $, Q, Q - u, g, 0); - J *= .158489319246111, g.blocktype_old[1 & c] == Ae.SHORT_TYPE ? A[u] = J : A[u] = fe(Math.min(J, Math.min(2 * g.nb_1[c][u], 16 * g.nb_2[c][u])), J, d), g.nb_2[c][u] = g.nb_1[c][u], g.nb_1[c][u] = J; + for (m = 0; m < u; m++) { + var S = Be(12), + M = Be(12), + w = [0, 0, 0, 0], + R = f[1 & m], + A = 0, + B = 3 == m ? c.nsPsy.attackthre_s : c.nsPsy.attackthre, + k = 1; + if (2 == m) for (b = 0, g = 576; 0 < g; ++b, --g) { + var y = f[0][b], + T = f[1][b]; + f[0][b] = y + T, f[1][b] = y - T; + } + for (b = 0; b < 3; b++) M[b] = c.nsPsy.last_en_subshort[m][b + 6], S[b] = M[b] / c.nsPsy.last_en_subshort[m][b + 4], w[0] += M[b]; + for (b = 0; b < 9; b++) { + for (var x = A + 64, E = 1; A < x; A++) E < Math.abs(R[A]) && (E = Math.abs(R[A])); + c.nsPsy.last_en_subshort[m][b] = M[b + 3] = E, w[1 + b / 3] += E, E > M[b + 3 - 2] ? E /= M[b + 3 - 2] : E = M[b + 3 - 2] > 10 * E ? M[b + 3 - 2] / (10 * E) : 0, S[b + 3] = E; + } + for (b = 0; b < 3; ++b) { + var P = M[3 * b + 3] + M[3 * b + 4] + M[3 * b + 5], + L = 1; + 6 * M[3 * b + 5] < P && (L *= .5, 6 * M[3 * b + 4] < P && (L *= .5)), o[m][b] = L; + } + if (e.analysis) { + var I = S[0]; + for (b = 1; b < 12; b++) I < S[b] && (I = S[b]); + c.pinfo.ers[s][m] = c.pinfo.ers_save[m], c.pinfo.ers_save[m] = I; + } + for (b = 0; b < 12; b++) 0 == _[m][b / 3] && S[b] > B && (_[m][b / 3] = b % 3 + 1); + for (b = 1; b < 4; b++) { + var H = w[b - 1], + C = w[b]; + Math.max(H, C) < 4e4 && H < 1.7 * C && C < 1.7 * H && (1 == b && _[m][0] <= _[m][b] && (_[m][0] = 0), _[m][b] = 0); + } + _[m][0] <= c.nsPsy.lastAttacks[m] && (_[m][0] = 0), 3 != c.nsPsy.lastAttacks[m] && _[m][0] + _[m][1] + _[m][2] + _[m][3] == 0 || ((k = 0) != _[m][1] && 0 != _[m][0] && (_[m][1] = 0), 0 != _[m][2] && 0 != _[m][1] && (_[m][2] = 0), 0 != _[m][3] && 0 != _[m][2] && (_[m][3] = 0)), m < 2 ? l[m] = k : 0 == k && (l[0] = l[1] = 0), i[m] = c.tot_ener[m]; } - for (; u <= Ae.CBANDS; ++u) M[u] = 0, A[u] = 0; - _e(g, M, A, c); + }(e, t, a, s, n, r, _, w, R, A), function (e, t) { + var a = e.internal_flags; + e.short_blocks != Te.short_block_coupled || 0 != t[0] && 0 != t[1] || (t[0] = t[1] = 0); + for (var s = 0; s < a.channels_out; s++) e.short_blocks == Te.short_block_dispensed && (t[s] = 1), e.short_blocks == Te.short_block_forced && (t[s] = 0); + }(e, A); + for (var k = 0; k < B; k++) { + D(e, t, a, k, s, b, d, T = 1 & k), c = s, h = k, u = b, m = void 0, m = (f = e).internal_flags, 2 == f.athaa_loudapprox && h < 2 && (m.loudness_sq[c][h] = m.loudness_sq_save[h], m.loudness_sq_save[h] = N(u, m)), 0 != A[T] ? z(p, b, S[k], M[k], k) : F(p, k); } - for (e.mode != ye.STEREO && e.mode != ye.JOINT_STEREO || me(), e.mode == ye.JOINT_STEREO && me(), function (e, t, a, n) { - var s = e.internal_flags; - e.short_blocks != Se.short_block_coupled || 0 != t[0] && 0 != t[1] || (t[0] = t[1] = 0); - for (var r = 0; r < s.channels_out; r++) n[r] = Ae.NORM_TYPE, e.short_blocks == Se.short_block_dispensed && (t[r] = 1), e.short_blocks == Se.short_block_forced && (t[r] = 0), 0 != t[r] ? s.blocktype_old[r] == Ae.SHORT_TYPE && (n[r] = Ae.STOP_TYPE) : (n[r] = Ae.SHORT_TYPE, s.blocktype_old[r] == Ae.NORM_TYPE && (s.blocktype_old[r] = Ae.START_TYPE), s.blocktype_old[r] == Ae.STOP_TYPE && (s.blocktype_old[r] = Ae.SHORT_TYPE)), a[r] = s.blocktype_old[r], s.blocktype_old[r] = n[r]; - }(e, R, l, k), c = 0; c < f; c++) { - var ee, - te, - ae, - ne = 0; - 1 < c ? me() : (ee = i, ne = 0, te = l[c], ae = s[n][c]), ee[ne + c] = te == Ae.SHORT_TYPE ? ce(ae, g.masking_lower) : ue(ae, g.masking_lower), e.analysis && (g.pinfo.pe[n][c] = ee[ne + c]); + A[0] + A[1] == 2 && e.mode == Ee.JOINT_STEREO && Z(S, M, p.mld_cb_l, p.ATH.cb_l, e.ATHlower * p.ATH.adjust, e.msfix, p.npart_l); + for (k = 0; k < B; k++) { + 0 != A[T = 1 & k] && be(p, S[k], M[k], k); + } + for (var y = 0; y < 3; y++) { + for (k = 0; k < B; ++k) { + 0 != A[T = 1 & k] ? q(p, k, y) : (Y(e, t, a, k, y, v, g, T), j(e, v, S[k], M[k], k, y)); + } + A[0] + A[1] == 0 && e.mode == Ee.JOINT_STEREO && Z(S, M, p.mld_cb_s, p.ATH.cb_s, e.ATHlower * p.ATH.adjust, e.msfix, p.npart_s); + for (k = 0; k < B; ++k) { + 0 == A[T = 1 & k] && pe(p, S[k], M[k], k, y); + } + } + for (k = 0; k < B; k++) { + var T; + if (0 == A[T = 1 & k]) for (var x = 0; x < Pe.SBMAX_s; x++) { + var E = Be(3); + for (y = 0; y < 3; y++) { + var P = p.thm[k].s[x][y]; + if (P *= .8, 2 <= R[k][y] || 1 == R[k][y + 1]) { + var L = 0 != y ? y - 1 : 2, + I = de(p.thm[k].s[x][L], P, .36); + P = Math.min(P, I); + } else if (1 == R[k][y]) { + L = 0 != y ? y - 1 : 2, I = de(p.thm[k].s[x][L], P, .6 * fe); + P = Math.min(P, I); + } else if (0 != y && 3 == R[k][y - 1] || 0 == y && 3 == p.nsPsy.lastAttacks[k]) { + L = 2 != y ? y + 1 : 0, I = de(p.thm[k].s[x][L], P, .6 * fe); + P = Math.min(P, I); + } + P *= w[k][y], E[y] = P; + } + for (y = 0; y < 3; y++) p.thm[k].s[x][y] = E[y]; + } + } + for (k = 0; k < B; k++) p.nsPsy.lastAttacks[k] = R[k][2]; + !function (e, t, a) { + for (var s = e.internal_flags, n = 0; n < s.channels_out; n++) { + var r = Pe.NORM_TYPE; + 0 != t[n] ? s.blocktype_old[n] == Pe.SHORT_TYPE && (r = Pe.STOP_TYPE) : (r = Pe.SHORT_TYPE, s.blocktype_old[n] == Pe.NORM_TYPE && (s.blocktype_old[n] = Pe.START_TYPE), s.blocktype_old[n] == Pe.STOP_TYPE && (s.blocktype_old[n] = Pe.SHORT_TYPE)), a[n] = s.blocktype_old[n], s.blocktype_old[n] = r; + } + }(e, A, l); + for (k = 0; k < B; k++) { + var H, C, V, O; + 1 < k ? (H = o, C = -2, V = Pe.NORM_TYPE, l[0] != Pe.SHORT_TYPE && l[1] != Pe.SHORT_TYPE || (V = Pe.SHORT_TYPE), O = r[s][k - 2]) : (H = i, C = 0, V = l[k], O = n[s][k]), H[C + k] = V == Pe.SHORT_TYPE ? ge(O, p.masking_lower) : Se(O, p.masking_lower), e.analysis && (p.pinfo.pe[s][k] = H[C + k]); } return 0; }, this.psymodel_init = function (e) { var t, a = e.internal_flags, - n = !0, - s = 13, + s = !0, + n = 13, r = 0, i = 0, o = -8.25, _ = -4.5, - l = de(Ae.CBANDS), - f = de(Ae.CBANDS), - c = de(Ae.CBANDS), - u = e.out_samplerate; + l = Be(Pe.CBANDS), + f = Be(Pe.CBANDS), + c = Be(Pe.CBANDS), + h = e.out_samplerate; switch (e.experimentalZ) { default: case 0: - n = !0; + s = !0; break; case 1: - n = e.VBR != Me.vbr_mtrh && e.VBR != Me.vbr_mt; + s = e.VBR != xe.vbr_mtrh && e.VBR != xe.vbr_mt; break; case 2: - n = !1; + s = !1; break; case 3: - s = 8, r = -1.75, i = -.0125, o = -8.25, _ = -2.25; + n = 8, r = -1.75, i = -.0125, o = -8.25, _ = -2.25; } - for (a.ms_ener_ratio_old = .25, a.blocktype_old[0] = a.blocktype_old[1] = Ae.NORM_TYPE, t = 0; t < 4; ++t) { - for (var h = 0; h < Ae.CBANDS; ++h) a.nb_1[t][h] = 1e20, a.nb_2[t][h] = 1e20, a.nb_s1[t][h] = a.nb_s2[t][h] = 1; - for (var b = 0; b < Ae.SBMAX_l; b++) a.en[t].l[b] = 1e20, a.thm[t].l[b] = 1e20; - for (var h = 0; h < 3; ++h) { - for (var b = 0; b < Ae.SBMAX_s; b++) a.en[t].s[b][h] = 1e20, a.thm[t].s[b][h] = 1e20; + for (a.ms_ener_ratio_old = .25, a.blocktype_old[0] = a.blocktype_old[1] = Pe.NORM_TYPE, t = 0; t < 4; ++t) { + for (var u = 0; u < Pe.CBANDS; ++u) a.nb_1[t][u] = 1e20, a.nb_2[t][u] = 1e20, a.nb_s1[t][u] = a.nb_s2[t][u] = 1; + for (var m = 0; m < Pe.SBMAX_l; m++) a.en[t].l[m] = 1e20, a.thm[t].l[m] = 1e20; + for (u = 0; u < 3; ++u) { + for (m = 0; m < Pe.SBMAX_s; m++) a.en[t].s[m][u] = 1e20, a.thm[t].s[m][u] = 1e20; a.nsPsy.lastAttacks[t] = 0; } - for (var h = 0; h < 9; h++) a.nsPsy.last_en_subshort[t][h] = 10; + for (u = 0; u < 9; u++) a.nsPsy.last_en_subshort[t][u] = 10; } - for (a.loudness_sq_save[0] = a.loudness_sq_save[1] = 0, a.npart_l = H(a.numlines_l, a.bo_l, a.bm_l, l, f, a.mld_l, a.PSY.bo_l_weight, u, Ae.BLKSIZE, a.scalefac_band.l, Ae.BLKSIZE / 1152, Ae.SBMAX_l), t = 0; t < a.npart_l; t++) { + for (a.loudness_sq_save[0] = a.loudness_sq_save[1] = 0, a.npart_l = C(a.numlines_l, a.bo_l, a.bm_l, l, f, a.mld_l, a.PSY.bo_l_weight, h, Pe.BLKSIZE, a.scalefac_band.l, Pe.BLKSIZE / 1152, Pe.SBMAX_l), t = 0; t < a.npart_l; t++) { var p = r; - l[t] >= s && (p = i * (l[t] - s) / (24 - s) + r * (24 - l[t]) / (24 - s)), c[t] = Math.pow(10, p / 10), 0 < a.numlines_l[t] ? a.rnumlines_l[t] = 1 / a.numlines_l[t] : a.rnumlines_l[t] = 0; + l[t] >= n && (p = i * (l[t] - n) / (24 - n) + r * (24 - l[t]) / (24 - n)), c[t] = Math.pow(10, p / 10), 0 < a.numlines_l[t] ? a.rnumlines_l[t] = 1 / a.numlines_l[t] : a.rnumlines_l[t] = 0; } - a.s3_ll = O(a.s3ind, a.npart_l, l, f, c, n); - var m, - h = 0; + a.s3_ll = V(a.s3ind, a.npart_l, l, f, c, s); + var b; + u = 0; for (t = 0; t < a.npart_l; t++) { - g = D.MAX_VALUE; - for (var v = 0; v < a.numlines_l[t]; v++, h++) { - var d = u * h / (1e3 * Ae.BLKSIZE); - w = this.ATHformula(1e3 * d, e) - 20, w = Math.pow(10, .1 * w), (w *= a.numlines_l[t]) < g && (g = w); + g = K.MAX_VALUE; + for (var v = 0; v < a.numlines_l[t]; v++, u++) { + var d = h * u / (1e3 * Pe.BLKSIZE); + S = this.ATHformula(1e3 * d, e) - 20, S = Math.pow(10, .1 * S), (S *= a.numlines_l[t]) < g && (g = S); } a.ATH.cb_l[t] = g, 6 < (g = 20 * l[t] / 10 - 20) && (g = 100), g < -15 && (g = -15), g -= 8, a.minval_l[t] = Math.pow(10, g / 10) * a.numlines_l[t]; } - for (a.npart_s = H(a.numlines_s, a.bo_s, a.bm_s, l, f, a.mld_s, a.PSY.bo_s_weight, u, Ae.BLKSIZE_s, a.scalefac_band.s, Ae.BLKSIZE_s / 384, Ae.SBMAX_s), t = h = 0; t < a.npart_s; t++) { - var g, - p = o; - l[t] >= s && (p = _ * (l[t] - s) / (24 - s) + o * (24 - l[t]) / (24 - s)), c[t] = Math.pow(10, p / 10), g = D.MAX_VALUE; - for (var v = 0; v < a.numlines_s[t]; v++, h++) { - var w, - d = u * h / (1e3 * Ae.BLKSIZE_s); - w = this.ATHformula(1e3 * d, e) - 20, w = Math.pow(10, .1 * w), (w *= a.numlines_s[t]) < g && (g = w); + for (a.npart_s = C(a.numlines_s, a.bo_s, a.bm_s, l, f, a.mld_s, a.PSY.bo_s_weight, h, Pe.BLKSIZE_s, a.scalefac_band.s, Pe.BLKSIZE_s / 384, Pe.SBMAX_s), t = u = 0; t < a.npart_s; t++) { + var g; + p = o; + l[t] >= n && (p = _ * (l[t] - n) / (24 - n) + o * (24 - l[t]) / (24 - n)), c[t] = Math.pow(10, p / 10), g = K.MAX_VALUE; + for (v = 0; v < a.numlines_s[t]; v++, u++) { + var S; + d = h * u / (1e3 * Pe.BLKSIZE_s); + S = this.ATHformula(1e3 * d, e) - 20, S = Math.pow(10, .1 * S), (S *= a.numlines_s[t]) < g && (g = S); } a.ATH.cb_s[t] = g, g = 7 * l[t] / 12 - 7, 12 < l[t] && (g *= 1 + 3.1 * Math.log(1 + g)), l[t] < 12 && (g *= 1 + 2.3 * Math.log(1 - g)), g < -15 && (g = -15), g -= 8, a.minval_s[t] = Math.pow(10, g / 10) * a.numlines_s[t]; } - a.s3_ss = O(a.s3ind_s, a.npart_s, l, f, c, n), x = Math.pow(10, (C + 1) / 16), B = Math.pow(10, (I + 1) / 16), T = Math.pow(10, L / 10), k.init_fft(a), a.decay = Math.exp(-1 * R / (.01 * u / 192)), m = 3.5, 0 != (2 & e.exp_nspsytune) && (m = 1), 0 < Math.abs(e.msfix) && (m = e.msfix), e.msfix = m; - for (var S = 0; S < a.npart_l; S++) a.s3ind[S][1] > a.npart_l - 1 && (a.s3ind[S][1] = a.npart_l - 1); - var M = 576 * a.mode_gr / u; - if (a.ATH.decay = Math.pow(10, -1.2 * M), a.ATH.adjust = .01, -(a.ATH.adjustLimit = 1) != e.ATHtype) { - var y = e.out_samplerate / Ae.BLKSIZE, + a.s3_ss = V(a.s3ind_s, a.npart_s, l, f, c, s), y = Math.pow(10, (P + 1) / 16), T = Math.pow(10, (L + 1) / 16), x = Math.pow(10, I / 10), B.init_fft(a), a.decay = Math.exp(-1 * k / (.01 * h / 192)), b = 3.5, 0 != (2 & e.exp_nspsytune) && (b = 1), 0 < Math.abs(e.msfix) && (b = e.msfix), e.msfix = b; + for (var M = 0; M < a.npart_l; M++) a.s3ind[M][1] > a.npart_l - 1 && (a.s3ind[M][1] = a.npart_l - 1); + var w = 576 * a.mode_gr / h; + if (a.ATH.decay = Math.pow(10, -1.2 * w), a.ATH.adjust = .01, -(a.ATH.adjustLimit = 1) != e.ATHtype) { + var R = e.out_samplerate / Pe.BLKSIZE, A = 0; - for (t = d = 0; t < Ae.BLKSIZE / 2; ++t) d += y, a.ATH.eql_w[t] = 1 / Math.pow(10, this.ATHformula(d, e) / 10), A += a.ATH.eql_w[t]; - for (A = 1 / A, t = Ae.BLKSIZE / 2; 0 <= --t;) a.ATH.eql_w[t] *= A; + for (t = d = 0; t < Pe.BLKSIZE / 2; ++t) d += R, a.ATH.eql_w[t] = 1 / Math.pow(10, this.ATHformula(d, e) / 10), A += a.ATH.eql_w[t]; + for (A = 1 / A, t = Pe.BLKSIZE / 2; 0 <= --t;) a.ATH.eql_w[t] *= A; } - for (var S = h = 0; S < a.npart_s; ++S) for (t = 0; t < a.numlines_s[S]; ++t) ++h; - for (var S = h = 0; S < a.npart_l; ++S) for (t = 0; t < a.numlines_l[S]; ++t) ++h; - for (t = h = 0; t < a.npart_l; t++) { - var d = u * (h + a.numlines_l[t] / 2) / (1 * Ae.BLKSIZE); - a.mld_cb_l[t] = N(d), h += a.numlines_l[t]; + for (M = u = 0; M < a.npart_s; ++M) for (t = 0; t < a.numlines_s[M]; ++t) ++u; + for (M = u = 0; M < a.npart_l; ++M) for (t = 0; t < a.numlines_l[M]; ++t) ++u; + for (t = u = 0; t < a.npart_l; t++) { + d = h * (u + a.numlines_l[t] / 2) / (1 * Pe.BLKSIZE); + a.mld_cb_l[t] = O(d), u += a.numlines_l[t]; } - for (; t < Ae.CBANDS; ++t) a.mld_cb_l[t] = 1; - for (t = h = 0; t < a.npart_s; t++) { - var d = u * (h + a.numlines_s[t] / 2) / (1 * Ae.BLKSIZE_s); - a.mld_cb_s[t] = N(d), h += a.numlines_s[t]; + for (; t < Pe.CBANDS; ++t) a.mld_cb_l[t] = 1; + for (t = u = 0; t < a.npart_s; t++) { + d = h * (u + a.numlines_s[t] / 2) / (1 * Pe.BLKSIZE_s); + a.mld_cb_s[t] = O(d), u += a.numlines_s[t]; } - for (; t < Ae.CBANDS; ++t) a.mld_cb_s[t] = 1; + for (; t < Pe.CBANDS; ++t) a.mld_cb_s[t] = 1; return 0; }, this.ATHformula = function (e, t) { var a; switch (t.ATHtype) { case 0: - a = n(e, 9); + a = s(e, 9); break; case 1: - a = n(e, -1); + a = s(e, -1); break; case 2: - a = n(e, 0); + a = s(e, 0); break; case 3: - a = n(e, 1) + 6; + a = s(e, 1) + 6; break; case 4: - a = n(e, t.ATHcurve); + a = s(e, t.ATHcurve); break; default: - a = n(e, 0); + a = s(e, 0); } return a; }; } - function Y() { - var T, - E, - u, - h, - b, - C = this; - Y.V9 = 410, Y.V8 = 420, Y.V7 = 430, Y.V6 = 440, Y.V5 = 450, Y.V4 = 460, Y.V3 = 470, Y.V2 = 480, Y.V1 = 490, Y.V0 = 500, Y.R3MIX = 1e3, Y.STANDARD = 1001, Y.EXTREME = 1002, Y.INSANE = 1003, Y.STANDARD_FAST = 1004, Y.EXTREME_FAST = 1005, Y.MEDIUM = 1006, Y.MEDIUM_FAST = 1007, Y.LAME_MAXMP3BUFFER = 147456; - var p, - m, - v = new X(); - function d() { + function U() { + var o = this; + U.V9 = 410, U.V8 = 420, U.V7 = 430, U.V6 = 440, U.V5 = 450, U.V4 = 460, U.V3 = 470, U.V2 = 480, U.V1 = 490, U.V0 = 500, U.R3MIX = 1e3, U.STANDARD = 1001, U.EXTREME = 1002, U.INSANE = 1003, U.STANDARD_FAST = 1004, U.EXTREME_FAST = 1005, U.MEDIUM = 1006, U.MEDIUM_FAST = 1007; + var w, R, g, S, M; + U.LAME_MAXMP3BUFFER = 147456; + var A, + B, + k, + y = new G(); + function T() { this.lowerlimit = 0; } - function s(e, t) { + function n(e, t) { this.lowpass = t; } - this.enc = new Ae(), this.setModules = function (e, t, a, n, s, r, i, o, _) { - T = e, E = t, u = a, h = n, b = s, p = r, m = o, this.enc.setModules(E, v, h, p); + this.enc = new Pe(), this.setModules = function (e, t, a, s, n, r, i, o, _) { + w = e, R = t, g = a, S = s, M = n, A = r, B = o, k = _, this.enc.setModules(R, y, S, A); }; - var I = 4294479419; - function g(e, t) { - var a = [new s(8, 2e3), new s(16, 3700), new s(24, 3900), new s(32, 5500), new s(40, 7e3), new s(48, 7500), new s(56, 1e4), new s(64, 11e3), new s(80, 13500), new s(96, 15100), new s(112, 15600), new s(128, 17e3), new s(160, 17500), new s(192, 18600), new s(224, 19400), new s(256, 19700), new s(320, 20500)], - n = C.nearestBitrateFullIndex(t); - e.lowerlimit = a[n].lowpass; + var x = 4294479419; + function E(e) { + return 1 < e ? 0 : e <= 0 ? 1 : Math.cos(Math.PI / 2 * e); } - function L(e) { - var t = Ae.BLKSIZE + e.framesize - Ae.FFTOFFSET; + function P(e, t) { + switch (e) { + case 44100: + return t.version = 1, 0; + case 48e3: + return t.version = 1; + case 32e3: + return t.version = 1, 2; + case 22050: + return t.version = 0; + case 24e3: + return t.version = 0, 1; + case 16e3: + return t.version = 0, 2; + case 11025: + return t.version = 0; + case 12e3: + return t.version = 0, 1; + case 8e3: + return t.version = 0, 2; + default: + return t.version = 0, -1; + } + } + function L(e, t, a) { + a < 16e3 && (t = 2); + for (var s = F.bitrate_table[t][1], n = 2; n <= 14; n++) 0 < F.bitrate_table[t][n] && Math.abs(F.bitrate_table[t][n] - e) < Math.abs(s - e) && (s = F.bitrate_table[t][n]); + return s; + } + function I(e, t, a) { + a < 16e3 && (t = 2); + for (var s = 0; s <= 14; s++) if (0 < F.bitrate_table[t][s] && F.bitrate_table[t][s] == e) return s; + return -1; + } + function H(e, t) { + var a = [new n(8, 2e3), new n(16, 3700), new n(24, 3900), new n(32, 5500), new n(40, 7e3), new n(48, 7500), new n(56, 1e4), new n(64, 11e3), new n(80, 13500), new n(96, 15100), new n(112, 15600), new n(128, 17e3), new n(160, 17500), new n(192, 18600), new n(224, 19400), new n(256, 19700), new n(320, 20500)], + s = o.nearestBitrateFullIndex(t); + e.lowerlimit = a[s].lowpass; + } + function C(e) { + var t = Pe.BLKSIZE + e.framesize - Pe.FFTOFFSET; return t = Math.max(t, 512 + e.framesize - 32); } - function P() { + function V(e, t, a, s, n, r) { + var i = o.enc.lame_encode_mp3_frame(e, t, a, s, n, r); + return e.frameNum++, i; + } + function O() { this.n_in = 0, this.n_out = 0; } - function H(e, t, a, n, s, r) { + function f() { + this.num_used = 0; + } + function N(e, t, a) { + var s = Math.PI * t; + (e /= a) < 0 && (e = 0), 1 < e && (e = 1); + var n = e - .5, + r = .42 - .5 * Math.cos(2 * e * Math.PI) + .08 * Math.cos(4 * e * Math.PI); + return Math.abs(n) < 1e-9 ? s / Math.PI : r * Math.sin(a * s * n) / (Math.PI * a * n); + } + function c(e, t, a, s, n, r, i, o, _) { + var l, + f, + c = e.internal_flags, + h = 0, + u = e.out_samplerate / function e(t, a) { + return 0 != a ? e(a, t % a) : t; + }(e.out_samplerate, e.in_samplerate); + Z.BPC < u && (u = Z.BPC); + var m = Math.abs(c.resample_ratio - Math.floor(.5 + c.resample_ratio)) < 1e-4 ? 1 : 0, + p = 1 / c.resample_ratio; + 1 < p && (p = 1); + var b = 31; + 0 == b % 2 && --b; + var v = (b += m) + 1; + if (0 == c.fill_buffer_resample_init) { + for (c.inbuf_old[0] = Be(v), c.inbuf_old[1] = Be(v), l = 0; l <= 2 * u; ++l) c.blackfilt[l] = Be(v); + for (c.itime[0] = 0, h = c.itime[1] = 0; h <= 2 * u; h++) { + var d = 0, + g = (h - u) / (2 * u); + for (l = 0; l <= b; l++) d += c.blackfilt[h][l] = N(l - g, p, b); + for (l = 0; l <= b; l++) c.blackfilt[h][l] /= d; + } + c.fill_buffer_resample_init = 1; + } + var S = c.inbuf_old[_]; + for (f = 0; f < s; f++) { + var M, w; + if (M = f * c.resample_ratio, i <= b + (h = 0 | Math.floor(M - c.itime[_])) - b / 2) break; + g = M - c.itime[_] - (h + b % 2 * .5); + w = 0 | Math.floor(2 * g * u + u + .5); + var R = 0; + for (l = 0; l <= b; ++l) { + var A = l + h - b / 2; + R += (A < 0 ? S[v + A] : n[r + A]) * c.blackfilt[w][l]; + } + t[a + f] = R; + } + if (o.num_used = Math.min(i, b + h - b / 2), c.itime[_] += o.num_used - f * c.resample_ratio, o.num_used >= v) for (l = 0; l < v; l++) S[l] = n[r + o.num_used + l - v];else { + var B = v - o.num_used; + for (l = 0; l < B; ++l) S[l] = S[l + o.num_used]; + for (h = 0; l < v; ++l, ++h) S[l] = n[r + h]; + } + return f; + } + function D(e, t, a, s, n, r) { var i = e.internal_flags; - if (i.resample_ratio < .9999 || 1.0001 < i.resample_ratio) me();else { - r.n_out = Math.min(e.framesize, s), r.n_in = r.n_out; - for (var o = 0; o < r.n_out; ++o) t[0][i.mf_size + o] = a[0][n + o], 2 == i.channels_out && (t[1][i.mf_size + o] = a[1][n + o]); + if (i.resample_ratio < .9999 || 1.0001 < i.resample_ratio) for (var o = 0; o < i.channels_out; o++) { + var _ = new f(); + r.n_out = c(e, t[o], i.mf_size, e.framesize, a[o], s, n, _, o), r.n_in = _.num_used; + } else { + r.n_out = Math.min(e.framesize, n), r.n_in = r.n_out; + for (var l = 0; l < r.n_out; ++l) t[0][i.mf_size + l] = a[0][s + l], 2 == i.channels_out && (t[1][i.mf_size + l] = a[1][s + l]); } } this.lame_init = function () { var e, t, a = new function () { - this.class_id = 0, this.num_samples = 0, this.num_channels = 0, this.in_samplerate = 0, this.out_samplerate = 0, this.scale = 0, this.scale_left = 0, this.scale_right = 0, this.analysis = !1, this.bWriteVbrTag = !1, this.decode_only = !1, this.quality = 0, this.mode = ye.STEREO, this.force_ms = !1, this.free_format = !1, this.findReplayGain = !1, this.decode_on_the_fly = !1, this.write_id3tag_automatic = !1, this.brate = 0, this.compression_ratio = 0, this.copyright = 0, this.original = 0, this.extension = 0, this.emphasis = 0, this.error_protection = 0, this.strict_ISO = !1, this.disable_reservoir = !1, this.quant_comp = 0, this.quant_comp_short = 0, this.experimentalY = !1, this.experimentalZ = 0, this.exp_nspsytune = 0, this.preset = 0, this.VBR = null, this.VBR_q_frac = 0, this.VBR_q = 0, this.VBR_mean_bitrate_kbps = 0, this.VBR_min_bitrate_kbps = 0, this.VBR_max_bitrate_kbps = 0, this.VBR_hard_min = 0, this.lowpassfreq = 0, this.highpassfreq = 0, this.lowpasswidth = 0, this.highpasswidth = 0, this.maskingadjust = 0, this.maskingadjust_short = 0, this.ATHonly = !1, this.ATHshort = !1, this.noATH = !1, this.ATHtype = 0, this.ATHcurve = 0, this.ATHlower = 0, this.athaa_type = 0, this.athaa_loudapprox = 0, this.athaa_sensitivity = 0, this.short_blocks = null, this.useTemporal = !1, this.interChRatio = 0, this.msfix = 0, this.tune = !1, this.tune_value_a = 0, this.version = 0, this.encoder_delay = 0, this.encoder_padding = 0, this.framesize = 0, this.frameNum = 0, this.lame_allocated_gfp = 0, this.internal_flags = null; - }(), - n = ((e = a).class_id = I, t = e.internal_flags = new j(), e.mode = ye.NOT_SET, e.original = 1, e.in_samplerate = 44100, e.num_channels = 2, e.num_samples = -1, e.bWriteVbrTag = !0, e.quality = -1, e.short_blocks = null, t.subblock_gain = -1, e.lowpassfreq = 0, e.highpassfreq = 0, e.lowpasswidth = -1, e.highpasswidth = -1, e.VBR = Me.vbr_off, e.VBR_q = 4, e.ATHcurve = -1, e.VBR_mean_bitrate_kbps = 128, e.VBR_min_bitrate_kbps = 0, e.VBR_max_bitrate_kbps = 0, e.VBR_hard_min = 0, t.VBR_min_bitrate = 1, t.VBR_max_bitrate = 13, e.quant_comp = -1, e.quant_comp_short = -1, e.msfix = -1, t.resample_ratio = 1, t.OldValue[0] = 180, t.OldValue[1] = 180, t.CurrentStep[0] = 4, t.CurrentStep[1] = 4, t.masking_lower = 1, t.nsPsy.attackthre = -1, t.nsPsy.attackthre_s = -1, e.scale = -1, e.athaa_type = -1, e.ATHtype = -1, e.athaa_loudapprox = -1, e.athaa_sensitivity = 0, e.useTemporal = null, e.interChRatio = -1, t.mf_samples_to_encode = Ae.ENCDELAY + Ae.POSTDELAY, e.encoder_padding = 0, t.mf_size = Ae.ENCDELAY - Ae.MDCTDELAY, e.findReplayGain = !1, e.decode_on_the_fly = !1, t.decode_on_the_fly = !1, t.findReplayGain = !1, t.findPeakSample = !1, t.RadioGain = 0, t.AudiophileGain = 0, t.noclipGainChange = 0, t.noclipScale = -1, e.preset = 0, e.write_id3tag_automatic = !0, 0); - return 0 != n ? null : (a.lame_allocated_gfp = 1, a); + this.class_id = 0, this.num_samples = 0, this.num_channels = 0, this.in_samplerate = 0, this.out_samplerate = 0, this.scale = 0, this.scale_left = 0, this.scale_right = 0, this.analysis = !1, this.bWriteVbrTag = !1, this.decode_only = !1, this.quality = 0, this.mode = Ee.STEREO, this.force_ms = !1, this.free_format = !1, this.findReplayGain = !1, this.decode_on_the_fly = !1, this.write_id3tag_automatic = !1, this.brate = 0, this.compression_ratio = 0, this.copyright = 0, this.original = 0, this.extension = 0, this.emphasis = 0, this.error_protection = 0, this.strict_ISO = !1, this.disable_reservoir = !1, this.quant_comp = 0, this.quant_comp_short = 0, this.experimentalY = !1, this.experimentalZ = 0, this.exp_nspsytune = 0, this.preset = 0, this.VBR = null, this.VBR_q_frac = 0, this.VBR_q = 0, this.VBR_mean_bitrate_kbps = 0, this.VBR_min_bitrate_kbps = 0, this.VBR_max_bitrate_kbps = 0, this.VBR_hard_min = 0, this.lowpassfreq = 0, this.highpassfreq = 0, this.lowpasswidth = 0, this.highpasswidth = 0, this.maskingadjust = 0, this.maskingadjust_short = 0, this.ATHonly = !1, this.ATHshort = !1, this.noATH = !1, this.ATHtype = 0, this.ATHcurve = 0, this.ATHlower = 0, this.athaa_type = 0, this.athaa_loudapprox = 0, this.athaa_sensitivity = 0, this.short_blocks = null, this.useTemporal = !1, this.interChRatio = 0, this.msfix = 0, this.tune = !1, this.tune_value_a = 0, this.version = 0, this.encoder_delay = 0, this.encoder_padding = 0, this.framesize = 0, this.frameNum = 0, this.lame_allocated_gfp = 0, this.internal_flags = null; + }(); + return 0 != ((e = a).class_id = x, t = e.internal_flags = new Z(), e.mode = Ee.NOT_SET, e.original = 1, e.in_samplerate = 44100, e.num_channels = 2, e.num_samples = -1, e.bWriteVbrTag = !0, e.quality = -1, e.short_blocks = null, t.subblock_gain = -1, e.lowpassfreq = 0, e.highpassfreq = 0, e.lowpasswidth = -1, e.highpasswidth = -1, e.VBR = xe.vbr_off, e.VBR_q = 4, e.ATHcurve = -1, e.VBR_mean_bitrate_kbps = 128, e.VBR_min_bitrate_kbps = 0, e.VBR_max_bitrate_kbps = 0, e.VBR_hard_min = 0, t.VBR_min_bitrate = 1, t.VBR_max_bitrate = 13, e.quant_comp = -1, e.quant_comp_short = -1, e.msfix = -1, t.resample_ratio = 1, t.OldValue[0] = 180, t.OldValue[1] = 180, t.CurrentStep[0] = 4, t.CurrentStep[1] = 4, t.masking_lower = 1, t.nsPsy.attackthre = -1, t.nsPsy.attackthre_s = -1, e.scale = -1, e.athaa_type = -1, e.ATHtype = -1, e.athaa_loudapprox = -1, e.athaa_sensitivity = 0, e.useTemporal = null, e.interChRatio = -1, t.mf_samples_to_encode = Pe.ENCDELAY + Pe.POSTDELAY, e.encoder_padding = 0, t.mf_size = Pe.ENCDELAY - Pe.MDCTDELAY, e.findReplayGain = !1, e.decode_on_the_fly = !1, t.decode_on_the_fly = !1, t.findReplayGain = !1, t.findPeakSample = !1, t.RadioGain = 0, t.AudiophileGain = 0, t.noclipGainChange = 0, t.noclipScale = -1, e.preset = 0, e.write_id3tag_automatic = !0, 0) ? null : (a.lame_allocated_gfp = 1, a); }, this.nearestBitrateFullIndex = function (e) { var t = [8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320], a = 0, - n = 0, s = 0, + n = 0, r = 0; - r = t[16], n = t[s = 16], a = 16; + r = t[16], s = t[n = 16], a = 16; for (var i = 0; i < 16; i++) if (Math.max(e, t[i + 1]) != e) { - r = t[i + 1], s = i + 1, n = t[i], a = i; + r = t[i + 1], n = i + 1, s = t[i], a = i; break; } - return e - n < r - e ? a : s; + return e - s < r - e ? a : n; }, this.lame_init_params = function (e) { var t, a, + s, n = e.internal_flags; if (n.Class_ID = 0, null == n.ATH && (n.ATH = new function () { - this.useAdjust = 0, this.aaSensitivityP = 0, this.adjust = 0, this.adjustLimit = 0, this.decay = 0, this.floor = 0, this.l = de(Ae.SBMAX_l), this.s = de(Ae.SBMAX_s), this.psfb21 = de(Ae.PSFB21), this.psfb12 = de(Ae.PSFB12), this.cb_l = de(Ae.CBANDS), this.cb_s = de(Ae.CBANDS), this.eql_w = de(Ae.BLKSIZE / 2); + this.useAdjust = 0, this.aaSensitivityP = 0, this.adjust = 0, this.adjustLimit = 0, this.decay = 0, this.floor = 0, this.l = Be(Pe.SBMAX_l), this.s = Be(Pe.SBMAX_s), this.psfb21 = Be(Pe.PSFB21), this.psfb12 = Be(Pe.PSFB12), this.cb_l = Be(Pe.CBANDS), this.cb_s = Be(Pe.CBANDS), this.eql_w = Be(Pe.BLKSIZE / 2); }()), null == n.PSY && (n.PSY = new function () { - this.mask_adjust = 0, this.mask_adjust_short = 0, this.bo_l_weight = de(Ae.SBMAX_l), this.bo_s_weight = de(Ae.SBMAX_s); - }()), null == n.rgdata && (n.rgdata = new function () {}()), n.channels_in = e.num_channels, 1 == n.channels_in && (e.mode = ye.MONO), n.channels_out = e.mode == ye.MONO ? 1 : 2, n.mode_ext = Ae.MPG_MD_MS_LR, e.mode == ye.MONO && (e.force_ms = !1), e.VBR == Me.vbr_off && 128 != e.VBR_mean_bitrate_kbps && 0 == e.brate && (e.brate = e.VBR_mean_bitrate_kbps), e.VBR == Me.vbr_off || e.VBR == Me.vbr_mtrh || e.VBR == Me.vbr_mt || (e.free_format = !1), e.VBR == Me.vbr_off && 0 == e.brate && me(), e.VBR == Me.vbr_off && 0 < e.compression_ratio && me(), 0 != e.out_samplerate && (e.out_samplerate < 16e3 ? (e.VBR_mean_bitrate_kbps = Math.max(e.VBR_mean_bitrate_kbps, 8), e.VBR_mean_bitrate_kbps = Math.min(e.VBR_mean_bitrate_kbps, 64)) : e.out_samplerate < 32e3 ? (e.VBR_mean_bitrate_kbps = Math.max(e.VBR_mean_bitrate_kbps, 8), e.VBR_mean_bitrate_kbps = Math.min(e.VBR_mean_bitrate_kbps, 160)) : (e.VBR_mean_bitrate_kbps = Math.max(e.VBR_mean_bitrate_kbps, 32), e.VBR_mean_bitrate_kbps = Math.min(e.VBR_mean_bitrate_kbps, 320))), 0 == e.lowpassfreq) { - var s = 16e3; + this.mask_adjust = 0, this.mask_adjust_short = 0, this.bo_l_weight = Be(Pe.SBMAX_l), this.bo_s_weight = Be(Pe.SBMAX_s); + }()), null == n.rgdata && (n.rgdata = new function () {}()), n.channels_in = e.num_channels, 1 == n.channels_in && (e.mode = Ee.MONO), n.channels_out = e.mode == Ee.MONO ? 1 : 2, n.mode_ext = Pe.MPG_MD_MS_LR, e.mode == Ee.MONO && (e.force_ms = !1), e.VBR == xe.vbr_off && 128 != e.VBR_mean_bitrate_kbps && 0 == e.brate && (e.brate = e.VBR_mean_bitrate_kbps), e.VBR == xe.vbr_off || e.VBR == xe.vbr_mtrh || e.VBR == xe.vbr_mt || (e.free_format = !1), e.VBR == xe.vbr_off && 0 == e.brate && q.EQ(e.compression_ratio, 0) && (e.compression_ratio = 11.025), e.VBR == xe.vbr_off && 0 < e.compression_ratio && (0 == e.out_samplerate && (e.out_samplerate = map2MP3Frequency(int(.97 * e.in_samplerate))), e.brate = 0 | 16 * e.out_samplerate * n.channels_out / (1e3 * e.compression_ratio), n.samplerate_index = P(e.out_samplerate, e), e.free_format || (e.brate = L(e.brate, e.version, e.out_samplerate))), 0 != e.out_samplerate && (e.out_samplerate < 16e3 ? (e.VBR_mean_bitrate_kbps = Math.max(e.VBR_mean_bitrate_kbps, 8), e.VBR_mean_bitrate_kbps = Math.min(e.VBR_mean_bitrate_kbps, 64)) : e.out_samplerate < 32e3 ? (e.VBR_mean_bitrate_kbps = Math.max(e.VBR_mean_bitrate_kbps, 8), e.VBR_mean_bitrate_kbps = Math.min(e.VBR_mean_bitrate_kbps, 160)) : (e.VBR_mean_bitrate_kbps = Math.max(e.VBR_mean_bitrate_kbps, 32), e.VBR_mean_bitrate_kbps = Math.min(e.VBR_mean_bitrate_kbps, 320))), 0 == e.lowpassfreq) { + var r = 16e3; switch (e.VBR) { - case Me.vbr_off: - var r = new d(); - g(r, e.brate), s = r.lowerlimit; + case xe.vbr_off: + H(i = new T(), e.brate), r = i.lowerlimit; break; - case Me.vbr_abr: - var r = new d(); - g(r, e.VBR_mean_bitrate_kbps), s = r.lowerlimit; + case xe.vbr_abr: + var i; + H(i = new T(), e.VBR_mean_bitrate_kbps), r = i.lowerlimit; + break; + case xe.vbr_rh: + var o = [19500, 19e3, 18600, 18e3, 17500, 16e3, 15600, 14900, 12500, 1e4, 3950]; + if (0 <= e.VBR_q && e.VBR_q <= 9) { + var _ = o[e.VBR_q], + l = o[e.VBR_q + 1], + f = e.VBR_q_frac; + r = linear_int(_, l, f); + } else r = 19500; break; - case Me.vbr_rh: - me(); default: - me(); + o = [19500, 19e3, 18500, 18e3, 17500, 16500, 15500, 14500, 12500, 9500, 3950]; + if (0 <= e.VBR_q && e.VBR_q <= 9) { + _ = o[e.VBR_q], l = o[e.VBR_q + 1], f = e.VBR_q_frac; + r = linear_int(_, l, f); + } else r = 19500; } - e.mode != ye.MONO || e.VBR != Me.vbr_off && e.VBR != Me.vbr_abr || (s *= 1.5), e.lowpassfreq = 0 | s; + e.mode != Ee.MONO || e.VBR != xe.vbr_off && e.VBR != xe.vbr_abr || (r *= 1.5), e.lowpassfreq = 0 | r; } - switch (0 == e.out_samplerate && me(), e.lowpassfreq = Math.min(20500, e.lowpassfreq), e.lowpassfreq = Math.min(e.out_samplerate / 2, e.lowpassfreq), e.VBR == Me.vbr_off && (e.compression_ratio = 16 * e.out_samplerate * n.channels_out / (1e3 * e.brate)), e.VBR == Me.vbr_abr && me(), e.bWriteVbrTag || (e.findReplayGain = !1, e.decode_on_the_fly = !1, n.findPeakSample = !1), n.findReplayGain = e.findReplayGain, n.decode_on_the_fly = e.decode_on_the_fly, n.decode_on_the_fly && (n.findPeakSample = !0), n.findReplayGain && me(), n.decode_on_the_fly && !e.decode_only && me(), n.mode_gr = e.out_samplerate <= 24e3 ? 1 : 2, e.framesize = 576 * n.mode_gr, e.encoder_delay = Ae.ENCDELAY, n.resample_ratio = e.in_samplerate / e.out_samplerate, e.VBR) { - case Me.vbr_mt: - case Me.vbr_rh: - case Me.vbr_mtrh: + if (0 == e.out_samplerate && (2 * e.lowpassfreq > e.in_samplerate && (e.lowpassfreq = e.in_samplerate / 2), e.out_samplerate = (t = 0 | e.lowpassfreq, a = e.in_samplerate, s = 44100, 48e3 <= a ? s = 48e3 : 44100 <= a ? s = 44100 : 32e3 <= a ? s = 32e3 : 24e3 <= a ? s = 24e3 : 22050 <= a ? s = 22050 : 16e3 <= a ? s = 16e3 : 12e3 <= a ? s = 12e3 : 11025 <= a ? s = 11025 : 8e3 <= a && (s = 8e3), -1 == t ? s : (t <= 15960 && (s = 44100), t <= 15250 && (s = 32e3), t <= 11220 && (s = 24e3), t <= 9970 && (s = 22050), t <= 7230 && (s = 16e3), t <= 5420 && (s = 12e3), t <= 4510 && (s = 11025), t <= 3970 && (s = 8e3), a < s ? 44100 < a ? 48e3 : 32e3 < a ? 44100 : 24e3 < a ? 32e3 : 22050 < a ? 24e3 : 16e3 < a ? 22050 : 12e3 < a ? 16e3 : 11025 < a ? 12e3 : 8e3 < a ? 11025 : 8e3 : s))), e.lowpassfreq = Math.min(20500, e.lowpassfreq), e.lowpassfreq = Math.min(e.out_samplerate / 2, e.lowpassfreq), e.VBR == xe.vbr_off && (e.compression_ratio = 16 * e.out_samplerate * n.channels_out / (1e3 * e.brate)), e.VBR == xe.vbr_abr && (e.compression_ratio = 16 * e.out_samplerate * n.channels_out / (1e3 * e.VBR_mean_bitrate_kbps)), e.bWriteVbrTag || (e.findReplayGain = !1, e.decode_on_the_fly = !1, n.findPeakSample = !1), n.findReplayGain = e.findReplayGain, n.decode_on_the_fly = e.decode_on_the_fly, n.decode_on_the_fly && (n.findPeakSample = !0), n.findReplayGain && w.InitGainAnalysis(n.rgdata, e.out_samplerate) == X.INIT_GAIN_ANALYSIS_ERROR) return e.internal_flags = null, -6; + switch (n.decode_on_the_fly && !e.decode_only && (null != n.hip && k.hip_decode_exit(n.hip), n.hip = k.hip_decode_init()), n.mode_gr = e.out_samplerate <= 24e3 ? 1 : 2, e.framesize = 576 * n.mode_gr, e.encoder_delay = Pe.ENCDELAY, n.resample_ratio = e.in_samplerate / e.out_samplerate, e.VBR) { + case xe.vbr_mt: + case xe.vbr_rh: + case xe.vbr_mtrh: e.compression_ratio = [5.7, 6.5, 7.3, 8.2, 10, 11.9, 13, 14, 15, 16.5][e.VBR_q]; break; - case Me.vbr_abr: + case xe.vbr_abr: e.compression_ratio = 16 * e.out_samplerate * n.channels_out / (1e3 * e.VBR_mean_bitrate_kbps); break; default: e.compression_ratio = 16 * e.out_samplerate * n.channels_out / (1e3 * e.brate); } - e.mode == ye.NOT_SET && (e.mode = ye.JOINT_STEREO), 0 < e.highpassfreq ? me() : (n.highpass1 = 0, n.highpass2 = 0), 0 < e.lowpassfreq ? (n.lowpass2 = 2 * e.lowpassfreq, 0 <= e.lowpasswidth ? me() : n.lowpass1 = 2 * e.lowpassfreq, n.lowpass1 /= e.out_samplerate, n.lowpass2 /= e.out_samplerate) : me(), function (e) { - var t, - a = e.internal_flags, - n = 32; - if (0 < a.lowpass1) { - for (var s = 999, r = 0; r <= 31; r++) { - var i = r / 31; - i >= a.lowpass2 && (n = Math.min(n, r)), a.lowpass1 < i && i < a.lowpass2 && (s = Math.min(s, r)); - } - a.lowpass1 = 999 == s ? (n - .75) / 31 : (s - .75) / 31, a.lowpass2 = n / 31; + if (e.mode == Ee.NOT_SET && (e.mode = Ee.JOINT_STEREO), 0 < e.highpassfreq ? (n.highpass1 = 2 * e.highpassfreq, 0 <= e.highpasswidth ? n.highpass2 = 2 * (e.highpassfreq + e.highpasswidth) : n.highpass2 = 2 * e.highpassfreq, n.highpass1 /= e.out_samplerate, n.highpass2 /= e.out_samplerate) : (n.highpass1 = 0, n.highpass2 = 0), 0 < e.lowpassfreq ? (n.lowpass2 = 2 * e.lowpassfreq, 0 <= e.lowpasswidth ? (n.lowpass1 = 2 * (e.lowpassfreq - e.lowpasswidth), n.lowpass1 < 0 && (n.lowpass1 = 0)) : n.lowpass1 = 2 * e.lowpassfreq, n.lowpass1 /= e.out_samplerate, n.lowpass2 /= e.out_samplerate) : (n.lowpass1 = 0, n.lowpass2 = 0), function (e) { + var t = e.internal_flags, + a = 32, + s = -1; + if (0 < t.lowpass1) { + for (var n = 999, r = 0; r <= 31; r++) (l = r / 31) >= t.lowpass2 && (a = Math.min(a, r)), t.lowpass1 < l && l < t.lowpass2 && (n = Math.min(n, r)); + t.lowpass1 = 999 == n ? (a - .75) / 31 : (n - .75) / 31, t.lowpass2 = a / 31; } - 0 < a.highpass2 && me(), 0 < a.highpass2 && me(); - for (var r = 0; r < 32; r++) { + if (0 < t.highpass2 && t.highpass2 < .75 / 31 * .9 && (t.highpass1 = 0, t.highpass2 = 0, $.err.println("Warning: highpass filter disabled. highpass frequency too small\n")), 0 < t.highpass2) { + var i = -1; + for (r = 0; r <= 31; r++) (l = r / 31) <= t.highpass1 && (s = Math.max(s, r)), t.highpass1 < l && l < t.highpass2 && (i = Math.max(i, r)); + t.highpass1 = s / 31, t.highpass2 = -1 == i ? (s + .75) / 31 : (i + .75) / 31; + } + for (r = 0; r < 32; r++) { var o, _, - i = r / 31; - a.highpass2 > a.highpass1 ? me() : o = 1, _ = a.lowpass2 > a.lowpass1 ? 1 < (t = (i - a.lowpass1) / (a.lowpass2 - a.lowpass1 + 1e-20)) ? 0 : t <= 0 ? 1 : Math.cos(Math.PI / 2 * t) : 1, a.amp_filter[r] = o * _; + l = r / 31; + o = t.highpass2 > t.highpass1 ? E((t.highpass2 - l) / (t.highpass2 - t.highpass1 + 1e-20)) : 1, _ = t.lowpass2 > t.lowpass1 ? E((l - t.lowpass1) / (t.lowpass2 - t.lowpass1 + 1e-20)) : 1, t.amp_filter[r] = o * _; } - }(e), n.samplerate_index = function (e, t) { - switch (e) { - case 44100: - return t.version = 1, 0; - case 48e3: - return t.version = 1; - case 32e3: - return t.version = 1, 2; - case 22050: - return t.version = 0; - case 24e3: - return t.version = 0, 1; - case 16e3: - return t.version = 0, 2; - case 11025: - return t.version = 0; - case 12e3: - return t.version = 0, 1; - case 8e3: - return t.version = 0, 2; - default: - return t.version = 0, -1; - } - }(e.out_samplerate, e), n.samplerate_index < 0 && me(), e.VBR == Me.vbr_off ? e.free_format ? n.bitrate_index = 0 : (e.brate = function (e, t, a) { - a < 16e3 && (t = 2); - for (var n = k.bitrate_table[t][1], s = 2; s <= 14; s++) 0 < k.bitrate_table[t][s] && Math.abs(k.bitrate_table[t][s] - e) < Math.abs(n - e) && (n = k.bitrate_table[t][s]); - return n; - }(e.brate, e.version, e.out_samplerate), n.bitrate_index = function (e, t, a) { - a < 16e3 && (t = 2); - for (var n = 0; n <= 14; n++) if (0 < k.bitrate_table[t][n] && k.bitrate_table[t][n] == e) return n; - return -1; - }(e.brate, e.version, e.out_samplerate), n.bitrate_index <= 0 && me()) : n.bitrate_index = 1, e.analysis && (e.bWriteVbrTag = !1), null != n.pinfo && (e.bWriteVbrTag = !1), E.init_bit_stream_w(n); - for (var i, o = n.samplerate_index + 3 * e.version + 6 * (e.out_samplerate < 16e3 ? 1 : 0), _ = 0; _ < Ae.SBMAX_l + 1; _++) n.scalefac_band.l[_] = h.sfBandIndex[o].l[_]; - for (var _ = 0; _ < Ae.PSFB21 + 1; _++) { - var l = (n.scalefac_band.l[22] - n.scalefac_band.l[21]) / Ae.PSFB21, - f = n.scalefac_band.l[21] + _ * l; - n.scalefac_band.psfb21[_] = f; + }(e), n.samplerate_index = P(e.out_samplerate, e), n.samplerate_index < 0) return e.internal_flags = null, -1; + if (e.VBR == xe.vbr_off) { + if (e.free_format) n.bitrate_index = 0;else if (e.brate = L(e.brate, e.version, e.out_samplerate), n.bitrate_index = I(e.brate, e.version, e.out_samplerate), n.bitrate_index <= 0) return e.internal_flags = null, -1; + } else n.bitrate_index = 1; + e.analysis && (e.bWriteVbrTag = !1), null != n.pinfo && (e.bWriteVbrTag = !1), R.init_bit_stream_w(n); + for (var c, h, u, m = n.samplerate_index + 3 * e.version + 6 * (e.out_samplerate < 16e3 ? 1 : 0), p = 0; p < Pe.SBMAX_l + 1; p++) n.scalefac_band.l[p] = S.sfBandIndex[m].l[p]; + for (p = 0; p < Pe.PSFB21 + 1; p++) { + var b = (n.scalefac_band.l[22] - n.scalefac_band.l[21]) / Pe.PSFB21, + v = n.scalefac_band.l[21] + p * b; + n.scalefac_band.psfb21[p] = v; } - n.scalefac_band.psfb21[Ae.PSFB21] = 576; - for (var _ = 0; _ < Ae.SBMAX_s + 1; _++) n.scalefac_band.s[_] = h.sfBandIndex[o].s[_]; - for (var _ = 0; _ < Ae.PSFB12 + 1; _++) { - var l = (n.scalefac_band.s[13] - n.scalefac_band.s[12]) / Ae.PSFB12, - f = n.scalefac_band.s[12] + _ * l; - n.scalefac_band.psfb12[_] = f; + n.scalefac_band.psfb21[Pe.PSFB21] = 576; + for (p = 0; p < Pe.SBMAX_s + 1; p++) n.scalefac_band.s[p] = S.sfBandIndex[m].s[p]; + for (p = 0; p < Pe.PSFB12 + 1; p++) { + b = (n.scalefac_band.s[13] - n.scalefac_band.s[12]) / Pe.PSFB12, v = n.scalefac_band.s[12] + p * b; + n.scalefac_band.psfb12[p] = v; } - for (n.scalefac_band.psfb12[Ae.PSFB12] = 192, 1 == e.version ? n.sideinfo_len = 1 == n.channels_out ? 21 : 36 : n.sideinfo_len = 1 == n.channels_out ? 13 : 21, e.error_protection && (n.sideinfo_len += 2), a = void 0, a = (t = e).internal_flags, t.frameNum = 0, t.write_id3tag_automatic && m.id3tag_write_v2(t), a.bitrate_stereoMode_Hist = w([16, 5]), a.bitrate_blockType_Hist = w([16, 6]), a.PeakSample = 0, t.bWriteVbrTag && p.InitVbrTag(t), n.Class_ID = I, i = 0; i < 19; i++) n.nsPsy.pefirbuf[i] = 700 * n.mode_gr * n.channels_out; + for (n.scalefac_band.psfb12[Pe.PSFB12] = 192, 1 == e.version ? n.sideinfo_len = 1 == n.channels_out ? 21 : 36 : n.sideinfo_len = 1 == n.channels_out ? 13 : 21, e.error_protection && (n.sideinfo_len += 2), h = (c = e).internal_flags, c.frameNum = 0, c.write_id3tag_automatic && B.id3tag_write_v2(c), h.bitrate_stereoMode_Hist = Y([16, 5]), h.bitrate_blockType_Hist = Y([16, 6]), h.PeakSample = 0, c.bWriteVbrTag && A.InitVbrTag(c), n.Class_ID = x, u = 0; u < 19; u++) n.nsPsy.pefirbuf[u] = 700 * n.mode_gr * n.channels_out; switch (-1 == e.ATHtype && (e.ATHtype = 4), e.VBR) { - case Me.vbr_mt: - e.VBR = Me.vbr_mtrh; - case Me.vbr_mtrh: - null == e.useTemporal && (e.useTemporal = !1), u.apply_preset(e, 500 - 10 * e.VBR_q, 0), e.quality < 0 && (e.quality = LAME_DEFAULT_QUALITY), e.quality < 5 && (e.quality = 0), 5 < e.quality && (e.quality = 5), n.PSY.mask_adjust = e.maskingadjust, n.PSY.mask_adjust_short = e.maskingadjust_short, e.experimentalY ? n.sfb21_extra = !1 : n.sfb21_extra = 44e3 < e.out_samplerate, n.iteration_loop = new VBRNewIterationLoop(b); + case xe.vbr_mt: + e.VBR = xe.vbr_mtrh; + case xe.vbr_mtrh: + null == e.useTemporal && (e.useTemporal = !1), g.apply_preset(e, 500 - 10 * e.VBR_q, 0), e.quality < 0 && (e.quality = LAME_DEFAULT_QUALITY), e.quality < 5 && (e.quality = 0), 5 < e.quality && (e.quality = 5), n.PSY.mask_adjust = e.maskingadjust, n.PSY.mask_adjust_short = e.maskingadjust_short, e.experimentalY ? n.sfb21_extra = !1 : n.sfb21_extra = 44e3 < e.out_samplerate, n.iteration_loop = new VBRNewIterationLoop(M); break; - case Me.vbr_rh: - u.apply_preset(e, 500 - 10 * e.VBR_q, 0), n.PSY.mask_adjust = e.maskingadjust, n.PSY.mask_adjust_short = e.maskingadjust_short, e.experimentalY ? n.sfb21_extra = !1 : n.sfb21_extra = 44e3 < e.out_samplerate, 6 < e.quality && (e.quality = 6), e.quality < 0 && (e.quality = LAME_DEFAULT_QUALITY), n.iteration_loop = new VBROldIterationLoop(b); + case xe.vbr_rh: + g.apply_preset(e, 500 - 10 * e.VBR_q, 0), n.PSY.mask_adjust = e.maskingadjust, n.PSY.mask_adjust_short = e.maskingadjust_short, e.experimentalY ? n.sfb21_extra = !1 : n.sfb21_extra = 44e3 < e.out_samplerate, 6 < e.quality && (e.quality = 6), e.quality < 0 && (e.quality = LAME_DEFAULT_QUALITY), n.iteration_loop = new VBROldIterationLoop(M); break; default: - var c; - n.sfb21_extra = !1, e.quality < 0 && (e.quality = LAME_DEFAULT_QUALITY), (c = e.VBR) == Me.vbr_off && (e.VBR_mean_bitrate_kbps = e.brate), u.apply_preset(e, e.VBR_mean_bitrate_kbps, 0), e.VBR = c, n.PSY.mask_adjust = e.maskingadjust, n.PSY.mask_adjust_short = e.maskingadjust_short, c == Me.vbr_off ? n.iteration_loop = new function (e) { + var d; + n.sfb21_extra = !1, e.quality < 0 && (e.quality = LAME_DEFAULT_QUALITY), (d = e.VBR) == xe.vbr_off && (e.VBR_mean_bitrate_kbps = e.brate), g.apply_preset(e, e.VBR_mean_bitrate_kbps, 0), e.VBR = d, n.PSY.mask_adjust = e.maskingadjust, n.PSY.mask_adjust_short = e.maskingadjust_short, n.iteration_loop = d == xe.vbr_off ? new function (e) { var t = e; - this.quantize = t, this.iteration_loop = function (e, t, a, n) { - var s = e.internal_flags, - r = de(F.SFBMAX), - i = de(576), - o = ve(2), - _ = 0, - l = s.l3_side, - f = new R(_); - this.quantize.rv.ResvFrameBegin(e, f), _ = f.bits; - for (var c = 0; c < s.mode_gr; c++) { - this.quantize.qupvt.on_pe(e, t, o, _, c, c), s.mode_ext == Ae.MPG_MD_MS_LR && me(); - for (var u = 0; u < s.channels_out; u++) { - var h, - b, - p = l.tt[c][u]; - p.block_type != Ae.SHORT_TYPE ? (h = 0, b = s.PSY.mask_adjust - h) : (h = 0, b = s.PSY.mask_adjust_short - h), s.masking_lower = Math.pow(10, .1 * b), this.quantize.init_outer_loop(s, p), this.quantize.init_xrpow(s, p, i) && (this.quantize.qupvt.calc_xmin(e, n[c][u], p, r), this.quantize.outer_loop(e, p, r, i, u, o[u])), this.quantize.iteration_finish_one(s, c, u); + this.quantize = t, this.iteration_loop = function (e, t, a, s) { + var n, + r = e.internal_flags, + i = Be(z.SFBMAX), + o = Be(576), + _ = Ae(2), + l = 0, + f = r.l3_side, + c = new j(l); + this.quantize.rv.ResvFrameBegin(e, c), l = c.bits; + for (var h = 0; h < r.mode_gr; h++) { + n = this.quantize.qupvt.on_pe(e, t, _, l, h, h), r.mode_ext == Pe.MPG_MD_MS_LR && (this.quantize.ms_convert(r.l3_side, h), this.quantize.qupvt.reduce_side(_, a[h], l, n)); + for (var u = 0; u < r.channels_out; u++) { + var m, + p, + b = f.tt[h][u]; + b.block_type != Pe.SHORT_TYPE ? (m = 0, p = r.PSY.mask_adjust - m) : (m = 0, p = r.PSY.mask_adjust_short - m), r.masking_lower = Math.pow(10, .1 * p), this.quantize.init_outer_loop(r, b), this.quantize.init_xrpow(r, b, o) && (this.quantize.qupvt.calc_xmin(e, s[h][u], b, i), this.quantize.outer_loop(e, b, i, o, u, _[u])), this.quantize.iteration_finish_one(r, h, u); } } - this.quantize.rv.ResvFrameEnd(s, _); + this.quantize.rv.ResvFrameEnd(r, l); }; - }(b) : me(); + }(M) : new ABRIterationLoop(M); } - return e.VBR != Me.vbr_off && me(), e.tune && me(), function (e) { + if (e.VBR != xe.vbr_off) { + if (n.VBR_min_bitrate = 1, n.VBR_max_bitrate = 14, e.out_samplerate < 16e3 && (n.VBR_max_bitrate = 8), 0 != e.VBR_min_bitrate_kbps && (e.VBR_min_bitrate_kbps = L(e.VBR_min_bitrate_kbps, e.version, e.out_samplerate), n.VBR_min_bitrate = I(e.VBR_min_bitrate_kbps, e.version, e.out_samplerate), n.VBR_min_bitrate < 0)) return -1; + if (0 != e.VBR_max_bitrate_kbps && (e.VBR_max_bitrate_kbps = L(e.VBR_max_bitrate_kbps, e.version, e.out_samplerate), n.VBR_max_bitrate = I(e.VBR_max_bitrate_kbps, e.version, e.out_samplerate), n.VBR_max_bitrate < 0)) return -1; + e.VBR_min_bitrate_kbps = F.bitrate_table[e.version][n.VBR_min_bitrate], e.VBR_max_bitrate_kbps = F.bitrate_table[e.version][n.VBR_max_bitrate], e.VBR_mean_bitrate_kbps = Math.min(F.bitrate_table[e.version][n.VBR_max_bitrate], e.VBR_mean_bitrate_kbps), e.VBR_mean_bitrate_kbps = Math.max(F.bitrate_table[e.version][n.VBR_min_bitrate], e.VBR_mean_bitrate_kbps); + } + return e.tune && (n.PSY.mask_adjust += e.tune_value_a, n.PSY.mask_adjust_short += e.tune_value_a), function (e) { var t = e.internal_flags; switch (e.quality) { default: @@ -37013,229 +37315,252 @@ src: recorder-core.js,engine/mp3.js,engine/mp3-engine.js case 0: t.psymodel = 1, 0 == t.noise_shaping && (t.noise_shaping = 1), 0 == t.substep_shaping && (t.substep_shaping = 2), t.noise_shaping_amp = 2, -(t.noise_shaping_stop = 1) == t.subblock_gain && (t.subblock_gain = 1), t.use_best_huffman = 1, t.full_outer_loop = 0; } - }(e), e.athaa_type < 0 ? n.ATH.useAdjust = 3 : n.ATH.useAdjust = e.athaa_type, n.ATH.aaSensitivityP = Math.pow(10, e.athaa_sensitivity / -10), null == e.short_blocks && (e.short_blocks = Se.short_block_allowed), e.short_blocks != Se.short_block_allowed || e.mode != ye.JOINT_STEREO && e.mode != ye.STEREO || (e.short_blocks = Se.short_block_coupled), e.quant_comp < 0 && (e.quant_comp = 1), e.quant_comp_short < 0 && (e.quant_comp_short = 0), e.msfix < 0 && (e.msfix = 0), e.exp_nspsytune = 1 | e.exp_nspsytune, e.internal_flags.nsPsy.attackthre < 0 && (e.internal_flags.nsPsy.attackthre = X.NSATTACKTHRE), e.internal_flags.nsPsy.attackthre_s < 0 && (e.internal_flags.nsPsy.attackthre_s = X.NSATTACKTHRE_S), e.scale < 0 && (e.scale = 1), e.ATHtype < 0 && (e.ATHtype = 4), e.ATHcurve < 0 && (e.ATHcurve = 4), e.athaa_loudapprox < 0 && (e.athaa_loudapprox = 2), e.interChRatio < 0 && (e.interChRatio = 0), null == e.useTemporal && (e.useTemporal = !0), n.slot_lag = n.frac_SpF = 0, e.VBR == Me.vbr_off && (n.slot_lag = n.frac_SpF = 72e3 * (e.version + 1) * e.brate % e.out_samplerate | 0), h.iteration_init(e), v.psymodel_init(e), 0; - }, this.lame_encode_flush = function (e, t, a, n) { - var s, + }(e), e.athaa_type < 0 ? n.ATH.useAdjust = 3 : n.ATH.useAdjust = e.athaa_type, n.ATH.aaSensitivityP = Math.pow(10, e.athaa_sensitivity / -10), null == e.short_blocks && (e.short_blocks = Te.short_block_allowed), e.short_blocks != Te.short_block_allowed || e.mode != Ee.JOINT_STEREO && e.mode != Ee.STEREO || (e.short_blocks = Te.short_block_coupled), e.quant_comp < 0 && (e.quant_comp = 1), e.quant_comp_short < 0 && (e.quant_comp_short = 0), e.msfix < 0 && (e.msfix = 0), e.exp_nspsytune = 1 | e.exp_nspsytune, e.internal_flags.nsPsy.attackthre < 0 && (e.internal_flags.nsPsy.attackthre = G.NSATTACKTHRE), e.internal_flags.nsPsy.attackthre_s < 0 && (e.internal_flags.nsPsy.attackthre_s = G.NSATTACKTHRE_S), e.scale < 0 && (e.scale = 1), e.ATHtype < 0 && (e.ATHtype = 4), e.ATHcurve < 0 && (e.ATHcurve = 4), e.athaa_loudapprox < 0 && (e.athaa_loudapprox = 2), e.interChRatio < 0 && (e.interChRatio = 0), null == e.useTemporal && (e.useTemporal = !0), n.slot_lag = n.frac_SpF = 0, e.VBR == xe.vbr_off && (n.slot_lag = n.frac_SpF = 72e3 * (e.version + 1) * e.brate % e.out_samplerate | 0), S.iteration_init(e), y.psymodel_init(e), 0; + }, this.lame_encode_flush = function (e, t, a, s) { + var n, r, i, o, _ = e.internal_flags, - l = M([2, 1152]), + l = p([2, 1152]), f = 0, - c = _.mf_samples_to_encode - Ae.POSTDELAY, - u = L(e); + c = _.mf_samples_to_encode - Pe.POSTDELAY, + h = C(e); if (_.mf_samples_to_encode < 1) return 0; - for (s = 0, e.in_samplerate != e.out_samplerate && me(), (i = e.framesize - c % e.framesize) < 576 && (i += e.framesize), e.encoder_padding = i, o = (c + i) / e.framesize; 0 < o && 0 <= f;) { - var h = u - _.mf_size, - b = e.frameNum; - h *= e.in_samplerate, 1152 < (h /= e.out_samplerate) && (h = 1152), h < 1 && (h = 1), r = n - s, 0 == n && (r = 0), f = this.lame_encode_buffer(e, l[0], l[1], h, t, a, r), a += f, s += f, o -= b != e.frameNum ? 1 : 0; + for (n = 0, e.in_samplerate != e.out_samplerate && (c += 16 * e.out_samplerate / e.in_samplerate), (i = e.framesize - c % e.framesize) < 576 && (i += e.framesize), o = (c + (e.encoder_padding = i)) / e.framesize; 0 < o && 0 <= f;) { + var u = h - _.mf_size, + m = e.frameNum; + u *= e.in_samplerate, 1152 < (u /= e.out_samplerate) && (u = 1152), u < 1 && (u = 1), r = s - n, 0 == s && (r = 0), a += f = this.lame_encode_buffer(e, l[0], l[1], u, t, a, r), n += f, o -= m != e.frameNum ? 1 : 0; } - return _.mf_samples_to_encode = 0, f < 0 ? f : (r = n - s, 0 == n && (r = 0), E.flush_bitstream(e), (f = E.copy_buffer(_, t, a, r, 1)) < 0 ? f : (a += f, r = n - (s += f), 0 == n && (r = 0), e.write_id3tag_automatic && me(), s)); - }, this.lame_encode_buffer = function (e, t, a, n, s, r, i) { + if (f < (_.mf_samples_to_encode = 0)) return f; + if (r = s - n, 0 == s && (r = 0), R.flush_bitstream(e), (f = R.copy_buffer(_, t, a, r, 1)) < 0) return f; + if (a += f, r = s - (n += f), 0 == s && (r = 0), e.write_id3tag_automatic) { + if (B.id3tag_write_v1(e), (f = R.copy_buffer(_, t, a, r, 0)) < 0) return f; + n += f; + } + return n; + }, this.lame_encode_buffer = function (e, t, a, s, n, r, i) { var o, _, l = e.internal_flags, f = [null, null]; - if (l.Class_ID != I) return -3; - if (0 == n) return 0; - _ = n, (null == (o = l).in_buffer_0 || o.in_buffer_nsamples < _) && (o.in_buffer_0 = de(_), o.in_buffer_1 = de(_), o.in_buffer_nsamples = _), f[0] = l.in_buffer_0, f[1] = l.in_buffer_1; - for (var c = 0; c < n; c++) f[0][c] = t[c], 1 < l.channels_in && (f[1][c] = a[c]); - return function (e, t, a, n, s, r, i) { + if (l.Class_ID != x) return -3; + if (0 == s) return 0; + _ = s, (null == (o = l).in_buffer_0 || o.in_buffer_nsamples < _) && (o.in_buffer_0 = Be(_), o.in_buffer_1 = Be(_), o.in_buffer_nsamples = _), f[0] = l.in_buffer_0, f[1] = l.in_buffer_1; + for (var c = 0; c < s; c++) f[0][c] = t[c], 1 < l.channels_in && (f[1][c] = a[c]); + return function (e, t, a, s, n, r, i) { var o, _, l, f, c, - u = e.internal_flags, - h = 0, - b = [null, null], + h = e.internal_flags, + u = 0, + m = [null, null], p = [null, null]; - if (u.Class_ID != I) return -3; - if (0 == n) return 0; - if ((c = E.copy_buffer(u, s, r, i, 0)) < 0) return c; - if (r += c, h += c, p[0] = t, p[1] = a, N.NEQ(e.scale, 0) && N.NEQ(e.scale, 1)) for (_ = 0; _ < n; ++_) p[0][_] *= e.scale, 2 == u.channels_out && (p[1][_] *= e.scale); - if (N.NEQ(e.scale_left, 0) && N.NEQ(e.scale_left, 1)) for (_ = 0; _ < n; ++_) p[0][_] *= e.scale_left; - if (N.NEQ(e.scale_right, 0) && N.NEQ(e.scale_right, 1)) for (_ = 0; _ < n; ++_) p[1][_] *= e.scale_right; - 2 == e.num_channels && 1 == u.channels_out && me(), f = L(e), b[0] = u.mfbuf[0], b[1] = u.mfbuf[1]; - for (var m, v, d, g, w, S, M, y = 0; 0 < n;) { - var A = [null, null], - k = 0, - R = 0; - A[0] = p[0], A[1] = p[1]; - var x = new P(); - if (H(e, b, A, y, n, x), k = x.n_in, R = x.n_out, u.findReplayGain && !u.decode_on_the_fly && T.AnalyzeSamples(u.rgdata, b[0], u.mf_size, b[1], u.mf_size, R, u.channels_out) == O.GAIN_ANALYSIS_ERROR) return -6; - if (n -= k, y += k, u.channels_out, u.mf_size += R, u.mf_samples_to_encode < 1 && me(), u.mf_samples_to_encode += R, u.mf_size >= f) { - var B = i - h; - if (0 == i && (B = 0), m = e, v = b[0], d = b[1], g = s, w = r, S = B, M = C.enc.lame_encode_mp3_frame(m, v, d, g, w, S), m.frameNum++, (o = M) < 0) return o; - for (r += o, h += o, u.mf_size -= e.framesize, u.mf_samples_to_encode -= e.framesize, l = 0; l < u.channels_out; l++) for (_ = 0; _ < u.mf_size; _++) b[l][_] = b[l][_ + e.framesize]; + if (h.Class_ID != x) return -3; + if (0 == s) return 0; + if ((c = R.copy_buffer(h, n, r, i, 0)) < 0) return c; + if (r += c, u += c, p[0] = t, p[1] = a, q.NEQ(e.scale, 0) && q.NEQ(e.scale, 1)) for (_ = 0; _ < s; ++_) p[0][_] *= e.scale, 2 == h.channels_out && (p[1][_] *= e.scale); + if (q.NEQ(e.scale_left, 0) && q.NEQ(e.scale_left, 1)) for (_ = 0; _ < s; ++_) p[0][_] *= e.scale_left; + if (q.NEQ(e.scale_right, 0) && q.NEQ(e.scale_right, 1)) for (_ = 0; _ < s; ++_) p[1][_] *= e.scale_right; + if (2 == e.num_channels && 1 == h.channels_out) for (_ = 0; _ < s; ++_) p[0][_] = .5 * (p[0][_] + p[1][_]), p[1][_] = 0; + f = C(e), m[0] = h.mfbuf[0], m[1] = h.mfbuf[1]; + var b = 0; + for (; 0 < s;) { + var v = [null, null], + d = 0, + g = 0; + v[0] = p[0], v[1] = p[1]; + var S = new O(); + if (D(e, m, v, b, s, S), d = S.n_in, g = S.n_out, h.findReplayGain && !h.decode_on_the_fly && w.AnalyzeSamples(h.rgdata, m[0], h.mf_size, m[1], h.mf_size, g, h.channels_out) == X.GAIN_ANALYSIS_ERROR) return -6; + if (s -= d, b += d, h.channels_out, h.mf_size += g, h.mf_samples_to_encode < 1 && (h.mf_samples_to_encode = Pe.ENCDELAY + Pe.POSTDELAY), h.mf_samples_to_encode += g, h.mf_size >= f) { + var M = i - u; + if (0 == i && (M = 0), (o = V(e, m[0], m[1], n, r, M)) < 0) return o; + for (r += o, u += o, h.mf_size -= e.framesize, h.mf_samples_to_encode -= e.framesize, l = 0; l < h.channels_out; l++) for (_ = 0; _ < h.mf_size; _++) m[l][_] = m[l][_ + e.framesize]; } } - return h; - }(e, f[0], f[1], n, s, r, i); + return u; + }(e, f[0], f[1], s, n, r, i); }; } - F.SFBMAX = 3 * Ae.SBMAX_s, Ae.ENCDELAY = 576, Ae.POSTDELAY = 1152, Ae.FFTOFFSET = 224 + (Ae.MDCTDELAY = 48), Ae.DECDELAY = 528, Ae.SBLIMIT = 32, Ae.CBANDS = 64, Ae.SBPSY_l = 21, Ae.SBPSY_s = 12, Ae.SBMAX_l = 22, Ae.SBMAX_s = 13, Ae.PSFB21 = 6, Ae.PSFB12 = 6, Ae.HBLKSIZE = (Ae.BLKSIZE = 1024) / 2 + 1, Ae.HBLKSIZE_s = (Ae.BLKSIZE_s = 256) / 2 + 1, Ae.NORM_TYPE = 0, Ae.START_TYPE = 1, Ae.SHORT_TYPE = 2, Ae.STOP_TYPE = 3, Ae.MPG_MD_LR_LR = 0, Ae.MPG_MD_LR_I = 1, Ae.MPG_MD_MS_LR = 2, Ae.MPG_MD_MS_I = 3, Ae.fircoef = [-.1039435, -.1892065, 5 * -.0432472, -.155915, 3.898045e-17, .0467745 * 5, .50455, .756825, .187098 * 5], j.MFSIZE = 3456 + Ae.ENCDELAY - Ae.MDCTDELAY, j.MAX_HEADER_BUF = 256, j.MAX_BITS_PER_CHANNEL = 4095, j.MAX_BITS_PER_GRANULE = 7680, j.BPC = 320, F.SFBMAX = 3 * Ae.SBMAX_s, t.Mp3Encoder = function (n, e, t) { - 1 != n && me("fix cc: only supports mono"); - var s = new Y(), + z.SFBMAX = 3 * Pe.SBMAX_s, Pe.ENCDELAY = 576, Pe.POSTDELAY = 1152, Pe.FFTOFFSET = 224 + (Pe.MDCTDELAY = 48), Pe.DECDELAY = 528, Pe.SBLIMIT = 32, Pe.CBANDS = 64, Pe.SBPSY_l = 21, Pe.SBPSY_s = 12, Pe.SBMAX_l = 22, Pe.SBMAX_s = 13, Pe.PSFB21 = 6, Pe.PSFB12 = 6, Pe.HBLKSIZE = (Pe.BLKSIZE = 1024) / 2 + 1, Pe.HBLKSIZE_s = (Pe.BLKSIZE_s = 256) / 2 + 1, Pe.NORM_TYPE = 0, Pe.START_TYPE = 1, Pe.SHORT_TYPE = 2, Pe.STOP_TYPE = 3, Pe.MPG_MD_LR_LR = 0, Pe.MPG_MD_LR_I = 1, Pe.MPG_MD_MS_LR = 2, Pe.MPG_MD_MS_I = 3, Pe.fircoef = [-.1039435, -.1892065, 5 * -.0432472, -.155915, 3.898045e-17, .0467745 * 5, .50455, .756825, .187098 * 5], Z.MFSIZE = 3456 + Pe.ENCDELAY - Pe.MDCTDELAY, Z.MAX_HEADER_BUF = 256, Z.MAX_BITS_PER_CHANNEL = 4095, Z.MAX_BITS_PER_GRANULE = 7680, Z.BPC = 320, z.SFBMAX = 3 * Pe.SBMAX_s, t.Mp3Encoder = function (s, e, t) { + 3 != arguments.length && (console.error("WARN: Mp3Encoder(channels, samplerate, kbps) not specified"), s = 1, e = 44100, t = 128); + var n = new U(), a = new function () { this.setModules = function (e, t) {}; }(), - r = new O(), - i = new N(), + r = new X(), + i = new q(), o = new function () { - function e(e, t, a, n, s, r, i, o, _, l, f, c, u, h) { - this.quant_comp = t, this.quant_comp_s = a, this.safejoint = n, this.nsmsfix = s, this.st_lrm = r, this.st_s = i, this.nsbass = o, this.scale = _, this.masking_adj = l, this.ath_lower = f, this.ath_curve = c, this.interch = u, this.sfscale = h; + function e(e, t, a, s, n, r, i, o, _, l, f, c, h, u, m) { + this.vbr_q = e, this.quant_comp = t, this.quant_comp_s = a, this.expY = s, this.st_lrm = n, this.st_s = r, this.masking_adj = i, this.masking_adj_short = o, this.ath_lower = _, this.ath_curve = l, this.ath_sensitivity = f, this.interch = c, this.safejoint = h, this.sfb21mod = u, this.msfix = m; + } + function t(e, t, a, s, n, r, i, o, _, l, f, c, h, u) { + this.quant_comp = t, this.quant_comp_s = a, this.safejoint = s, this.nsmsfix = n, this.st_lrm = r, this.st_s = i, this.nsbass = o, this.scale = _, this.masking_adj = l, this.ath_lower = f, this.ath_curve = c, this.interch = h, this.sfscale = u; } var i; - function n(e, t, a) { - me(); - } this.setModules = function (e) { i = e; }; - var o = [new e(8, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -30, 11, .0012, 1), new e(16, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -25, 11, .001, 1), new e(24, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -20, 11, .001, 1), new e(32, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -15, 11, .001, 1), new e(40, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -10, 11, 9e-4, 1), new e(48, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -10, 11, 9e-4, 1), new e(56, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -6, 11, 8e-4, 1), new e(64, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -2, 11, 8e-4, 1), new e(80, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, 0, 8, 7e-4, 1), new e(96, 9, 9, 0, 2.5, 6.6, 145, 0, .95, 0, 1, 5.5, 6e-4, 1), new e(112, 9, 9, 0, 2.25, 6.6, 145, 0, .95, 0, 2, 4.5, 5e-4, 1), new e(128, 9, 9, 0, 1.95, 6.4, 140, 0, .95, 0, 3, 4, 2e-4, 1), new e(160, 9, 9, 1, 1.79, 6, 135, 0, .95, -2, 5, 3.5, 0, 1), new e(192, 9, 9, 1, 1.49, 5.6, 125, 0, .97, -4, 7, 3, 0, 0), new e(224, 9, 9, 1, 1.25, 5.2, 125, 0, .98, -6, 9, 2, 0, 0), new e(256, 9, 9, 1, .97, 5.2, 125, 0, 1, -8, 10, 1, 0, 0), new e(320, 9, 9, 1, .9, 5.2, 125, 0, 1, -10, 12, 0, 0, 0)]; + var f = [new e(0, 9, 9, 0, 5.2, 125, -4.2, -6.3, 4.8, 1, 0, 0, 2, 21, .97), new e(1, 9, 9, 0, 5.3, 125, -3.6, -5.6, 4.5, 1.5, 0, 0, 2, 21, 1.35), new e(2, 9, 9, 0, 5.6, 125, -2.2, -3.5, 2.8, 2, 0, 0, 2, 21, 1.49), new e(3, 9, 9, 1, 5.8, 130, -1.8, -2.8, 2.6, 3, -4, 0, 2, 20, 1.64), new e(4, 9, 9, 1, 6, 135, -.7, -1.1, 1.1, 3.5, -8, 0, 2, 0, 1.79), new e(5, 9, 9, 1, 6.4, 140, .5, .4, -7.5, 4, -12, 2e-4, 0, 0, 1.95), new e(6, 9, 9, 1, 6.6, 145, .67, .65, -14.7, 6.5, -19, 4e-4, 0, 0, 2.3), new e(7, 9, 9, 1, 6.6, 145, .8, .75, -19.7, 8, -22, 6e-4, 0, 0, 2.7), new e(8, 9, 9, 1, 6.6, 145, 1.2, 1.15, -27.5, 10, -23, 7e-4, 0, 0, 0), new e(9, 9, 9, 1, 6.6, 145, 1.6, 1.6, -36, 11, -25, 8e-4, 0, 0, 0), new e(10, 9, 9, 1, 6.6, 145, 2, 2, -36, 12, -25, 8e-4, 0, 0, 0)], + c = [new e(0, 9, 9, 0, 4.2, 25, -7, -4, 7.5, 1, 0, 0, 2, 26, .97), new e(1, 9, 9, 0, 4.2, 25, -5.6, -3.6, 4.5, 1.5, 0, 0, 2, 21, 1.35), new e(2, 9, 9, 0, 4.2, 25, -4.4, -1.8, 2, 2, 0, 0, 2, 18, 1.49), new e(3, 9, 9, 1, 4.2, 25, -3.4, -1.25, 1.1, 3, -4, 0, 2, 15, 1.64), new e(4, 9, 9, 1, 4.2, 25, -2.2, .1, 0, 3.5, -8, 0, 2, 0, 1.79), new e(5, 9, 9, 1, 4.2, 25, -1, 1.65, -7.7, 4, -12, 2e-4, 0, 0, 1.95), new e(6, 9, 9, 1, 4.2, 25, -0, 2.47, -7.7, 6.5, -19, 4e-4, 0, 0, 2), new e(7, 9, 9, 1, 4.2, 25, .5, 2, -14.5, 8, -22, 6e-4, 0, 0, 2), new e(8, 9, 9, 1, 4.2, 25, 1, 2.4, -22, 10, -23, 7e-4, 0, 0, 2), new e(9, 9, 9, 1, 4.2, 25, 1.5, 2.95, -30, 11, -25, 8e-4, 0, 0, 2), new e(10, 9, 9, 1, 4.2, 25, 2, 2.95, -36, 12, -30, 8e-4, 0, 0, 2)]; function s(e, t, a) { - var n = t, - s = i.nearestBitrateFullIndex(t); - if (e.VBR = Me.vbr_abr, e.VBR_mean_bitrate_kbps = n, e.VBR_mean_bitrate_kbps = Math.min(e.VBR_mean_bitrate_kbps, 320), e.VBR_mean_bitrate_kbps = Math.max(e.VBR_mean_bitrate_kbps, 8), e.brate = e.VBR_mean_bitrate_kbps, 320 < e.VBR_mean_bitrate_kbps && (e.disable_reservoir = !0), 0 < o[s].safejoint && (e.exp_nspsytune = 2 | e.exp_nspsytune), 0 < o[s].sfscale && (e.internal_flags.noise_shaping = 2), 0 < Math.abs(o[s].nsbass)) { - var r = int(4 * o[s].nsbass); + var s, + n, + r = e.VBR == xe.vbr_rh ? f : c, + i = e.VBR_q_frac, + o = r[t], + _ = r[t + 1], + l = o; + o.st_lrm = o.st_lrm + i * (_.st_lrm - o.st_lrm), o.st_s = o.st_s + i * (_.st_s - o.st_s), o.masking_adj = o.masking_adj + i * (_.masking_adj - o.masking_adj), o.masking_adj_short = o.masking_adj_short + i * (_.masking_adj_short - o.masking_adj_short), o.ath_lower = o.ath_lower + i * (_.ath_lower - o.ath_lower), o.ath_curve = o.ath_curve + i * (_.ath_curve - o.ath_curve), o.ath_sensitivity = o.ath_sensitivity + i * (_.ath_sensitivity - o.ath_sensitivity), o.interch = o.interch + i * (_.interch - o.interch), o.msfix = o.msfix + i * (_.msfix - o.msfix), s = e, (n = l.vbr_q) < 0 && (n = 0), 9 < n && (n = 9), s.VBR_q = n, (s.VBR_q_frac = 0) != a ? e.quant_comp = l.quant_comp : 0 < Math.abs(e.quant_comp - -1) || (e.quant_comp = l.quant_comp), 0 != a ? e.quant_comp_short = l.quant_comp_s : 0 < Math.abs(e.quant_comp_short - -1) || (e.quant_comp_short = l.quant_comp_s), 0 != l.expY && (e.experimentalY = 0 != l.expY), 0 != a ? e.internal_flags.nsPsy.attackthre = l.st_lrm : 0 < Math.abs(e.internal_flags.nsPsy.attackthre - -1) || (e.internal_flags.nsPsy.attackthre = l.st_lrm), 0 != a ? e.internal_flags.nsPsy.attackthre_s = l.st_s : 0 < Math.abs(e.internal_flags.nsPsy.attackthre_s - -1) || (e.internal_flags.nsPsy.attackthre_s = l.st_s), 0 != a ? e.maskingadjust = l.masking_adj : 0 < Math.abs(e.maskingadjust - 0) || (e.maskingadjust = l.masking_adj), 0 != a ? e.maskingadjust_short = l.masking_adj_short : 0 < Math.abs(e.maskingadjust_short - 0) || (e.maskingadjust_short = l.masking_adj_short), 0 != a ? e.ATHlower = -l.ath_lower / 10 : 0 < Math.abs(10 * -e.ATHlower - 0) || (e.ATHlower = -l.ath_lower / 10), 0 != a ? e.ATHcurve = l.ath_curve : 0 < Math.abs(e.ATHcurve - -1) || (e.ATHcurve = l.ath_curve), 0 != a ? e.athaa_sensitivity = l.ath_sensitivity : 0 < Math.abs(e.athaa_sensitivity - -1) || (e.athaa_sensitivity = l.ath_sensitivity), 0 < l.interch && (0 != a ? e.interChRatio = l.interch : 0 < Math.abs(e.interChRatio - -1) || (e.interChRatio = l.interch)), 0 < l.safejoint && (e.exp_nspsytune = e.exp_nspsytune | l.safejoint), 0 < l.sfb21mod && (e.exp_nspsytune = e.exp_nspsytune | l.sfb21mod << 20), 0 != a ? e.msfix = l.msfix : 0 < Math.abs(e.msfix - -1) || (e.msfix = l.msfix), 0 == a && (e.VBR_q = t, e.VBR_q_frac = i); + } + var o = [new t(8, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -30, 11, .0012, 1), new t(16, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -25, 11, .001, 1), new t(24, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -20, 11, .001, 1), new t(32, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -15, 11, .001, 1), new t(40, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -10, 11, 9e-4, 1), new t(48, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -10, 11, 9e-4, 1), new t(56, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -6, 11, 8e-4, 1), new t(64, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, -2, 11, 8e-4, 1), new t(80, 9, 9, 0, 0, 6.6, 145, 0, .95, 0, 0, 8, 7e-4, 1), new t(96, 9, 9, 0, 2.5, 6.6, 145, 0, .95, 0, 1, 5.5, 6e-4, 1), new t(112, 9, 9, 0, 2.25, 6.6, 145, 0, .95, 0, 2, 4.5, 5e-4, 1), new t(128, 9, 9, 0, 1.95, 6.4, 140, 0, .95, 0, 3, 4, 2e-4, 1), new t(160, 9, 9, 1, 1.79, 6, 135, 0, .95, -2, 5, 3.5, 0, 1), new t(192, 9, 9, 1, 1.49, 5.6, 125, 0, .97, -4, 7, 3, 0, 0), new t(224, 9, 9, 1, 1.25, 5.2, 125, 0, .98, -6, 9, 2, 0, 0), new t(256, 9, 9, 1, .97, 5.2, 125, 0, 1, -8, 10, 1, 0, 0), new t(320, 9, 9, 1, .9, 5.2, 125, 0, 1, -10, 12, 0, 0, 0)]; + function n(e, t, a) { + var s = t, + n = i.nearestBitrateFullIndex(t); + if (e.VBR = xe.vbr_abr, e.VBR_mean_bitrate_kbps = s, e.VBR_mean_bitrate_kbps = Math.min(e.VBR_mean_bitrate_kbps, 320), e.VBR_mean_bitrate_kbps = Math.max(e.VBR_mean_bitrate_kbps, 8), e.brate = e.VBR_mean_bitrate_kbps, 320 < e.VBR_mean_bitrate_kbps && (e.disable_reservoir = !0), 0 < o[n].safejoint && (e.exp_nspsytune = 2 | e.exp_nspsytune), 0 < o[n].sfscale && (e.internal_flags.noise_shaping = 2), 0 < Math.abs(o[n].nsbass)) { + var r = int(4 * o[n].nsbass); r < 0 && (r += 64), e.exp_nspsytune = e.exp_nspsytune | r << 2; } - return 0 != a ? e.quant_comp = o[s].quant_comp : 0 < Math.abs(e.quant_comp - -1) || (e.quant_comp = o[s].quant_comp), 0 != a ? e.quant_comp_short = o[s].quant_comp_s : 0 < Math.abs(e.quant_comp_short - -1) || (e.quant_comp_short = o[s].quant_comp_s), 0 != a ? e.msfix = o[s].nsmsfix : 0 < Math.abs(e.msfix - -1) || (e.msfix = o[s].nsmsfix), 0 != a ? e.internal_flags.nsPsy.attackthre = o[s].st_lrm : 0 < Math.abs(e.internal_flags.nsPsy.attackthre - -1) || (e.internal_flags.nsPsy.attackthre = o[s].st_lrm), 0 != a ? e.internal_flags.nsPsy.attackthre_s = o[s].st_s : 0 < Math.abs(e.internal_flags.nsPsy.attackthre_s - -1) || (e.internal_flags.nsPsy.attackthre_s = o[s].st_s), 0 != a ? e.scale = o[s].scale : 0 < Math.abs(e.scale - -1) || (e.scale = o[s].scale), 0 != a ? e.maskingadjust = o[s].masking_adj : 0 < Math.abs(e.maskingadjust - 0) || (e.maskingadjust = o[s].masking_adj), 0 < o[s].masking_adj ? 0 != a ? e.maskingadjust_short = .9 * o[s].masking_adj : 0 < Math.abs(e.maskingadjust_short - 0) || (e.maskingadjust_short = .9 * o[s].masking_adj) : 0 != a ? e.maskingadjust_short = 1.1 * o[s].masking_adj : 0 < Math.abs(e.maskingadjust_short - 0) || (e.maskingadjust_short = 1.1 * o[s].masking_adj), 0 != a ? e.ATHlower = -o[s].ath_lower / 10 : 0 < Math.abs(10 * -e.ATHlower - 0) || (e.ATHlower = -o[s].ath_lower / 10), 0 != a ? e.ATHcurve = o[s].ath_curve : 0 < Math.abs(e.ATHcurve - -1) || (e.ATHcurve = o[s].ath_curve), 0 != a ? e.interChRatio = o[s].interch : 0 < Math.abs(e.interChRatio - -1) || (e.interChRatio = o[s].interch), t; + return 0 != a ? e.quant_comp = o[n].quant_comp : 0 < Math.abs(e.quant_comp - -1) || (e.quant_comp = o[n].quant_comp), 0 != a ? e.quant_comp_short = o[n].quant_comp_s : 0 < Math.abs(e.quant_comp_short - -1) || (e.quant_comp_short = o[n].quant_comp_s), 0 != a ? e.msfix = o[n].nsmsfix : 0 < Math.abs(e.msfix - -1) || (e.msfix = o[n].nsmsfix), 0 != a ? e.internal_flags.nsPsy.attackthre = o[n].st_lrm : 0 < Math.abs(e.internal_flags.nsPsy.attackthre - -1) || (e.internal_flags.nsPsy.attackthre = o[n].st_lrm), 0 != a ? e.internal_flags.nsPsy.attackthre_s = o[n].st_s : 0 < Math.abs(e.internal_flags.nsPsy.attackthre_s - -1) || (e.internal_flags.nsPsy.attackthre_s = o[n].st_s), 0 != a ? e.scale = o[n].scale : 0 < Math.abs(e.scale - -1) || (e.scale = o[n].scale), 0 != a ? e.maskingadjust = o[n].masking_adj : 0 < Math.abs(e.maskingadjust - 0) || (e.maskingadjust = o[n].masking_adj), 0 < o[n].masking_adj ? 0 != a ? e.maskingadjust_short = .9 * o[n].masking_adj : 0 < Math.abs(e.maskingadjust_short - 0) || (e.maskingadjust_short = .9 * o[n].masking_adj) : 0 != a ? e.maskingadjust_short = 1.1 * o[n].masking_adj : 0 < Math.abs(e.maskingadjust_short - 0) || (e.maskingadjust_short = 1.1 * o[n].masking_adj), 0 != a ? e.ATHlower = -o[n].ath_lower / 10 : 0 < Math.abs(10 * -e.ATHlower - 0) || (e.ATHlower = -o[n].ath_lower / 10), 0 != a ? e.ATHcurve = o[n].ath_curve : 0 < Math.abs(e.ATHcurve - -1) || (e.ATHcurve = o[n].ath_curve), 0 != a ? e.interChRatio = o[n].interch : 0 < Math.abs(e.interChRatio - -1) || (e.interChRatio = o[n].interch), t; } this.apply_preset = function (e, t, a) { switch (t) { - case Y.R3MIX: - t = Y.V3, e.VBR = Me.vbr_mtrh; + case U.R3MIX: + t = U.V3, e.VBR = xe.vbr_mtrh; break; - case Y.MEDIUM: - t = Y.V4, e.VBR = Me.vbr_rh; + case U.MEDIUM: + t = U.V4, e.VBR = xe.vbr_rh; break; - case Y.MEDIUM_FAST: - t = Y.V4, e.VBR = Me.vbr_mtrh; + case U.MEDIUM_FAST: + t = U.V4, e.VBR = xe.vbr_mtrh; break; - case Y.STANDARD: - t = Y.V2, e.VBR = Me.vbr_rh; + case U.STANDARD: + t = U.V2, e.VBR = xe.vbr_rh; break; - case Y.STANDARD_FAST: - t = Y.V2, e.VBR = Me.vbr_mtrh; + case U.STANDARD_FAST: + t = U.V2, e.VBR = xe.vbr_mtrh; break; - case Y.EXTREME: - t = Y.V0, e.VBR = Me.vbr_rh; + case U.EXTREME: + t = U.V0, e.VBR = xe.vbr_rh; break; - case Y.EXTREME_FAST: - t = Y.V0, e.VBR = Me.vbr_mtrh; + case U.EXTREME_FAST: + t = U.V0, e.VBR = xe.vbr_mtrh; break; - case Y.INSANE: - return t = 320, e.preset = t, s(e, t, a), e.VBR = Me.vbr_off, t; + case U.INSANE: + return t = 320, e.preset = t, n(e, t, a), e.VBR = xe.vbr_off, t; } switch (e.preset = t) { - case Y.V9: - return n(), t; - case Y.V8: - return n(), t; - case Y.V7: - return n(), t; - case Y.V6: - return n(), t; - case Y.V5: - return n(), t; - case Y.V4: - return n(), t; - case Y.V3: - return n(), t; - case Y.V2: - return n(), t; - case Y.V1: - return n(), t; - case Y.V0: - return n(), t; + case U.V9: + return s(e, 9, a), t; + case U.V8: + return s(e, 8, a), t; + case U.V7: + return s(e, 7, a), t; + case U.V6: + return s(e, 6, a), t; + case U.V5: + return s(e, 5, a), t; + case U.V4: + return s(e, 4, a), t; + case U.V3: + return s(e, 3, a), t; + case U.V2: + return s(e, 2, a), t; + case U.V1: + return s(e, 1, a), t; + case U.V0: + return s(e, 0, a), t; } - return 8 <= t && t <= 320 ? s(e, t, a) : (e.preset = 0, t); + return 8 <= t && t <= 320 ? n(e, t, a) : (e.preset = 0, t); }; }(), - _ = new T(), - l = new C(), - f = new y(), + _ = new x(), + l = new w(), + f = new M(), c = new function () { - this.getLameShortVersion = function () { + this.getLameVersion = function () { return "3.98.4"; + }, this.getLameShortVersion = function () { + return "3.98.4"; + }, this.getLameVeryShortVersion = function () { + return "LAME3.98r"; + }, this.getPsyVersion = function () { + return "0.93"; + }, this.getLameUrl = function () { + return "http://www.mp3dev.org/"; + }, this.getLameOsBitness = function () { + return "32bits"; }; }(), - u = new function () { - this.setModules = function (e, t) {}; - }(), h = new function () { + this.setModules = function (e, t) {}; + }(), + u = new function () { var _; this.setModules = function (e) { _ = e; }, this.ResvFrameBegin = function (e, t) { var a, - n = e.internal_flags, - s = n.l3_side, + s = e.internal_flags, + n = s.l3_side, r = _.getframebits(e); - t.bits = (r - 8 * n.sideinfo_len) / n.mode_gr; - var i = 2048 * n.mode_gr - 8; - 320 < e.brate ? me() : (a = 11520, e.strict_ISO && me()), n.ResvMax = a - r, n.ResvMax > i && (n.ResvMax = i), (n.ResvMax < 0 || e.disable_reservoir) && (n.ResvMax = 0); - var o = t.bits * n.mode_gr + Math.min(n.ResvSize, n.ResvMax); - return a < o && (o = a), s.resvDrain_pre = 0, null != n.pinfo && me(), o; - }, this.ResvMaxBits = function (e, t, a, n) { - var s, + t.bits = (r - 8 * s.sideinfo_len) / s.mode_gr; + var i = 2048 * s.mode_gr - 8; + 320 < e.brate ? a = 8 * int(1e3 * e.brate / (e.out_samplerate / 1152) / 8 + .5) : (a = 11520, e.strict_ISO && (a = 8 * int(32e4 / (e.out_samplerate / 1152) / 8 + .5))), s.ResvMax = a - r, s.ResvMax > i && (s.ResvMax = i), (s.ResvMax < 0 || e.disable_reservoir) && (s.ResvMax = 0); + var o = t.bits * s.mode_gr + Math.min(s.ResvSize, s.ResvMax); + return a < o && (o = a), n.resvDrain_pre = 0, null != s.pinfo && (s.pinfo.mean_bits = t.bits / 2, s.pinfo.resvsize = s.ResvSize), o; + }, this.ResvMaxBits = function (e, t, a, s) { + var n, r = e.internal_flags, i = r.ResvSize, o = r.ResvMax; - 0 != n && (i += t), 0 != (1 & r.substep_shaping) && (o *= .9), a.bits = t, 9 * o < 10 * i ? (s = i - 9 * o / 10, a.bits += s, r.substep_shaping |= 128) : (s = 0, r.substep_shaping &= 127, e.disable_reservoir || 0 != (1 & r.substep_shaping) || (a.bits -= .1 * t)); + 0 != s && (i += t), 0 != (1 & r.substep_shaping) && (o *= .9), a.bits = t, 9 * o < 10 * i ? (n = i - 9 * o / 10, a.bits += n, r.substep_shaping |= 128) : (n = 0, r.substep_shaping &= 127, e.disable_reservoir || 0 != (1 & r.substep_shaping) || (a.bits -= .1 * t)); var _ = i < 6 * r.ResvMax / 10 ? i : 6 * r.ResvMax / 10; - return (_ -= s) < 0 && (_ = 0), _; + return (_ -= n) < 0 && (_ = 0), _; }, this.ResvAdjust = function (e, t) { e.ResvSize -= t.part2_3_length + t.part2_length; }, this.ResvFrameEnd = function (e, t) { var a, - n = e.l3_side; + s = e.l3_side; e.ResvSize += t * e.mode_gr; - var s = 0; - n.resvDrain_post = 0, (n.resvDrain_pre = 0) != (a = e.ResvSize % 8) && (s += a), 0 < (a = e.ResvSize - s - e.ResvMax) && (s += a); - var r = Math.min(8 * n.main_data_begin, s) / 8; - n.resvDrain_pre += 8 * r, s -= 8 * r, e.ResvSize -= 8 * r, n.main_data_begin -= r, n.resvDrain_post += s, e.ResvSize -= s; + var n = 0; + s.resvDrain_post = 0, (s.resvDrain_pre = 0) != (a = e.ResvSize % 8) && (n += a), 0 < (a = e.ResvSize - n - e.ResvMax) && (n += a); + var r = Math.min(8 * s.main_data_begin, n) / 8; + s.resvDrain_pre += 8 * r, n -= 8 * r, e.ResvSize -= 8 * r, s.main_data_begin -= r, s.resvDrain_post += n, e.ResvSize -= n; }; }(), - b = new A(), + m = new k(), p = new function () { this.setModules = function (e, t, a) {}; }(), - m = new function () {}(); - s.setModules(r, i, o, _, l, f, c, u, m), i.setModules(r, m, c, f), u.setModules(i, c), o.setModules(s), l.setModules(i, h, _, b), _.setModules(b, h, s.enc.psy), h.setModules(i), b.setModules(_), f.setModules(s, i, c), a.setModules(p, m), p.setModules(c, u, o); - var v = s.lame_init(); - v.num_channels = n, v.in_samplerate = e, v.out_samplerate = e, v.brate = t, v.mode = ye.STEREO, v.quality = 3, v.bWriteVbrTag = !1, v.disable_reservoir = !0, v.write_id3tag_automatic = !1, s.lame_init_params(v); + b = new function () {}(); + n.setModules(r, i, o, _, l, f, c, h, b), i.setModules(r, b, c, f), h.setModules(i, c), o.setModules(n), l.setModules(i, u, _, m), _.setModules(m, u, n.enc.psy), u.setModules(i), m.setModules(_), f.setModules(n, i, c), a.setModules(p, b), p.setModules(c, h, o); + var v = n.lame_init(); + v.num_channels = s, v.in_samplerate = e, v.out_samplerate = e, v.brate = t, v.mode = Ee.STEREO, v.quality = 3, v.bWriteVbrTag = !1, v.disable_reservoir = !0, v.write_id3tag_automatic = !1, n.lame_init_params(v); var d = 1152, g = 0 | 1.25 * d + 7200, - w = S(g); + S = A(g); this.encodeBuffer = function (e, t) { - 1 == n && (t = e), e.length > d && (d = e.length, w = S(g = 0 | 1.25 * d + 7200)); - var a = s.lame_encode_buffer(v, e, t, e.length, w, 0, g); - return new Int8Array(w.subarray(0, a)); + 1 == s && (t = e), e.length > d && (d = e.length, S = A(g = 0 | 1.25 * d + 7200)); + var a = n.lame_encode_buffer(v, e, t, e.length, S, 0, g); + return new Int8Array(S.subarray(0, a)); }, this.flush = function () { - var e = s.lame_encode_flush(v, w, 0, g); - return new Int8Array(w.subarray(0, e)); + var e = n.lame_encode_flush(v, S, 0, g); + return new Int8Array(S.subarray(0, e)); }; }; } - t(), e.lamejs = t; -}(("object" == typeof window && window.document ? window : Object).Recorder); + t(), Recorder.lamejs = t; +}(); }); /* 录音 Recorder扩展,动态波形显示 https://github.com/xiangyuecn/Recorder */ -(function (factory) { - var browser = typeof window == "object" && !!window.document; - var win = browser ? window : Object; //非浏览器环境,Recorder挂载在Object下面 - var rec = win.Recorder, - ni = rec.i18n; - factory(rec, ni, ni.$T, browser); -})(function (Recorder, i18n, $T, isBrowser) { - +(function () { var WaveView = function (set) { return new fn(set); }; @@ -37249,12 +37574,7 @@ https://github.com/xiangyuecn/Recorder ,width:0 //显示宽度 ,height:0 //显示高度 - H5环境以上配置二选一 - - compatibleCanvas: CanvasObject //提供一个兼容H5的canvas对象,需支持getContext("2d"),支持设置width、height,支持drawImage(canvas,...) - ,width:0 //canvas显示宽度 - ,height:0 //canvas显示高度 - 非H5环境使用以上配置 + 以上配置二选一 */ scale: 2 //缩放系数,应为正整数,使用2(3? no!)倍宽高进行绘制,避免移动端绘制模糊 @@ -37283,44 +37603,38 @@ https://github.com/xiangyuecn/Recorder o[k] = set[k]; } This.set = set = o; - var cCanvas = "compatibleCanvas"; - if (set[cCanvas]) { - var canvas = This.canvas = set[cCanvas]; - } else { - if (!isBrowser) throw new Error($T.G("NonBrowser-1", [ViewTxt])); - var elem = set.elem; - if (elem) { - if (typeof elem == "string") { - elem = document.querySelector(elem); - } else if (elem.length) { - elem = elem[0]; - } - } - if (elem) { - set.width = elem.offsetWidth; - set.height = elem.offsetHeight; - } - var thisElem = This.elem = document.createElement("div"); - thisElem.style.fontSize = 0; - thisElem.innerHTML = ''; - var canvas = This.canvas = thisElem.querySelector("canvas"); - if (elem) { - elem.innerHTML = ""; - elem.appendChild(thisElem); + var elem = set.elem; + if (elem) { + if (typeof elem == "string") { + elem = document.querySelector(elem); + } else if (elem.length) { + elem = elem[0]; } } + if (elem) { + set.width = elem.offsetWidth; + set.height = elem.offsetHeight; + } var scale = set.scale; var width = set.width * scale; var height = set.height * scale; if (!width || !height) { - throw new Error($T.G("IllegalArgs-1", [ViewTxt + " width=0 height=0"])); + throw new Error(ViewTxt + "无宽高"); } + var thisElem = This.elem = document.createElement("div"); + var lowerCss = ["", "transform-origin:0 0;", "transform:scale(" + 1 / scale + ");"]; + thisElem.innerHTML = '
'; + var canvas = This.canvas = thisElem.querySelector("canvas"); + var ctx = This.ctx = canvas.getContext("2d"); canvas.width = width; canvas.height = height; - var ctx = This.ctx = canvas.getContext("2d"); This.linear1 = This.genLinear(ctx, width, set.linear1); This.linear2 = This.genLinear(ctx, width, set.linear2); This.linearBg = This.genLinear(ctx, height, set.linearBg, true); + if (elem) { + elem.innerHTML = ""; + elem.appendChild(thisElem); + } This._phase = 0; }; fn.prototype = WaveView.prototype = { @@ -37339,7 +37653,7 @@ https://github.com/xiangyuecn/Recorder var scale = set.scale; var width = set.width * scale; var maxAmplitude = set.height * scale / 2; - for (var x = 0; x <= width; x += scale) { + for (var x = 0; x < width; x += scale) { var scaling = (1 + Math.cos(Math.PI + x / width * 2 * Math.PI)) / 2; var y = scaling * maxAmplitude * amplitude * Math.sin(2 * Math.PI * (x / width) * frequency + phase) + maxAmplitude; rtv.push(y); @@ -37411,7 +37725,7 @@ https://github.com/xiangyuecn/Recorder //绘制包围背景 ctx.beginPath(); - for (var i = 0, x = 0; x <= width; i++, x += scale) { + for (var i = 0, x = 0; x < width; i++, x += scale) { if (x == 0) { ctx.moveTo(x, path1[i]); } else { @@ -37437,7 +37751,7 @@ https://github.com/xiangyuecn/Recorder var scale = set.scale; var width = set.width * scale; ctx.beginPath(); - for (var i = 0, x = 0; x <= width; i++, x += scale) { + for (var i = 0, x = 0; x < width; i++, x += scale) { if (x == 0) { ctx.moveTo(x, path[i]); } else { @@ -37450,11 +37764,11 @@ https://github.com/xiangyuecn/Recorder } }; Recorder[ViewTxt] = WaveView; -}); +})(); /* 录音 Recorder扩展,频率直方图显示 -使用本扩展需要引入src/extensions/lib.fft.js支持,直方图特意优化主要显示0-5khz语音部分(线性),其他高频显示区域较小,不适合用来展示音乐频谱,可通过配置fullFreq来恢复成完整的线性频谱,或自行修改源码修改成倍频程频谱(伯德图、对数频谱);本可视化插件可以移植到其他语言环境,如需定制可联系作者 +使用本扩展需要引入lib.fft.js支持,直方图特意优化主要显示0-5khz语音部分(线性),其他高频显示区域较小,不适合用来展示音乐频谱,可自行修改源码恢复成完整的线性频谱,或修改成倍频程频谱(伯德图、对数频谱);本可视化插件可以移植到其他语言环境,如需定制可联系作者 https://github.com/xiangyuecn/Recorder @@ -37462,13 +37776,7 @@ https://github.com/xiangyuecn/Recorder https://www.iteye.com/topic/851459 https://sourceforge.net/projects/jmp123/files/ */ -(function (factory) { - var browser = typeof window == "object" && !!window.document; - var win = browser ? window : Object; //非浏览器环境,Recorder挂载在Object下面 - var rec = win.Recorder, - ni = rec.i18n; - factory(rec, ni, ni.$T, browser); -})(function (Recorder, i18n, $T, isBrowser) { +(function () { var FrequencyHistogramView = function (set) { return new fn(set); @@ -37483,12 +37791,7 @@ https://sourceforge.net/projects/jmp123/files/ ,width:0 //显示宽度 ,height:0 //显示高度 - H5环境以上配置二选一 - - compatibleCanvas: CanvasObject //提供一个兼容H5的canvas对象,需支持getContext("2d"),支持设置width、height,支持drawImage(canvas,...) - ,width:0 //canvas显示宽度 - ,height:0 //canvas显示高度 - 非H5环境使用以上配置 + 以上配置二选一 */ scale: 2 //缩放系数,应为正整数,使用2(3? no!)倍宽高进行绘制,避免移动端绘制模糊 @@ -37534,9 +37837,7 @@ https://sourceforge.net/projects/jmp123/files/ stripeShadowBlur: -1 //峰值小横条阴影基础大小,设为0不显示阴影,-1为柱子的大小,如果柱子数量太多时请勿开启,非常影响性能 , stripeShadowColor: "" //峰值小横条阴影颜色,留空为柱子的阴影颜色 - , - fullFreq: false //是否要绘制所有频率;默认false主要绘制5khz以下的频率,高频部分占比很少,此时不同的采样率对频谱显示几乎没有影响;设为true后不同采样率下显示的频谱是不一样的,因为 最大频率=采样率/2 会有差异 //当发生绘制时会回调此方法,参数为当前绘制的频率数据和采样率,可实现多个直方图同时绘制,只消耗一个input输入和计算时间 , onDraw: function (frequencyData, sampleRate) {} @@ -37545,43 +37846,37 @@ https://sourceforge.net/projects/jmp123/files/ o[k] = set[k]; } This.set = set = o; - var cCanvas = "compatibleCanvas"; - if (set[cCanvas]) { - var canvas = This.canvas = set[cCanvas]; - } else { - if (!isBrowser) throw new Error($T.G("NonBrowser-1", [ViewTxt])); - var elem = set.elem; - if (elem) { - if (typeof elem == "string") { - elem = document.querySelector(elem); - } else if (elem.length) { - elem = elem[0]; - } - } - if (elem) { - set.width = elem.offsetWidth; - set.height = elem.offsetHeight; - } - var thisElem = This.elem = document.createElement("div"); - thisElem.style.fontSize = 0; - thisElem.innerHTML = ''; - var canvas = This.canvas = thisElem.querySelector("canvas"); - if (elem) { - elem.innerHTML = ""; - elem.appendChild(thisElem); + var elem = set.elem; + if (elem) { + if (typeof elem == "string") { + elem = document.querySelector(elem); + } else if (elem.length) { + elem = elem[0]; } } + if (elem) { + set.width = elem.offsetWidth; + set.height = elem.offsetHeight; + } var scale = set.scale; var width = set.width * scale; var height = set.height * scale; if (!width || !height) { - throw new Error($T.G("IllegalArgs-1", [ViewTxt + " width=0 height=0"])); + throw new Error(ViewTxt + "无宽高"); } + var thisElem = This.elem = document.createElement("div"); + var lowerCss = ["", "transform-origin:0 0;", "transform:scale(" + 1 / scale + ");"]; + thisElem.innerHTML = '
'; + var canvas = This.canvas = thisElem.querySelector("canvas"); + This.ctx = canvas.getContext("2d"); canvas.width = width; canvas.height = height; - This.ctx = canvas.getContext("2d"); + if (elem) { + elem.innerHTML = ""; + elem.appendChild(thisElem); + } if (!Recorder.LibFFT) { - throw new Error($T.G("NeedImport-2", [ViewTxt, "src/extensions/lib.fft.js"])); + throw new Error("需要lib.fft.js支持"); } This.fft = Recorder.LibFFT(1024); @@ -37621,9 +37916,6 @@ https://sourceforge.net/projects/jmp123/files/ //超时没有输入,顶部横条已全部落下,干掉定时器 clearInterval(This.timer); This.timer = 0; - This.lastH = []; //重置高度再绘制一次,避免定时不准没到底就停了 - This.stripesH = []; - This.draw(null, This.sampleRate); return; } if (now - drawTime < interval) { @@ -37675,19 +37967,15 @@ https://sourceforge.net/projects/jmp123/files/ var Y0 = 1 << (Math.round(Math.log(bufferSize) / Math.log(2) + 3) << 1); var logY0 = Math.log(Y0) / Math.log(10); var dBmax = 20 * Math.log(0x7fff) / Math.log(10); - var fftSize = bufferSize / 2, - fftSize5k = fftSize; - if (!set.fullFreq) { - //非绘制所有频率时,计算5khz所在位置,8000采样率及以下最高只有4khz - fftSize5k = Math.min(fftSize, Math.floor(fftSize * 5000 / (sampleRate / 2))); - } - var isFullFreq = fftSize5k == fftSize; - var line80 = isFullFreq ? lineCount : Math.round(lineCount * 0.8); //80%的柱子位置 + var fftSize = bufferSize / 2; + var fftSize5k = Math.min(fftSize, Math.floor(fftSize * 5000 / (sampleRate / 2))); //5khz所在位置,8000采样率及以下最高只有4khz + var fftSize5kIsAll = fftSize5k == fftSize; + var line80 = fftSize5kIsAll ? lineCount : Math.round(lineCount * 0.8); //80%的柱子位置 var fftSizeStep1 = fftSize5k / line80; - var fftSizeStep2 = isFullFreq ? 0 : (fftSize - fftSize5k) / (lineCount - line80); + var fftSizeStep2 = fftSize5kIsAll ? 0 : (fftSize - fftSize5k) / (lineCount - line80); var fftIdx = 0; for (var i = 0; i < lineCount; i++) { - // !fullFreq 时不采用jmp123的非线性划分频段,录音语音并不适用于音乐的频率,应当弱化高频部分 + //不采用jmp123的非线性划分频段,录音语音并不适用于音乐的频率,应当弱化高频部分 //80%关注0-5khz主要人声部分 20%关注剩下的高频,这样不管什么采样率都能做到大部分频率显示一致。 var start = Math.ceil(fftIdx); if (i < line80) { @@ -37697,18 +37985,14 @@ https://sourceforge.net/projects/jmp123/files/ //5khz以上 fftIdx += fftSizeStep2; } - var end = Math.ceil(fftIdx); - if (end == start) end++; - end = Math.min(end, fftSize); + var end = Math.min(Math.ceil(fftIdx), fftSize); //参考AudioGUI.java .drawHistogram方法 //查找当前频段的最大"幅值" var maxAmp = 0; - if (frequencyData) { - for (var j = start; j < end; j++) { - maxAmp = Math.max(maxAmp, Math.abs(frequencyData[j])); - } + for (var j = start; j < end; j++) { + maxAmp = Math.max(maxAmp, Math.abs(frequencyData[j])); } //计算音量 @@ -37746,6 +38030,8 @@ https://sourceforge.net/projects/jmp123/files/ var stripeLinear2 = set.stripeLinear && This.genLinear(ctx, set.stripeLinear, originY, originY + heightY) || linear2; //上半部分的峰值小横条填充 //计算柱子间距 + ctx.shadowBlur = set.shadowBlur * scale; + ctx.shadowColor = set.shadowColor; var mirrorEnable = set.mirrorEnable; var mirrorCount = mirrorEnable ? lineCount * 2 - 1 : lineCount; //镜像柱子数量翻一倍-1根 @@ -37754,105 +38040,78 @@ https://sourceforge.net/projects/jmp123/files/ if (spaceWidth != 0) { widthRatio = (width - spaceWidth * (mirrorCount + 1)) / width; } - for (var i = 0; i < 2; i++) { - var lineFloat = Math.max(1 * scale, width * widthRatio / mirrorCount); //柱子宽度至少1个单位 - var lineWN = Math.floor(lineFloat), - lineWF = lineFloat - lineWN; //提取出小数部分 - var spaceFloat = (width - mirrorCount * lineFloat) / (mirrorCount + 1); //均匀间隔,首尾都留空,可能为负数,柱子将发生重叠 - if (spaceFloat > 0 && spaceFloat < 1) { - widthRatio = 1; - spaceFloat = 0; //不够一个像素,丢弃不绘制间隔,重新计算 - } else break; + var lineWidth = Math.max(1 * scale, Math.floor(width * widthRatio / mirrorCount)); //柱子宽度至少1个单位 + var spaceFloat = (width - mirrorCount * lineWidth) / (mirrorCount + 1); //均匀间隔,首尾都留空,可能为负数,柱子将发生重叠 + + //绘制柱子 + var minHeight = set.minHeight * scale; + var mirrorSubX = spaceFloat + lineWidth / 2; + var XFloat = mirrorEnable ? width / 2 - mirrorSubX : 0; //镜像时,中间柱子位于正中心 + for (var i = 0, xFloat = XFloat, x, y, h; i < lineCount; i++) { + xFloat += spaceFloat; + x = Math.floor(xFloat); + h = Math.max(lastH[i], minHeight); + + //绘制上半部分 + if (originY != 0) { + y = originY - h; + ctx.fillStyle = linear1; + ctx.fillRect(x, y, lineWidth, h); + } + //绘制下半部分 + if (originY != height) { + ctx.fillStyle = linear2; + ctx.fillRect(x, originY, lineWidth, h); + } + xFloat += lineWidth; } - //绘制 - var minHeight = set.minHeight * scale; - var XFloat = mirrorEnable ? (width - lineWN) / 2 - spaceFloat : 0; //镜像时,中间柱子位于正中心 - for (var iMirror = 0; iMirror < 2; iMirror++) { - if (iMirror) { - ctx.save(); - ctx.scale(-1, 1); - } - var xMirror = iMirror ? width : 0; //绘制镜像部分,不用drawImage(canvas)进行镜像绘制,提升兼容性(iOS微信小程序bug https://developers.weixin.qq.com/community/develop/doc/000aaca2148dc8a235a0fb8c66b000) - - //绘制柱子 - ctx.shadowBlur = set.shadowBlur * scale; - ctx.shadowColor = set.shadowColor; - for (var i = 0, xFloat = XFloat, wFloat = 0, x, y, w, h; i < lineCount; i++) { + //绘制柱子顶上峰值小横条 + if (set.stripeEnable) { + var stripeShadowBlur = set.stripeShadowBlur; + ctx.shadowBlur = (stripeShadowBlur == -1 ? set.shadowBlur : stripeShadowBlur) * scale; + ctx.shadowColor = set.stripeShadowColor || set.shadowColor; + var stripeHeight = set.stripeHeight * scale; + for (var i = 0, xFloat = XFloat, x, y, h; i < lineCount; i++) { xFloat += spaceFloat; - x = Math.floor(xFloat) - xMirror; - w = lineWN; - wFloat += lineWF; - if (wFloat >= 1) { - w++; - wFloat--; - } //小数凑够1像素 - h = Math.max(lastH[i], minHeight); + x = Math.floor(xFloat); + h = stripesH[i]; //绘制上半部分 if (originY != 0) { - y = originY - h; - ctx.fillStyle = linear1; - ctx.fillRect(x, y, w, h); + y = originY - h - stripeHeight; + if (y < 0) { + y = 0; + } + ctx.fillStyle = stripeLinear1; + ctx.fillRect(x, y, lineWidth, stripeHeight); } //绘制下半部分 if (originY != height) { - ctx.fillStyle = linear2; - ctx.fillRect(x, originY, w, h); - } - xFloat += w; - } - - //绘制柱子顶上峰值小横条 - if (set.stripeEnable) { - var stripeShadowBlur = set.stripeShadowBlur; - ctx.shadowBlur = (stripeShadowBlur == -1 ? set.shadowBlur : stripeShadowBlur) * scale; - ctx.shadowColor = set.stripeShadowColor || set.shadowColor; - var stripeHeight = set.stripeHeight * scale; - for (var i = 0, xFloat = XFloat, wFloat = 0, x, y, w, h; i < lineCount; i++) { - xFloat += spaceFloat; - x = Math.floor(xFloat) - xMirror; - w = lineWN; - wFloat += lineWF; - if (wFloat >= 1) { - w++; - wFloat--; - } //小数凑够1像素 - h = stripesH[i]; - - //绘制上半部分 - if (originY != 0) { - y = originY - h - stripeHeight; - if (y < 0) { - y = 0; - } - ctx.fillStyle = stripeLinear1; - ctx.fillRect(x, y, w, stripeHeight); + y = originY + h; + if (y + stripeHeight > height) { + y = height - stripeHeight; } - //绘制下半部分 - if (originY != height) { - y = originY + h; - if (y + stripeHeight > height) { - y = height - stripeHeight; - } - ctx.fillStyle = stripeLinear2; - ctx.fillRect(x, y, w, stripeHeight); - } - xFloat += w; + ctx.fillStyle = stripeLinear2; + ctx.fillRect(x, y, lineWidth, stripeHeight); } + xFloat += lineWidth; } - if (iMirror) { - ctx.restore(); - } - if (!mirrorEnable) break; } - if (frequencyData) { - set.onDraw(frequencyData, sampleRate); + + //镜像,从中间直接镜像即可 + if (mirrorEnable) { + var srcW = Math.floor(width / 2); + ctx.save(); + ctx.scale(-1, 1); + ctx.drawImage(This.canvas, Math.ceil(width / 2), 0, srcW, height, -srcW, 0, srcW, height); + ctx.restore(); } + set.onDraw(frequencyData, sampleRate); } }; Recorder[ViewTxt] = FrequencyHistogramView; -}); +})(); /* 时域转频域,快速傅里叶变换(FFT) @@ -37866,117 +38125,110 @@ fft.transform(inBuffer) inBuffer:[Int16,...] 数组长度必须是bufferSize 返回[Float64(Long),...],长度为bufferSize/2 */ -(function (factory) { - var browser = typeof window == "object" && !!window.document; - var win = browser ? window : Object; //非浏览器环境,Recorder挂载在Object下面 - var rec = win.Recorder, - ni = rec.i18n; - factory(rec, ni, ni.$T, browser); -})(function (Recorder, i18n, $T, isBrowser) { + +/* +从FFT.java 移植,Java开源库:jmp123 版本0.3 +https://www.iteye.com/topic/851459 +https://sourceforge.net/projects/jmp123/files/ +*/ +Recorder.LibFFT = function (bufferSize) { + + var FFT_N_LOG, FFT_N, MINY; + var real, imag, sintable, costable; + var bitReverse; + var FFT_Fn = function (bufferSize) { + //bufferSize只能取值2的n次方 + FFT_N_LOG = Math.round(Math.log(bufferSize) / Math.log(2)); + FFT_N = 1 << FFT_N_LOG; + MINY = (FFT_N << 2) * Math.sqrt(2); + real = []; + imag = []; + sintable = [0]; + costable = [0]; + bitReverse = []; + var i, j, k, reve; + for (i = 0; i < FFT_N; i++) { + k = i; + for (j = 0, reve = 0; j != FFT_N_LOG; j++) { + reve <<= 1; + reve |= k & 1; + k >>>= 1; + } + bitReverse[i] = reve; + } + var theta, + dt = 2 * Math.PI / FFT_N; + for (i = (FFT_N >> 1) - 1; i > 0; i--) { + theta = i * dt; + costable[i] = Math.cos(theta); + sintable[i] = Math.sin(theta); + } + }; /* - 从FFT.java 移植,Java开源库:jmp123 版本0.3 - https://www.iteye.com/topic/851459 - https://sourceforge.net/projects/jmp123/files/ + 用于频谱显示的快速傅里叶变换 + inBuffer 输入FFT_N个实数,返回 FFT_N/2个输出值(复数模的平方)。 */ - Recorder.LibFFT = function (bufferSize) { - var FFT_N_LOG, FFT_N, MINY; - var real, imag, sintable, costable; - var bitReverse; - var FFT_Fn = function (bufferSize) { - //bufferSize只能取值2的n次方 - FFT_N_LOG = Math.round(Math.log(bufferSize) / Math.log(2)); - FFT_N = 1 << FFT_N_LOG; - MINY = (FFT_N << 2) * Math.sqrt(2); - real = []; - imag = []; - sintable = [0]; - costable = [0]; - bitReverse = []; - var i, j, k, reve; - for (i = 0; i < FFT_N; i++) { - k = i; - for (j = 0, reve = 0; j != FFT_N_LOG; j++) { - reve <<= 1; - reve |= k & 1; - k >>>= 1; + var getModulus = function (inBuffer) { + var i, + j, + k, + ir, + j0 = 1, + idx = FFT_N_LOG - 1; + var cosv, sinv, tmpr, tmpi; + for (i = 0; i != FFT_N; i++) { + real[i] = inBuffer[bitReverse[i]]; + imag[i] = 0; + } + for (i = FFT_N_LOG; i != 0; i--) { + for (j = 0; j != j0; j++) { + cosv = costable[j << idx]; + sinv = sintable[j << idx]; + for (k = j; k < FFT_N; k += j0 << 1) { + ir = k + j0; + tmpr = cosv * real[ir] - sinv * imag[ir]; + tmpi = cosv * imag[ir] + sinv * real[ir]; + real[ir] = real[k] - tmpr; + imag[ir] = imag[k] - tmpi; + real[k] += tmpr; + imag[k] += tmpi; } - bitReverse[i] = reve; } - var theta, - dt = 2 * Math.PI / FFT_N; - for (i = (FFT_N >> 1) - 1; i > 0; i--) { - theta = i * dt; - costable[i] = Math.cos(theta); - sintable[i] = Math.sin(theta); - } - }; - + j0 <<= 1; + idx--; + } + j = FFT_N >> 1; + var outBuffer = new Float64Array(j); /* - 用于频谱显示的快速傅里叶变换 - inBuffer 输入FFT_N个实数,返回 FFT_N/2个输出值(复数模的平方)。 - */ - var getModulus = function (inBuffer) { - var i, - j, - k, - ir, - j0 = 1, - idx = FFT_N_LOG - 1; - var cosv, sinv, tmpr, tmpi; - for (i = 0; i != FFT_N; i++) { - real[i] = inBuffer[bitReverse[i]]; - imag[i] = 0; - } - for (i = FFT_N_LOG; i != 0; i--) { - for (j = 0; j != j0; j++) { - cosv = costable[j << idx]; - sinv = sintable[j << idx]; - for (k = j; k < FFT_N; k += j0 << 1) { - ir = k + j0; - tmpr = cosv * real[ir] - sinv * imag[ir]; - tmpi = cosv * imag[ir] + sinv * real[ir]; - real[ir] = real[k] - tmpr; - imag[ir] = imag[k] - tmpi; - real[k] += tmpr; - imag[k] += tmpi; - } - } - j0 <<= 1; - idx--; - } - j = FFT_N >> 1; - var outBuffer = new Float64Array(j); - /* - * 输出模的平方: - * for(i = 1; i <= j; i++) - * inBuffer[i-1] = real[i] * real[i] + imag[i] * imag[i]; - * - * 如果FFT只用于频谱显示,可以"淘汰"幅值较小的而减少浮点乘法运算. MINY的值 - * 和Spectrum.Y0,Spectrum.logY0对应. - */ - sinv = MINY; - cosv = -MINY; - for (i = j; i != 0; i--) { - tmpr = real[i]; - tmpi = imag[i]; - if (tmpr > cosv && tmpr < sinv && tmpi > cosv && tmpi < sinv) outBuffer[i - 1] = 0;else outBuffer[i - 1] = Math.round(tmpr * tmpr + tmpi * tmpi); - } - return outBuffer; - }; - FFT_Fn(bufferSize); - return { - transform: getModulus, - bufferSize: FFT_N - }; + * 输出模的平方: + * for(i = 1; i <= j; i++) + * inBuffer[i-1] = real[i] * real[i] + imag[i] * imag[i]; + * + * 如果FFT只用于频谱显示,可以"淘汰"幅值较小的而减少浮点乘法运算. MINY的值 + * 和Spectrum.Y0,Spectrum.logY0对应. + */ + sinv = MINY; + cosv = -MINY; + for (i = j; i != 0; i--) { + tmpr = real[i]; + tmpi = imag[i]; + if (tmpr > cosv && tmpr < sinv && tmpi > cosv && tmpi < sinv) outBuffer[i - 1] = 0;else outBuffer[i - 1] = Math.round(tmpr * tmpr + tmpi * tmpi); + } + return outBuffer; }; -}); + FFT_Fn(bufferSize); + return { + transform: getModulus, + bufferSize: FFT_N + }; +}; -var playIcon$5 = "data:image/png;base64,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"; +var playIcon$6 = "data:image/png;base64,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"; -var pauseIcon$4 = "data:image/png;base64,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"; +var pauseIcon$5 = "data:image/png;base64,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"; -var audioIcon$3 = "data:image/png;base64,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"; +var audioIcon$4 = "data:image/png;base64,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"; var coverLocal$3 = "data:image/png;base64,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"; @@ -38004,7 +38256,7 @@ const uuid$2 = prefix => { const id = s.join(''); return prefix ? prefix + '__' + id : id; }; -var script$4O = { +var script$4V = { name: 'RecordPlayer', props: { //模式:preview 预览 (默认),editor 编辑 @@ -38061,9 +38313,9 @@ var script$4O = { }, data() { return { - playIcon: playIcon$5, - pauseIcon: pauseIcon$4, - audioIcon: audioIcon$3, + playIcon: playIcon$6, + pauseIcon: pauseIcon$5, + audioIcon: audioIcon$4, coverLocal: coverLocal$3, recStartIcon: recStartIcon$1, recStopIcon: recStopIcon$1, @@ -38269,7 +38521,9 @@ var script$4O = { minHeight: 12, mirrorEnable: true, stripeEnable: false, - linear: [0, '#8FC1FD', 1, '#8FC1FD'] + linear: [0, '#8FC1FD', 1, '#8FC1FD'], + width: 300, + height: 100 }); this.waveStore.Histogram3 = recorder_mp3_min.FrequencyHistogramView({ elem: elem, @@ -38279,7 +38533,9 @@ var script$4O = { fallDuration: 400, stripeEnable: false, mirrorEnable: true, - linear: [0, '#0ac', 1, '#0ac'] + linear: [0, '#0ac', 1, '#0ac'], + width: 300, + height: 100 }); }, toggleRec() { @@ -38316,7 +38572,7 @@ var script$4O = { rec.open(function () { _this.dialogCancel(); // _this.reclog("已打开:"+_this.type+" "+_this.sampleRate+"hz "+_this.bitRate+"kbps",2); - + console.log(waveBoxSelector); // _this.wave=Recorder.WaveView({elem:".ctrlProcessWave"}); _this.initWaveStore(waveBoxSelector); rec.start(); @@ -38490,10 +38746,10 @@ var script$4O = { }; /* script */ -const __vue_script__$4O = script$4O; +const __vue_script__$4V = script$4V; /* template */ -var __vue_render__$4O = function () { +var __vue_render__$4V = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -38559,7 +38815,7 @@ var __vue_render__$4O = function () { !_vm.recBolb ? _c("div", { staticClass: "recwave", - staticStyle: { height: "75%", width: "100%" }, + staticStyle: { height: "80px", width: "100%" }, attrs: { id: _vm.waveBoxKey }, }) : _vm._e(), @@ -38697,17 +38953,17 @@ var __vue_render__$4O = function () { 1 ) }; -var __vue_staticRenderFns__$4O = []; -__vue_render__$4O._withStripped = true; +var __vue_staticRenderFns__$4V = []; +__vue_render__$4V._withStripped = true; /* style */ - const __vue_inject_styles__$4O = undefined; + const __vue_inject_styles__$4V = undefined; /* scoped */ - const __vue_scope_id__$4O = undefined; + const __vue_scope_id__$4V = undefined; /* module identifier */ - const __vue_module_identifier__$4O = undefined; + const __vue_module_identifier__$4V = undefined; /* functional template */ - const __vue_is_functional_template__$4O = false; + const __vue_is_functional_template__$4V = false; /* style inject */ /* style inject SSR */ @@ -38716,13 +38972,13 @@ __vue_render__$4O._withStripped = true; - const __vue_component__$4O = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4O, staticRenderFns: __vue_staticRenderFns__$4O }, - __vue_inject_styles__$4O, - __vue_script__$4O, - __vue_scope_id__$4O, - __vue_is_functional_template__$4O, - __vue_module_identifier__$4O, + const __vue_component__$4V = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4V, staticRenderFns: __vue_staticRenderFns__$4V }, + __vue_inject_styles__$4V, + __vue_script__$4V, + __vue_scope_id__$4V, + __vue_is_functional_template__$4V, + __vue_module_identifier__$4V, false, undefined, undefined, @@ -38735,9 +38991,9 @@ const _audio = '.mp3,'; const _video = '.mp4,.MP4'; const _resources = 'application/x-zip-compressed,.zip,'; const _office = '.ppt,.xlsx,.xls,.doc,.docx,.pptx'; -var script$4N = { +var script$4U = { components: { - RecordPlayer: __vue_component__$4O + RecordPlayer: __vue_component__$4V }, name: 'addFile', props: { @@ -39196,9 +39452,9 @@ var script$4N = { }; /* script */ -const __vue_script__$4N = script$4N; +const __vue_script__$4U = script$4U; /* template */ -var __vue_render__$4N = function () { +var __vue_render__$4U = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -39795,17 +40051,17 @@ var __vue_render__$4N = function () { ] ) }; -var __vue_staticRenderFns__$4N = []; -__vue_render__$4N._withStripped = true; +var __vue_staticRenderFns__$4U = []; +__vue_render__$4U._withStripped = true; /* style */ - const __vue_inject_styles__$4N = undefined; + const __vue_inject_styles__$4U = undefined; /* scoped */ - const __vue_scope_id__$4N = undefined; + const __vue_scope_id__$4U = undefined; /* module identifier */ - const __vue_module_identifier__$4N = undefined; + const __vue_module_identifier__$4U = undefined; /* functional template */ - const __vue_is_functional_template__$4N = false; + const __vue_is_functional_template__$4U = false; /* style inject */ /* style inject SSR */ @@ -39814,13 +40070,13 @@ __vue_render__$4N._withStripped = true; - const __vue_component__$4N = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4N, staticRenderFns: __vue_staticRenderFns__$4N }, - __vue_inject_styles__$4N, - __vue_script__$4N, - __vue_scope_id__$4N, - __vue_is_functional_template__$4N, - __vue_module_identifier__$4N, + const __vue_component__$4U = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4U, staticRenderFns: __vue_staticRenderFns__$4U }, + __vue_inject_styles__$4U, + __vue_script__$4U, + __vue_scope_id__$4U, + __vue_is_functional_template__$4U, + __vue_module_identifier__$4U, false, undefined, undefined, @@ -52795,11 +53051,11 @@ var n = function () { */ let prevOverflow$1 = ''; -var script$4M = { +var script$4T = { name: 'XmlTextRender', components: { - addFile: __vue_component__$4N, - XmlTextDialogRender: __vue_component__$4P, + addFile: __vue_component__$4U, + XmlTextDialogRender: __vue_component__$4W, [ImagePreview$1.Component.name]: ImagePreview$1.Component }, props: { @@ -53969,9 +54225,9 @@ var script$4M = { }; /* script */ -const __vue_script__$4M = script$4M; +const __vue_script__$4T = script$4T; /* template */ -var __vue_render__$4M = function () { +var __vue_render__$4T = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -54481,17 +54737,17 @@ var __vue_render__$4M = function () { 2 ) }; -var __vue_staticRenderFns__$4M = []; -__vue_render__$4M._withStripped = true; +var __vue_staticRenderFns__$4T = []; +__vue_render__$4T._withStripped = true; /* style */ - const __vue_inject_styles__$4M = undefined; + const __vue_inject_styles__$4T = undefined; /* scoped */ - const __vue_scope_id__$4M = "data-v-5d93942a"; + const __vue_scope_id__$4T = "data-v-5d93942a"; /* module identifier */ - const __vue_module_identifier__$4M = undefined; + const __vue_module_identifier__$4T = undefined; /* functional template */ - const __vue_is_functional_template__$4M = false; + const __vue_is_functional_template__$4T = false; /* style inject */ /* style inject SSR */ @@ -54500,20 +54756,20 @@ __vue_render__$4M._withStripped = true; - const __vue_component__$4M = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4M, staticRenderFns: __vue_staticRenderFns__$4M }, - __vue_inject_styles__$4M, - __vue_script__$4M, - __vue_scope_id__$4M, - __vue_is_functional_template__$4M, - __vue_module_identifier__$4M, + const __vue_component__$4T = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4T, staticRenderFns: __vue_staticRenderFns__$4T }, + __vue_inject_styles__$4T, + __vue_script__$4T, + __vue_scope_id__$4T, + __vue_is_functional_template__$4T, + __vue_module_identifier__$4T, false, undefined, undefined, undefined ); -const TextComponents = [__vue_component__$4M, __vue_component__$4P]; +const TextComponents = [__vue_component__$4T, __vue_component__$4W]; var XmlText = { ...TextComponents }; @@ -54530,7 +54786,7 @@ var XmlText = { // // -var script$4L = { +var script$4S = { name: 'XmlGroupRender', props: { //模式:preview 预览 (默认),editor 编辑 @@ -54605,9 +54861,9 @@ var script$4L = { }; /* script */ -const __vue_script__$4L = script$4L; +const __vue_script__$4S = script$4S; /* template */ -var __vue_render__$4L = function () { +var __vue_render__$4S = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -54644,17 +54900,17 @@ var __vue_render__$4L = function () { 2 ) }; -var __vue_staticRenderFns__$4L = []; -__vue_render__$4L._withStripped = true; +var __vue_staticRenderFns__$4S = []; +__vue_render__$4S._withStripped = true; /* style */ - const __vue_inject_styles__$4L = undefined; + const __vue_inject_styles__$4S = undefined; /* scoped */ - const __vue_scope_id__$4L = "data-v-35e9204b"; + const __vue_scope_id__$4S = "data-v-35e9204b"; /* module identifier */ - const __vue_module_identifier__$4L = undefined; + const __vue_module_identifier__$4S = undefined; /* functional template */ - const __vue_is_functional_template__$4L = false; + const __vue_is_functional_template__$4S = false; /* style inject */ /* style inject SSR */ @@ -54663,23 +54919,23 @@ __vue_render__$4L._withStripped = true; - const __vue_component__$4L = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4L, staticRenderFns: __vue_staticRenderFns__$4L }, - __vue_inject_styles__$4L, - __vue_script__$4L, - __vue_scope_id__$4L, - __vue_is_functional_template__$4L, - __vue_module_identifier__$4L, + const __vue_component__$4S = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4S, staticRenderFns: __vue_staticRenderFns__$4S }, + __vue_inject_styles__$4S, + __vue_script__$4S, + __vue_scope_id__$4S, + __vue_is_functional_template__$4S, + __vue_module_identifier__$4S, false, undefined, undefined, undefined ); -__vue_component__$4L.install = (Vue, options = {}) => { +__vue_component__$4S.install = (Vue, options = {}) => { Vue.component(createNamespace$1('group-render', { prefix: options.prefix - }), __vue_component__$4L); + }), __vue_component__$4S); }; function getDefaultExportFromCjs(x){return x&&x.__esModule&&Object.prototype.hasOwnProperty.call(x,'default')?x['default']:x;}var urlToolkit={exports:{}};(function(module,exports){// see https://tools.ietf.org/html/rfc1808 @@ -60145,11 +60401,11 @@ var vueAplayer_min = createCommonjsModule(function (module, exports) { var vueAplayer = unwrapExports(vueAplayer_min); vueAplayer_min.VueAPlayer; -var playIcon$4 = "data:image/png;base64,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"; +var playIcon$5 = "data:image/png;base64,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"; -var pauseIcon$3 = "data:image/png;base64,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"; +var pauseIcon$4 = "data:image/png;base64,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"; -var audioIcon$2 = "data:image/png;base64,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"; +var audioIcon$3 = "data:image/png;base64,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"; var coverLocal$2 = "5d9cf0a5d487a818.png"; @@ -60158,7 +60414,7 @@ var playRepeat$2 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAaCAMAAA var playOnce$2 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAgCAMAAAA2a+hwAAAAAXNSR0IArs4c6QAAAlJQTFRFAAAAgID/QID/QID/OY7jRovoO4nrSZLtRIjuPIfwQIzyQJnySZLzRpfzQ4X0QIrqQo7sPo3tEN73RI/wPI3yQZDrPo/sQ4ztQ4zzO4jtQY7tPo7uPYvuQI/vOY3vPo3vPIzrQZHwNqL1QI7wRYTrK4b2QY/uP47uR47yQIvvP43rQI/wP5DwSXz0QozuPYvxQY/uQI3uQY3vQI/yQZDzQpDwQ472QI3uPIn3P4vqQo7vQo3tQI3uQJDuQI7uQI3uQI7sQo7sQpHxQY3sPo7vQI7tQI/xQY7tQY3tQY3vPo7vQo/rP5HuQY3uQJDxQorsQo7sQo7vOI3xQovrQo3rQY7tQY3tQI7tQI3sPY/wN5vvQo7vNKPyQY7tQ43tQY/uQorsQI7sQY3uPJfwQI7wPpPuP4/vQY7tTnTsRJPxP47vQYzsPZDvP43uQo7sO5jvQY3uPZDwQ4ftQI7tQo3uQY7uQo7uQY7tQY7tQ43wQY7tQI3tQI7uQI7tQI/wP4zuQ5DtQY7tRJHsQI7tQY7tQI7tQY7uQI7uQY3uQo7tPpHtQI7tQY/sQY7sQY/tQY7tQY7tQY3sQY/uQI7tQY7tQo7uQo/uSY7tQY/tTXnqQY3tQY7tQY7tQY7tQY7tQY7uQY7tPZXtQY3tQY7tQY7tQY7tQo/tP5LqQI/rQI/sQY3sQY7rQY7sQY7tQY/rQY/sQY/tQZDtQozsQo3rQo3sQo3tQo7qQo7rQo7sQo7tQo/tQ4vsQ4zrQ47qQ47sRIfrRInsRI/rRI/sRYnsR4TqR4fqvnKd/wAAAKd0Uk5TAAIECAkLDQ4PERQUFRYXGBsdHyImJykqKisrLS4wMTEzMzQ0NDs7PT1AQURFRklLS0xOUFNVWFxdYWFlZ2doa2xsbW5vb3BxcnJzdHl5fHx8fH+AgIGCg4iJjIyOjpGSkpOUlZeZm56goaKio6OjpKaqqq6vsLO0t7i5vL7GxsfHyMjLy8zN0tTW2trc4ubn6erq7Ozs7Ozu7vHz9Pb3+Pn6+/v9/v6utNnsAAABnklEQVQYGY3BhVsTcQDH4c8QRbCwu7tbVFQsPLu7u3t2YRfYXRhg7r4GMnYzMPm/nLf7nTjkeXxf/lv7I3OoVP+IllCpvg80l39rNiTrkrQymQpqTD4rV7QriabkRx3tnXdP9tQqkDGAP1IPKXw6qy7ZciYCqbLnY6RdkDKBUVI2MUlL39jr8eQV3elATKdTI4kb+6FsMa7NZY/rkWDw8589ielS8qU3FWwquRoAcu0N+Opg3AxNgFalr2rhSd/3qBuece8vwszvOXjGFEiz8dQOC46GRuNK3iMVaDzG+TBct3vgSpGGrpOFse0rPH3blLhGrdkqC2P5OyhUQ3y7ZWEs/AG31RlfUBbGmiLIdQbiC8rC2P8SNkaW4QvKwrgfhkGhu/h2aRKedsVhqGnb/TAOazqend8OAit0BWP4ycbEdXxR2hJIeRJZS6LArc87+K2Xo2n8Len46xsBXAs+fVxFeU3OhJ61wTNL0XPdMarOkPOwLb7M/GIdGNE8rVr1+n1WX3OcYw0oJ32LnKhcjvKGkaDFohOFirm8PQPPL6EvjEOwGD5qAAAAAElFTkSuQmCC"; // -var script$4K = { +var script$4R = { name: 'XmlAudioModalPlayer', props: { //模式:preview 预览 (默认),editor 编辑 @@ -60267,9 +60523,9 @@ var script$4K = { }, data() { return { - playIcon: playIcon$4, - pauseIcon: pauseIcon$3, - audioIcon: audioIcon$2, + playIcon: playIcon$5, + pauseIcon: pauseIcon$4, + audioIcon: audioIcon$3, coverLocal: coverLocal$2, isPlay: false, playTime: 0, @@ -60389,10 +60645,10 @@ var script$4K = { }; /* script */ -const __vue_script__$4K = script$4K; +const __vue_script__$4R = script$4R; /* template */ -var __vue_render__$4K = function () { +var __vue_render__$4R = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -60515,17 +60771,17 @@ var __vue_render__$4K = function () { }), ]) }; -var __vue_staticRenderFns__$4K = []; -__vue_render__$4K._withStripped = true; +var __vue_staticRenderFns__$4R = []; +__vue_render__$4R._withStripped = true; /* style */ - const __vue_inject_styles__$4K = undefined; + const __vue_inject_styles__$4R = undefined; /* scoped */ - const __vue_scope_id__$4K = undefined; + const __vue_scope_id__$4R = undefined; /* module identifier */ - const __vue_module_identifier__$4K = undefined; + const __vue_module_identifier__$4R = undefined; /* functional template */ - const __vue_is_functional_template__$4K = false; + const __vue_is_functional_template__$4R = false; /* style inject */ /* style inject SSR */ @@ -60534,13 +60790,13 @@ __vue_render__$4K._withStripped = true; - const __vue_component__$4K = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4K, staticRenderFns: __vue_staticRenderFns__$4K }, - __vue_inject_styles__$4K, - __vue_script__$4K, - __vue_scope_id__$4K, - __vue_is_functional_template__$4K, - __vue_module_identifier__$4K, + const __vue_component__$4R = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4R, staticRenderFns: __vue_staticRenderFns__$4R }, + __vue_inject_styles__$4R, + __vue_script__$4R, + __vue_scope_id__$4R, + __vue_is_functional_template__$4R, + __vue_module_identifier__$4R, false, undefined, undefined, @@ -60548,11 +60804,11 @@ __vue_render__$4K._withStripped = true; ); // -var script$4J = { +var script$4Q = { name: 'XmlMusicRender', components: { vueAplayer, - XmlAudioModalPlayer: __vue_component__$4K + XmlAudioModalPlayer: __vue_component__$4R }, props: { //模式:preview 预览 (默认),editor 编辑 @@ -60667,10 +60923,10 @@ var script$4J = { }; /* script */ -const __vue_script__$4J = script$4J; +const __vue_script__$4Q = script$4Q; /* template */ -var __vue_render__$4J = function () { +var __vue_render__$4Q = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -60839,17 +61095,17 @@ var __vue_render__$4J = function () { 2 ) }; -var __vue_staticRenderFns__$4J = []; -__vue_render__$4J._withStripped = true; +var __vue_staticRenderFns__$4Q = []; +__vue_render__$4Q._withStripped = true; /* style */ - const __vue_inject_styles__$4J = undefined; + const __vue_inject_styles__$4Q = undefined; /* scoped */ - const __vue_scope_id__$4J = undefined; + const __vue_scope_id__$4Q = undefined; /* module identifier */ - const __vue_module_identifier__$4J = undefined; + const __vue_module_identifier__$4Q = undefined; /* functional template */ - const __vue_is_functional_template__$4J = false; + const __vue_is_functional_template__$4Q = false; /* style inject */ /* style inject SSR */ @@ -60858,13 +61114,13 @@ __vue_render__$4J._withStripped = true; - const __vue_component__$4J = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4J, staticRenderFns: __vue_staticRenderFns__$4J }, - __vue_inject_styles__$4J, - __vue_script__$4J, - __vue_scope_id__$4J, - __vue_is_functional_template__$4J, - __vue_module_identifier__$4J, + const __vue_component__$4Q = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4Q, staticRenderFns: __vue_staticRenderFns__$4Q }, + __vue_inject_styles__$4Q, + __vue_script__$4Q, + __vue_scope_id__$4Q, + __vue_is_functional_template__$4Q, + __vue_module_identifier__$4Q, false, undefined, undefined, @@ -60878,7 +61134,7 @@ var pauseIcon2 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAABxCAYAAADi var recordIcon = "a6071719aecd4e53.png"; // -var script$4I = { +var script$4P = { name: 'AudioPlay', props: { //模式:preview 预览 (默认),editor 编辑 @@ -60996,11 +61252,11 @@ var script$4I = { }, data() { return { - playIcon: playIcon$4, + playIcon: playIcon$5, playIcon2, - pauseIcon: pauseIcon$3, + pauseIcon: pauseIcon$4, pauseIcon2, - audioIcon: audioIcon$2, + audioIcon: audioIcon$3, coverLocal: coverLocal$2, recordIcon, isPlay: false, @@ -61122,10 +61378,10 @@ var script$4I = { }; /* script */ -const __vue_script__$4I = script$4I; +const __vue_script__$4P = script$4P; /* template */ -var __vue_render__$4I = function () { +var __vue_render__$4P = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -61395,17 +61651,17 @@ var __vue_render__$4I = function () { }), ]) }; -var __vue_staticRenderFns__$4I = []; -__vue_render__$4I._withStripped = true; +var __vue_staticRenderFns__$4P = []; +__vue_render__$4P._withStripped = true; /* style */ - const __vue_inject_styles__$4I = undefined; + const __vue_inject_styles__$4P = undefined; /* scoped */ - const __vue_scope_id__$4I = undefined; + const __vue_scope_id__$4P = undefined; /* module identifier */ - const __vue_module_identifier__$4I = undefined; + const __vue_module_identifier__$4P = undefined; /* functional template */ - const __vue_is_functional_template__$4I = false; + const __vue_is_functional_template__$4P = false; /* style inject */ /* style inject SSR */ @@ -61414,49 +61670,49 @@ __vue_render__$4I._withStripped = true; - const __vue_component__$4I = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4I, staticRenderFns: __vue_staticRenderFns__$4I }, - __vue_inject_styles__$4I, - __vue_script__$4I, - __vue_scope_id__$4I, - __vue_is_functional_template__$4I, - __vue_module_identifier__$4I, + const __vue_component__$4P = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4P, staticRenderFns: __vue_staticRenderFns__$4P }, + __vue_inject_styles__$4P, + __vue_script__$4P, + __vue_scope_id__$4P, + __vue_is_functional_template__$4P, + __vue_module_identifier__$4P, false, undefined, undefined, undefined ); -const MusicComponents = [__vue_component__$4J, __vue_component__$4I]; +const MusicComponents = [__vue_component__$4Q, __vue_component__$4P]; var XmlMusic = { ...MusicComponents }; -const radioType = ['SingleSelect']; -const checkType = ['MultipleSelect']; -const showOptionsType = ['1', '2', '4', '5']; -const showJudgeAnswerType = ['Judgement']; -const showSortType = ['7']; -const showRichTextAnswerType = ['Filling', 'AskAnswer']; -const isclozeType = ['Filling']; -const isRadio = type => { - return radioType.includes(type); +const radioType$1 = ['1', '4']; +const checkType$1 = ['2', '5']; +const showOptionsType$1 = ['1', '2', '4', '5']; +const showJudgeAnswerType$1 = ['3']; +const showSortType$1 = ['7']; +const showRichTextAnswerType$1 = ['10', '13']; +const isclozeType$1 = ['10', '11', '12']; +const isRadio$1 = type => { + return radioType$1.includes(type); }; -const isCheck = type => checkType.includes(type); -const showOptions = type => showOptionsType.includes(type); -const showJudgeAnswer = type => showJudgeAnswerType.includes(type); -const showSort = type => showSortType.includes(type); -const showRichTextAnswer = type => showRichTextAnswerType.includes(type); -const isCloze = type => isclozeType.includes(type); +const isCheck$1 = type => checkType$1.includes(type); +const showOptions$1 = type => showOptionsType$1.includes(type); +const showJudgeAnswer$1 = type => showJudgeAnswerType$1.includes(type); +const showSort$1 = type => showSortType$1.includes(type); +const showRichTextAnswer$1 = type => showRichTextAnswerType$1.includes(type); +const isCloze$1 = type => isclozeType$1.includes(type); -var playIcon$3 = "data:image/png;base64,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"; +var playIcon$4 = "data:image/png;base64,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"; -var pauseIcon$2 = "data:image/png;base64,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"; +var pauseIcon$3 = "data:image/png;base64,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"; -var audioIcon$1 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAAAzxJREFUWEftmE1rU1EQhp+5N2msQVCogtWCC0EwG4OCG3+ClGpxobhQ8GMjKFjbFBfWVBQpght3LvzoxoVYwT8gLkQQNyKKigEXpXXhB9LEmOSMTK7R1sTkRpOmggMhJ+TcmefOmXPeuVeYZzo6uhPnDgIJRLrn/9eG8WfgCdHoFRkff1TxLzbQoaE4kchNYFcbAtd36XmObDYtly+ftYkBUCp1F+hfdJhKQFXw/SE5f/6S6PDwAJ53p2MwP6FyqG4UHRm5jcjujgOVl0pPiKZSL4BNSwIIbhjQW6BviQDdaj2QFahZqQSFghUrdHWFvd8WADkXBDZbtgxWrYLeXujrC77fvYOpqQCssf0BUD4PkQgsXw5r1sC6dUFwG69eDbFYVVg9dw6Zm2uMA00C2V3u2RMArFwJnhcmCDo+jmSzYeY2AeQcum0bYkBN2pIAcrlcWQaku3txM6SquOlp3OwsxUwGMhl0ZgZvdpaukyfxtmxpP1Dh6VOKjx/jMhm8Dx/w8nk8Efx4HM92mghYER8+DIlE+4Hc1avIy5dINGrHffD51ayIjxxZHCAmJ+HZs/ql/R/on8mQSUmlrg4c6HANmaAmEtDfH2ia/fb9Nuyy7/qlySSydy81i9qyEo/DyEiVurf2pDYRHRiADRvQfB7p6akNVEdaNJ1GcrkwgtNAy6ytOHasDLPAam17VUpr1+IfP75gqrMDMp3GCyfEdYBsCVasQE+fDh5N5plOTiI1dpn78oXi4CBdO3aUZ2upRP76dWLPnyPWsjS2+hlyIsjYGDKv47MzWScm8N6/r3YvQuHjRwq9veWl1TdviBUK+CYn4aw+kBaLfE0mie3b98Pd1/v3iUxNBZr1OxMpZ0esf6olK7+/snE/VJqbI9/Tg5dM4l69Ivr6NVFrzpoLFC4/zXSMznZYLFZVT2EjhZzXOEMhHbVqWhnIZHtzqzz+lR/VawZkbz32/5WjVl3s3CHR0dHtOPcQsTavg6Y6Qza7qfI6ZgzVM+XWszNWpFTaJRMT934QaCp1CjgDxBeNyY4OkWlEjsqFC/cs7oKU6PDwekQGEdmKc9WPoK0i9X1FJIdzD1C9LRcvfqq4/gYOF90Ot1xnCQAAAABJRU5ErkJggg=="; +var audioIcon$2 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAAAzxJREFUWEftmE1rU1EQhp+5N2msQVCogtWCC0EwG4OCG3+ClGpxobhQ8GMjKFjbFBfWVBQpght3LvzoxoVYwT8gLkQQNyKKigEXpXXhB9LEmOSMTK7R1sTkRpOmggMhJ+TcmefOmXPeuVeYZzo6uhPnDgIJRLrn/9eG8WfgCdHoFRkff1TxLzbQoaE4kchNYFcbAtd36XmObDYtly+ftYkBUCp1F+hfdJhKQFXw/SE5f/6S6PDwAJ53p2MwP6FyqG4UHRm5jcjujgOVl0pPiKZSL4BNSwIIbhjQW6BviQDdaj2QFahZqQSFghUrdHWFvd8WADkXBDZbtgxWrYLeXujrC77fvYOpqQCssf0BUD4PkQgsXw5r1sC6dUFwG69eDbFYVVg9dw6Zm2uMA00C2V3u2RMArFwJnhcmCDo+jmSzYeY2AeQcum0bYkBN2pIAcrlcWQaku3txM6SquOlp3OwsxUwGMhl0ZgZvdpaukyfxtmxpP1Dh6VOKjx/jMhm8Dx/w8nk8Efx4HM92mghYER8+DIlE+4Hc1avIy5dINGrHffD51ayIjxxZHCAmJ+HZs/ql/R/on8mQSUmlrg4c6HANmaAmEtDfH2ia/fb9Nuyy7/qlySSydy81i9qyEo/DyEiVurf2pDYRHRiADRvQfB7p6akNVEdaNJ1GcrkwgtNAy6ytOHasDLPAam17VUpr1+IfP75gqrMDMp3GCyfEdYBsCVasQE+fDh5N5plOTiI1dpn78oXi4CBdO3aUZ2upRP76dWLPnyPWsjS2+hlyIsjYGDKv47MzWScm8N6/r3YvQuHjRwq9veWl1TdviBUK+CYn4aw+kBaLfE0mie3b98Pd1/v3iUxNBZr1OxMpZ0esf6olK7+/snE/VJqbI9/Tg5dM4l69Ivr6NVFrzpoLFC4/zXSMznZYLFZVT2EjhZzXOEMhHbVqWhnIZHtzqzz+lR/VawZkbz32/5WjVl3s3CHR0dHtOPcQsTavg6Y6Qza7qfI6ZgzVM+XWszNWpFTaJRMT934QaCp1CjgDxBeNyY4OkWlEjsqFC/cs7oKU6PDwekQGEdmKc9WPoK0i9X1FJIdzD1C9LRcvfqq4/gYOF90Ot1xnCQAAAABJRU5ErkJggg=="; // -var script$4H = { +var script$4O = { name: 'audio-play', props: { url: { @@ -61479,9 +61735,9 @@ var script$4H = { }, data() { return { - playIcon: playIcon$3, - pauseIcon: pauseIcon$2, - audioIcon: audioIcon$1, + playIcon: playIcon$4, + pauseIcon: pauseIcon$3, + audioIcon: audioIcon$2, isPlay: false, playTime: 0, playDuration: '00:00', @@ -61538,9 +61794,9 @@ var script$4H = { }; /* script */ -const __vue_script__$4H = script$4H; +const __vue_script__$4O = script$4O; /* template */ -var __vue_render__$4H = function () { +var __vue_render__$4O = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -61734,17 +61990,17 @@ var __vue_render__$4H = function () { }), ]) }; -var __vue_staticRenderFns__$4H = []; -__vue_render__$4H._withStripped = true; +var __vue_staticRenderFns__$4O = []; +__vue_render__$4O._withStripped = true; /* style */ - const __vue_inject_styles__$4H = undefined; + const __vue_inject_styles__$4O = undefined; /* scoped */ - const __vue_scope_id__$4H = "data-v-25355b9e"; + const __vue_scope_id__$4O = "data-v-160e520c"; /* module identifier */ - const __vue_module_identifier__$4H = undefined; + const __vue_module_identifier__$4O = undefined; /* functional template */ - const __vue_is_functional_template__$4H = false; + const __vue_is_functional_template__$4O = false; /* style inject */ /* style inject SSR */ @@ -61753,20 +62009,20 @@ __vue_render__$4H._withStripped = true; - const __vue_component__$4H = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4H, staticRenderFns: __vue_staticRenderFns__$4H }, - __vue_inject_styles__$4H, - __vue_script__$4H, - __vue_scope_id__$4H, - __vue_is_functional_template__$4H, - __vue_module_identifier__$4H, + const __vue_component__$4O = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4O, staticRenderFns: __vue_staticRenderFns__$4O }, + __vue_inject_styles__$4O, + __vue_script__$4O, + __vue_scope_id__$4O, + __vue_is_functional_template__$4O, + __vue_module_identifier__$4O, false, undefined, undefined, undefined ); -var videoIcon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAaRJREFUSEu91surTXEUwPHP8iiSyAQTpRRTUkqu3CHFkETdy8BcKFNGir/AwKM8YuRRjOTGnfEHGJgwwUQMjDyWftr7dhxn733O0blruNfju9dvPX6/0CKZuQYHcQBbsL4y/4S3eILHEfG1KUwMUmTmOpzHKRRIm5TgV3EpIj73G/4DyMy9uIcNHYH71R9xJCJe9Cr+AmTmMdzE0hGD1+Y/MRMRt+sPC4DM3IPnWDZm8NrtB6YjYr58+APIzLV401PE/2QoTbAtIr7UgMs42xC1pP0AO7B5BPKViDgXmbkaH7CqwXk+IqYys+gv4nSdeQfsGzYWwCyutxjPRcR0rc/M3VUjlLnokhMFcAdHhwVUNVuJCziDJS2+dwvgFXaOAujJZleVzdYG/9cF8A6bxgFU2azAM5Sj65f3iwKY+BFNvMgzuDFsDUZs09nJD1rVCV2r4iG2j7UqFmXZVZApzHVMZtdqKPpf2BcRLxfWdc9kHsc1LB8m0gCb7zgZEbdq3aArs2Ryf8wr83D9542A6rgmd+n3pl09Ww5hf8Oz5SketT1bfgPyir14bBOMeQAAAABJRU5ErkJggg=="; +var videoIcon$1 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAaRJREFUSEu91surTXEUwPHP8iiSyAQTpRRTUkqu3CHFkETdy8BcKFNGir/AwKM8YuRRjOTGnfEHGJgwwUQMjDyWftr7dhxn733O0blruNfju9dvPX6/0CKZuQYHcQBbsL4y/4S3eILHEfG1KUwMUmTmOpzHKRRIm5TgV3EpIj73G/4DyMy9uIcNHYH71R9xJCJe9Cr+AmTmMdzE0hGD1+Y/MRMRt+sPC4DM3IPnWDZm8NrtB6YjYr58+APIzLV401PE/2QoTbAtIr7UgMs42xC1pP0AO7B5BPKViDgXmbkaH7CqwXk+IqYys+gv4nSdeQfsGzYWwCyutxjPRcR0rc/M3VUjlLnokhMFcAdHhwVUNVuJCziDJS2+dwvgFXaOAujJZleVzdYG/9cF8A6bxgFU2azAM5Sj65f3iwKY+BFNvMgzuDFsDUZs09nJD1rVCV2r4iG2j7UqFmXZVZApzHVMZtdqKPpf2BcRLxfWdc9kHsc1LB8m0gCb7zgZEbdq3aArs2Ryf8wr83D9542A6rgmd+n3pl09Ww5hf8Oz5SketT1bfgPyir14bBOMeQAAAABJRU5ErkJggg=="; var win; if (typeof window !== "undefined") { @@ -74732,7 +74988,7 @@ var VueVideoPlayer = unwrapExports(vueVideoPlayer); vueVideoPlayer.VueVideoPlayer; // -var script$4G = { +var script$4N = { name: 'video-play', components: { videoPlayer: VueVideoPlayer.videoPlayer @@ -74757,7 +75013,7 @@ var script$4G = { return { pageType: 'pc', isShowPlay: false, - videoIcon, + videoIcon: videoIcon$1, isPlay: false, playTime: 0, playDuration: '00:00', @@ -74834,9 +75090,9 @@ var script$4G = { }; /* script */ -const __vue_script__$4G = script$4G; +const __vue_script__$4N = script$4N; /* template */ -var __vue_render__$4G = function () { +var __vue_render__$4N = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -74914,17 +75170,17 @@ var __vue_render__$4G = function () { 1 ) }; -var __vue_staticRenderFns__$4G = []; -__vue_render__$4G._withStripped = true; +var __vue_staticRenderFns__$4N = []; +__vue_render__$4N._withStripped = true; /* style */ - const __vue_inject_styles__$4G = undefined; + const __vue_inject_styles__$4N = undefined; /* scoped */ - const __vue_scope_id__$4G = "data-v-7628e470"; + const __vue_scope_id__$4N = "data-v-7cccb5ec"; /* module identifier */ - const __vue_module_identifier__$4G = undefined; + const __vue_module_identifier__$4N = undefined; /* functional template */ - const __vue_is_functional_template__$4G = false; + const __vue_is_functional_template__$4N = false; /* style inject */ /* style inject SSR */ @@ -74933,13 +75189,13 @@ __vue_render__$4G._withStripped = true; - const __vue_component__$4G = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4G, staticRenderFns: __vue_staticRenderFns__$4G }, - __vue_inject_styles__$4G, - __vue_script__$4G, - __vue_scope_id__$4G, - __vue_is_functional_template__$4G, - __vue_module_identifier__$4G, + const __vue_component__$4N = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4N, staticRenderFns: __vue_staticRenderFns__$4N }, + __vue_inject_styles__$4N, + __vue_script__$4N, + __vue_scope_id__$4N, + __vue_is_functional_template__$4N, + __vue_module_identifier__$4N, false, undefined, undefined, @@ -74947,11 +75203,11 @@ __vue_render__$4G._withStripped = true; ); // -var script$4F = { +var script$4M = { name: 'bc-file-render', components: { - audioPlay: __vue_component__$4H, - videoPlay: __vue_component__$4G + audioPlay: __vue_component__$4O, + videoPlay: __vue_component__$4N }, props: { fileInfo: { @@ -75001,9 +75257,9 @@ var script$4F = { }; /* script */ -const __vue_script__$4F = script$4F; +const __vue_script__$4M = script$4M; /* template */ -var __vue_render__$4F = function () { +var __vue_render__$4M = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -75127,17 +75383,17 @@ var __vue_render__$4F = function () { 1 ) }; -var __vue_staticRenderFns__$4F = []; -__vue_render__$4F._withStripped = true; +var __vue_staticRenderFns__$4M = []; +__vue_render__$4M._withStripped = true; /* style */ - const __vue_inject_styles__$4F = undefined; + const __vue_inject_styles__$4M = undefined; /* scoped */ - const __vue_scope_id__$4F = "data-v-506f1aca"; + const __vue_scope_id__$4M = "data-v-643cc5f7"; /* module identifier */ - const __vue_module_identifier__$4F = undefined; + const __vue_module_identifier__$4M = undefined; /* functional template */ - const __vue_is_functional_template__$4F = false; + const __vue_is_functional_template__$4M = false; /* style inject */ /* style inject SSR */ @@ -75146,13 +75402,13 @@ __vue_render__$4F._withStripped = true; - const __vue_component__$4F = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4F, staticRenderFns: __vue_staticRenderFns__$4F }, - __vue_inject_styles__$4F, - __vue_script__$4F, - __vue_scope_id__$4F, - __vue_is_functional_template__$4F, - __vue_module_identifier__$4F, + const __vue_component__$4M = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4M, staticRenderFns: __vue_staticRenderFns__$4M }, + __vue_inject_styles__$4M, + __vue_script__$4M, + __vue_scope_id__$4M, + __vue_is_functional_template__$4M, + __vue_module_identifier__$4M, false, undefined, undefined, @@ -75160,10 +75416,10 @@ __vue_render__$4F._withStripped = true; ); // -var script$4E = { +var script$4L = { name: 'BcViewCommon', components: { - bcFileRenderNew: __vue_component__$4F + bcFileRenderNew: __vue_component__$4M }, props: { content: { @@ -75249,9 +75505,9 @@ var script$4E = { }; /* script */ -const __vue_script__$4E = script$4E; +const __vue_script__$4L = script$4L; /* template */ -var __vue_render__$4E = function () { +var __vue_render__$4L = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -75319,17 +75575,17 @@ var __vue_render__$4E = function () { ), ]) }; -var __vue_staticRenderFns__$4E = []; -__vue_render__$4E._withStripped = true; +var __vue_staticRenderFns__$4L = []; +__vue_render__$4L._withStripped = true; /* style */ - const __vue_inject_styles__$4E = undefined; + const __vue_inject_styles__$4L = undefined; /* scoped */ - const __vue_scope_id__$4E = "data-v-3d2dcb5b"; + const __vue_scope_id__$4L = "data-v-55ea6f92"; /* module identifier */ - const __vue_module_identifier__$4E = undefined; + const __vue_module_identifier__$4L = undefined; /* functional template */ - const __vue_is_functional_template__$4E = false; + const __vue_is_functional_template__$4L = false; /* style inject */ /* style inject SSR */ @@ -75338,13 +75594,13 @@ __vue_render__$4E._withStripped = true; - const __vue_component__$4E = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4E, staticRenderFns: __vue_staticRenderFns__$4E }, - __vue_inject_styles__$4E, - __vue_script__$4E, - __vue_scope_id__$4E, - __vue_is_functional_template__$4E, - __vue_module_identifier__$4E, + const __vue_component__$4L = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4L, staticRenderFns: __vue_staticRenderFns__$4L }, + __vue_inject_styles__$4L, + __vue_script__$4L, + __vue_scope_id__$4L, + __vue_is_functional_template__$4L, + __vue_module_identifier__$4L, false, undefined, undefined, @@ -75352,10 +75608,10 @@ __vue_render__$4E._withStripped = true; ); // -var script$4D = { +var script$4K = { name: 'bc-view-option-radio', components: { - BcViewCommon: __vue_component__$4E + BcViewCommon: __vue_component__$4L }, props: { option: { @@ -75387,8 +75643,7 @@ var script$4D = { default: 'radio' }, standardAnswer: { - type: [String, Number], - default: '' + type: Array }, resourceBasisPath: { type: String, @@ -75404,7 +75659,6 @@ var script$4D = { optionsList: [], selectData: '', isAnswer: false, - answerIsTrue: false, radioJudeMap: { A: '正确', B: '错误' @@ -75437,11 +75691,56 @@ var script$4D = { }, methods: { isActive(item) { - return item.number === this.selectData; + return item.title === this.selectData && !this.readonly; }, isTrue(item) { + // if (this.type === 'radio') { + // if (this.selectData) { + // //当前等于选中 + // if (item.title === this.selectData) { + // //等于正确答案 + // if (item.title === this.standardAnswer[0].title) { + // return true + // } else { + // return false + // } + // } else { + // //等于正确答案 + // if (item.title === this.standardAnswer[0].title) { + // return true + // } else { + // return false + // } + // } + // } else { + // return false + // } + // } else { + // if (this.selectData) { + // //当前等于选中 + // if (item.title === this.selectData) { + // //等于正确答案 + // if (item.content === this.standardAnswer[0]) { + // return true + // } else { + // return false + // } + // } else { + // //等于正确答案 + // if (item.content === this.standardAnswer[0]) { + // return true + // } else { + // return false + // } + // } + // } else { + // return false + // } + // } if (this.type === 'radio') { - return this.isAnswer && item.number === this.selectData && item.isRightAnswer; + return this.isAnswer && this.selectData && this.selectData === item.title && this.standardAnswer.some(i => i.title === item.title); + } else { + return this.isAnswer && this.selectData && this.selectData === item.title && this.standardAnswer.some(i => i === item.content); } }, isFalse(item) { @@ -75451,7 +75750,30 @@ var script$4D = { if (this.type === 'radio') { if (this.selectData) { //当前为选中的 - return item.number === this.selectData && !item.isRightAnswer; + if (item.title === this.selectData) { + if (this.standardAnswer[0].title === item.title) { + return false; + } else { + return true; + } + } else { + return false; + } + } else { + return false; + } + } else { + if (this.selectData) { + //当前为选中的 + if (item.title === this.selectData) { + if (this.standardAnswer[0] === item.content) { + return false; + } else { + return true; + } + } else { + return false; + } } else { return false; } @@ -75463,17 +75785,14 @@ var script$4D = { this.$message.error('请选择答案'); return; } - // let answerIsTrue = false - // if (this.type === 'radio') { - // console.log(this.selectData, this.standardAnswer) - // answerIsTrue = this.optionsList[this.standardAnswer - 1].number === this.selectData ? true : false - // // answerIsTrue = this.standardAnswer.some((i) => i.title === this.selectData) - // } else { - // answerIsTrue = this.standardAnswer.some((i) => i === this.radioJudeMap[this.selectData]) - // } - + let answerIsTrue = false; + if (this.type === 'radio') { + answerIsTrue = this.standardAnswer.some(i => i.title === this.selectData); + } else { + answerIsTrue = this.standardAnswer.some(i => i === this.radioJudeMap[this.selectData]); + } this.isAnswer = true; - this.$emit('showAnalysis', this.answerIsTrue); + this.$emit('showAnalysis', answerIsTrue); }, afresh() { this.selectData = ''; @@ -75481,8 +75800,7 @@ var script$4D = { this.$emit('afresh'); }, select(item) { - this.selectData = item.number; - this.answerIsTrue = item.isRightAnswer; + this.selectData = item; // this.$emit('showAnalysis') } } @@ -75493,8 +75811,8 @@ var __$_require_static_images_leaflet_icons_correct_png__ = "data:image/png;base var __$_require_static_images_leaflet_icons_error_png__ = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAABNElEQVQokWO8ySDtycDAMJeBgUGSgTjwnIGBIRmk8RkJmmDgORNME39SBANfTBBOlTyBHgwCWfEwriQTXIaNlUFi8SQG3jBfDE3c7vYMUuvmMDDx8yIEbzJI/4fhZyFp/0HgRVIxXOyJbwJY7GVm5X9ktSgaQfhFcglY4SPrgP/31e3A7FfFTf/R1TGCdaMBDktjBrljG8GCT73jGL5u24fhfCYMEQYGhr8vXyOx32ANLAyNPP7uDIp3jzE89U1geGTlzyB3ZhsDX1wIhkYWZA6Xiy2D1Ia5DK9Lmhm+btkDFnsRl88gsWgiw/9fvxk+r4A4HyVUn0fnQEIvuxojIOByOTVwMbiNTPx8DK8L6hk+TF2A4axPS9czMHJwMDAJ8sPFyE1yL0CBkwJikKDpKQMDQzIArpej/rmzX0cAAAAASUVORK5CYII="; /* script */ -const __vue_script__$4D = script$4D; -var __vue_render__$4D = function () { +const __vue_script__$4K = script$4K; +var __vue_render__$4K = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -75517,7 +75835,7 @@ var __vue_render__$4D = function () { on: { click: function ($event) { $event.stopPropagation(); - return _vm.select(item) + return _vm.select(item.title) }, }, }, @@ -75549,7 +75867,7 @@ var __vue_render__$4D = function () { !_vm.readonly && !_vm.isTrue(item) && !_vm.isFalse(item) ? _c( "el-radio", - { attrs: { value: _vm.selectData, label: item.number } }, + { attrs: { value: _vm.selectData, label: item.title } }, [_vm._v(_vm._s(""))] ) : _vm._e(), @@ -75578,7 +75896,7 @@ var __vue_render__$4D = function () { attrs: { "flex-box": "1", border: false, - content: item.description, + content: item.content, fileInfo: item.fileInfo, resourceBasisPath: _vm.resourceBasisPath, pageType: _vm.pageType, @@ -75630,17 +75948,17 @@ var __vue_render__$4D = function () { : _vm._e(), ]) }; -var __vue_staticRenderFns__$4D = []; -__vue_render__$4D._withStripped = true; +var __vue_staticRenderFns__$4K = []; +__vue_render__$4K._withStripped = true; /* style */ - const __vue_inject_styles__$4D = undefined; + const __vue_inject_styles__$4K = undefined; /* scoped */ - const __vue_scope_id__$4D = "data-v-7fac7a23"; + const __vue_scope_id__$4K = "data-v-6b27b5ec"; /* module identifier */ - const __vue_module_identifier__$4D = undefined; + const __vue_module_identifier__$4K = undefined; /* functional template */ - const __vue_is_functional_template__$4D = false; + const __vue_is_functional_template__$4K = false; /* style inject */ /* style inject SSR */ @@ -75649,13 +75967,13 @@ __vue_render__$4D._withStripped = true; - const __vue_component__$4D = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4D, staticRenderFns: __vue_staticRenderFns__$4D }, - __vue_inject_styles__$4D, - __vue_script__$4D, - __vue_scope_id__$4D, - __vue_is_functional_template__$4D, - __vue_module_identifier__$4D, + const __vue_component__$4K = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4K, staticRenderFns: __vue_staticRenderFns__$4K }, + __vue_inject_styles__$4K, + __vue_script__$4K, + __vue_scope_id__$4K, + __vue_is_functional_template__$4K, + __vue_module_identifier__$4K, false, undefined, undefined, @@ -75663,10 +75981,10 @@ __vue_render__$4D._withStripped = true; ); // -var script$4C = { +var script$4J = { name: 'bc-view-option-checkbox', components: { - BcViewCommon: __vue_component__$4E + BcViewCommon: __vue_component__$4L }, props: { option: { @@ -75694,8 +76012,8 @@ var script$4C = { default: () => {} }, standardAnswer: { - type: [String, Number], - default: '' + type: Array, + default: () => [] }, resourceBasisPath: { type: String, @@ -75750,6 +76068,7 @@ var script$4C = { } else { this.selectData.push(item); } + this.selectData.sort((a, b) => a.charCodeAt() - b.charCodeAt()); this.$emit('change', this.selectData.join('')); }, submitAnswer() { @@ -75757,9 +76076,7 @@ var script$4C = { this.$message.error('请选择答案'); return; } - - // let answerIsTrue = this.standardAnswer.map((i) => i.title).join('、') === this.selectData.join('、') - let answerIsTrue = false; + let answerIsTrue = this.standardAnswer.map(i => i.title).join('、') === this.selectData.join('、'); this.isAnswer = true; this.$emit('showAnalysis', answerIsTrue); }, @@ -75777,8 +76094,8 @@ var script$4C = { }; /* script */ -const __vue_script__$4C = script$4C; -var __vue_render__$4C = function () { +const __vue_script__$4J = script$4J; +var __vue_render__$4J = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -75793,21 +76110,27 @@ var __vue_render__$4C = function () { key: index, staticClass: "option-item", class: { - isActive: _vm.selectData.includes(item.number) && !_vm.readonly, + isActive: _vm.selectData.includes(item.title) && !_vm.readonly, isTrue: _vm.isAnswer && - _vm.selectData.includes(item.number) && - item.isRightAnswer, + _vm.selectData.length && + _vm.selectData.includes(item.title) && + _vm.standardAnswer.some(function (i) { + return i.title === item.title + }), isFalse: _vm.isAnswer && - _vm.selectData.includes(item.number) && - !item.isRightAnswer, + _vm.selectData.length && + _vm.selectData.includes(item.title) && + _vm.standardAnswer.every(function (i) { + return i.title !== item.title + }), }, attrs: { flex: "" }, on: { click: function ($event) { $event.stopPropagation(); - return _vm.select(item.number, $event) + return _vm.select(item.title, $event) }, }, }, @@ -75817,8 +76140,11 @@ var __vue_render__$4C = function () { { staticClass: "questionSeq" }, [ _vm.isAnswer && - _vm.selectData.includes(item.number) && - item.isRightAnswer + _vm.selectData.length && + _vm.selectData.includes(item.title) && + _vm.standardAnswer.some(function (i) { + return i.title === item.title + }) ? _c("img", { staticStyle: { "margin-right": "10px" }, attrs: { @@ -75829,8 +76155,11 @@ var __vue_render__$4C = function () { : _vm._e(), _vm._v(" "), _vm.isAnswer && - _vm.selectData.includes(item.number) && - !item.isRightAnswer + _vm.selectData.length && + _vm.selectData.includes(item.title) && + _vm.standardAnswer.every(function (i) { + return i.title !== item.title + }) ? _c("img", { staticStyle: { "margin-right": "10px" }, attrs: { @@ -75844,13 +76173,13 @@ var __vue_render__$4C = function () { ? _c( "el-checkbox", { - attrs: { value: _vm.selectData.includes(item.number) }, + attrs: { value: _vm.selectData.includes(item.title) }, nativeOn: { click: function ($event) { _vm.SkipProgress( $event, - item.number, - _vm.selectData.includes(item.number) + item.title, + _vm.selectData.includes(item.title) ); }, }, @@ -75883,7 +76212,7 @@ var __vue_render__$4C = function () { attrs: { "flex-box": "1", border: false, - content: item.description, + content: item.content, fileInfo: item.fileInfo, resourceBasisPath: _vm.resourceBasisPath, pageType: _vm.pageType, @@ -75935,17 +76264,17 @@ var __vue_render__$4C = function () { : _vm._e(), ]) }; -var __vue_staticRenderFns__$4C = []; -__vue_render__$4C._withStripped = true; +var __vue_staticRenderFns__$4J = []; +__vue_render__$4J._withStripped = true; /* style */ - const __vue_inject_styles__$4C = undefined; + const __vue_inject_styles__$4J = undefined; /* scoped */ - const __vue_scope_id__$4C = "data-v-fa728c70"; + const __vue_scope_id__$4J = "data-v-307b4eb2"; /* module identifier */ - const __vue_module_identifier__$4C = undefined; + const __vue_module_identifier__$4J = undefined; /* functional template */ - const __vue_is_functional_template__$4C = false; + const __vue_is_functional_template__$4J = false; /* style inject */ /* style inject SSR */ @@ -75954,13 +76283,13 @@ __vue_render__$4C._withStripped = true; - const __vue_component__$4C = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4C, staticRenderFns: __vue_staticRenderFns__$4C }, - __vue_inject_styles__$4C, - __vue_script__$4C, - __vue_scope_id__$4C, - __vue_is_functional_template__$4C, - __vue_module_identifier__$4C, + const __vue_component__$4J = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4J, staticRenderFns: __vue_staticRenderFns__$4J }, + __vue_inject_styles__$4J, + __vue_script__$4J, + __vue_scope_id__$4J, + __vue_is_functional_template__$4J, + __vue_module_identifier__$4J, false, undefined, undefined, @@ -75968,12 +76297,12 @@ __vue_render__$4C._withStripped = true; ); // -var script$4B = { +var script$4I = { name: 'QuestionItem', components: { - BcViewOptionCheckbox: __vue_component__$4C, - BcViewOptionRadio: __vue_component__$4D, - BcViewCommon: __vue_component__$4E + BcViewOptionCheckbox: __vue_component__$4J, + BcViewOptionRadio: __vue_component__$4K, + BcViewCommon: __vue_component__$4L }, // dicts: ['question_type'], data() { @@ -76013,7 +76342,7 @@ var script$4B = { }, questionNumber: { type: Number, - default: -1 + default: 0 }, isShowAi: { type: String, @@ -76047,25 +76376,25 @@ var script$4B = { return this.isAnswer && this.canShowKnowledge === 'true'; }, isRadio() { - return isRadio(this.question.type); + return isRadio$1(this.question.questionType); }, isCheck() { - return isCheck(this.question.type); + return isCheck$1(this.question.questionType); }, showJudgeAnswer() { - return showJudgeAnswer(this.question.type); + return showJudgeAnswer$1(this.question.questionType); }, showRichTextAnswer() { - return showRichTextAnswer(this.question.type); + return showRichTextAnswer$1(this.question.questionType); }, showOptions() { - return showOptions(this.question.type); + return showOptions$1(this.question.questionType); }, showSort() { - return showSort(this.question.type); + return showSort$1(this.question.questionType); }, isCloze() { - return isCloze(this.question.type); + return isCloze$1(this.question.questionType); }, clozeLength() { let fillInTheBlanksSpan = this.question.stem.content.match(/fillInTheBlanksSpan/g); @@ -76147,7 +76476,7 @@ var script$4B = { } } }, - // + // changeAnswer() { if (this.isRadio || this.showJudgeAnswer) { this.$refs.bcViewOptionRadio?.submitAnswer(); @@ -76206,14 +76535,33 @@ var script$4B = { e = e.replace(/ /gi, ''); //去除空格 return e; } + }, + getPaperList(list) { + if (list.length > 0) { + let answerList = []; + list.map(item => { + if (typeof item == 'string') { + let data = { + selected: false, + ...JSON.parse(item) + }; + answerList.push(data); + } else { + this.$set(item, 'selected', false); + answerList = list; + } + }); + return answerList; + } } } }; +var __$_require_static_images_leaflet_icons_ai_png__ = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAAgCAYAAACFM/9sAAAACXBIWXMAAA7EAAAOxAGVKw4bAAALdmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKE1hY2ludG9zaCkiIHhtcDpDcmVhdGVEYXRlPSIyMDIzLTA4LTEwVDE1OjM2OjMyKzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMy0wOC0xMFQxNjoyMjoxMSswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMy0wOC0xMFQxNjoyMjoxMSswODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4NjI2YzdlMS0yY2MxLTRlZDAtOGI5My0zZGY5MGEzOGQwNDgiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDpmYTI1NTg0My03ODQ5LTAzNDQtYmQ2Yy1mOGQxZmFkMWFmNmMiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDphMWZlOGViMi0wMGU1LTQyMzQtYmQ0Yi0xYzE0MGFmMTIyMjgiPiA8cGhvdG9zaG9wOlRleHRMYXllcnM+IDxyZGY6QmFnPiA8cmRmOmxpIHBob3Rvc2hvcDpMYXllck5hbWU9ImFpIiBwaG90b3Nob3A6TGF5ZXJUZXh0PSJhaSIvPiA8cmRmOmxpIHBob3Rvc2hvcDpMYXllck5hbWU9Iuino+aekCIgcGhvdG9zaG9wOkxheWVyVGV4dD0i6Kej5p6QIi8+IDwvcmRmOkJhZz4gPC9waG90b3Nob3A6VGV4dExheWVycz4gPHBob3Rvc2hvcDpEb2N1bWVudEFuY2VzdG9ycz4gPHJkZjpCYWc+IDxyZGY6bGk+dXVpZDpBQTFGRDNGQUU0RjhFMTExOUExNzk0Q0Y3MjhDNzM0QzwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6NDQ1OUFGRjJGMDQxRTMxMTg0RDVDMzkwRTQ3RjBGNTU8L3JkZjpsaT4gPC9yZGY6QmFnPiA8L3Bob3Rvc2hvcDpEb2N1bWVudEFuY2VzdG9ycz4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDphMWZlOGViMi0wMGU1LTQyMzQtYmQ0Yi0xYzE0MGFmMTIyMjgiIHN0RXZ0OndoZW49IjIwMjMtMDgtMTBUMTU6MzY6MzIrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4wIChNYWNpbnRvc2gpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gaW1hZ2UvcG5nIHRvIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjZiNWI4Yzc1LTlmMDUtNGRjMi05MmY1LWVhYWVkNWRkZmQ1ZiIgc3RFdnQ6d2hlbj0iMjAyMy0wOC0xMFQxNjoyMjowNSswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKE1hY2ludG9zaCkiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmE0MjkwOTNmLTk4ZWMtNDhlYS04MjA4LWQ0MzViN2I2ZGQxZCIgc3RFdnQ6d2hlbj0iMjAyMy0wOC0xMFQxNjoyMjoxMSswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKE1hY2ludG9zaCkiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNvbnZlcnRlZCIgc3RFdnQ6cGFyYW1ldGVycz0iZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iZGVyaXZlZCIgc3RFdnQ6cGFyYW1ldGVycz0iY29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjg2MjZjN2UxLTJjYzEtNGVkMC04YjkzLTNkZjkwYTM4ZDA0OCIgc3RFdnQ6d2hlbj0iMjAyMy0wOC0xMFQxNjoyMjoxMSswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKE1hY2ludG9zaCkiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3ht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"; + /* script */ -const __vue_script__$4B = script$4B; -/* template */ -var __vue_render__$4B = function () { +const __vue_script__$4I = script$4I; +var __vue_render__$4I = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -76231,31 +76579,11 @@ var __vue_render__$4B = function () { "div", { staticClass: "stem-box", staticStyle: { display: "flex" } }, [ - _vm.questionNumber !== -1 - ? _c( - "div", - { - staticClass: "question-number", - staticStyle: { - "line-height": "28px", - "padding-right": "4px", - }, - }, - [ - _vm._v( - "\n " + - _vm._s(_vm.questionNumber + 1) + - " .\n " - ), - ] - ) - : _vm._e(), - _vm._v(" "), _c("bc-view-common", { staticClass: "xml-question-title", staticStyle: { flex: "1", "min-width": "0" }, attrs: { - content: _vm.question.description, + content: _vm.question.stem.content, border: false, fileInfo: _vm.question.stem.fileInfo, resourceBasisPath: _vm.resourceBasisPath, @@ -76277,8 +76605,8 @@ var __vue_render__$4B = function () { _c("bc-view-option-radio", { ref: "bcViewOptionRadio", attrs: { - standardAnswer: _vm.question.answer, - option: _vm.question.candidates, + standardAnswer: _vm.question.standardAnswer, + option: _vm.question.questionOption, resourceBasisPath: _vm.resourceBasisPath, isSubmit: _vm.isSubmit, pageType: _vm.pageType, @@ -76298,8 +76626,8 @@ var __vue_render__$4B = function () { _c("bc-view-option-checkbox", { ref: "bcViewOptionCheckbox", attrs: { - option: _vm.question.candidates, - standardAnswer: _vm.question.answer, + option: _vm.question.questionOption, + standardAnswer: _vm.question.standardAnswer, resourceBasisPath: _vm.resourceBasisPath, isSubmit: _vm.isSubmit, pageType: _vm.pageType, @@ -76365,7 +76693,7 @@ var __vue_render__$4B = function () { }, }, }, - [_vm._v("\n 重新作答\n ")] + [_vm._v("重新作答")] ) : _vm._e(), ], @@ -76380,11 +76708,15 @@ var __vue_render__$4B = function () { _c("bc-view-option-radio", { ref: "bcViewOptionRadio", attrs: { - standardAnswer: _vm.question.answer, + standardAnswer: _vm.question.standardAnswer, resourceBasisPath: _vm.resourceBasisPath, pageType: _vm.pageType, isSubmit: _vm.isSubmit, - option: _vm.question.candidates, + type: "judge", + option: [ + { title: "A", content: "正确" }, + { title: "B", content: "错误" }, + ], }, on: { showAnalysis: _vm.showAnalysis, afresh: _vm.afresh }, }), @@ -76439,7 +76771,7 @@ var __vue_render__$4B = function () { questionId: _vm.question.id, questionName: JSON.stringify(_vm.question.stem), userAnswer: _vm.clozeLength, - questionType: "Filling", + questionType: "fillInTheBlanks", }); }, }, @@ -76454,11 +76786,11 @@ var __vue_render__$4B = function () { "xml-submit-answer xml-submit-answer-right", on: { click: function ($event) { - return _vm.afresh("Filling") + return _vm.afresh("fillInTheBlanks") }, }, }, - [_vm._v("\n 重新作答\n ")] + [_vm._v("重新作答")] ) : _vm._e(), ], @@ -76481,20 +76813,67 @@ var __vue_render__$4B = function () { [ _c("div", { staticClass: "question-label" }, [ _vm._v( - "正确答案:" + - _vm._s(_vm.serialNumber[_vm.question.answer - 1]) + _vm._s( + _vm.question.questionType == 13 + ? "参考答案:" + : "正确答案:" + ) ), ]), _vm._v(" "), - _c("div", { - staticStyle: { - color: "#0070c1", - "min-width": "0", - flex: "1", - "line-height": "28px", - display: "inline-block", + _c( + "div", + { + staticStyle: { + color: "#0070c1", + "min-width": "0", + flex: "1", + "line-height": "28px", + }, }, - }), + [ + _vm.question.questionType == 3 + ? [ + _c("span", [ + _vm._v( + "\n " + + _vm._s(_vm.standardAnswer) + + "\n " + ), + ]), + ] + : _vm._l( + _vm.getPaperList(_vm.question.questionOption), + function (item, index) { + return _c( + "span", + { + directives: [ + { + name: "show", + rawName: "v-show", + value: _vm.standardAnswer.includes( + item.title + ), + expression: + "standardAnswer.includes(item.title)", + }, + ], + key: index, + }, + [ + _vm._v( + "\n " + + _vm._s(_vm.serialNumber[index]) + + "\n " + ), + ] + ) + } + ), + ], + 2 + ), ] ), ]) @@ -76509,7 +76888,13 @@ var __vue_render__$4B = function () { }, [ _c("div", { staticClass: "question-label" }, [ - _vm._v("正确答案:"), + _vm._v( + _vm._s( + _vm.question.questionType == 13 + ? "参考答案:" + : "正确答案:" + ) + ), ]), _vm._v(" "), _c( @@ -76587,21 +76972,71 @@ var __vue_render__$4B = function () { ] ) : _vm._e(), + _vm._v(" "), + _vm.isShowKnowledge && _vm.question.knowledgePointVoList.length + ? _c("div", { staticClass: "info-item", attrs: { flex: "" } }, [ + _c("div", { staticClass: "info-item--label" }, [ + _vm._v("知识点:"), + ]), + _vm._v(" "), + _c( + "div", + { + staticClass: "info-item--content", + staticStyle: { flex: "1" }, + }, + [ + _vm.question.knowledgePointVoList && + _vm.question.knowledgePointVoList.length + ? _vm._l( + _vm.question.knowledgePointVoList, + function (item) { + return _c( + "el-tag", + { + key: item.id, + staticStyle: { + "margin-right": "8px", + "margin-bottom": "8px", + }, + attrs: { effect: "plain" }, + }, + [_vm._v(_vm._s(item.kpName))] + ) + } + ) + : [_c("span", [_vm._v("无")])], + ], + 2 + ), + ]) + : _vm._e(), + _vm._v(" "), + _vm.isShowAi == "0" + ? _c("div", { staticClass: "AIbtn", on: { click: _vm.AIanalysis } }, [ + _c("img", { + attrs: { + src: __$_require_static_images_leaflet_icons_ai_png__, + alt: "", + }, + }), + ]) + : _vm._e(), ] ), ]) }; -var __vue_staticRenderFns__$4B = []; -__vue_render__$4B._withStripped = true; +var __vue_staticRenderFns__$4I = []; +__vue_render__$4I._withStripped = true; /* style */ - const __vue_inject_styles__$4B = undefined; + const __vue_inject_styles__$4I = undefined; /* scoped */ - const __vue_scope_id__$4B = "data-v-6bf2ab28"; + const __vue_scope_id__$4I = "data-v-0ef5bb3c"; /* module identifier */ - const __vue_module_identifier__$4B = undefined; + const __vue_module_identifier__$4I = undefined; /* functional template */ - const __vue_is_functional_template__$4B = false; + const __vue_is_functional_template__$4I = false; /* style inject */ /* style inject SSR */ @@ -76610,13 +77045,13 @@ __vue_render__$4B._withStripped = true; - const __vue_component__$4B = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4B, staticRenderFns: __vue_staticRenderFns__$4B }, - __vue_inject_styles__$4B, - __vue_script__$4B, - __vue_scope_id__$4B, - __vue_is_functional_template__$4B, - __vue_module_identifier__$4B, + const __vue_component__$4I = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4I, staticRenderFns: __vue_staticRenderFns__$4I }, + __vue_inject_styles__$4I, + __vue_script__$4I, + __vue_scope_id__$4I, + __vue_is_functional_template__$4I, + __vue_module_identifier__$4I, false, undefined, undefined, @@ -76624,10 +77059,10 @@ __vue_render__$4B._withStripped = true; ); // -var script$4A = { +var script$4H = { name: 'XmlQuestionRender', components: { - QuestionItem: __vue_component__$4B + QuestionItem: __vue_component__$4I }, // dicts: [ // "question_type", @@ -76751,9 +77186,9 @@ var script$4A = { }; /* script */ -const __vue_script__$4A = script$4A; +const __vue_script__$4H = script$4H; /* template */ -var __vue_render__$4A = function () { +var __vue_render__$4H = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -76783,7 +77218,7 @@ var __vue_render__$4A = function () { "can-show-answer": _vm.pBlockData.showAnswer, "can-show-knowledge": _vm.pBlockData.showRecommend, border: index < _vm.questionSetList.length - 1 ? true : false, - "question-number": _vm.questionSetList.length > 1 ? index : -1, + "question-number": index, "is-show-ai": _vm.isShowAi, resourceBasisPath: _vm.resourceBasisPath, pageType: _vm.pageType, @@ -76801,17 +77236,17 @@ var __vue_render__$4A = function () { ] ) }; -var __vue_staticRenderFns__$4A = []; -__vue_render__$4A._withStripped = true; +var __vue_staticRenderFns__$4H = []; +__vue_render__$4H._withStripped = true; /* style */ - const __vue_inject_styles__$4A = undefined; + const __vue_inject_styles__$4H = undefined; /* scoped */ - const __vue_scope_id__$4A = "data-v-0f531fa4"; + const __vue_scope_id__$4H = "data-v-2e04d85c"; /* module identifier */ - const __vue_module_identifier__$4A = undefined; + const __vue_module_identifier__$4H = undefined; /* functional template */ - const __vue_is_functional_template__$4A = false; + const __vue_is_functional_template__$4H = false; /* style inject */ /* style inject SSR */ @@ -76820,23 +77255,23 @@ __vue_render__$4A._withStripped = true; - const __vue_component__$4A = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4A, staticRenderFns: __vue_staticRenderFns__$4A }, - __vue_inject_styles__$4A, - __vue_script__$4A, - __vue_scope_id__$4A, - __vue_is_functional_template__$4A, - __vue_module_identifier__$4A, + const __vue_component__$4H = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4H, staticRenderFns: __vue_staticRenderFns__$4H }, + __vue_inject_styles__$4H, + __vue_script__$4H, + __vue_scope_id__$4H, + __vue_is_functional_template__$4H, + __vue_module_identifier__$4H, false, undefined, undefined, undefined ); -__vue_component__$4A.install = (Vue, options = {}) => { +__vue_component__$4H.install = (Vue, options = {}) => { Vue.component(createNamespace$1('question-render', { prefix: options.prefix - }), __vue_component__$4A); + }), __vue_component__$4H); }; var epub = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAoCAMAAAChHKjRAAAAAXNSR0IArs4c6QAAAjdQTFRFAAAAiXb/kG/0inD6inX6jW72jXL2eGLpe2fuinL2i3H3iHf6i3L5dmTvjHH3inP4inH2i3L2d2TuhW7vjHH5d2TqjnH5fWnyd2bskHb5jXX1jHH2i3H3i3H4i3H4d2Xsd2Xqi3H4cmLoi3L4inH3i3L3inL3i3L3jHL3hG3zi3L3jHL4jnT5i3L3i3L3jHH2bFPvbl/nb2DncF/ncVP1cWHncWHocWHpclP2cmLpc2Lpc2Lqc2Ppc2PqdGPpdGPqd1r1d1z0d2TreFv2eFz0eFz1eGDxeGbseVv1eVz1el31el32el71el72e133e1/2e2TxfGD1fGXxfWD3fWH2fmjxf2T2f2rwgGX3gGnygWX2gWb2gWb3gWrzgWzzgmb3gmf2gmzyg23zhGj3hGn2hGr2hGr3hG3zhWr3hWv2hWv3hWz3hW7zhW70hmz3h233h273iG34iG/3iW34iW74iW/3iXD3iXH2inD4inH3inP2i3D4i3H3i3H4i3L3i3L4i3P4jHL3jHL4jHP3jHP4jHT2jHT3jHrxjHryjXP4jXT3jXT5jXX3jXvyjnT5jnX4j3T5j3T6j3b3lYH2l4H4mIL4mYP4movynY/xpJL3pJfzpZL5pZjzqJX5q5n5r576saD6uaz3va/7zMT5zcP7z8X70Mb70sj708n708r71c381c761s382ND72db4393549z+4+H55+b66OL96+b+6+r67+v+8/L99PD/9vT+///9///+////0H5GmAAAADB0Uk5TAA0XMjI6OkZNVVpefX+HjJCRkpSeoausra2vs7W2t7i5v8TN1tbd3t/o6+7v8PH8u0jmrQAAAapJREFUOMtjYGBgYBZQ1sMAOpoKHAwIwF+HDfSlG9nzElADVGRuZScEVcNWiVORvY29KESRZDluRfb2VhJgRSp1OBQlgRTZW8uDFKnjUpRrZgtSZamER1Fji5MhSJG9qTgDgxoORXXd5e5mYGDMjltRXV9nTiIIxAkjKeoq8veFg5DK5rqWvgl9QDBRCklRacG8BfOhYMHs/Bq4hBySIu9Fe5DAXH+4hDRCUaXnqj3b12+EgE3rJidjVeS1ZM9ig4AgMAh1S+3HpWiFX2EJGBRXN9fhUrQyBFt0oylaahIWBQZ5bbgVrW2eMhUMyrLacCqCgx2TUnAr2gUFW1szcCpaHd7RCwLtkVlduB1uEREDAvGFXXWUBcFy5+x8MMgrwh2Yyxyy8sCgKDqtB6sijzV7dm7eAgHbNkxLwKaoznvhbqSkMjMYq6La2BlzZkHBnOmZ9VgVtVX4OLpCgUtgUzNWRXV1zS1w0Ig9CHADaZyZEwnIMGgQViTLoEpYkQiDWBUhNTXcDKwEDdJnZGAQJKCmgQtUQvHhVaPNCSkRWQSVdfWwAi1FHiagAgAPu3js6FbZbgAAAABJRU5ErkJggg=="; @@ -76854,7 +77289,7 @@ var image = { // import { OuchnOss } from '@/api/business/file/OuchnOss' // import { defaultCover } from '@/assets/remote' -var script$4z = { +var script$4G = { name: 'XmlResourceRender', props: { //模式:preview 预览 (默认),editor 编辑 @@ -77049,8 +77484,8 @@ var __$_require_static_images_leaflet_icons_resource_elliptic_png__ = "data:imag var __$_require_static_images_leaflet_icons_download_white_png__ = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAjlJREFUSEvtlcurjWEUh59fSpFLJOUUcquDciuXRExkrkxMMDkGkpPEgAEDipJIIuU2MPAnKJLEQK4hhDoZSCEhcv1p7dbJbnf23t+3nW201+Sr911rPd+6vqJFsT0NeJ7mOyUdLONKZZSrdW1PBV7kWa+kI2V8/Qt4CvAyYVskHeuAG2Wgk+rC/WG701yDN062J0p6NVD+i6ba9gTgvaRv1X7qdrXtS8AqYI+kvbXwImDb64DzuVpnSnK/n0bgR8CsVNwnaXfNymzYXLY3AqfT5hcwVNLvIuAxwA2gO5X3S9rVb9goYtvrgbOpGyleKulOoVSHku3hwGNgchodkrQ972YAz/J8q6Sjed4DnMzz78AiSfdrS9V0c9keD1wHAhRSidz2WOBdnvVIOlWT3oh0uaRbAzVnU3BGMQ64CUxPJ5slHbf9BRgGrAA+A7fz/gewWNLdehupEDjhAYi/n53OLgArgS7gakQHDAG+AkskPWi0BguDEz4y0z6njtOALpD0pBE07kqBqxruIRDjVC0/gfmS4q6plAYnfFTWs7/mUdOItBC0ErHtgG8D3ko61/RXU8H26KxtfNdIulfCdlmA1wIX06hL0uuiDlrRsx1N+jHAO4AD6aRb0tNWHBa1yb3wJsC9wOH/GPGISlltbwDOJHhus/krGlk9Pdsxkh8CPAnoS8XLwGpJ8Zq0RWyfADZVxsl2PF/xjIV8Aq4B7YDPAyLQvwvE9hVgIRA1aKfEdutraYEMxl/9AUsz/weMzneQAAAAAElFTkSuQmCC"; /* script */ -const __vue_script__$4z = script$4z; -var __vue_render__$4z = function () { +const __vue_script__$4G = script$4G; +var __vue_render__$4G = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -77658,7 +78093,7 @@ var __vue_render__$4z = function () { ] ) }; -var __vue_staticRenderFns__$4z = [ +var __vue_staticRenderFns__$4G = [ function () { var _vm = this; var _h = _vm.$createElement; @@ -77676,16 +78111,16 @@ var __vue_staticRenderFns__$4z = [ ]) }, ]; -__vue_render__$4z._withStripped = true; +__vue_render__$4G._withStripped = true; /* style */ - const __vue_inject_styles__$4z = undefined; + const __vue_inject_styles__$4G = undefined; /* scoped */ - const __vue_scope_id__$4z = "data-v-2be4d8c2"; + const __vue_scope_id__$4G = "data-v-2be4d8c2"; /* module identifier */ - const __vue_module_identifier__$4z = undefined; + const __vue_module_identifier__$4G = undefined; /* functional template */ - const __vue_is_functional_template__$4z = false; + const __vue_is_functional_template__$4G = false; /* style inject */ /* style inject SSR */ @@ -77694,23 +78129,23 @@ __vue_render__$4z._withStripped = true; - const __vue_component__$4z = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4z, staticRenderFns: __vue_staticRenderFns__$4z }, - __vue_inject_styles__$4z, - __vue_script__$4z, - __vue_scope_id__$4z, - __vue_is_functional_template__$4z, - __vue_module_identifier__$4z, + const __vue_component__$4G = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4G, staticRenderFns: __vue_staticRenderFns__$4G }, + __vue_inject_styles__$4G, + __vue_script__$4G, + __vue_scope_id__$4G, + __vue_is_functional_template__$4G, + __vue_module_identifier__$4G, false, undefined, undefined, undefined ); -__vue_component__$4z.install = (Vue, options = {}) => { +__vue_component__$4G.install = (Vue, options = {}) => { Vue.component(createNamespace$1('resource-render', { prefix: options.prefix - }), __vue_component__$4z); + }), __vue_component__$4G); }; // @@ -77744,7 +78179,7 @@ __vue_component__$4z.install = (Vue, options = {}) => { // // -var script$4y = { +var script$4F = { name: 'PdfView', props: { show: { @@ -77778,8 +78213,8 @@ var script$4y = { var __$_require_static_images_leaflet_icons_back_png__ = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAABACAYAAAB2kAXpAAAAAXNSR0IArs4c6QAABABJREFUaEPVmluopmMUx39/UUy44cJMg+FikEMuGMnIOJcwlHIYpKkZmchxuJDT5MIpIzXIpMkhh5QwlPPx0uHKhbiYKCJXSMTor7U9W4/t29/3rP3t55usm137+z/v+r3Pca31vGIHme19gVXAEuBXYKukd6ZxtCO4bJ8HPAHsNsP/RknXxf8mDmZ7NfDYkA65UtKmiYLZvhp4YMQofSVpycTAbN8M3NkwdbZL2mUiYLbvBW5ogArJ15L27w5m+yHgikaokK2WtKUrmO2ngQsTUBsk3dZ1Vdp+EViZgFov6b5u+5jtnYE3gBMTUOskPVzr53UobS8A3gWWJaBWSYoh/5fNG5jtfYA4Ug5JQJ0j6aVB+nkBs70f8CEQf1tsO3CqpPdmE48NZvswIBzs1UJUDuwTJH00TD8WmO2jgbeBPRqhfgBOkvTZKP2cwWyvKFA7jXJSfv8GOF7Sthb9nMBsx/4U+1SrfQ6skPR9a4M0mO1LgcdbHQAxl2Ki/5hok4vHbK8DNiUcxPZxmqQ/E22mpM09Zvsm4K6EgwiVz07o8xus7TuAWxNOnpF0UUL/H+nIHrP9IHBVwslmSWsT+oHSoWC2twCXJZzcL+n6hH5W6axgtl8Azk04uV1SDPm82EAw26/Hakp4uFbSqCQj8bgZq7KELW8BxyaeslbS5oS+SfpPj9neE3gfOLKp5d+iCyQ9l9A3S6fASroeEcKBzS3hLEmvJPQpqWwvLWHLwsaWv5cj5oNG/ZxkAfZTImz5uRzGn87JW6JRgLlR/20kGJK+aNSPJWsF+wRYLum3sbwlGv/vweJdYyhPlhRBX3eLHvsDiCS1xX4pk//jFvE4mgA7puSDkay2WLxIBH+zpl4tDxmlmd5gDy9we49qUP2+UtLLCX1KWh9JB5SNtjVpDUd9j6TpVylpfhzihyZer+8hXsHtXgojRyXg+oY9FVys0jdjBSbg+geKFeBW4MwEXP/QuoJ7Fjg/Adc/GangHgEuT8D1T98quHuA9Qm4/glvBXcLsCEBFyWC0yVFoS5lIxPemU+zfQ2wMeElztVTuhZVqp5bAzyagOtfhqrgYqXGim21/oW7Cu4MIDKl1inRv9RZwR0HxPm6a2PXxW1u3+JwBRdJciTLkTS3WP9yegV3UInpFrWQFU3fC4gKbjEQiXDEdq3W98qmgouLiNhYj2glA/peclVw8XVA3MAtT8D1vRasQWy/FkdSAq7/RWrVe88D8Z1Fq10i6anWjbH1oQN1yVrul5KWTgQsaBPV78l93lANa3x3Ed9fDLPvJC2cWI9VcDcCdw8hm1qdEwcrwxphelzOz/T/pKS4RGuOCsaa/IMa2z4YuLicElHVfLWu6f4FuhpYUNovLf0AAAAASUVORK5CYII="; /* script */ -const __vue_script__$4y = script$4y; -var __vue_render__$4y = function () { +const __vue_script__$4F = script$4F; +var __vue_render__$4F = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -77840,17 +78275,17 @@ var __vue_render__$4y = function () { ] ) }; -var __vue_staticRenderFns__$4y = []; -__vue_render__$4y._withStripped = true; +var __vue_staticRenderFns__$4F = []; +__vue_render__$4F._withStripped = true; /* style */ - const __vue_inject_styles__$4y = undefined; + const __vue_inject_styles__$4F = undefined; /* scoped */ - const __vue_scope_id__$4y = undefined; + const __vue_scope_id__$4F = undefined; /* module identifier */ - const __vue_module_identifier__$4y = undefined; + const __vue_module_identifier__$4F = undefined; /* functional template */ - const __vue_is_functional_template__$4y = false; + const __vue_is_functional_template__$4F = false; /* style inject */ /* style inject SSR */ @@ -77859,13 +78294,13 @@ __vue_render__$4y._withStripped = true; - const __vue_component__$4y = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4y, staticRenderFns: __vue_staticRenderFns__$4y }, - __vue_inject_styles__$4y, - __vue_script__$4y, - __vue_scope_id__$4y, - __vue_is_functional_template__$4y, - __vue_module_identifier__$4y, + const __vue_component__$4F = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4F, staticRenderFns: __vue_staticRenderFns__$4F }, + __vue_inject_styles__$4F, + __vue_script__$4F, + __vue_scope_id__$4F, + __vue_is_functional_template__$4F, + __vue_module_identifier__$4F, false, undefined, undefined, @@ -77873,10 +78308,10 @@ __vue_render__$4y._withStripped = true; ); // -var script$4x = { +var script$4E = { name: 'XmlEbookRender', components: { - PdfView: __vue_component__$4y + PdfView: __vue_component__$4F }, props: { //模式:preview 预览 (默认),editor 编辑 @@ -77996,8 +78431,8 @@ var script$4x = { var __$_require_static_images_default_over_ebook_png__ = "2539d578aeabf7c9.png"; /* script */ -const __vue_script__$4x = script$4x; -var __vue_render__$4x = function () { +const __vue_script__$4E = script$4E; +var __vue_render__$4E = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -78280,17 +78715,17 @@ var __vue_render__$4x = function () { 1 ) }; -var __vue_staticRenderFns__$4x = []; -__vue_render__$4x._withStripped = true; +var __vue_staticRenderFns__$4E = []; +__vue_render__$4E._withStripped = true; /* style */ - const __vue_inject_styles__$4x = undefined; + const __vue_inject_styles__$4E = undefined; /* scoped */ - const __vue_scope_id__$4x = "data-v-7ea50222"; + const __vue_scope_id__$4E = "data-v-7ea50222"; /* module identifier */ - const __vue_module_identifier__$4x = undefined; + const __vue_module_identifier__$4E = undefined; /* functional template */ - const __vue_is_functional_template__$4x = false; + const __vue_is_functional_template__$4E = false; /* style inject */ /* style inject SSR */ @@ -78299,23 +78734,23 @@ __vue_render__$4x._withStripped = true; - const __vue_component__$4x = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4x, staticRenderFns: __vue_staticRenderFns__$4x }, - __vue_inject_styles__$4x, - __vue_script__$4x, - __vue_scope_id__$4x, - __vue_is_functional_template__$4x, - __vue_module_identifier__$4x, + const __vue_component__$4E = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4E, staticRenderFns: __vue_staticRenderFns__$4E }, + __vue_inject_styles__$4E, + __vue_script__$4E, + __vue_scope_id__$4E, + __vue_is_functional_template__$4E, + __vue_module_identifier__$4E, false, undefined, undefined, undefined ); -__vue_component__$4x.install = (Vue, options = {}) => { +__vue_component__$4E.install = (Vue, options = {}) => { Vue.component(createNamespace$1('ebook-render', { prefix: options.prefix - }), __vue_component__$4x); + }), __vue_component__$4E); }; // @@ -78345,7 +78780,7 @@ __vue_component__$4x.install = (Vue, options = {}) => { // // import { Player, Video, Ui, ClickToPlay, Skeleton, Controls, ScrubberControl } from '@vime/vue' -var script$4w = { +var script$4D = { name: 'VmPlayer', // components: { Player, Video, Ui, ClickToPlay, Skeleton, Controls, ScrubberControl }, props: { @@ -78387,10 +78822,10 @@ var script$4w = { }; /* script */ -const __vue_script__$4w = script$4w; +const __vue_script__$4D = script$4D; /* template */ -var __vue_render__$4w = function () { +var __vue_render__$4D = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -78436,17 +78871,17 @@ var __vue_render__$4w = function () { 1 ) }; -var __vue_staticRenderFns__$4w = []; -__vue_render__$4w._withStripped = true; +var __vue_staticRenderFns__$4D = []; +__vue_render__$4D._withStripped = true; /* style */ - const __vue_inject_styles__$4w = undefined; + const __vue_inject_styles__$4D = undefined; /* scoped */ - const __vue_scope_id__$4w = undefined; + const __vue_scope_id__$4D = undefined; /* module identifier */ - const __vue_module_identifier__$4w = undefined; + const __vue_module_identifier__$4D = undefined; /* functional template */ - const __vue_is_functional_template__$4w = false; + const __vue_is_functional_template__$4D = false; /* style inject */ /* style inject SSR */ @@ -78455,13 +78890,13 @@ __vue_render__$4w._withStripped = true; - const __vue_component__$4w = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4w, staticRenderFns: __vue_staticRenderFns__$4w }, - __vue_inject_styles__$4w, - __vue_script__$4w, - __vue_scope_id__$4w, - __vue_is_functional_template__$4w, - __vue_module_identifier__$4w, + const __vue_component__$4D = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4D, staticRenderFns: __vue_staticRenderFns__$4D }, + __vue_inject_styles__$4D, + __vue_script__$4D, + __vue_scope_id__$4D, + __vue_is_functional_template__$4D, + __vue_module_identifier__$4D, false, undefined, undefined, @@ -78469,10 +78904,10 @@ __vue_render__$4w._withStripped = true; ); // -var script$4v = { +var script$4C = { name: 'VideoPlayer', components: { - VmPlayer: __vue_component__$4w, + VmPlayer: __vue_component__$4D, videoPlayer: VueVideoPlayer.videoPlayer }, props: { @@ -78967,10 +79402,10 @@ var script$4v = { }; /* script */ -const __vue_script__$4v = script$4v; +const __vue_script__$4C = script$4C; /* template */ -var __vue_render__$4v = function () { +var __vue_render__$4C = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -79077,7 +79512,7 @@ var __vue_render__$4v = function () { 2 ) }; -var __vue_staticRenderFns__$4v = [ +var __vue_staticRenderFns__$4C = [ function () { var _vm = this; var _h = _vm.$createElement; @@ -79089,16 +79524,16 @@ var __vue_staticRenderFns__$4v = [ ]) }, ]; -__vue_render__$4v._withStripped = true; +__vue_render__$4C._withStripped = true; /* style */ - const __vue_inject_styles__$4v = undefined; + const __vue_inject_styles__$4C = undefined; /* scoped */ - const __vue_scope_id__$4v = undefined; + const __vue_scope_id__$4C = undefined; /* module identifier */ - const __vue_module_identifier__$4v = undefined; + const __vue_module_identifier__$4C = undefined; /* functional template */ - const __vue_is_functional_template__$4v = false; + const __vue_is_functional_template__$4C = false; /* style inject */ /* style inject SSR */ @@ -79107,27 +79542,27 @@ __vue_render__$4v._withStripped = true; - const __vue_component__$4v = /*#__PURE__*/normalizeComponent( - { render: __vue_render__$4v, staticRenderFns: __vue_staticRenderFns__$4v }, - __vue_inject_styles__$4v, - __vue_script__$4v, - __vue_scope_id__$4v, - __vue_is_functional_template__$4v, - __vue_module_identifier__$4v, + const __vue_component__$4C = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$4C, staticRenderFns: __vue_staticRenderFns__$4C }, + __vue_inject_styles__$4C, + __vue_script__$4C, + __vue_scope_id__$4C, + __vue_is_functional_template__$4C, + __vue_module_identifier__$4C, false, undefined, undefined, undefined ); -var playIcon$2 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHIAAAByCAMAAAC4A3VPAAAAAXNSR0IArs4c6QAAAZtQTFRFAAAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////LHKW/AAAAIl0Uk5TAAECAwQFBgcICQoLDQ4PEBESExQVFhcYGRwdHh8gISIjJCUmJygpKistLi8wMTIzNDU2Nzg6Ozw9Pj9AQUJFRkdJS0xOUFFSVFVYWV9gYWJjZWZnaWprbG1ub3BydHZ3eHl7fH1+gIGCg4SFhoeIiouMjo+QkpOUlZaYmZqbnJ2en6ChoqOkpabH29nvAAADgElEQVRo3u2a+0MSQRDHB4/CEiFLwtJMkx6+DSuTqAw1Lcm0q4jKB6VSQRi+34Qc3fzZ/eAdcnDAcne7/nLfH29n9nO3LLOzOwtgypQpU6bOTJa+aHL6Kpmt1R9PvrTrRj5HRNwj6odbRERcsehF7iMiotBa2dK2ISIiigM6iTY8UcpbydKZkExf6P3KpNTR8aPydu6YZCg06UXeS0ldZQfLmTVsS2bilP4pew3lzoZLGznSaNSwAgC4cx8wXsqk40AeCr/FkL+m+4/8Ca/VDbqOpPb0U6PCgXNdZn7gVJrvZGTiQ+NC0EV54MRI8cD1ZuUX8hgZ9mwrcreL1oKmZ6LUcthmbKg9Nyczl22KhjGZuHlDcxh3NHsDwbdFmpWRuJv/+EvucaTYJxjwNjsqTuHWWEZEI5X51VIWeGkpi4Yru+QsTXycQSpKPShFDCA1+dSJXqSom6prwV+ayJTK72lLIFVFikOlHylrsESOQ1Ex1USOqsSuAuQ36kj8XIA8oo9cUxLb6RMxo0ROMECicnWbI3FZ7Xb3f/2nHflEgVwhcXEBAPQmNSOVyVqUxEWKH8+0LnAfq0fKxvVvtCE/aUcCtEVE1kgA3zpzJEBQEFkjwbXMHAkwkGCOBOvkAWskgGU+yxoJltY11kgAzr/DGglw4V2aNRLAvimyRkJNzz5rJIB9UmCNBHCEBdZIgPY9kTUS7GnmyLIpOCVkP3Mkt8EcGWI9fTp/MP6TuPgs21BgC7AOeH3bIltk86LIdvFyTgnIdL209pOeiRmF7NglzqCNQTbMC4gskfWvqtr36UdyPdXkzUYgm7YYb4Pq3ld/dqsLaRs5ZLultXg2Ddi4E52ISLUALq7xICakQC6QuNgBAGqDadSoaQVylsRljINa35b2o6ZRZRWJyGd7DvVIWRJzMzjCyxbUhfaYH47CPH1kuADpo3/QfbdwVdihjVwqWoiGaSN7ipDn43SJIZU6pjNFk7iverHlPkWicJl1MfHwVqmEdJhSyTR2vXTW3RinUBg+DlnL7mY8G0YTo1cq7RFrXLd9k7M8z/N5+VuCJ1I4P7zxPD8zPuRpqOaGQejUf4TMg8vLo+u0XGpoy+UbGdJXPV0cYtouUvyU/WdIPbpyU0br/ZfvJ/5TVmKX7pMZf9Si+f7LUPh3NNhZU821q4nI6sJoo3ll0pQpU6bORv8BFtxQhtIU9fkAAAAASUVORK5CYII="; +var playIcon$3 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHIAAAByCAMAAAC4A3VPAAAAAXNSR0IArs4c6QAAAZtQTFRFAAAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////LHKW/AAAAIl0Uk5TAAECAwQFBgcICQoLDQ4PEBESExQVFhcYGRwdHh8gISIjJCUmJygpKistLi8wMTIzNDU2Nzg6Ozw9Pj9AQUJFRkdJS0xOUFFSVFVYWV9gYWJjZWZnaWprbG1ub3BydHZ3eHl7fH1+gIGCg4SFhoeIiouMjo+QkpOUlZaYmZqbnJ2en6ChoqOkpabH29nvAAADgElEQVRo3u2a+0MSQRDHB4/CEiFLwtJMkx6+DSuTqAw1Lcm0q4jKB6VSQRi+34Qc3fzZ/eAdcnDAcne7/nLfH29n9nO3LLOzOwtgypQpU6bOTJa+aHL6Kpmt1R9PvrTrRj5HRNwj6odbRERcsehF7iMiotBa2dK2ISIiigM6iTY8UcpbydKZkExf6P3KpNTR8aPydu6YZCg06UXeS0ldZQfLmTVsS2bilP4pew3lzoZLGznSaNSwAgC4cx8wXsqk40AeCr/FkL+m+4/8Ca/VDbqOpPb0U6PCgXNdZn7gVJrvZGTiQ+NC0EV54MRI8cD1ZuUX8hgZ9mwrcreL1oKmZ6LUcthmbKg9Nyczl22KhjGZuHlDcxh3NHsDwbdFmpWRuJv/+EvucaTYJxjwNjsqTuHWWEZEI5X51VIWeGkpi4Yru+QsTXycQSpKPShFDCA1+dSJXqSom6prwV+ayJTK72lLIFVFikOlHylrsESOQ1Ex1USOqsSuAuQ36kj8XIA8oo9cUxLb6RMxo0ROMECicnWbI3FZ7Xb3f/2nHflEgVwhcXEBAPQmNSOVyVqUxEWKH8+0LnAfq0fKxvVvtCE/aUcCtEVE1kgA3zpzJEBQEFkjwbXMHAkwkGCOBOvkAWskgGU+yxoJltY11kgAzr/DGglw4V2aNRLAvimyRkJNzz5rJIB9UmCNBHCEBdZIgPY9kTUS7GnmyLIpOCVkP3Mkt8EcGWI9fTp/MP6TuPgs21BgC7AOeH3bIltk86LIdvFyTgnIdL209pOeiRmF7NglzqCNQTbMC4gskfWvqtr36UdyPdXkzUYgm7YYb4Pq3ld/dqsLaRs5ZLultXg2Ddi4E52ISLUALq7xICakQC6QuNgBAGqDadSoaQVylsRljINa35b2o6ZRZRWJyGd7DvVIWRJzMzjCyxbUhfaYH47CPH1kuADpo3/QfbdwVdihjVwqWoiGaSN7ipDn43SJIZU6pjNFk7iverHlPkWicJl1MfHwVqmEdJhSyTR2vXTW3RinUBg+DlnL7mY8G0YTo1cq7RFrXLd9k7M8z/N5+VuCJ1I4P7zxPD8zPuRpqOaGQejUf4TMg8vLo+u0XGpoy+UbGdJXPV0cYtouUvyU/WdIPbpyU0br/ZfvJ/5TVmKX7pMZf9Si+f7LUPh3NNhZU821q4nI6sJoo3ll0pQpU6bORv8BFtxQhtIU9fkAAAAASUVORK5CYII="; var titleLeftIcon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADYAAAAuCAYAAABjwOorAAAAAXNSR0IArs4c6QAABQ1JREFUaEPtWGtsk1UYft7TbmtBmOCFAHJryy0aYyJB4w8CatQfGo0LxsREQ2IwUYOoWceQyweBQiFozJQfmKi/xAsEjDEKiZj4A/+oIUGNhrZOLgqKMOSySdv3Medr6751q2xdRwfpyf4s5z19n+c87+18gqt0yVXKCzViV5qyNcVqig2TG6iF4jARot8wylbsJodjAw2YQsCU8pYF/moP4wgek2y/EVXIsGxioY2cbATrhBhfGot+pzRvJVslUSG8/f6ZsonhQ/oi7VglyuWUEo2eOEbq+uRY3zt4RtL9RlUBw/KJAZjxKidqmu8BuKNPLIQC3KXGOKmoHPLahONcIIq5vc4Z/JboxHY4khkMv0ERs46nxLmgTvkugLF9AhEcp8i65AVsxxq5WLAJbeJ0n3IvBZN6nCPOwCcPJprl66oSw0L6QrejWcCoBSI2LIn8H2yMksJPFen1v7QEfvaCDcUzi3xq2uiadS8K9iSXSRMgLJfcoBWzjm0hAfiGIe6U/C/S0mOOJAQnCVmbPIZdaJN//gPr0ESCiJFcbC+E9oRlKaAaWZyKys6qEoNDE27AfDF8XYgxxWBy1849MCaWiErSuz9l/fnxdSa4HYKZlpBrSSuVfJ/twsJ2RzrKIVcRxazjG1bzmsYReFrIJVoUWi4wwVmBrEUQnySWeFSzisc5xyg/gKe6ElDxycuJZvm4qsQASmgTIiarqygy1xta3RnELwkTSy2Tw8Vgbb4JzFIh/J6945kGaWp/ceCqVUwxF8xi1oXCmCfgagHGuDlWyLUc2k5A1tZ3Ys+PngppN8Zt5shRqm1QuTWvsE02Evp+ssW3ZaCqVZYYgKmv8Vp/Gk9AuUi8Iel6sqmDby+m4fz6ivxeDDa8jpNMPd+EojFPzhaTU5qRF5Ir5MhAyFWcmA3JSAyzYfC8CG/zgnELH5khJJZIYR+29Z5GbOM24FIq6gvkhLr7UKt/W5WJAXDoj4zI3A34nhXkb9+DSsmf0mqWH26V073AOvSHA7rUwHinkqwSKwcycw6BYjmoNiTrLuJxAR92G7ANwsKy/2Vky6ED2IePek/+EYejEdAWMZiALAQ+EGp+4Ai0FVfUUioOGTGXXIyz/KJPQmR2D2K5dDvaIab1ZIuc7QvczM2cllU8B2rANnsBMirpralooMfMWRViucaduU+MvwnE6GIQKtiWapEv+gTn0ITqsw8Yn8wr7BPmaLITW+GIXirfhlQx63zyBo4JAE00ehcBv533C09TEXMifQEr2x3pKkVuehBPKTChcIppfJZaId9UnZgFMCPGWerHI0Kdln9xdw+3YnYkorK3FNCJMV4XMHhUBCOtDYHT5wx2nGiW8/9HbsgVc507NNODuIfAAqiOoi0G+WUUZzo6TfzPNXKuFNBpcc6s09zzJmNAMTiYbJY/qk8s9wJoNMBDgN5M02NsAmk+L5lrl4q5EvuXR7G88/AGRkRwP0XH5apk/jsQ0ZEG3u6zr10JxNypZBPmkZgDIFBoASJut9qfiOKrwTwuvXdwWRWzjq+Pc1Sj4l4BptK2XrengaI43dWA3UdfklNlitTj2GUnZr3bYVfqMJ+ecYuKjBAHk8uxvxKqVYWY+3bbiFuQxY1+kxu17CcpfxZ/+9M4UPykKUfBKhEDsJr1oSCC2tU9Q/oBTQAXBvvpLRfdV+mqEbvShK0pVlNsmNxALRSHiRD9hlFTrN9XNUwM/wU+QeA+cB9fBQAAAABJRU5ErkJggg=="; var titleRightIcon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADYAAAAuCAYAAABjwOorAAAAAXNSR0IArs4c6QAABSNJREFUaEPtWEtslFUU/r77Tx9TmphqEHkUCp0GA0YN6soQE1e6kBijBInESAwFFFQS+kQZCNBSRCS6UeMGN6aAQlxQEhIIMS58kZCoCDMtYEuqAgWF0k7/uZ/5pw9m+rAz06EFMrO8c8893+Pcc88McZd+eJfyQpbYneZs1rGsY7eJAtlSvE2MSBrGxDj2iXLKLmI+cjBjJKTWItrt4mTrBrYlzSZu44QQm12vR3ywb0NmwUig5aBFxIrwev51RxArCSrfl29XA6wEce8IoCXDN8LX8TmCtBNETCzejql+i/zBADrzcKV1HS/HrwcatEBWmwk8DYww+Rh95cis/L2S/6ZDyosZcynO2KLpfh++lFScAILohlgequax/vUZH8if5+J1WFUTKBwOtIQLrstnz73LlnRJZYRYaX20nOBuMFEkAU3XDJf+uZ7X+wEGGiILYH1BAE8m3HNPXkEgBHBlqBL7AWrCiM2sU1GO0Q+0mBIPQsBFkU81V/F8//q0oAry8/GqkWpB5MSoMAY/VjUeCyvtu+4zFfFipEsu/VIMygT89j1YvtmrNEgCErqt4drmCu6PBzV7hx52rLYCeHS4pAIuRHu4uGUDz6VLJj4ubWJz6jXTQHsJTE90S0e7cs2K1nW80b8+ZYcmFUaxFFBVTIK+T28FAgaIiKwK3cAhbGJkQokFtkdXS1w3SKVLcvlieAP/uLkuBuoxD4i5NTe2HvMXkHcvBRfigS5hV1sNL2WCVNrNY9ZWTc119LUSO1tEYG24iofiwU3eqMKiSVgiac2wXRA8DUWCoarcX8faMMZWii/JKXvCVgNmkaxuljL1bVe7qWnddbMEPU9KtmFujtEWGM6EjTW/gRgCVy35cXc7DifGjd23lO9Y7G5RuwkUxaW/2kOWn61gezwkrxP6/dFXDMyywVAF9FBs6jHYMzhu7LTSeKDL6twVonm+t1kDNIhY8MNwJY8mAhLnNCDgyG4CeP8QYuSpqO35rKUq52QmSzC+MSUt0Oz3NcvnYhuA3P4gwZ5Am9kZ+ojdCQdtVG6Z374GcdFQUroMmMauXByJ755JA0liY/Kl2CinrBmrZezjiIJwIETxD2Q2h2r49+BcpXUKGIMaCPckPAeyPTDmuAz2pTu5J8Er+VmxdKeK6dq3QBR487YFXNHsaa7kj8MlCtRrFWkXxr7z5nPjtXkjyIatdRvDtbm/3IoSTLkUS+u1BMY+NhAonQp1Ol8M96B6btHYdwj4+96t2ItF4YqFPYw237EhpZuMDSnsSaoUS+pU4hgsI+B48lOms6cLn54N8sqQXBIDDXYViIcGRIiC1piIsTjRDRw8X82OFDCmtXV0YkH5Avl4QcSsWBe0cGnQdKaSvw2XsWSbHnQcu5yEb6AMvSoU2uiYA6EKhtNCmmLQqMRKGvSAY/EceydyMIrzZyJoQpDukFzeYFyA5bC2NKFhENccmuOnS/AdFjOaIsa0to9KbN5GFXbGjU6++9ARWjuotfelDtRrPoRFMP3PgYVoPCJnop04eDbIrrRQphE0KrGkz2yUE2jGywKmse9HJ70eCHREDb65FdPF/2HLGLHAZs1nHhYKvf990JvbhW65+D5Uy5+TFihDGzNDLChfWQGekRJ/SVuhvfknNGHv+NyreE0yQiywRnluMYp8nX2d0HuPfdC1yei4UM7ODJmQ0jEZIZZSxnHanCU2TkJnLE3WsYxJOU4HZR0bJ6EzlibrWMakHKeDso6Nk9AZS/Mf+LvuPmZJ/LcAAAAASUVORK5CYII="; // -var script$4u = { +var script$4B = { name: 'VideoModalPlayer', components: { videoPlayer: VueVideoPlayer.videoPlayer @@ -79184,7 +79619,7 @@ var script$4u = { }, data() { return { - playIcon: playIcon$2, + playIcon: playIcon$3, titleLeftIcon, titleRightIcon, // 用于存放