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,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAYAAAAdHLWhAAAAAXNSR0IArs4c6QAAGghJREFUeF7tXQl4lNXVfs/3zUwySUgyS9hFQCAq/Cq4/C4smQBaEdfWpa21SO2jdYOZKG615q8WBZIJWrUuVWtbq1KfWmuxgJAJiLUuuFUoCogLsiSZmezrzHf+nm8yIXsmycxkEO7zKDDfXc97zz3nnnvuuYRDJM1eWmXj5KZjoPExTDQWrI0iRRnGgB1Mw0FsAyiZwPuZ8TNPnn3DITK0HrtJiTqInBW+KSA+nUg7nUDTmCgbQEprf4kA5s7dlxEx6j1OayqIushwsIiAvuHOdG+i0kD6lTAA5eez4knefw4ZDWcTKWcDOF4nXIjgEabWzKUep3V4TwA5CsqWwaDeBMY7Sl3z5RvuGnYgwkbimm3QAcpZ5h2tGLQrmJSbQDRGH31XnNE9WWoA1AGoIXCQQZUK4eYNTttb3RVxLC+dB6O6OtSW/v9nPC7bwrhSPsLGBg2gWcv3zlBU03UgugxEhl5AqWXGNiJsA2grE+9WgW+AwAFqNHotDZb6P+dTU4RjxqyV5acqGr3TJr/L47IVdVd+ZlH5cYpJ+7rkhqEyGeKa4g6Qo6D8EjYoN5LGDnQnR/R5TRsZvFnVsMmgGLasdWX4okkZR6FvHiu8QAG/Uey0/7qrui9dxar3K98fWaUrwFoZgx4PNKruzXdk+qPZl57qihtAjgf2TYbR+AiIZnXbIcYnAD+pqspf1y+2fhUvInTXTk5B6XRS1DfafSf4EdRu99yS9UQ8+hdzgM59yJve0MxLoSg3dCNfmgi8CmR4ptiZWRyPQUfaxuyiivEaB3d1yh/i/H8iEFjiWTLszUjr60++mAKUs7z0cjKoD4JoWBcyxsuEXxubtCdfvy1rb386H48yuUW+c5nZDeDY9pwUVvO1Iq6qubMkf1xDLPoTE4DOz9+bUp1meoFU5fwuuIZBuEdtpIfW326tjMWgYlFnrrv8RgbdCyCzw5InEnMPBfnHxbfao74CRB2gmYWlU1UyrAJhQmeuoVegBG/zLM76NBZEjHWdOctLh5OqFIDoh121RczXF+fZfxPNfkQVoNyC0ptYNTzUmWtoJ8B3eVy2VdHs/GDVlev2nc+MpSCe0ombNH6uKs129ZZrqTka/YsaQA6392kodDW0Dtt+ot/YR1lu+vNlFIxGhxOpjly3t4CBvI4gEfCfZmiz33Bm7Rtof6MCkKOg7E9Q1e93XNIYyuISl+XBgXYykcvnuL0/IeDJdmYzXcvT9gSITxsoSAMC6NJ8NpWn+1aDMKeDvexzRaGLNyy2fpzIxI1W3xwry7KhqasAPqFDneWKwvM2LLa/29+2+g2QgOPL8L+tMZ/UvnHemJbaNO/Va0eKfezwScyU6/b/hYkv6jhoIvXkYmfm+/0hRr8BchT6NkLBzA7L2msel+28/nTk21LGUVj+x05aHqPeRIbR/TFX9QsgR2HZc1DUH7QDh+h5j9P6g28LoQcyjhy3v4CgtVcegM/UJjqtr3u/PgPkcHt/B0X5MTTt4BiIXvQ4rVcMZFDftrI5Rb4VxHxLu3Exb/fk2Y/ry1j7BFDuA/t+xmbzowge1JgZ5ClxWXP70ujhkje3yPsMMxa0HS8BLxS7bN+PlAYRA+RY9k02TObt+klA61aHPvS4rFMjbexwzOdw+18CtO+2HTuDvl/isr4QCT0iAignf3cyZWTsADC6jdypaGrWxrx5W1Z1JA0dznkcbu+HAE5sD1JwYolr6M7e6BIRQI6CstdhMMxpJ3dU9RTPoswtvTVw5Dsw/dEKi7EhWAZAbaUHYa/HaRvVG316BcjxwP4LkZz017bgMHBfict2d2+VH/l+kAI5K72Xk4aOy9o9Hpftlz3RqUeALs3faipPH+4DUWrr0qZgjWex7dwjxO87BbrS7IKMMZvybF93V1uPADlWlD0Go+HaNtzTZAw2W9fdOry27907UkIo4HD7dgE8XqeGbrLj10vy7OJm1mXqFqCZhd8cpSrmr9puRkmhm4oXWx8+Qur+UyB3pX8ma9rGg7KIENQC0zblDf2gq1q7BchRUPYeVPXkVoCId3mc9gn979qRkmEKONzelwC0Vb2/8TitR3XlaNklQLOXHZirmYzrOphypnuc1pg6SBwuEOrblvR0Oe43hZc60ro+je0SIEdh+btQlFMOcg+94nFaO1lp40ZQsRQX+eYy4RxoGMFEXgVYN7PKsjo/n9rYnOLWowE35Cj0ukAobK2I8YnHZT2hIxd1AihneelJZDB80NYhWlXo6MHyU5tRVDZCZeVFAmZ0pAqBP9BIXVjitMhG8JBLDre3HkByuONVqVZTx6PyTgDlFpa/zApd1GrOIfzF47S1M1XEixJnLSsbYjIq4qLb3uWpfQcCxPhVZZr1V9HyA4jX+BwrvbIiiDxKJcBd7LK1N652vN0QIoha1ZZ7gqxM25Rn6VLDiPVAcot89zHzXRG28xGTsuBQ46bZD1fZmhubU7rbC7XjoBx3WR6RWhCWPQrRpxuc1p5mb4S06182h9srG7jRfSgdAOGXXGm9vySfAn0ol7BZ2wHkKPL6wLBIb1UF8Fbz9R/cHV0/r0gpobsMB9A/x0bCFlZoQcki6yeRtpeo+VoBchSWz4airBfuEXD2VgTLtuUPHTpYHc8p8o8l1nYPoP0mZv4lqm3LDmVuaguQ+FDfLD/46jRMGmbcffvZGUuGpmPHaAt9NABC9atoFAAKtXuIc9NBgNzez0EYxxpQXhPEz+dbkZOt4tMDgML4DxHWMOO5GRMoLkcMUQMoBFMTQD+3j7a4DzUHSh0gx7KybBiV7fL32iaGPVXBHfMsSE0C6jrcW/vvfmQDa/jD9An0bL9YI8JCUQYo3OrbrPGCklvs+lgTLTkKvQsJmlqclyWOkC0LAICcgrJrSFWfFPlzoCqImZOSsWjOEPhqu7guKpCGjrw/1oJYsX8Cnr+Mou/WGyOApPONgHJ3onFT7vKyW9ikrgjRlh/3OG3XhVZo4aBC71NQsFA+7qsMYsGZQ3DZqcnYWxHRHPsKGn5LwONnTaDSiEpEkCl2ALU2/jYU7ceJctPixHvL9ltSlWEKEZgZ9tFWgyzHIYDcXlFHJ4vfe22jBtfcTJw81oCySL0NQlxVS4xnNcbT0ZBTcQBIhl5PjDtnVlsfGmyb3qVP+Bds29v8GyYkm01q4ZY7QlYFatlvSDAHQ0MzIy1JwZJzM5GVRqhpjGCqd5GFGM9rASybkd1/7S9OAIUX+s1BJbhw06Kh4hgT1/T+l3y8PR1XVNRjylufNx3j+bT+Jy/8JPO9VhmU6y4/jUFvyw8VdRqyhxuRd06Gfoja3N8LIwfl1HotiMdnTiSxN/UpxRWgUM/iyk0bP+PjDAruYAU/EnN8sgGwpkGrrcEPTxxDrb4LlFtQ/iNW6PfSw9LqIHKPNeN6R1rXCkKfSNwuSsh2MJ5vVvB7xzj6IpJqBgGgg9wUUK/adGvmQDbJ3Q7x9V2ckcS4T1Fxo56pzXUq+atRAQyNyDolm8r1JS6nsPwuUui+sIJw2alpuOoMM/b3z8jSG+2ZCC+wBvf0Y6iVjbsqNGgAhTpTy8S3lSy2PdpbvJ/eBtz2+6Yd/D1FxSMgDO0pvI2i4JIzx9LLOkAOd/kjAF0v6JVVB7HwrHRcODUpVgC19peAjWA826TgZcc46qQvDjJALf2kkmBQWThQbnpzJ08B4X5WML8j13QEWO5+BZuxZOYkWtECUOh8XDS4yjoN1+emI2eSCaWRanB9mUJd5JVmFeBvFMRzZ06kteEsiQFQiJuI6KfFTuvzfR2qZysPN5qRB0LonCeSoFDi6RPEQzMm0KIQQIXejSDMDGpiNWAsnpOOU8YaUR7PqDQtSgUxdjCwOgg8fc/fKqoHaCztKz17zM+MK0rybC9GWunmz1kcEm8BwRwRMC0VCw7pZvxu6ii6OsxBYvbIbg4y5KNzbiamjFJ1JWEwU2l1sPjXGyoT6daEl5OCY3sKqLR1K5v8yVjIjJtJxXF9AUZoHdCAYemAUcWqCTa6PCyDSgHKagowFAX6JnXiUBUVclo+iElU/sJ1kZky4tVNJrqyxGl9rmN7b+ziMWBcRYTroGBUX4EJ1ye2z6oGDU9vrq365466d4YOUZeSw+0VaZPWGGAYVYJrbgbGZ6moPAJQJ9yJeFmx0357+MOmz/i7qoormXDBf09ylf4CI/UpBNjSgMK1NXjloxocP8IkwcDqBCCRNqlHAOqdD1VCwT3zrasVBeeyojseHhOx8O+lejkkNZuAgjVV+GhPI+xp+kUIFoBkQ2Q7ssT1DtDF01Irpo1Jah+rp/diEeXQATICD66vwpYvG2ELAVRBDrdvB8ATREkQ887iuZmYPEqFf5CVhESTQSkmguvsTCQZer2xExEgHTMZ1JAVoWh9Ff69pwnWVEWy7Bc1+w0QposGV9+sYdGcTJxytCG+anYXQ0o0gMTC8j+jQp66sUgmA/QoOu51ldhZ2owMswIQ76LcQt/LEnxBPlbVa7jBkYGZk4xx26h2N9hEAcikEi6cmooTRscOHKGBLG+1TcCKtRXYXxnQTxUAep8cRb7HwHytbHLLxdQzPR0XnBR7U09vszARABpnN+LiaamwpOjLTUzTkGRgXwVjxTo/6hoZyUYSpfAf5HD7fwFo/yety2nqFaem4crYGUsjHuRgAiRcc/ZkM04bnxy3wOLWVGDr3iDc6ypgEIu2qsu6pyjX7b2agaflX6VVQcw53oyf5aTB25U/QsTkHXjGwQLoaJsB352WBktISMctDU0HNn7ajEeKK5GZooQCIhPyZYk7C8ybpSf+Ok3fIOWdk45AcAAHdlEYVrwBkk26TM4zhGtio6j1SJURGcCL7zbgD29VY3hG6DK4xFOg6fdXWIxJQdkLKfXNjPRkBUu+kwn7AI68o4CPfrobL1OPcM3FU1PDe49odL9Pdch8sA8BHvXUYt22OgxPb7mtz4GTwk4jEkN0UljVFnvc1DGDq2rHA6DB5powikY15AtfsLYSn+5v1pc4OYJvQJ2tBSDfcwDrkar2VwZx9fR0fO/kpEjdrvo0WyLNHGuARlsMuGRaKrKGHIwtEWnfop0v3Qzs8TGWrfEjEGSYZDNM2Oxx2mboAOUUld9ATPrtbXFcnDXJjJvnpOnWhI4hSKPdue7qixVAoiHNPi4FZ05I1g2UiZBE/ry+rQkPF1e2nTArPC7bEr2Ls1f6TtA01h3kaxoZQ4couH2eBSkmoD7iJyuiO9RYAJRIXNOWWiMzgSc21eHl92swMtPQ8okv8rjsr7R1npcItcPlZRjR5m79TibOGG/Ql7nB0GqiCZCs78I1ZyUQ14QBEhOP9G/p6krsLm8x8QBBtYlsEvyvLUDyWMRP5Ye9lUHMPT4FN+Wmoqymr8/5RIeTogWQzEiRNcPCmlF0uheVWoQZhmcA//o8oGusYn+TZZcJr5c4bXr0kVaAclb65pPGr8qP4mEqO9lfnG/BsHRC1SAc3g0UIJmVjmwzZkwyJ4ys6QpVAWjl6zVYt60eoy1q6PapoizyLLboAeJbAQqFWPZWAZSkc1FFENflpOOiqUn42hf/ZU72ZEtX9++ZnkTmmrYgif1NLDb3/d2nX/tJMYbgCJA2Mhxvu50eE75VLT/KJa7Jo5Jwx7x0/Y6QWBbinZavqUB1Q+RxKmR5yMk2Y1Z2YnON0FE45Sgr8OctjXhyUyVEgdG5h/Csx2lrDaPZDiC5Eq41Nesup6Je+2s13HGeBaeOVbFvEJSF9dvqsfGzyNZXMY9cMi0NI1rMJPGeTH1tTzancsRw3+pKbN/XDHtai0uDqp3iWZTVeoux004gx+0rJrBDNLe9/iDOnpKCxXNSsVdcgSNxvOtrT3vIL34Sj2+s0j1eu0vCNcIxsncTuXMoJJn8oy3AmzsDWL7GD2uqGpKTXQSs6gSQHi6LNXHLhRyD1zcx8i+0Inu4orsDx3tzJ0vcqndr8IW3c9gDkTUXTU09ZLgmPHlkIsnxwv2vVeHt3Y0YmaHqKxaTcnWJ0/K7tpOsy720o6B8OxTKFjD2+INwHGvGreek4UA12oUtjddsFcbdVdqsHwULYKlJCo7JMspN9EHZow1k3EEGjrYCm3cGcP9qP+xDWrgHqPC4bHqMil4BynH7riDi54WLxIAqS4zIohkTDbpGF28uGghBEqmsTLQUIyCb0/y/VeKzA8261UY3pxHd6XFa748IIMnkKPTuBmGsgHGgOogJQ02498IMNAVDN78TxIyVSPTvtS8CxDg78Pw7jXi8pBJH21ufj62uSrXaugoG1S2dHYX+E0GaHuZLFIYvvQFcMyMDV56ehC/K478v6nX0CZ5BwLGniTGacdfLfjQHNQxJVkKqNdN5njzra10NoUdGCIduFICqGxhyTP7A96wYmUHYVxmyIR1JvVNAMBAr+igLsGJNLf7xSS3kkFD8ECXmXbHLPq27WnoE6Bx3pbUJAf21eAFDFIbTxiXj7vlDUN0glu8j8qh3eEJ7Slna1m8LYMVav35yK4BJChIfv8lp/0+/AJJCOUXea4j1J8D09JUvgEtPScN1s1J0S/dgnRdFQphEyCNKlhwn7CrT8Iu/+hFkRqY5pBgwUUGJ03prT/2MSNY73F4J6HeSLHWNzYyyGg13z7cgJ9uA3eVHuKg7AgsIGeaQ1nbbS5XYvr8RY6wGXTMGuMzjsvcaTSwigCRuqIEViSGQKlqdnBeZTQqWXmzBaAthj/+IPOoIkgj/ZGPoQlbR+lr8/aNaHGVt1dqgGDB5w822bb1xeUQA6UvdSt900lh/eFzk0Tf+IMbaDbj3olDQpdKqIyCFiS3giDO8mHOe+1cDntpcjREZCgyK7i0qS1uXF8H6rMV1LJBT5L+HWMuX38NWhonDjFh6caZc29P9uQ93zU7AERocbQNe2tKIh4urdEOo3I4IyWv6g8dlvao3zgl/j5iDwgVyirzriDFXb4qAr30B/O94s67ZhawOhy9IYXDGWIF125p0Nypxgh+SHAYHWz0uW/vXi3tBqs8ASX0Od3kJQLOksEyKr/0B3SPz9nnp+l7pwGG43Al3iDJwlAVY80kTCtdV6lwjPm4yceV1Yi0peFpPl5AHvMS1rSAcISsM0jcVAWQPM+Hn8zOQNSSkOBwuNjsBRzygxL/6pfca8Ns3qtuBI1FGkw0Y94+bbVWRLm39XuJal7qCKruqNH+sASN0NqTQHumYLBPuOi8dY+2KbljVd8v94tO+DmVw8gt3yNGBOB/+/p/1ePatalhTVKSb5VUTvU9NioapG27pXWOLKgdJZaJ+G1nZwID+9KSu3VUEYUlRcWPuEEyfEAqIIVaHb5vyoNvQENqEivH4sY01WPtJHYamqzAbW2QOYS80ZZ4nz9LvoLwDntuXrmK1fI9vHQA96IQeb7tGg5yGXnBSChacmapzkMgl+XPADQ4Oo7RrVZa0JEPItvbeFwE8trEan5cGMCJT1ccfAo+2KSbDzA03puumsv6mqNHL4fZKnB3dl0tkj7huCTeJs+B1s9L0JU9Aktl2qMqmMNfo0UAMwOqPG3V5I5NRTkXle4ix6ENjsGl6NF4qixpAIe3Otxxg3bakyx0OOUHaUlVcONWMc6eYkZYkDvpAs3ZoARU221hSgX/vCeIv79dh844GZJgJ6eaQptaSnvK4bNf0l2M6losqQFJ5TqFvPhH/EUBGeMkTJ0R/HePEo0y4ZGoKTh9vhBz9yp5JZl0iKxECjHjfCNfsq2S8+nE9Xvu4HjWNmu4LIVbpsMGYoCwsdlmeiRY4+kSPZmXhunLd5fI+6KsM0l8pDnOTRHSUmTZjUjIuODEFk0eqOidJrBMJv5koS1/YeSnVFArPUlELvLGjEa98WIfPy+WYWm1jGQh54wQ19dJYvBITE4DCQDncvlsBfkDEUlg2CRAClOywZ0xM0mXUsSMM+tLnr5Oow6F1PKYd62ZWhm1olpSQEiAcs+XLJhRvr8fWvc1ISyL9xvdBWQOwwg9kjbT9PFYR7WNOh5kPVk5UtaA8eXNBmC5hJaK8RtNn4uRRJpw+LglTRpswKjPUpYo6oDFOD8xIf2SCpCWHJsjO0gDe/aJRB+eL8oB+JV4if+gXe1t9A3kjAUuKXXZ5gCpmKeYAhXs+u9Dv0Eh7tO1rWjJgcSn21Qb1WGniPJ493ITTxyfp0YczU0Jqe0OTREEJLYNthHG/iCJtSp3CIbKEidVZ7kDtr9Kw5YsmvP9VI3aVBVBRF9RvG4jfQHtgsJ/A1xe77HpM0VinuAHUKp+K/DcxazdIEMHwb2FzkUR8FIXCbCL9KGOszaD/OcZqRFaaou/OxaQiM16AEkVDABYhrZ9QtvF8lTzyn4AR/k/+LSALl8gLL/sqgrpDpDjEiGyRf4vQl2XMaJAI8O3I/zUTnjIFmguioT5HCmzcAWojn37A4Os6Ph6oB1XVgJoGTff4F6LKTBaTvdwnlZ26uMqGZ7cskXKnU4JPSEBCGZCAJXVIBK+GAOvR9CXMTUW9pkdTERkof8oSK5NCjkqEU2QpC0+Wg5OHP2Cix7jS+vRgvEM0aAC10fhOg6Jexpp2rQQW7GpmiQuybAZl8yscIyAKUSXyVJKR9ECEchgmnCLfxP4X4q6D5aSOcFkBNLmlbDeaI4PwBJHyp+LFlk2RzvZY5Bt0gMKDOnvF/qHNBqO8PinWiNkAeozLJstPiFO40xIXNimF5Y2qhDijl/1WLQMCxlqQ8kqJ0xJRAPZYgNK2zoQBqG2n5D2JxiCdxRqfAcL/isMKgF4dLPpELIIfzB8T4V/MeIs105slt6TrV28SKSUkQB0JdO5DO5JqA7ZJKmkTWVMmksLjmHkkgQQ0cThPBSEFjPAVabmvIheLJB6rnMHIsznfkMJfsUafEWk7NRN/1tfDs8EA7v8BZd+IfdEOQOYAAAAASUVORK5CYII=";
@@ -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,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAYAAAAdHLWhAAAAAXNSR0IArs4c6QAAGXJJREFUeF7tXQl4W8W1/s+9krzL1mJnJSQhiSHkKwQCjyUxlpNACWtp2VraAuU9KGssQ4ACbV7hA5LYcqBAWQqUthRKeSylULJZTghLgbCVpIFsLCFxbC3eN0l3Xs/IcrzIlixLF2e53xdCdOfOmTn/nDlnzpw5Q9hHnrl3N9pEeudh0MRhgmgihDaOFGWUAOwQNBokbAClE0SNEPi5u8y+Zh/p2qDNpJHaieJlvhkgcQKRdgKBjhFEhQAyu9tLBAjRv/ncI4E2d6k1C0RRCuz9hEFf8wuzd6TygNs1YgBavFgo7vSa08hoOJVIORXAdMm4MMPjfLoL17pLraMHA8hRXrcEBvU6CLyrtAYuXHPbqD1xEtG12LcOUPES73jFoF0kSLkORBNk76NJxsBsaQbQCqCZIEIC1KAQrl9Tant7oE8cS2sXwKi+GqYl//uk22m7XFfOx0nsWwPolKW75iiq6SoQXQAiQwxQWoTAJiJsAmijILFDBb4Bgnuow+i1tFva/rqYOuPsM05Z7jlO0ejdHuWdbqetcqDviyo9Rygm7evqawp4MOj66A6Qo9xznjAo15ImHBhIj8hxTWsFxHpVwzqDYtiwwpnrSyZnHBW+BUIRlyoQb1SV2n8Tre7znxOq9yvfn4RKF0FodQL0SLBDda2/Nc+fzLYMVpduADnu3X0kjMYHQXTKgA0S+BQQj6mq8tLqhdav9GLCQHSKy2tnk6K+0es9wY+Qdov7xvxH9WhfygE6/X6vuT0g7oaiXDOAfukkiOdAhierSvOq9Oh0vDTmVtZP1kRoW7/yYcl/C8HgIveiUW/GW18i5VIKUPHS2gvJoN4HolFRdIxXEH5j7NQeW3Vz/q5EGq/HNyWVvtOFEC4Ah/eWpIiZr1WKxuZfVC+e1J6K9qQEoLMW78psyjY9S6pyVhSpESD8Su2g+1ffYm1IRadSUWeJy3OtAN0JIK/PlMcacyeFxE+rbrInfQZIOkBFFbUzVTI8B8KU/lJDL0MJ3exemP9ZKpiY6jqLl9aOJlUpB9GPotEiIa6uKrP/NpntSCpAJeW11wnVcH9/qaGtgLjN7bQ9l8zGf1t1lbh8ZwmBu0FiRj9p0sTTjdm2yzZcSYFktC9pADlc3ieg0GXQ+iz7iX5rH2e57q8XUCgZDR5JdZS4vOUCKOsLEgH/DkCb+0Zp/u7htjcpADnK6/4MVb2475QmoCysdlruG24jR/L3xS7vzwh4rJfbTFp52s4gieOHC9KwADp/sTB5zL5XQZjXx1+2XVHoe2sWWj8ZycxNVtscy+sKoanPAeI7fer0KIpYsGah/b1EaSUMEIPjy/X/UxPi6N7ExdrsrM4Fr1w5lv1jB84jBJW4/C8IEuf27TSRemxVad4HiTAjYYAcFb61UFDUZ1p7ze20nZFIQ/aXbxwVnj/1s/IE2kxkGJ+IuyohgBwVdU9DUX/YCxyiZ9yl1h/uL4weTj+KXf5ygtbbeAA+Vzvp+KGu/YYMkMPl/T0U5afQtL19IPqLu9R60XA6tb99W1zpW0ZC3NirX0JsdpfZjxhKX4cEUMm9u38uMjIeQmivxSxA7mqntWQoRA+UsiWV3ieFwKU9+0vAs1VO28Xx8iBugBxLvimEKWOz3AnoXurQR26ndWa8xA7Ecg6X/3lA+37PvgvQxdVO67Px8CMugIoX70in3NwtAMb30Dv1nQFtwps35zfFQ+hALuNweT8CcFRvkEJTq50FW2PxJS6AHOV1q2AwzOuld1R1lvuGvA2xCBx8D8x+qN5ibA/VAVC7+UHY5S61jYvFn5gAOe6tOQfpaS/1BEcAd1U7bXfEqvzg+70cKF7uvZA09J3WfuV22n49GJ8GBej8xRtNHvNoH4iyuqc2Ba+7F9pOP8j8oXMgmmUXEpiwrsz29UC1DQqQY1ndwzAaruwhPZ3GUMC68qbRLUNv3sEvmAMOl28bICZLbkiXnVhVXWbnMLOoz4AAFVV8c4iqZHzVczFKCl1XtdD6wEFWJ86BkuX+IqFpa/fqIkJICx6zrqzgw2i1DgiQo7zufajqsd0AkdjmLrVPSbxpB7+McMDh8j4PoKfp/Y271HpItEDLqADNXbJnvmYyruzjypntLrWmNEDiQIFQLlvMZt7uN0WmOtKi78ZGBchR4XkPijJrr/TQy+5Saz8v7YHC0FT001HhdYJQ0V23wKdup/U7faWoH0DFS2uPJoPhw54B0apCh+oRp1Z0X+1UNaTeC2BeV8NXh9TQLetuKOBFctIfven17YDD5W0DkB75vTHLauq7Vd4PoJIKz4tCoXO73TmEF9yltl6uiqRziq0buemlvNMvagaoh6KdkOxAE73pReOZY7n3NGhgfZRFgKvKaevtXO17uuHkJXU5JqPa2FN6QkI5Zl2ZJaqFkUygHC7v/wE4b4A6X3A7kztI9KY3EK/mPtBoC3QEMgdaC/WSoGJXXRmRWh7RPQrRZ2tKrb0D9pKJSo+6HC4vK03zANU3u522nGSS1pteom3vBZCj0uuDgIUrUxXA2ySu/vCO5MZ5DdRQh8s76Ckgt9MW0y01FCboTW8obetZtrvTjgrPXCjKapYeBmdXfahu0+KCgkQrHup3ejNMb3pD5UekfE+AOIb6ev7B16ph2ijjjltOzV1UYMaW8Rb6OFEC8X6nN8P0phcvH/qW2wuQy7sdhElCAzzNIdx+phXFhSo+2wMoAv8mwutC4Ok5UyglWwx6M0xvesMCyLGkrhBGZTNX0tIpYM9ScOsCC7LSgNY+59YIWCM0/HH2FHoqUaJRTc6DOgiOCu/lBE2tKsvnQEj5SAkqLq+7glT1MdY/expDKJqWjhvm5cDXEuW4KH8RVuefaCEsq5mCZy6g4Yf16j2i9aYXazCXLK27UZjUZWHeikfcpbarugFyVHgfh4LL+eXuhhAuPSkHFxyXjl31saqV77+Cht8R8MjJU6g2ri+iFNKbYXrTi8WXo+6sq7FkKaMUIgghYB9vNXA8u5Qgh8v7KYAjOe69pUODc34ejp1oQF280QZhqWohgac0gScS0VN6M0xverEAOv9R/6WbdgV+KwjpGSa1YsOtYa8CySOKQXAyB0N7QCA7TcGi0/OQn01o7ohVbfT3JPCMFsSSOYXxW396M0xvegNx8oMvxXS7GRfVt2HG29s7D3N/1vazZ3+W9363DipxeY4XoH/yD/WtGgpHG1F2Wq7cRA0kemBkr55arYXwSNFUYn/ToI/eDNObXt/Or/1cHGFQcKtQ8GMOAU03ANZsaC3N+NFRE6g7doFKyj0/Fgr9gSuobQqh5PAMXO3Ijm4gxOJy3/d7gdoMgWcCCv7gmERfRKtGb4bpTS/S51XbRG6awF2Kimvlbz38J/y/RgUwdCB/ViF55BRXXOG5jRS6K2IgXHBcNn5yYgZqUnN6VBDhWaHBNfsw6hbjLj2437t61m0RP1BUPAhCwWDpbRQF5500kV6UADlcngcBupq5U9cUwuUnm3HOzLRUAdQtPASshcBTnQpedEyier1HtJ703twqZoBwj1BwZl+p6TfpEBAKYFHRNFrWBVB4f5wtuIZWDVeXmFE8zYTaeC24oU57fcozWQX42+0v+X48WFX7orPUvVGMNmagDITwPk88SaE40ieE++dMoRvCAFV414JQFNLYayCwcJ4ZsyYa4dEzK81/Rs0dLw6e6WVfA2j9dsEBiTeCkBEXMF2jk3EwZ+D3M8fRZREJYhdPYSAkwC9L5+dhxjhVGgl6Pne8tO8DtHGjMPnTcbkQuJ5UHDEUYJjXQQ0YZQaMKp6bYqMLIzqoFqD8zqCAokAuUqcWqKjn3XIdn1gA/foc6zWKhhUnT6X+qVkSaGcyddAb28QECPyECFdBwbihAhNpPvs+G9s1PLG+pfGtLa3vFuSod5PD5WVtk90RFDCqBOf8XEzOV9EwwgC681xruB8C60BYoQWwuqiwV0qxIcGUDIDWfS6+r6q4RBDOBkFJFBhuuEKALRuoWNGMlz9uxvQxJk4G1soAsbbJ2mcAknLfrXDXI4TXNOCtzCy8N2ssxX1wORGAeArzmXCSouB0ocjAw8PiVv4xhg9vkmaYgPLXG/Hxzg7Ys+VBCMEA8YLINtKnuG4J6meXdv0gwP14nwQ+/s+I/kAE8BkJbJ99OEW1R2MBVFVqVd7agQmahiNIwTEkcKIgHAtgzJBENc7CEiAjcN/qRmz4sgO2MED15HD5tgBiChsJ7N5ZOD8PR45T4R9hRsKAAA3CADbhib3tAjuFghoS8BDQoGlo+uXffIMm2LjzXCufODhEVr9XYuNk99CLGdSwF6FydSP+tbMT1iyFK6lhM/sNEGazBdcW0HDDvDzMOtSgr5kNIJaRkAhAg7FJb3qxIDMZILPouFY2YGttALkZCkBiG5VU+F7k5Av8srFNwzWOXBRNM+q2UI00XG+G6U0vFkA8vbV0AstW1KOmISh3FQD6gByVvochxJW8yPWwq2e2GWcfnXpXT98G680wvenFAignHdhdL7BspR+tHQLpRmKj8B/kcPl/CWj/yxXwbupFx2XjktQ5Swdsp94M05teLICsWcDGXSG4VtbDwB5tVe6lPk4lLu9lAniC/1XbGMK86Rn4eXE2vNHiEWJRGcZ7vRmmN71YrCkwA2s/C+DBqgbkZSrhhMiExTzFnQwh1nMF/lZNLpDKTjMjGBrGhl2s1kR5rzfD9KYXiyVjcoG/vNeOP77dhNG54cPgnE+BZt9TbzGmhXgNobQFBMzpChZ9Nw/2YWx5x2pMtPd6M0xveoPxhCczew7wkLsFKze1YrS567S+CB4dCRrhHKLTIqY2++NmTtDX1NabYXrTGwwgoxqOhS9f0YDPagJyigPQ1o7WcEC6w+V7GhAyU1VNQwiXzTbjB8emxRt2lYjA9PtGb4bpTW8wJpkzgJ0+gSWv+xEMCZgMxIvj9e5S25xw4GKl5xoSJE9vc+DiKdMycP28bOlN6JuCNCloHNRBvTjA+mfVpk48UNWA/JzuZCTL3E7bIgnQ3OW+72iakAHyzR0CBTkKbllgQaYJaIv7yorhQaf3iNab3mDcGZsHPLquFS9+0IyxeYauouJct9P+cs/gec5QO5pvhmFr7qbv5uHEyQY5zbHJl+pHb4bpTW8g/rGLh/XP3a82YIeny8UDhNROsnHyv54A8WUR/80/7GoIYf70TFxXkoW65qFe55MYlHozTG960bjCwjA6F3hnexAVK+ul/433hQRhVXWpTWYf6QaoeLnvTNLEK/wjR5jySvaXZ1kwykxo1GHzTm+G6U1voGHLAC1f1YyVm9ow3qKGT58qyg3uhRaZIL4boHCKZW8jQGlSiupDuKrYjHNnpuFrX+qnOb0Zpje9aACx/409Nnf93SeP/WQaw3AESRsbybfdS7uUVPruEkLcxj/yIa4jx6Xh1gVmeUaIPQupfO76ux+8qxvtYbPzjjPl0dmkPXrT69twlpRDrMBfN3TgsXUNGG/puoSM8JS71NadRrMXQHwkXOsMyJBTNq/9LRpuPcOC4yaq2J1iY+GZd5uxaVd0k3H6WBMuPj47aeBwRXrT69t4XpzyFsNdrzZg8+4A7NldIQ2qNst9Q373KcZ+9lmxy1dFEA623Hb5Qzh1RiYWzsvCLg4FjifwLkE2clTro+sapf7r+bDb/X+KzD3XBwlS6P2Z3vR6UufBP94CvLk1iKWv+2HNUqVxwBt0fRNW9QNIpssSGoflgrfB2zoFFp9jReFoRYYDy4pS9PC0umpTG7bVhi8OOazAiPnTMyIBFEmnqje9SAfYrObthXtea8Q/d3RgbK4qZyxBymXVpZbf9+xoVHY7yj2boVAhg7HTH4Lj8AzcdFo29jShV9rSpHPsAKgwJIBDrcD6rUHc86of9pwu6QHq3U5bP0UbFaBil+8iIvEMSxE7UHk6YF00Z6pBWnSplKL9GSOevDONAC9OF/+tAZ/vCUivjXSnEf3CXWq9p2//B5ywHBXeHSBMZDD2NIUwpcCEO8/JRWcofPI7hTPdfosRAzHJzgZKBx6pbsCh9u7rY5sas6y2aJdCDQKQ/yiQxvmepavnS28QV8zJxSUnpOELT+rXRfsbSgyOPZud0QK3vehHIKQhJ10JL0wFneEus74Wrc+DCkIkdSMD1NQuwNvk9/7AirG5hN0NYR/SwSc2BxgDjjMYZwGWvd6Cf3zagkNtBqnPCeLDKqf9mIFqGRSg01wN1k4E5W3xDAYbDMdPSscdZ+agqZ093wf1UWx4wmtKntpWbwpi2Qq/jBplwPgJkZi+rtT+74QA4o+KK71XkJBXgMnnK18Q58/KxlWnZEpPt177RfEwYiSWYSOLtxO21Wn45Ut+hIRAXkbYMBBE5dWl1psGa3dcut7h8nJCv6N5qusICNQ1a9L1UlxowA7PQSkaiMEMQm5G2Gq7+fkGbK7pwASrQVrGgKhzO+0xs4nFBdCcyroxBqFw3tAstup4vyjDpODu71kw3kLY6T+oj/qCxMo/3Rg+kFW5ugV//7gFh1i7rTYoBhy55nrbplhSHxdAcqpb7ptNmpAXj7M++sYfwkS7AXeeG066VNt4EKQIsxkcDoZnd87T77Tj8fVNGJOrwKDIaFGe2i6pLrU+HQscaUHHUyhSprjS/ysS2mL+d8TLMHWUEXd/L4+P7cl47gPdsmNwmAeH2oDnN3TggapG6QjNNFGXvqY/up3Wn8TL9yEB1GU0rCSB+RJdAr72BfFfkzOkZRf2Ohy4IEXAmWAFVm7qlGFUHASfkx4BBxvdTlvv24tjIDVkgLg+h8tTDdAp/DGL7Nf+IE6cnI5bFpjlWmnPATjdsUHAxsAhFuD1TztRsbJBSg3HuPHA5duJtbTQ8dXXFAzp/HxCAIVBCmfIioD0TX0QhaNMuP3MXOTnhA2HA8Vnx+BwBBTHVz//fjt+90ZTL3A4y2i6AZP+cb2tMd6pLVIuYYCKyxvtqhL4RAPGyEr4KJsviMPyTbjtDDMm2hXpWJWr5YSpDLU7+pdn6eCtAw4+/MNbbXjq7SZYM1WYM/hWE9meTkXDzDU3xrbYorV+WKxj89solDUCkFdPSuuuPgRLpoprS3Iwe0o4IQZ7HfY340H60BBehLLz+OG1zVjxaSsKzCoyjF06h7ALmrLAXWZJOCnvsADiBp7/nFA9O30rAcirOmW+7WZNxhecfXQmLj0pS0oQ6yX+e9gE9ReSfhR5SkszhH1r738RxMNrm7C9Nogxearsfxg82qSYDEVrrjVLV1miT9L45XB5VwCQsVyse3jrmqXp5CnpuOqUbDnlMUg82vZV3RSRGpkNxAC8+kmH1Dc8GHlXlN+HBYs+MoY6ZyfjprKkARQ2HHxLASF9S1LviHAQpC1LxTkzM3D6jAxkp3GAPhDQ9i2gIm4bSxbwr50hvPBBK9ZvaUduBsGcEbbUup7H3U7bFYlKTN/vkgoQV15c4TuTSPwJQG5kyuNMjv5WgaMOMeG8mZk4YbIRvPXLayYedSPZiGBgOPqGpWZ3g8Arn7ThtU/a0NyhYUxu2CsdcRgTlMurnJYnkwWOHOjJrCxSV4nLw/eDviJA8pbiiDRxRkceaXOmpePsozJx5FhVShLnOuH0myNl6ovEFWWZwulZ6luAN7Z04OWPWrHdw9vUag/PQDgaJ6Sp56filpiUABQByuHy3QQIvrBJ7n4wAAwEA8Ur7DlT06SOOnyMQU59/lbOOhyex1PasAFGZcSHZskMGwEsMRu+7ETV5jZs3BVAdhrBkhneBY2AKBRxb/5Y2+2cQjkVgz3lfCi6r2GqqoX4ypuzIx2IGBGeZk2OxCPHmXDCpDTMGG/CuLxwk+pbgY5gKrrcv05uDw+Q7PTwANlaG8R7X3RIcL7wBOWReM78IQ/2doftibUELKpy2t9NZStTDlCk8XMr/A6NtIcAdN9HxB3mkGJfS0jmSuPg8cLRJpwwOU1mH87LDJvt7Z2cBSUsfT2UcUJ8YZpcJ0sIT2HsdeYzUDWNGjZ80YkPvurAtrog6ltD8rQBxw30BgY1BHF1ldMuc4qm+tENoG79VOm/TgjtGk4iGPkt4i7ijI9sUGSYSG5lTLQZ5N8TrEbkZytydc4uFR7xDBQbGgwwK2m5Q9kjKJXL8B8GI/InMsWylPANL7vrQ/jCG5QBMaxb+N+s9HkaMxo4A3wv9n8tCI+bgoHyZJjP8QKrO0A99NMPBcRV/7msY07PxvJoZeY3t2sy4p+ZyiOZXfZ8PJBX6hwqGxndPEVycL1JJZmQkDvEYHEdnMGrPShkNn1Oc1PfpslsKqwD+W+eYnlQ8FYJSwpPZZHBsnfwiA8F0cOiwfpE9WLSadLdy5FvDaAeFt/xUNQLhKZdyYkFo40sDkHmxSAvflliGERmapqBkGYkmYiQN8NYUvgd+//C0rX3O64j8i0Dmt717QCWowDhUSLlz1ULLeviHe2pKPetAxTp1KnLagoCBiPfPsneiLlRboPs1X+efsKSIvpNcRGXUkTfqEpYMmKst1oEwGCsACkvV5daoiZgTwUIg9U5YgDq2Ui+T6IjRCcLTZwIwn9xwAqAmAEWQ2IewQ8hPiHCO0LgbaGZ3qy+0SyP3oykZ0QC1JdBp9+/Ja0laJumkjZVaMpUUsQkIcRYAjFoHHCeBUImBCJHpHlNwgc3Odsi78HwtTnfkCK+Ehp9TqRt1Uzi86Funn0bwP0/BRCnfaQr82wAAAAASUVORK5CYII=";
+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,iVBORw0KGgoAAAANSUhEUgAAAF4AAABsCAIAAABsApKfAAAAAXNSR0IArs4c6QAADPRJREFUeNrtnelfU8kShs9/eMcZF2RHkEVFBEFAr4IbKJsDiCi44Qw6Oo4rggQQBAHFFS4I7iACbghqTp/u5st9O4kg6zkh3QnG4dcfkpCQnIfq6uqqtyvahF/+UIN//cI/jfI3g/xxN7vTxm7UsQYb7+6csNst/g3Nf3AYBv/8mX94PzHQz3t72L07tKmB1deKUXfdNUCnr3eCMX9HwzknujCNoSH+/Bnv6mQd7bSxfgrEnKPtFrdmONqPh0PX+fv3vL+f93Szex2srYWZ4piB5ssX/0IDKB8/sCdPaMdt1twofId1HN+Pdj9DAy5vR1hrC5zFIon4Kxo4V9ba7CkU/0PDCWGdD+Vw8TerGR50z9H+LGgY432PpXHxKzREZ50P/kUz14/dzu7f/RfNXD+6/jOiEXHthw98ZIi/HuAvn/MnvWLgBu7iQfwK26KvX9kjP55QnIsdnUH4u7fs4X1qqzbOVRpHikleNtm9nexMJ9u3kK2byZYEMXADd/EgfpWXZZQfojVV07aIfoIG/3ZE9/c76D9nScE+kp6ob4zWo0P08FV66ArzEfybHhNGTx6VEAQvHTTID9BXz41L50lmur4uQl8TaImFf6MRZnKnzSgv0RPj9IiAxRDxPzR8eAjZI6Ngnx4T6hERf0KD7R+cK9mzQ18bIgeKH6DB24jps3+XcK4SoahDg1TWV8VoOKXs1QvjcLG+bo18KMrQ8I52hBEK0QA8srBk22ary7BqNHgCducLDlpXi/QgH3gl4ixFaOBujdMVenSoQihuoamvpefPGEcOGqVFsOIZgx47TGEsbc2s+39IKlvk4j4aJCKf9uk5uz1dld1DU26C5ka98XuOeHLAf/TVv8wcawKN40f4h3fuWoDmHpe+x2RHqjegTKEJpSfKzNEU5enhAXrI8jn/jj18FRYK/uKZdZNxBw1SSj1dJC3Be1ycaKJD6XGgqfMEjaATugK7M97dZbE+ZxkNY+zBXZK8watcptAc9hyNc+AS2MN78tCAy70OPWm9t7k40awNgR+VhUbQSU1gT3ploGGM3r+rb97gAy6TaMpLTQpy7qDBMDLT2ZtBz9DA7z7u1tMSfcPFhSaYlh+Si0YPW6UX5vH37xaPBi82cvf4jMsUmhLJaDAiVtGKo3x8fDFokHmklSf1iNU+RhMVTMsUoMHAVK2tnqDUTTRwMTcbEG75kgtGyG96ZBAiWiVo4JJT4hGpuYeGvXxOtqf4mMskmtIiRWj0sJVIy87ndLQ58wxG2UG1+0araJbrkYEK0WBEBiJvDYGbBTScI8utb4j0PZcpNIUK0WCkxLPHPbP3ENrsVQk2tiS4ONFgc3jod6Vo7GErjYP5EL4thAbZKXrDhkVhKaFZbZQcUGs1oBMdgmWHMzovGvrunbF3h7cvHis0RtCveuAyMXDD+Qh+hRERQA8qRyNC5L0ZuPx50DBGWm8hxPIeEYDAjdhwkhBDtmwk/00RAzcSYvCg+BWyLbD24gIvoMGF4/K/35dPoeHjY4ZqL+M0BECJDCQpG419uxDp0soKeu40vfg3q7qEgRviLh4sKyEw4ZR441ChN9DAcLCQj4/NQsO52EaqS4BPWkpkEMlIo6eO08sX2PVrThG4GE7ts3M4H7lRh2o3vXSeAtnCiWFJaHD59H7H5FKlTWo1RL0xbKXC4C18Far9IlMLIs7rNy0ACFI2cy2ALDRIBh4rhUx7Ghr+8gVJWqdwKxQRYOzfza5emqmMd3PQuhoMVWgc2Rw+/GYaGnrlAkxdCResOFFBpGC/MBaPy0mq0eixYbSpfgoNCvhGVqYqLrHhKINgjytRIzMTkEQ0IvwrmCDEhUbsDOLXKsrRGUdLqWeTyKtoMKfSNvH+ly40xtWL8vMy4IIYvzhfptZs5qhVgUZUvm7eEGi4QcjhIhUmA+EErb0m117UrlCTAc6fxycY1fjQG6jm5IcwYH/mlDe4KEBDsjJwWkSD/F/o6+SiCVxGsne64pcfEA2AAIvGmpvs4QGSvUzcGnq6wktcFKABEGDReHWVfJPZuZVWX7WKxoZ13UZtNbT6Cl4lbiACxoNWV6vrVLrVhK4AFg3/XsleBqEBUpYWz6LYalhLE3/2FHUPccYW4/M4w0HKlkY2O7RbyGryRcZWHhpg0bCvlRzjxUfTv/60EvjCGaEECG3xzOQj7kJw3N3pM1+DRepQoUYglpE7m7CxrjWfDljXBZcFdAvQZjx7Iny5OZo6h9XIRAMsmsyV25F2ENvIxgZTB8FuNkzYv5qd+CG8vdUSmpIDSJXKRLN7u4Z/skw02NcX5sLCTS6m6hLvt6Sp44OvLeRr6mhpsdgeI/UhC01GmkbSk2QmZaKCqGmxscGGHBX2tFYVydeumKmy6nDKQ0iWg+WhSU/SdImCIqdSyFRfBjR3b+PEjyU0OCp2p90cDWqKUUES0QCLRpLjpVbvg5CCMLUa1vVogTr8tB+ok7semaBprDfy97lmtCyrSY7XyNYkyb6mKNccDdSqs0pic1vN6CiCQJEGXRhNzl5XTl4Wmq1Jst0wVqicPSbxHmS+Vy9CfGzJDY8MU2fadCE0DUZ2ph60TCYa4Yb3bJcb1wg5mGlQA0NouzWhm3UEoQZUiSJiNgsFxKkrVLXkXQiwaJJ1V0G/koRYFJJMo2HQgUWYmMybQfPoEU793Gl9U6wIxOVdCLBoBOcv5O6h4G6wh7KyUWis58PD83lf/uqFyHKamQzeSOx1pG6ghNUcLtbo2UrZO+9fyK5ttMbCzhuXjTZEvT3848cpvwMVy8gwu93Kqi6yevNCFaIe4S6lziaxvTxbqcFi5WeF10fRv89YLK0IiHDb7W2ioxVGe6vIilvMaSCb8ccJIayTajICTW21RttaRLAkOwFKcve6UWABRDwZUe+1y+JGg83aC2tpdZXYA0qM9JwDMX1bi8agDJaumBaGEwkhmJs1OTdrMg11UA3I3R98C4XjWW+PJmRY+3aqUERA5yBOr9epSYM6giNxzEb2VHIsT3sRampYC1CiV6KLwFJVnE/rbSrQYLaKiqvUCHiygEnPVGA1ECU6OMJFHlE3322GGMeOLL7l1wI7A+eCLX0qYcRFoCnXt8Lug7v6RgWFXVd1IYKeKLfsWS35bONkuViVVHBxpCP4QP83OcDoqCoJn9PgITfKy6JVlz1VSuDl1VdFGhhLqgIX45IDlJc4swKaS5J17YpC4adDs4htjliznIIi952u8C//nDOcOz419uIQkYSjwjFdejTQr6eqPDzoXLMS44RjhlTNKUmzaCnYJV2+gBfi5SKRqMheXLmIzfzt8HTBmmEYJ44oF99jB4hjAemJUEmLLSiiO3joets0qZZL0efQ8l2vNs5W4smiuwvEdFI3kHML1irKRfFnhswR3brUyhy/Fzsi+x8fDYeH7ByWMKH3hPATpUsM3KiswINGbhbBKTUIf/DkYLXGMilzRIelWTJHhziWFOV6T0kNE8CAnSKcxXKD/wooYOAG7uJBYSYOhbUXoDhnU1HuXOJYpzNubfaSpHpOtfnkmFSbe/OT4Lhea/P3iUdtRmWDoKfIEjmg4N2BCxdtnOc92YJNQ1O97w/PeX/EheP4xowix6xDP58+kQM5eujyn4gLwryyEv7ls4WjYjjwvinmJ5pKkFHPdQJTm7OJrfHHMXEY+mdAg5NQNVcmGLV6LBUpa0NifWopT6WiPD760Z3DzJhWD+/pm9f7+VTakYq+mu53B6DUQB5nbbDfotkUi8arC2ifFmycMDZGoUBQdxLId8MeFYwU/ZxnmK12IkH9kOTs8Tc6EQEELaI+j3vWpAVO59lTkpHuP1zCA0hxvugnJqG1D+h0PSKpCf7ietPY636ZvbLQJ5j8+Ms52ZaMC5HfYQ1KZ6Mg+0f1O0ihZWWy+fuOeNqXjw8NksI8LzXlk5pwQFNs9AVX1pfPaTtvRwgq8Osjf5hJlBgHeS0f+6SyZeF3qkzachPzdulPIj0jVcR1FiWVcjrHYtl62kcKcyU3GJYY1OHYJ443utnBUVq/YciihY4uNcG+pKA48gyiJeo8+0ZvoHHpep/24VguTkgvCTSxYfgw+EiLm0QKGnh/+UxvNZH9u1Hh9s3qjjeNi8AHwMeYna/zJRrXGZ2xT+gcDkm1nhDtPUB4o4RooeNG03IsQ5a7n3r9ywLQANLxVSLIEwotL9rQKJw74XgLvBHeDm+6aHfr9W/fgBENDaKyQ0+WiR2GpLyPPXQ5mjcJZcHJMvxxvIVEM/HuF5OI4146HxxAcxzj/F8kO5OgOAmZE+JpUV83nXQrxdPw5MhAPSEGJ60gyuedD/EHJ4iu+oN78Zt+8HU2b0fQ/xsH44yqi5APQXRDtiaLU0cbo+2YerCstcHiBs6dJ2/Ar0h+Nj11FGlt3nEHPabFESqP1x3rP/8HzQUQ5ICOGvoAAAAASUVORK5CYII=";
+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,
// 用于存放