! function(t) { var e = {}; function r(n) { if (e[n]) return e[n].exports; var a = e[n] = { i: n, l: !1, exports: {} }; return t[n].call(a.exports, a, a.exports, r), a.l = !0, a.exports } r.m = t, r.c = e, r.d = function(t, e, n) { r.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: n }) }, r.r = function(t) { "undefined" !== typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(t, "__esModule", { value: !0 }) }, r.t = function(t, e) { if (1 & e && (t = r(t)), 8 & e) return t; if (4 & e && "object" === typeof t && t && t.__esModule) return t; var n = Object.create(null); if (r.r(n), Object.defineProperty(n, "default", { enumerable: !0, value: t }), 2 & e && "string" != typeof t) for (var a in t) r.d(n, a, function(e) { return t[e] }.bind(null, a)); return n }, r.n = function(t) { var e = t && t.__esModule ? function() { return t.default } : function() { return t }; return r.d(e, "a", e), e }, r.o = function(t, e) { return Object.prototype.hasOwnProperty.call(t, e) }, r.p = "", r(r.s = 0) }([function(t, e, r) { "use strict"; function n(t) { return (n = "function" === typeof Symbol && "symbol" === typeof Symbol.iterator ? function(t) { return typeof t } : function(t) { return t && "function" === typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t })(t) } if (r.r(e), "undefined" == typeof a) var a = {}; a.MD5 = function(t) { function e(t) { var e = (t >>> 0).toString(16); return "00000000".substr(0, 8 - e.length) + e } function r(t, e, r) { return t & e | ~t & r } function a(t, e, r) { return r & t | ~r & e } function i(t, e, r) { return t ^ e ^ r } function o(t, e, r) { return e ^ (t | ~r) } function _(t, e) { return t[e + 3] << 24 | t[e + 2] << 16 | t[e + 1] << 8 | t[e] } function u(t) { for (var e = [], r = 0; r < t.length; r++) if (t.charCodeAt(r) <= 127) e.push(t.charCodeAt(r)); else for (var n = encodeURIComponent(t.charAt(r)).substr(1).split("%"), a = 0; a < n.length; a++) e.push(parseInt(n[a], 16)); return e } function f(t) { for (var e = new Array(t.length), r = 0; r < t.length; r++) e[r] = t[r]; return e } var p = null, c = null; function s(t, e) { return 4294967295 & t + e } return "string" == typeof t ? p = u(t) : t.constructor == Array ? 0 === t.length ? p = t : "string" == typeof t[0] ? p = function(t) { for (var e = [], r = 0; r < t.length; r++) e = e.concat(u(t[r])); return e }(t) : "number" == typeof t[0] ? p = t : c = n(t[0]) : "undefined" != typeof ArrayBuffer ? t instanceof ArrayBuffer ? p = f(new Uint8Array(t)) : t instanceof Uint8Array || t instanceof Int8Array ? p = f(t) : t instanceof Uint32Array || t instanceof Int32Array || t instanceof Uint16Array || t instanceof Int16Array || t instanceof Float32Array || t instanceof Float64Array ? p = f(new Uint8Array(t.buffer)) : c = n(t) : c = n(t), c && alert("MD5 type mismatch, cannot process " + c), function() { function t(t, e, r, n) { var a, i, o = v; v = y, y = h, h = s(h, (a = s(d, s(t, s(e, r)))) << (i = n) & 4294967295 | a >>> 32 - i), d = o } var n = p.length; p.push(128); var u = p.length % 64; if (u > 56) { for (var f = 0; f < 64 - u; f++) p.push(0); u = p.length % 64 } for (f = 0; f < 56 - u; f++) p.push(0); p = p.concat(function(t) { for (var e = [], r = 0; r < 8; r++) e.push(255 & t), t >>>= 8; return e }(8 * n)); var c = 1732584193, l = 4023233417, m = 2562383102, g = 271733878, d = 0, h = 0, y = 0, v = 0; for (f = 0; f < p.length / 64; f++) { d = c; var b = 64 * f; t(r(h = l, y = m, v = g), 3614090360, _(p, b), 7), t(r(h, y, v), 3905402710, _(p, b + 4), 12), t(r(h, y, v), 606105819, _(p, b + 8), 17), t(r(h, y, v), 3250441966, _(p, b + 12), 22), t(r(h, y, v), 4118548399, _(p, b + 16), 7), t(r(h, y, v), 1200080426, _(p, b + 20), 12), t(r(h, y, v), 2821735955, _(p, b + 24), 17), t(r(h, y, v), 4249261313, _(p, b + 28), 22), t(r(h, y, v), 1770035416, _(p, b + 32), 7), t(r(h, y, v), 2336552879, _(p, b + 36), 12), t(r(h, y, v), 4294925233, _(p, b + 40), 17), t(r(h, y, v), 2304563134, _(p, b + 44), 22), t(r(h, y, v), 1804603682, _(p, b + 48), 7), t(r(h, y, v), 4254626195, _(p, b + 52), 12), t(r(h, y, v), 2792965006, _(p, b + 56), 17), t(r(h, y, v), 1236535329, _(p, b + 60), 22), t(a(h, y, v), 4129170786, _(p, b + 4), 5), t(a(h, y, v), 3225465664, _(p, b + 24), 9), t(a(h, y, v), 643717713, _(p, b + 44), 14), t(a(h, y, v), 3921069994, _(p, b), 20), t(a(h, y, v), 3593408605, _(p, b + 20), 5), t(a(h, y, v), 38016083, _(p, b + 40), 9), t(a(h, y, v), 3634488961, _(p, b + 60), 14), t(a(h, y, v), 3889429448, _(p, b + 16), 20), t(a(h, y, v), 568446438, _(p, b + 36), 5), t(a(h, y, v), 3275163606, _(p, b + 56), 9), t(a(h, y, v), 4107603335, _(p, b + 12), 14), t(a(h, y, v), 1163531501, _(p, b + 32), 20), t(a(h, y, v), 2850285829, _(p, b + 52), 5), t(a(h, y, v), 4243563512, _(p, b + 8), 9), t(a(h, y, v), 1735328473, _(p, b + 28), 14), t(a(h, y, v), 2368359562, _(p, b + 48), 20), t(i(h, y, v), 4294588738, _(p, b + 20), 4), t(i(h, y, v), 2272392833, _(p, b + 32), 11), t(i(h, y, v), 1839030562, _(p, b + 44), 16), t(i(h, y, v), 4259657740, _(p, b + 56), 23), t(i(h, y, v), 2763975236, _(p, b + 4), 4), t(i(h, y, v), 1272893353, _(p, b + 16), 11), t(i(h, y, v), 4139469664, _(p, b + 28), 16), t(i(h, y, v), 3200236656, _(p, b + 40), 23), t(i(h, y, v), 681279174, _(p, b + 52), 4), t(i(h, y, v), 3936430074, _(p, b), 11), t(i(h, y, v), 3572445317, _(p, b + 12), 16), t(i(h, y, v), 76029189, _(p, b + 24), 23), t(i(h, y, v), 3654602809, _(p, b + 36), 4), t(i(h, y, v), 3873151461, _(p, b + 48), 11), t(i(h, y, v), 530742520, _(p, b + 60), 16), t(i(h, y, v), 3299628645, _(p, b + 8), 23), t(o(h, y, v), 4096336452, _(p, b), 6), t(o(h, y, v), 1126891415, _(p, b + 28), 10), t(o(h, y, v), 2878612391, _(p, b + 56), 15), t(o(h, y, v), 4237533241, _(p, b + 20), 21), t(o(h, y, v), 1700485571, _(p, b + 48), 6), t(o(h, y, v), 2399980690, _(p, b + 12), 10), t(o(h, y, v), 4293915773, _(p, b + 40), 15), t(o(h, y, v), 2240044497, _(p, b + 4), 21), t(o(h, y, v), 1873313359, _(p, b + 32), 6), t(o(h, y, v), 4264355552, _(p, b + 60), 10), t(o(h, y, v), 2734768916, _(p, b + 24), 15), t(o(h, y, v), 1309151649, _(p, b + 52), 21), t(o(h, y, v), 4149444226, _(p, b + 16), 6), t(o(h, y, v), 3174756917, _(p, b + 44), 10), t(o(h, y, v), 718787259, _(p, b + 8), 15), t(o(h, y, v), 3951481745, _(p, b + 36), 21), c = s(c, d), l = s(l, h), m = s(m, y), g = s(g, v) } return function(t, r, n, a) { for (var i = "", o = 0, _ = 0, u = 3; u >= 0; u--) o = 255 & (_ = arguments[u]), o <<= 8, o |= 255 & (_ >>>= 8), o <<= 8, o |= 255 & (_ >>>= 8), o <<= 8, i += e(o |= _ >>>= 8); return i }(g, m, l, c).toUpperCase() }() }; var i = { log: function() {}, error: function() {}, count: function() {}, info: function() {} }; (function() { function t() {} t.createFromElementId = function(e) { for (var r = document.getElementById(e), n = "", a = r.firstChild; a;) 3 === a.nodeType && (n += a.textContent), a = a.nextSibling; var i = new t; return i.type = r.type, i.source = n, i }, t.createFromSource = function(e, r) { var n = new t; return n.type = e, n.source = r, n } })(), function() { function t(t) { this.gl = t, this.program = this.gl.createProgram() } t.prototype = { attach: function(t) { this.gl.attachShader(this.program, t.shader) }, link: function() { this.gl.linkProgram(this.program) }, use: function() { this.gl.useProgram(this.program) }, getAttributeLocation: function(t) { return this.gl.getAttribLocation(this.program, t) }, setMatrixUniform: function(t, e) { var r = this.gl.getUniformLocation(this.program, t); this.gl.uniformMatrix4fv(r, !1, e) } } }(), function() { var t = null; function e(t, e, r) { this.gl = t, this.size = e, this.texture = t.createTexture(), t.bindTexture(t.TEXTURE_2D, this.texture), this.format = r || t.LUMINANCE, t.texImage2D(t.TEXTURE_2D, 0, this.format, e.w, e.h, 0, this.format, t.UNSIGNED_BYTE, null), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MAG_FILTER, t.NEAREST), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MIN_FILTER, t.NEAREST), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_S, t.CLAMP_TO_EDGE), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_T, t.CLAMP_TO_EDGE) } e.prototype = { fill: function(t, e) { var r = this.gl; r.bindTexture(r.TEXTURE_2D, this.texture), e ? r.texSubImage2D(r.TEXTURE_2D, 0, 0, 0, this.size.w, this.size.h, this.format, r.UNSIGNED_BYTE, t) : r.texImage2D(r.TEXTURE_2D, 0, this.format, this.size.w, this.size.h, 0, this.format, r.UNSIGNED_BYTE, t) }, bind: function(e, r, n) { var a = this.gl; t || (t = [a.TEXTURE0, a.TEXTURE1, a.TEXTURE2]), a.activeTexture(t[e]), a.bindTexture(a.TEXTURE_2D, this.texture), a.uniform1i(a.getUniformLocation(r.program, n), e) } } }(); var o = function() { this.map = {} }; o.prototype = { put: function(t, e) { this.map[t] = e }, get: function(t) { return this.map[t] }, containsKey: function(t) { return t in this.map }, containsValue: function(t) { for (var e in this.map) if (this.map[e] === t) return !0; return !1 }, isEmpty: function(t) { return 0 === this.size() }, clear: function() { for (var t in this.map) delete this.map[t] }, remove: function(t) { delete this.map[t] }, keys: function() { var t = new Array; for (var e in this.map) t.push(e); return t }, values: function() { var t = new Array; for (var e in this.map) t.push(this.map[e]); return t }, size: function() { var t = 0; for (var e in this.map) t++; return t } }; var _ = o; var u = function() { var t, e, r, n, a, o, _, u, f, p = null, c = new Uint8Array, s = !1; function l() { p = Module._OpenDecoder(0, 0, 0), l.prototype.setIsFirstFrame(!1) } return l.prototype = { init: function() { i.log("H264 Decoder init") }, setOutputSize: function(t) { u != 1.5 * t && (u = 1.5 * t, f = Module._malloc(u), c = new Uint8Array(Module.HEAPU8.buffer, f, u)) }, decode: function(i, f) { if (t = Date.now(), e = new Uint8Array(i), c.set(e), r = Module._FrameAlloc(), Module._DecodeFrame(p, c.byteOffset, i.byteLength, u, r), n = Date.now() - t, o = Module._getYLength(r), a = Module._getHeight(r), !l.prototype.isFirstFrame()) return l.prototype.setIsFirstFrame(!0), { firstFrame: !0 }; if (o > 0 && a > 0) { t = Date.now(); var s = new Uint8Array(c); return _ = { data: s, option: { yaddr: Module._getY(r), uaddr: Module._getU(r), vaddr: Module._getV(r), ylen: o, height: a, beforeDecoding: t }, width: o, height: a, codecType: "h264", decodingTime: n, frameType: f }, Module._FrameFree(r), _ } }, setIsFirstFrame: function(t) { s = t }, isFirstFrame: function() { return s }, free: function() { Module._free(f), f = null } }, new l }; importScripts("./../module/ffmpegasm.js"), addEventListener("message", function(t) { var e = t.data; switch (p = t.data.channelId, e.type) { case "MediaData": null === f && (f = new s), e.data.rtspInterleave[1], f.parseRTPData(e.data.payload) } }, !1), Module.onRuntimeInitialized = function() { Module._RegisterAll(), c("WorkerReady") }; var f = null, p = null; function c(t, e, r) { var n = { type: t, data: e, channelId: p, option: r }; "canvasRender" === t ? postMessage(n, [e.buffer]) : postMessage(n) } var s = function() { var t = new l, e = 0, r = null; function n() { this.decoder = new u } return n.prototype = { init: function(t) {}, parseRTPData: function(n) { var a = null, i = {}, o = n[22], _ = (n[11] << 24) + (n[10] << 16) + (n[9] << 8) + n[8] >>> 0, u = n.subarray(24 + o, n.length - 8), f = n.subarray(n.length - 8, n.length), p = (f[7], f[6], f[5], f[4], (n[19] << 24) + (n[18] << 16) + (n[17] << 8) + n[16] >>> 0), s = Date.UTC("20" + (p >>> 26), (p >>> 22 & 15) - 1, p >>> 17 & 31, p >>> 12 & 31, p >>> 6 & 63, 63 & p) / 1e3, l = []; s += (new Date).getTimezoneOffset() / 60 * 3600; for (var m = 0; m <= u.length;) if (0 == u[m]) if (0 == u[m + 1]) if (1 == u[m + 2]) { if (l.push(m), 5 == (31 & u[m += 3]) || 1 == (31 & u[m])) break } else 0 == u[m + 2] ? m++ : m += 3; else m += 2; else m += 1; for (m = 0; m < l.length; m++) switch (a = u.subarray(l[m] + 3, l[m + 1]), 31 & u[l[m] + 3]) { default: break; case 1: "P", l[m] - 1; break; case 5: "I", l[m] - 1; break; case 28: break; case 7: t.parse(a), r = t.getSizeInfo().decodeSize; break; case 8: case 6: case 9: } e !== r && (this.decoder.free(), e = r, this.decoder.setOutputSize(e)), i.frameData = null, i.frameData = this.decoder.decode(u), null != i.frameData && null != i.frameData.data && (i.frameData.option.time = s, i.frameData.option.frameNo = _, c("canvasRender", i.frameData.data, i.frameData.option)) } }, new n }; function l() { var t = 7, e = 7, r = 2, n = 3, a = 4, i = 5, o = 8, u = 16, f = 32, p = 255, c = 0, s = null; function l() { c = 0, s = new _ } function m(r, a) { var i = a, o = c + i >> n; return i = c + a & t, r[o] >> e - (i & e) & 1 } function g(t, e) { var r = c >> n, a = 8 * (r + 1) - c; if (a < 8) for (var i = 0; i < 3; i++) { var o = t[r + i]; o = 0 == i ? o >> a << a : 2 == i ? o & 255 >> 8 - a | 1 << a : 0, t.set([o], r + i) } else t.set([0], r), t.set([1], r + 1) } function d(t, e) { var r = 0; if (1 === e) r = m(t, 0); else for (var n = 0; n < e; n++) r = (r << 1) + m(t, n); return c += e, r } function h(t, e) { for (var n = 0, a = 0, i = e; c + i < 8 * t.length && !m(t, i++);) n++; if (0 === n) return c += 1, 0; a = 1 << n; for (var o = n - 1; o >= 0; o--, i++) a |= m(t, i) << o; return c += n * r + 1, a - 1 } function y(t, e) { var n = h(t, e); return 1 & n ? (n + 1) / r : -n / r } function v(t) { s.put("cpb_cnt_minus1", h(t, 0)), s.put("bit_rate_scale", d(t, a)), s.put("cpb_size_scale", d(t, a)); for (var e = s.get("cpb_cnt_minus1"), r = new Array(e), n = new Array(e), o = new Array(e), _ = 0; _ <= e; _++) r[_] = h(t, 0), n[_] = h(t, 0), o[_] = d(t, 1); s.put("bit_rate_value_minus1", r), s.put("cpb_size_value_minus1", n), s.put("cbr_flag", o), s.put("initial_cpb_removal_delay_length_minus1", d(t, i)), s.put("cpb_removal_delay_length_minus1", d(t, i)), s.put("dpb_output_delay_length_minus1", d(t, i)), s.put("time_offset_length", d(t, i)) } return l.prototype = { parse: function(t) { c = 0, s.clear(), s.put("forbidden_zero_bit", d(t, 1)), s.put("nal_ref_idc", d(t, r)), s.put("nal_unit_type", d(t, i)), s.put("profile_idc", d(t, o)), s.put("profile_compatibility", d(t, o)), s.put("level_idc", d(t, o)), s.put("seq_parameter_set_id", h(t, 0)); var e = s.get("profile_idc"); if ((100 === e || 110 === e || 122 === e || 244 === e || 44 === e || 83 === e || 86 === e || 118 === e || 128 === e || 138 === e || 139 === e || 134 === e) && (s.put("chroma_format_idc", h(t, 0)), s.get("chroma_format_idc") === n && s.put("separate_colour_plane_flag", d(t, 1)), s.put("bit_depth_luma_minus8", h(t, 0)), s.put("bit_depth_chroma_minus8", h(t, 0)), s.put("qpprime_y_zero_transform_bypass_flag", d(t, 1)), s.put("seq_scaling_matrix_present_flag", d(t, 1)), s.get("seq_scaling_matrix_present_flag"))) { for (var a = s.get("chroma_format_idc") !== n ? o : 12, _ = new Array(a), l = 0; l < a; l++) if (_[l] = d(t, 1), _[l]) for (var m = l < 6 ? u : 64, b = 8, T = 8, E = 0; E < m; E++) T && (T = (b + y(t, 0) + 256) % 256), b = 0 === T ? b : T; s.put("seq_scaling_list_present_flag", _) } if (s.put("log2_max_frame_num_minus4", h(t, 0)), s.put("pic_order_cnt_type", h(t, 0)), 0 === s.get("pic_order_cnt_type")) s.put("log2_max_pic_order_cnt_lsb_minus4", h(t, 0)); else if (1 === s.get("pic_order_cnt_type")) { s.put("delta_pic_order_always_zero_flag", d(t, 1)), s.put("offset_for_non_ref_pic", y(t, 0)), s.put("offset_for_top_to_bottom_field", y(t, 0)), s.put("num_ref_frames_in_pic_order_cnt_cycle", h(t, 0)); for (var w = 0; w < s.get("num_ref_frames_in_pic_order_cnt_cycle"); w++) s.put("num_ref_frames_in_pic_order_cnt_cycle", y(t, 0)) } return s.put("num_ref_frames", h(t, 0)), s.put("gaps_in_frame_num_value_allowed_flag", d(t, 1)), s.put("pic_width_in_mbs_minus1", h(t, 0)), s.put("pic_height_in_map_units_minus1", h(t, 0)), s.put("frame_mbs_only_flag", d(t, 1)), 0 === s.get("frame_mbs_only_flag") && s.put("mb_adaptive_frame_field_flag", d(t, 1)), s.put("direct_8x8_interence_flag", d(t, 1)), s.put("frame_cropping_flag", d(t, 1)), 1 === s.get("frame_cropping_flag") && (s.put("frame_cropping_rect_left_offset", h(t, 0)), s.put("frame_cropping_rect_right_offset", h(t, 0)), s.put("frame_cropping_rect_top_offset", h(t, 0)), s.put("frame_cropping_rect_bottom_offset", h(t, 0))), s.put("vui_parameters_present_flag", d(t, 1)), s.get("vui_parameters_present_flag") && function(t) { s.put("aspect_ratio_info_present_flag", d(t, 1)), s.get("aspect_ratio_info_present_flag") && (s.put("aspect_ratio_idc", d(t, o)), s.get("aspect_ratio_idc") === p && (g(t), s.put("sar_width", d(t, u)), g(t), s.put("sar_height", d(t, u)))), s.put("overscan_info_present_flag", d(t, 1)), s.get("overscan_info_present_flag") && s.put("overscan_appropriate_flag", d(t, 1)), s.put("video_signal_type_present_flag", d(t, 1)), s.get("video_signal_type_present_flag") && (s.put("video_format", d(t, n)), s.put("video_full_range_flag", d(t, 1)), s.put("colour_description_present_flag", d(t, 1)), s.get("colour_description_present_flag") && (s.put("colour_primaries", d(t, o)), s.put("transfer_characteristics", d(t, o)), s.put("matrix_coefficients", d(t, o)))), s.put("chroma_loc_info_present_flag", d(t, 1)), s.get("chroma_loc_info_present_flag") && (s.put("chroma_sample_loc_type_top_field", h(t, 0)), s.put("chroma_sample_loc_type_bottom_field", h(t, 0))), s.put("timing_info_present_flag", d(t, 1)), s.get("timing_info_present_flag") && (s.put("num_units_in_tick", d(t, f)), s.put("time_scale", d(t, f)), s.put("fixed_frame_rate_flag", d(t, 1))), s.put("nal_hrd_parameters_present_flag", d(t, 1)), s.get("nal_hrd_parameters_present_flag") && v(t), s.put("vcl_hrd_parameters_present_flag", d(t, 1)), s.get("vcl_hrd_parameters_present_flag") && v(t), (s.get("nal_hrd_parameters_present_flag") || s.get("vcl_hrd_parameters_present_flag")) && s.put("low_delay_hrd_flag", d(t, 1)), s.put("pic_struct_present_flag", d(t, 1)), s.put("bitstream_restriction_flag", d(t, 1)), s.get("bitstream_restriction_flag") && (s.put("motion_vectors_over_pic_boundaries_flag", d(t, 1)), s.put("max_bytes_per_pic_denom", h(t, 0)), s.put("max_bits_per_mb_denom", h(t, 0))) }(t), !0 }, getSizeInfo: function() { var t = 0, e = 0; 0 === s.get("chroma_format_idc") ? t = e = 0 : 1 === s.get("chroma_format_idc") ? t = e = r : s.get("chroma_format_idc") === r ? (t = r, e = 1) : s.get("chroma_format_idc") === n && (0 === s.get("separate_colour_plane_flag") ? t = e = 1 : 1 === s.get("separate_colour_plane_flag") && (t = e = 0)); var a = s.get("pic_width_in_mbs_minus1") + 1, i = s.get("pic_height_in_map_units_minus1") + 1, o = (r - s.get("frame_mbs_only_flag")) * i, _ = 0, f = 0, p = 0, c = 0; 1 === s.get("frame_cropping_flag") && (_ = s.get("frame_cropping_rect_left_offset"), f = s.get("frame_cropping_rect_right_offset"), p = s.get("frame_cropping_rect_top_offset"), c = s.get("frame_cropping_rect_bottom_offset")); var l = a * u * (o * u); return { width: a * u - t * (_ + f), height: o * u - e * (r - s.get("frame_mbs_only_flag")) * (p + c), decodeSize: l } }, getSpsValue: function(t) { return s.get(t) }, getCodecInfo: function() { return s.get("profile_idc").toString(u) + (s.get("profile_compatibility") < 15 ? "0" + s.get("profile_compatibility").toString(u) : s.get("profile_compatibility").toString(u)) + s.get("level_idc").toString(u) } }, new l } }]);