/i,u)){mt(o,e);continue}Ce&&c([re,le,de],(e=>{u=b(u,e," ")}));const m=tt(e.nodeName);if(xt(m,d,u)){if(!Fe||"id"!==d&&"name"!==d||(mt(o,e),u=Ae+u),Q&&"object"==typeof D&&"function"==typeof D.getAttributeType)if(r);else switch(D.getAttributeType(m,d)){case"TrustedHTML":u=Q.createHTML(u);break;case"TrustedScriptURL":u=Q.createScriptURL(u)}try{r?e.setAttributeNS(r,o,u):e.setAttribute(o,u),h(i.removed)}catch(e){}}}ft("afterSanitizeAttributes",e,null)},zt=function e(t){let i=null;const n=gt(t);for(ft("beforeSanitizeShadowDOM",t,null);i=n.nextNode();)ft("uponSanitizeShadowNode",i,null),yt(i)||(i.content instanceof l&&e(i.content),kt(i));ft("afterSanitizeShadowDOM",t,null)};return i.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,s=null,o=null,r=null;if(Ze=!e,Ze&&(e="\x3c!--\x3e"),"string"!=typeof e&&!vt(e)){if("function"!=typeof e.toString)throw x("toString is not a function");if("string"!=typeof(e=e.toString()))throw x("dirty is not a string, aborting")}if(!i.isSupported)return e;if(Le||st(t),i.removed=[],"string"==typeof e&&(Ge=!1),Ge){if(e.nodeName){const t=tt(e.nodeName);if(!ge[t]||xe[t])throw x("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof w)n=pt("\x3c!----\x3e"),s=n.ownerDocument.importNode(e,!0),1===s.nodeType&&"BODY"===s.nodeName||"HTML"===s.nodeName?n=s:n.appendChild(s);else{if(!_e&&!Ce&&!je&&-1===e.indexOf("<"))return Q&&Te?Q.createHTML(e):e;if(n=pt(e),!n)return _e?null:Te?ee:""}n&&Ee&&ut(n.firstChild);const d=gt(Ge?e:n);for(;o=d.nextNode();)yt(o)||(o.content instanceof l&&zt(o.content),kt(o));if(Ge)return e;if(_e){if(Ie)for(r=ne.call(n.ownerDocument);n.firstChild;)r.appendChild(n.firstChild);else r=n;return(ve.shadowroot||ve.shadowrootmode)&&(r=se.call(a,r,!0)),r}let h=je?n.outerHTML:n.innerHTML;return je&&ge["!doctype"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&y(U,n.ownerDocument.doctype.name)&&(h="\n"+h),Ce&&c([re,le,de],(e=>{h=b(h,e," ")})),Q&&Te?Q.createHTML(h):h},i.setConfig=function(){st(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Le=!0},i.clearConfig=function(){it=null,Le=!1},i.isValidAttribute=function(e,t,i){it||st({});const n=tt(e),a=tt(t);return xt(n,a,i)},i.addHook=function(e,t){"function"==typeof t&&(oe[e]=oe[e]||[],u(oe[e],t))},i.removeHook=function(e){if(oe[e])return h(oe[e])},i.removeHooks=function(e){oe[e]&&(oe[e]=[])},i.removeAllHooks=function(){oe={}},i}var Y=Z();return Y}();var t=e.exports;function i(e,t){e&&(e.shadowRoot?(e.shadowRoot.innerHTML="",e.shadowRoot.appendChild(document.importNode(t.content,!0))):e.attachShadow({mode:"open"}).appendChild(document.importNode(t.content,!0)))}function n({tag:e="",properties:t={},attributes:i={},children:n=[],events:a={}}){if(!e)return;const s=document.createElement(e);return Object.keys(t).forEach((e=>{s[`${e}`]=t[`${e}`]})),Object.keys(i).forEach((e=>s.setAttribute(e,i[`${e}`]))),Object.keys(a).forEach((e=>s.addEventListener(e,a[`${e}`]))),n.forEach((e=>s.appendChild(e))),s}function a(e="
",t=""){const i=document.createElement("template");return i.innerHTML=e,t&&i.content.appendChild(n({tag:"style",properties:{innerHTML:t}})),i}function s(e,t){customElements.get(e)||customElements.define(e,t)}const o="undefined"!=typeof window&&"object"==typeof window.process&&"renderer"===window.process.type||"object"==typeof navigator&&"string"==typeof navigator.userAgent&&navigator.userAgent.indexOf("Electron")>=0,r=["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document,l={isElectron:o,iOS:r,electronUrlPrefix:"icat://localhost/?src=",pathFromElectronUrl:(e="")=>e?decodeURIComponent(e.replace(l.electronUrlPrefix,"").replace("icat://localhost?src=","")):"",pathToElectronUrl:e=>`${l.electronUrlPrefix}${encodeURIComponent(e)}`,clearCache:()=>{window.NvCompareApi&&window.NvCompareApi.clearCache()},clearUrl:e=>{if(!o)try{URL.revokeObjectURL(e)}catch(e){}l.clearCache()},clearedUrl:e=>l.isObjectUrl(e)?(l.clearUrl(e),""):e,isObjectUrl:e=>!!e&&"blob:"===e.slice(0,5),isElectronUrl:e=>!!e&&"icat://localhost"===e.slice(0,16),getUrl:(e,t)=>{if(o&&t&&"string"==typeof t){const e=t.slice(0,5);return"data:"===e||"http:"===e||"blob:"===e||"https:"===t.slice(0,6)||l.isElectronUrl(t)?t:l.pathToElectronUrl(t)}return o&&e&&e.path?l.pathToElectronUrl(e.path):e&&e instanceof File?URL.createObjectURL(e):t},saveProject:async e=>o?window.NvCompareApi.saveProject(e):Promise.reject(),openProject:()=>o?window.NvCompareApi.openProject():Promise.reject(),logError:e=>{if(console.warn("logError",e),o)try{window.NvCompareApi.logError(JSON.stringify([e]))}catch(e){}},openLink:(e,t)=>{if(o)return t&&t.preventDefault(),window.NvCompareApi.openLink(e)}};let d=0;function c(e){return`${performance.now()}xxxxxxxxxxxxxxxx`.replace(/[x]|\./g,(()=>(16*Math.random()|0).toString(16)))+e}function h(){return d+=1,c(d)}const u=["auto","webgpu","webgl","2d"],m=["mp4","mkv","webm","ogg"],p=["jpeg","jpg","png","webp","bmp"],g=["pfm","exr"],b=m.concat(p,g).map((e=>`.${e}`)),v=b.map((e=>e.slice(1))),f=p.map((e=>`.${e}`)),y=["tile","split"],x=(e,t,i)=>new Promise(((n,a)=>{const s=new Image;s.onerror=()=>{s.onerror=null,s.onload=null,a(`Error loading ${t||e}`)},s.onload=()=>{s.onerror=null,s.onload=null,n({metadata:{fps:0,codec:i.toUpperCase(),bitrate:0,duration:0,hasAudio:!1,height:s.naturalHeight,width:s.naturalWidth,timestamps:[]},element:s})},s.src=e}));class w{buffer;bitSize=0;bitPointer=0;bytePointer=0;offset=0;view;littleEndian=!1;constructor(e,t={offset:0,littleEndian:!0}){this.buffer=e,this.bitSize=8*e.byteLength,this.offset=void 0===t.offset?0:t.offset,this.littleEndian=void 0===t||void 0===t.littleEndian||t.littleEndian,this.view=new DataView(this.buffer,t.offset)}shrinkWrap(){let e=this.bytePointer+(this.bitPointer>0?1:0),t=new Uint8Array(new ArrayBuffer(e));for(let i=0;i0&&(this.bitPointer=0,this.bytePointer++)}remainingBits(){return this.bitSize-(8*this.bytePointer+this.bitPointer)}readBits(e,t=!1){let i=0,n=e,a=this.bytePointer,s=this.bitPointer,o=this.remainingBits();n>o&&(n=o);let r=s+n,l=Math.min(r-1,7);for(i=w.bits(this.view.getUint8(a,this.littleEndian),l,s),n-=l-s+1,s=r,r>7&&(s=0,a++);n>8;)i|=this.view.getUint8(a,this.littleEndian)<0&&(i|=(this.view.getUint8(a,this.littleEndian)&(1<>i}static halfBytes2Float32(e){var t=32768&e?-1:1,i=(e>>10&31)-15,n=1023&e;if(16==i)return t*(n?Number.NaN:Number.POSITIVE_INFINITY);if(-16==i){if(0==n)return 0*t;i=-16,n/=1<<22}else n=(1024|n)/1024;return t*n*Math.pow(2,i)}static floatBytes2Float32(e){var t=2147483648&e?-1:1,i=(e>>23&255)-127,n=8388607&e;if(128==i)return t*(n?Number.NaN:Number.POSITIVE_INFINITY);if(-127==i){if(0==n)return 0*t;i=-126,n/=1<<22}else n=(n|1<<23)/(1<<23);return t*n*Math.pow(2,i)}peekUint8(e=this.bytePointer){return this.view.getUint8(e)}readUint8(){return this.view.getUint8(this.bytePointer++)}writeUint8(e){this.view.setUint8(this.bytePointer++,e)}getUint8(e){return this.view.getUint8(e)}setUint8(e,t){this.view.setUint8(e,t)}getInt8(e){return this.view.getInt8(e)}peekUint16(e=this.bytePointer){return this.view.getUint16(e,this.littleEndian)}readUint16(){let e=this.view.getUint16(this.bytePointer,this.littleEndian);return this.bytePointer+=2,e}writeUint16(e){this.view.setUint16(this.bytePointer,e,this.littleEndian),this.bytePointer+=2}getUint16(e){return this.view.getUint16(e,this.littleEndian)}setUint16(e,t){this.view.setUint16(e,t,this.littleEndian)}readUint32(){let e=this.view.getUint32(this.bytePointer,this.littleEndian);return this.bytePointer+=4,e}writeUint32(e){this.view.setUint32(this.bytePointer,e,this.littleEndian),this.bytePointer+=4}writeInt32(e){this.view.setInt32(this.bytePointer,e,this.littleEndian),this.bytePointer+=4}readInt32(){let e=this.view.getInt32(this.bytePointer,this.littleEndian);return this.bytePointer+=4,e}getUint32(e){return this.view.getUint32(e,this.littleEndian)}setUint32(e,t){this.view.setUint32(e,t,this.littleEndian)}readUint64(){let e=this.view.getBigUint64(this.bytePointer,this.littleEndian);return this.bytePointer+=8,e}readFloat32(){let e=this.view.getFloat32(this.bytePointer,this.littleEndian);return this.bytePointer+=4,e}writeFloat32(e){this.view.setFloat32(this.bytePointer,e,this.littleEndian),this.bytePointer+=4}getFloat32(e){return this.view.getFloat32(e,this.littleEndian)}setFloat32(e,t){this.view.setFloat32(e,t,this.littleEndian)}readFloat16(e=this.bytePointer){let t=w.halfBytes2Float32(this.view.getUint16(e,this.littleEndian));return this.bytePointer+=2,t}getFloat16(e){let t=this.view.getUint16(e,this.littleEndian);return w.halfBytes2Float32(t)}readString(){let e=this.readUint8(),t="";for(;0!=e;)t+=String.fromCharCode(e),e=this.readUint8();return t}writeString(e){for(let t=0;t0?1:0));for(let e=0;e0&&(this.offsetTable[e-1].size=i-this.offsetTable[e-1].offset)}n>1&&(this.offsetTable[n-1].size=(t.bitSize>>3)-Number(this.offsetTable[n-1].offset));for(let e=0;e=0;s--){let e=this.huffman.tables[s];a.fill(0);for(let t=0;t1&&console.warn("ERROR: Huffman table generation (1)");let l=-1;for(let t=0;t0;e--)s=s<<1|1&a,a>>=1;if(i<=k){let n=i<<9|t;for(;s>=9;for(let t=i;t>11;t--)o-=1&(s>>=1),e.tree[-o-1]?o=e.tree[-o-1]:(e.tree[-o-1]=l,o=l,l-=2);o-=1&(s>>=1),e.tree[-o-1]=t}if(2==s){let e=0;for(i=0;i=256)break;this.outputBuffer.bytePointer>=this.outputBuffer.buffer.byteLength&&console.warn("Attempting to write outside output buffer!"),this.outputBuffer.writeUint8(i)}else{let e=this.huffmanDecode(t,0,!0);if(i=e,256&i)break;if(e=this.huffmanDecode(t,0,!0),this.outputBuffer.writeUint8(255&i),256&e){i=e;break}this.outputBuffer.writeUint8(255&e)}if(256==(i&=511))break;let e=j[i-257];if(i=C[i-257],e){i+=t.readBits(e)}let n=this.huffmanDecode(t,1);if(e=E[n],n=L[n],e>0){n+=t.readBits(e)}let a=this.outputBuffer.bytePointer,s=a-n;if(Math.max(this.outputBuffer.bytePointer,s)>this.outputBuffer.buffer.byteLength-1)for(;i--;)this.outputBuffer.writeUint8(this.outputBuffer.peekUint8(a-n)),a++;else{t.remainingBits();do{this.outputBuffer.writeUint8(this.outputBuffer.peekUint8(s+0)),this.outputBuffer.writeUint8(this.outputBuffer.peekUint8(s+1)),this.outputBuffer.writeUint8(this.outputBuffer.peekUint8(s+2)),s+=3}while((i-=3)>2);i>0&&(this.outputBuffer.writeUint8(this.outputBuffer.peekUint8(s)),i>1&&this.outputBuffer.writeUint8(this.outputBuffer.peekUint8(s+1)))}}}while(!s)}let e=Math.round(this.dimensions.h/this.scanLinesPerChunk),i=this.dimensions.h%this.scanLinesPerChunk*this.dimensions.w*this.pixelSize,a=this.scanLinesPerChunk*this.dimensions.w*this.pixelSize,s=new w(new ArrayBuffer(a));for(let t=0;t0?i:a,r=Math.floor((o+1)/2);for(let e=n+1;e=0)a=o>>9,i||(o&=511);else{a=k,s=e.readBits(15,!0);do{o=n.tree[~o+(s>>a++&1)]}while(o<0)}let r=o;return e.skip(0,a),r}readAttribute(){let e=this.buffer;const t={name:e.readString(),type:e.readString(),size:e.readInt32()};if("box2i"==t.type&&(t.values={xMin:e.readInt32(),yMin:e.readInt32(),xMax:e.readInt32(),yMax:e.readInt32()}),"box2f"==t.type&&(t.values={xMin:e.readFloat32(),yMin:e.readFloat32(),xMax:e.readFloat32(),yMax:e.readFloat32()}),"chlist"==t.type){for(t.values=[];0!=e.peekUint8();){let i=e.readString(),n=e.readInt32(),a=e.readUint8();e.skip(3);let s={name:i,pixelType:n,pLinear:a,xSampling:e.readInt32(),ySampling:e.readInt32()};t.values.push(s)}e.skip()}if("chromaticities"==t.type&&(t.values={redX:e.readFloat32(),redY:e.readFloat32(),greenX:e.readFloat32(),greenY:e.readFloat32(),blueX:e.readFloat32(),blueY:e.readFloat32(),whiteX:e.readFloat32(),whiteY:e.readFloat32()}),"compression"==t.type&&(t.value=e.readUint8()),t.type,t.type,"float"==t.type&&(t.value=e.readFloat32()),"int"==t.type&&(t.value=e.readUint32()),t.type,"lineOrder"==t.type&&(t.value=e.readUint8()),t.type,"m44f"==t.type){t.values=[];for(let i=0;i<4;i++)for(let i=0;i<4;i++)t.values.push(e.readFloat32())}return t.type,t.type,t.type,t.type,t.type,t.type,"v2i"==t.type&&(t.values={x:e.readInt32(),y:e.readInt32()}),"v2f"==t.type&&(t.values={x:e.readFloat32(),y:e.readFloat32()}),t.type,t.type,t}toFloatArray(){let e=new Float32Array(new ArrayBuffer(this.dimensions.w*this.dimensions.h*4*4));const t={R:0,G:1,B:2,A:3};let i=this.attributes.channels.values;for(let n=0;n{let i=e.byteLength>>2;for(var n=0;nnew Promise(((i,n)=>{(e=>fetch(e).then((e=>e.blob())))(e).then((e=>{const a=new FileReader;a.onload=()=>i("pfm"===t?new I(a.result):new _(a.result)),a.onerror=()=>n("Could not read media"),a.readAsArrayBuffer(e)})).catch((()=>n("Could not read media")))}));const A=(e,t,i)=>"data:"===e.slice(0,5)?x(e,t,i):new Promise(((t,n)=>{(function(e,t,i){return new Promise(((n,a)=>{F(t,i).then((a=>(e.fileData=a,e.ext=i,e.src=t,P(a,e),n(e)))).catch(a)}))})(document.createElement("canvas"),e,i).then((e=>{t({metadata:{fps:0,duration:0,hasAudio:!1,timestamps:[],width:e.width,height:e.height,codec:i,bitrate:0},element:e})})).catch((e=>n(e)))})),R=(e,t)=>fetch(t).then((e=>e.blob())).then((t=>new File([t],e)));function G(e=0){if(0===e)return 0;const t=+(1/Math.round(e)).toFixed(6);return Number.isFinite(t)?t:0}const B=e=>Math.trunc(1e3*e)/1e3,V=(e,t)=>{const i=G(t);return Math.round(e/i)*i},N=(e,t,i)=>{const n=.1/i,a=t<0,s=Math.abs(B(t));if(!e||!e.length)return s;let o=0;for(;o=s)return a?-t:t;o+=1}return a?-s:s};const D=(e,t)=>`Error loading ${e}${t&&t.indexOf("NOT_SUPPORTED")>-1?", unsupported codec":""}`;function O(e,t,i){return new Promise(((n,a)=>{const s=window.IcatMediaInfo,o=document.createElement("video"),r={fps:0,duration:0,hasAudio:!1,width:0,height:0,timestamps:[],codec:"",bitrate:0};let d=!1;const c=e=>{r.duration=e.duration,r.fps=Math.ceil(e.fps),r.hasAudio=e.hasAudio,r.width=e.width,r.height=e.height,r.timestamps=e.frameTimes.slice(),r.codec=e.codec,r.bitrate=e.bitrate,0===r.timestamps.length&&(r.timestamps=function(e,t){const i=[];if(!e)return i;const n=1/(t||30);if(!Number.isNaN(n)&&Number.isFinite(n)){const t=Math.ceil(e/n);let a=0;i.push(a);let s=1;for(;s<=t;)a+=n,i.push(a),s+=1}return i.map((e=>B(e)))}(r.duration,r.fps)),e=null,n({element:o,metadata:r})},h=()=>{d=!0;const i=D(t.path||e,o.error?o.error.message:void 0);o.oncanplaythrough=null,o.onerror=null,o.src="",a(i)},u=async()=>{if(d)return;if(d=!0,o.oncanplaythrough=null,o.onerror=null,t.duration&&t.fps)return r.duration=t.duration,r.fps=Math.ceil(t.fps),r.hasAudio=t.hasAudio,r.width=t.width,r.height=t.height,r.timestamps=t.timestamps,r.codec=t.codec,r.bitrate=t.bitrate,void n({element:o,metadata:r});let a=i||t.file;if(!a&&e&&"string"==typeof e)try{a=await R(t.name,e)}catch(e){return h()}try{s(a).then(c)}catch(e){h()}},m=()=>{if(d)return;const{width:e,height:t}={width:o.videoWidth||o.width,height:o.videoHeight||o.height};if(4===o.readyState&&e&&t)return u();requestAnimationFrame(m)};o.oncanplaythrough=u,o.onerror=h,o.muted=!0,o.currentTime=0,o.playsInline=!0,o.preload="auto",o.src=l.getUrl(i,e);try{o.load()}catch(e){console.warn(e)}m()}))}function H(e,t,i){let n=e.src;return new Promise(((a,s)=>{i(n).then((e=>{n=e})).then((()=>{const i=t=>(e.codec=t.metadata.codec,e.bitrate=t.metadata.bitrate,e.duration=t.metadata.duration,e.fps=t.metadata.fps,e.hasAudio=t.metadata.hasAudio,e.height=t.metadata.height,e.timestamps=t.metadata.timestamps,e.width=t.metadata.width,{media:e,element:t.element});"video"===e.type?O(n,e,t).then((e=>a(i(e)))).catch((e=>{console.warn(e),s(e)})):"image"===e.type?x(n,e.path,e.extension).then((e=>a(i(e)))).catch((e=>{console.warn(e),s(e)})):"hdrimage"===e.type?A(n,e.path,e.extension).then((e=>a(i(e)))).catch((e=>{console.warn(e),s(e)})):s("Invalid media")})).catch(s)}))}function $(e){return!(!0!==e&&"true"!==e)}const U=(e,t,i=void 0)=>{const n=e=>null==e;if(0===t.length||n(e))return i;let a,s=e,o=0;for(;o-1?new t(e):"RegExp"===i?function(e){const t=/\w*$/,i=new e.constructor(e.source,t.exec(e));return i.lastIndex=e.lastIndex,i}(e):"Symbol"===i?function(e){return Object(Symbol.prototype.valueOf.call(e))}(e):"Function"===i?e:null}function Z(e,t){if(!e)return;let i=0;const n=U(e,["length"],0);for(;i{i.add(Y(e))})),i):"Map"===t?(i=new Map,e.forEach(((e,t)=>{i.set(t,Y(e))})),i):("Array"===t&&(i=[],Z(e,((e,t)=>{i[Number(t)]=Y(e)}))),"Object"===t&&(i={},Z(Object.keys(e),(t=>{i[`${t}`]=Y(e[`${t}`])}))),i)}function X(e){return`00${e}`.slice(-2)}function J(e,t){if(0===t||0===e)return"00:00";const i=Math.ceil(t),n=Math.max(0,Math.round(e*t)),a=n%i,s=(n-a)/i%60,o=Math.floor(e/60),r=Math.floor(e/3600);return`${r>0?`${X(r)}:`:""}${o>0?`${X(o)}:`:""}${X(s)}.${X(Number.isNaN(a)?0:a)}`}function Q(e,t,i,n,a,s){const o=U(t,["fileData"]);o&&e.getExtension("OES_texture_float_linear");const r=o?o.toFloatArray():t;let l,d=e.createTexture();e.bindTexture(e.TEXTURE_2D,d),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),o?e.texImage2D(e.TEXTURE_2D,0,e.RGBA32F,a,s,0,e.RGBA,e.FLOAT,null):e.texImage2D(e.TEXTURE_2D,0,e.RGBA,a,s,0,e.RGBA,e.UNSIGNED_BYTE,null),e.bindTexture(e.TEXTURE_2D,d);const c=()=>{(e=>{if(!e)return!1;if("IMG"===e.tagName){const t=e;return t.complete&&0!==t.naturalHeight}if("VIDEO"===e.tagName){const t=e;return 4===t.readyState&&0!==t.videoHeight}if("CANVAS"===e.tagName)return 0!==e.height;return!1})(t)&&(o?e.texImage2D(e.TEXTURE_2D,0,e.RGBA32F,a,s,0,e.RGBA,e.FLOAT,r):e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,r))};c();const h={width:a,height:s,element:t,use(){e.useProgram(n),e.activeTexture(e.TEXTURE0+i),e.bindTexture(e.TEXTURE_2D,d),c();const t=e.getUniformLocation(n,`uTexture${i}`);return t&&e.uniform1i(t,i),h.draw(),h},draw(){const t=e.createFramebuffer();return t?(l=t,e.bindFramebuffer(e.FRAMEBUFFER,l),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,d,0),e.viewport(0,0,h.width,h.height),e.bindFramebuffer(e.FRAMEBUFFER,null),h):h},dispose(){e.deleteTexture(d),l&&e.deleteFramebuffer(l),d=null}};return h}function ee(e,t,i=0,n=0){const a=(t,i)=>{const n=e.createShader(t);if(n){if(e.shaderSource(n,i),e.compileShader(n),!e.getShaderParameter(n,e.COMPILE_STATUS))throw new Error(`Shader compile: ${e.getShaderInfoLog(n)}`);return n}};let s=()=>{},o=0,r=0,l=0;const d=Date.now();let c=null,h=null,u=null,m=null,p=e.createProgram();if(!p)return null;const g=a(e.VERTEX_SHADER,"#version 300 es\nprecision highp float;\nin vec2 aVertexPosition;\nin vec2 aTextureCoord;\nout vec2 vTextureCoord;\nvoid main()\n{\n gl_Position = vec4(aVertexPosition, 0.0, 1.0);\n vTextureCoord = aTextureCoord;\n}");g&&e.attachShader(p,g);const b=a(e.FRAGMENT_SHADER,t);if(b&&e.attachShader(p,b),e.linkProgram(p),!e.getProgramParameter(p,e.LINK_STATUS))throw new Error(`Shader program: ${e.getProgramInfoLog(p)}`);const v=e.getUniformLocation(p,"uDimensions"),f=e.getUniformLocation(p,"uTime"),y=e.getUniformLocation(p,"uMouse"),x=()=>{l=1},w=()=>{l=0},k=t=>{const i=e.canvas.getBoundingClientRect();o=t.clientX-i.left,r=t.clientY-i.top};y&&(s=()=>{e.canvas.removeEventListener("mousedown",x),e.canvas.removeEventListener("mouseup",w),e.canvas.removeEventListener("mouseleave",w),e.canvas.removeEventListener("mousemove",k)},e.canvas.addEventListener("mousedown",x),e.canvas.addEventListener("mouseup",w),e.canvas.addEventListener("mouseleave",w),e.canvas.addEventListener("mousemove",k));const z={width:i,height:n,constantRender:!!y||!!f,program:p,draw(){p&&(null==c&&(c=e.createBuffer()),e.bindBuffer(e.ARRAY_BUFFER,c),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,1,1]),e.STATIC_DRAW),null==h&&(h=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,h),e.bufferData(e.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,1,1]),e.STATIC_DRAW)),null==u&&(u=e.getAttribLocation(p,"aVertexPosition"),e.enableVertexAttribArray(u)),null==m&&(m=e.getAttribLocation(p,"aTextureCoord"),e.enableVertexAttribArray(m)),e.useProgram(p),e.bindBuffer(e.ARRAY_BUFFER,c),e.vertexAttribPointer(u,2,e.FLOAT,!1,0,0),e.bindBuffer(e.ARRAY_BUFFER,h),e.vertexAttribPointer(m,2,e.FLOAT,!1,0,0),e.enable(e.BLEND),e.blendFunc(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA),e.drawArrays(e.TRIANGLE_STRIP,0,4))},setUniforms(t={}){if(!p)return;e.useProgram(p);const i=U(t,["gamma","value"],1),n=U(t,["exposure","value"],1),a=e.getUniformLocation(p,"uTonemapper");return 1!==i||1!==n?(e.uniform1i(a,0),e.uniform1f(e.getUniformLocation(p,"uGamma"),i),e.uniform1f(e.getUniformLocation(p,"uExposure"),n)):e.uniform1i(a,-1),v&&e.uniform2f(v,z.width,z.height),y&&e.uniform4f(y,o,r,l,0),f&&e.uniform1f(f,(Date.now()-d)/1e3),Object.keys(t).forEach((i=>{if("exposure"===i||"game"===i)return;const n=t[`${i}`],a=n.type,s=n.value,o=e.getUniformLocation(p,i);"bool"===a&&e.uniform1i(o,s?1:0),"int"===a&&e.uniform1i(o,s),"float"===a&&e.uniform1f(o,s),"dropdown"===a&&e.uniform1i(o,s)})),z},dispose(){e.deleteProgram(p),p=null,s()}};return z}function te(e,t){if(!Number.isNaN(e)&&Number.isFinite(e)&&"string"!=typeof e)return e;const i=parseFloat(e);return Number.isNaN(i)||!Number.isFinite(i)||"string"==typeof i?t:i}const ie=e=>({width:e.videoWidth||e.naturalWidth||e.width,height:e.videoHeight||e.naturalHeight||e.height});class ne{canvas;container;contentContainer;ctx;t=!1;get displayRenderMode(){return this.t}set displayRenderMode(e){this.t=$(e),this.t?this.renderModeText.style.removeProperty("display"):this.renderModeText.style.display="none"}i=!1;get displayInfoText(){return this.i}set displayInfoText(e){this.i=$(e),this.i?this.textContainer.style.removeProperty("display"):this.textContainer.style.display="none"}disposed=!1;eventListeners={};id="";index=0;overlayElement;renderMode="auto";shader;shaderSettings={};shaderSource="";sourceElement;textures=[];type;x=0;y=0;z=100;width=0;height=0;globalPosition={x:0,y:0,z:1};renderModeText;infoTextContainer;textContainer;visible=!0;hasFrameImages=!1;frameElement;o=!1;get showFrameImage(){return this.o}set showFrameImage(e){const t=this.o!==e;this.o=e,t&&"webgl"===this.renderMode&&this.createWebGlTextures()}drawingFrameImage;showFilter=!0;l="";u=0;m;p;v;k;static webGPUVertexShaderSource="\n struct VertexOutput {\n @builtin(position) Position: vec4,\n @location(0) uv: vec2,\n }\n\n @vertex\n fn vert_main(@builtin(vertex_index) VertexIndex: u32) -> VertexOutput {\n var pos = array, 6>(\n vec2( 1.0, 1.0),\n vec2( 1.0, -1.0),\n vec2(-1.0, -1.0),\n vec2( 1.0, 1.0),\n vec2(-1.0, -1.0),\n vec2(-1.0, 1.0)\n );\n\n var uv = array, 6>(\n vec2(1.0, 0.0),\n vec2(1.0, 1.0),\n vec2(0.0, 1.0),\n vec2(1.0, 0.0),\n vec2(0.0, 1.0),\n vec2(0.0, 0.0)\n );\n\n var output : VertexOutput;\n output.Position = vec4(pos[VertexIndex], 0.0, 1.0);\n output.uv = uv[VertexIndex];\n return output;\n }\n";static webGPUfragmentShaderSource="\n @group(0) @binding(1) var mySampler: sampler;\n @group(0) @binding(2) var myTexture: texture_external;\n\n @fragment\n fn frag_main(@location(0) uv : vec2) -> @location(0) vec4 {\n return textureSampleBaseClampToEdge(myTexture, mySampler, uv);\n }\n ";static webGLFragmentShader="#version 300 es\nprecision highp float;\nin vec2 vTextureCoord;\nuniform sampler2D uTexture0;\nuniform int uTonemapper;\nuniform float uGamma;\nuniform float uExposure;\nout vec4 color;\n\nvoid main()\n{\n color = texture(uTexture0, vTextureCoord);\n\n if (uTonemapper == 0) {\n float invGamma = 1.0 / uGamma;\n float exposure = uExposure;\n color.r = exposure * pow(color.r, invGamma);\n color.g = exposure * pow(color.g, invGamma);\n color.b = exposure * pow(color.b, invGamma);\n }\n}\n";constructor(e,t,i,n,a,s){this.l=h(),this.renderMode=n,this.container=t,this.id=e.id,this.sourceElement=e.sourceElement,this.overlayElement=e.overlayElement,this.type=e.type,this.x=e.x,this.y=e.y,this.z=e.z,this.index=e.index,this.globalPosition={...this.globalPosition,...i},this.shaderSource=e.shaderSource,this.hasFrameImages=e.frameImages.length>0,this.width=e.width,this.height=e.height;const o=Y(e.shaderSettings||{});o.exposure&&1===o.exposure.value&&delete o.exposure,o.gamma&&1===o.gamma.value&&delete o.gamma,this.shaderSettings=o,this.contentContainer=document.createElement("div"),this.contentContainer.className="media-renderer-content",this.container.appendChild(this.contentContainer),this.frameElement=new Image,this.frameElement.width=e.width,this.frameElement.height=e.height,this.renderModeText=document.createElement("div"),this.renderModeText.className="render-mode-text",this.contentContainer.appendChild(this.renderModeText),this.textContainer=document.createElement("div"),this.textContainer.className="render-text-container",this.contentContainer.appendChild(this.textContainer),this.infoTextContainer=document.createElement("div"),this.infoTextContainer.className="render-info-text-container",this.textContainer.appendChild(this.infoTextContainer),this.displayRenderMode=a,this.displayInfoText=s,this.createContextSource(),this.setIndex(this.index)}setIndex=e=>{this.index=te(e,0),this.contentContainer.style.order=this.index.toString()};setRenderMode=async e=>{e&&e!==this.renderMode&&-1!==u.indexOf(e)&&(this.renderMode=e,await this.createContextSource())};createCanvasSource=()=>{const e=document.createElement("canvas");e.className="media-source-canvas",this.canvas?this.contentContainer.replaceChild(e,this.canvas):this.contentContainer.insertBefore(e,this.renderModeText),this.canvas=e,this.setDimensions()};createContextSource=async()=>{const e=this.shaderSettingKeys(),t=this.renderMode,i="auto"===t||"webgpu"===t,n=i&&this.canDoWebGPU(e),a=e.length>0;n?await this.createWebGPUSource().then(this.draw):"webgl"===t||!n&&i||a?this.createWebGlSource():this.create2DSource()};canDoWebGPU=e=>!!navigator.gpu&&this.sourceElement&&"VIDEO"===this.sourceElement.tagName&&0===e.length&&!this.hasFrameImages;shaderSettingKeys=()=>Object.keys(this.shaderSettings||{});setShaderSettings=e=>{const t=Y(e);if(t.exposure&&1===t.exposure.value&&delete t.exposure,t.gamma&&1===t.gamma.value&&delete t.gamma,this.shaderSettings=t,("auto"===this.renderMode||"webgpu"===this.renderMode)&&!this.canDoWebGPU(this.shaderSettingKeys()))return this.createWebGlSource();this.draw()};setShaderSource=e=>{this.shaderSource=e,"webgl"===this.renderMode&&(this.shader&&this.shader.dispose(),this.showFilter?this.shader=ee(this.ctx,this.shaderSource||ne.webGLFragmentShader):this.shader=ee(this.ctx,ne.webGLFragmentShader),this.createWebGlTextures(),this.draw())};clearShader=async()=>{this.shaderSettings={},this.shaderSource=ne.webGLFragmentShader,this.overlayElement=null,this.showFilter=!0,await this.createContextSource()};handleWebGpuError=e=>{if(console.error("handleWebGpuError",e),!this.disposed){try{l.logError(`webgpuerror -> ${e}`)}catch(e){}requestAnimationFrame((()=>this.createWebGlSource()))}};handleWebGlContextLost=e=>{if(this.disposed)return;const t=e instanceof Error?e.message:e.toString();try{l.logError({error:e,message:t})}catch(e){}t&&-1===t.indexOf("cross-origin")&&this.u<1?(this.u=this.u+1,requestAnimationFrame((()=>this.createWebGlSource()))):(""!==this.shaderSource&&this.container.dispatchEvent(new CustomEvent("can-not-display-filter",{detail:this.id,composed:!0,bubbles:!0})),requestAnimationFrame((()=>this.create2DSource())))};handleContextLost=()=>{console.error("handleContextLost");try{l.logError("contextlost")}catch(e){}};clearContext=()=>{"function"==typeof this.eventListeners.webglcontextlost&&this.eventListeners.webglcontextlost(),"function"==typeof this.eventListeners.contextlost&&this.eventListeners.contextlost(),"function"==typeof this.eventListeners.webgpuerror&&this.eventListeners.webgpuerror(),this.disposeWebGPUSource(),this.disposeGLSource(),this.ctx=null,this.renderModeText.textContent="Mode: None"};createWebGPUSource=async()=>{if(this.clearContext(),this.createCanvasSource(),this.renderMode="webgpu",this.renderModeText.textContent="Mode: WebGPU",!this.canDoWebGPU(this.shaderSettingKeys()))return this.renderMode="webgl",this.createWebGlSource();let e;try{e=await navigator.gpu.requestAdapter()}catch(e){return this.handleWebGpuError(e)}if("webgpu"===this.renderMode){try{this.m=await e.requestDevice()}catch(e){return this.handleWebGpuError(e)}if("webgpu"===this.renderMode){try{this.m.addEventListener("uncapturederror",this.handleWebGpuError),this.eventListeners.webgpuerror=()=>{this.m&&this.m.removeEventListener("uncapturederror",this.handleWebGpuError),delete this.eventListeners.webgpuerror},this.p=navigator.gpu.getPreferredCanvasFormat(),this.ctx=this.canvas.getContext("webgpu"),this.ctx.configure({device:this.m,format:this.p,alphaMode:"opaque"}),this.v=this.m.createRenderPipeline({layout:"auto",vertex:{module:this.m.createShaderModule({code:ne.webGPUVertexShaderSource}),entryPoint:"vert_main"},fragment:{module:this.m.createShaderModule({code:ne.webGPUfragmentShaderSource}),entryPoint:"frag_main",targets:[{format:this.p}]},primitive:{topology:"triangle-list"}}),this.k=this.m.createSampler({magFilter:"linear",minFilter:"linear"})}catch(e){this.handleWebGpuError(e)}this.updateTransform()}}};createWebGlSource=()=>{if(this.clearContext(),this.createCanvasSource(),this.renderMode="webgl",this.renderModeText.textContent="Mode: WebGL",this.ctx=this.canvas.getContext("webgl2",{alpha:!1,antialias:!1}),this.ctx){try{this.ctx.getExtension("EXT_color_buffer_float"),this.ctx.getExtension("EXT_float_blend"),this.ctx.pixelStorei(this.ctx.UNPACK_FLIP_Y_WEBGL,!0),this.canvas.addEventListener("webglcontextlost",this.handleWebGlContextLost),this.eventListeners.webglcontextlost=()=>{this.canvas.removeEventListener("webglcontextlost",this.handleWebGlContextLost),delete this.eventListeners.webglcontextlost},this.shader=ee(this.ctx,this.shaderSource||ne.webGLFragmentShader)}catch(e){this.handleWebGlContextLost(e)}try{this.createWebGlTextures(),this.setDimensions(),this.draw()}catch(e){this.create2DSource()}this.updateTransform()}else this.create2DSource()};create2DSource=()=>{this.clearContext(),this.createCanvasSource(),this.renderMode="2d",this.renderModeText.textContent="Mode: 2D",this.canvas.addEventListener("contextlost",this.handleContextLost),this.eventListeners.contextlost=()=>{this.canvas.removeEventListener("contextlost",this.handleContextLost),delete this.eventListeners.contextlost},this.ctx=this.canvas.getContext("2d",{alpha:!1,preserveDrawingBuffer:!0,antialias:!1,imageSmoothingEnabled:!1}),this.ctx.imageSmoothingEnabled=!1,this.updateTransform(),this.draw()};setDimensions(){this.shader&&(this.shader.width=this.width,this.shader.height=this.height);const e=this.canvas;if(e.width=this.width,e.height=this.height,e.style.width=`${this.width}px`,e.style.height=`${this.height}px`,"webgl"===this.renderMode&&this.ctx){this.ctx.viewport(0,0,this.width,this.height)}}createWebGlTextures=()=>{if(this.textures.forEach((e=>e.dispose())),this.textures=[],"webgl"===this.renderMode)try{const e=[];this.showFrameImage?e.push(this.frameElement):e.push(this.sourceElement),this.showFilter&&this.overlayElement&&e.push(this.overlayElement);for(let t=0;t{if(this.sourceElement=e,this.overlayElement=t,e){const t=ie(e);this.width=t.width,this.height=t.height}else if(t){const e=ie(t);this.width=e.width,this.height=e.height}this.createWebGlTextures(),this.setDimensions(),this.draw()};draw=async()=>{if("webgpu"===this.renderMode)try{if(!this.k||!this.m||!this.v)return;const e=this.m.createBindGroup({layout:this.v.getBindGroupLayout(0),entries:[{binding:1,resource:this.k},{binding:2,resource:this.m.importExternalTexture({source:this.sourceElement})}]}),t=this.ctx,i=this.m.createCommandEncoder(),n={colorAttachments:[{view:t.getCurrentTexture().createView(),clearValue:[1,0,0,1],loadOp:"clear",storeOp:"store"}]},a=i.beginRenderPass(n);a.setPipeline(this.v),a.setBindGroup(0,e),a.draw(6,1,0,0),a.end(),this.m.queue.submit([i.finish()])}catch(e){this.handleWebGpuError(e)}else if("webgl"===this.renderMode){if(!this.shader||!this.textures.length)return;if(this.showFilter)for(let e=0;e{a[Number(e)]=i*(255*(a[Number(e)]/255)**s)},r=e=>{for(let t=0;t<3;t+=1)o(e+t)};for(let e=0;e{if(!e)return;if(this.drawingFrameImage===e)return this.createWebGlTextures(),void this.draw();this.drawingFrameImage=e;const t=this.frameElement.src;t&&(this.frameElement.src="",l.clearUrl(t)),this.frameElement.onload=()=>{e===this.drawingFrameImage&&(this.frameElement.onload=null,this.createWebGlTextures(),this.draw())};let i=e;("string"!=typeof e||l.isElectronUrl(e)||(i=await R("frame",e),e===this.drawingFrameImage))&&(this.frameElement.src=l.getUrl(i,i))};render=()=>this.showFrameImage||this.sourceElement&&"VIDEO"===this.sourceElement.tagName||this.overlayElement&&"VIDEO"===this.overlayElement.tagName||"filter"===this.type?this.draw():void 0;disposeWebGPUSource=()=>{try{this.m.destroy()}catch(e){}try{this.ctx.unconfigure()}catch(e){}this.m=null,this.p=null,this.v=null,this.k=null};disposeGLSource(){const e=this.ctx;try{e.clearColor(0,0,0,1),e.clear(e.COLOR_BUFFER_BIT)}catch(e){}this.textures.forEach((e=>{e.dispose()})),this.textures=[],this.shader&&(this.shader.dispose(),this.shader=null)}getScreenshot=()=>{let e=document.createElement("canvas"),t=e.getContext("2d");if(!t)return"";e.width=this.width,e.height=this.height,"webgpu"===this.renderMode?t.drawImage(this.sourceElement,0,0):t.drawImage(this.canvas,0,0);const i=e.toDataURL("image/png");return t=null,e=null,i};updatePosition=(e,t,i)=>{this.globalPosition={x:e,y:t,z:i},this.updateTransform()};updateTransform=()=>{const e=this.globalPosition.z/100,t=e*(this.z/100),i=`translateX(${(this.globalPosition.x+this.x)*e}px) translateY(${(this.globalPosition.y+this.y)*e}px) scale(${t})`;this.canvas.style.transform=i};setFrameImages=async e=>{this.hasFrameImages=(e||[]).length>0,"webgpu"===this.renderMode&&this.hasFrameImages&&await this.createContextSource()};removeFrameImages=async()=>{this.hasFrameImages=!1,this.showFrameImage=!1,this.drawingFrameImage=null,await this.createContextSource()};setFilterVisibility=e=>{this.showFilter=e,this.setShaderSource(this.shaderSource)};setInfoTexts=e=>{this.infoTextContainer.innerHTML="",e.forEach((e=>""===e.label||void 0===e.label?void 0:this.infoTextContainer.appendChild(n({tag:"div",attributes:{class:"info-text-item"},properties:{textContent:e.label}}))))};dispose=()=>{this.disposed=!0,Object.keys(this.eventListeners).forEach((e=>"function"==typeof this.eventListeners[`${e}`]?this.eventListeners[`${e}`]():void 0)),this.clearContext(),this.contentContainer.remove();const e=this.frameElement.src;e&&(this.frameElement.src="",l.clearUrl(e))}}function ae(e){return!(!1===e||"false"===e)}const se=e=>{const t=e.currentPositions,i=e.zoomFraction,n=e.fitToContent?e.contentPositionData.fitScale:1,a=e.fitToContent?(e.contentPositionData.height-e.contentPositionData.fitHeight*n)/2:0,s=e.fitToContent?(e.contentPositionData.width-e.contentPositionData.fitWidth*n)/2:0,o=t.x,r=t.y,l=e.newZoomFraction;let d=e.pageY-e.box.top,c=e.pageX-e.box.left,h=0;const{contentWidth:u,contentHeight:m}=e.contentPositionData,p=e.fitToContent?e.contentPositionData.fitPaneWidth:e.contentPositionData.paneWidth,g=e.fitToContent?e.contentPositionData.fitPaneHeight:e.contentPositionData.paneHeight,b=u*i,v=m*i,f=u*l,y=m*l,x=o*i,w=r*i;if("split"!==e.layout){const t=e.box.width/e.mediaLength;for(;hc);)h+=1;c=e.pageX-t*h-e.box.left}c=(c-s)/n,d=(d-a)/n;const k=(c-x)/b,z=(d-w)/v;return oe((x-(f*k-b*k))/l,(w-(y*z-v*z))/l,l,u,m,p,g)},oe=(e,t,i,n,a,s,o)=>{const r=n*i,l=(s-r)/i,d=r{if(!e||"VIDEO"!==e.tagName)return void i(0);let n=!1;const a=()=>{e.removeEventListener("seeked",a),n||(n=!0,i(e.currentTime))};e.addEventListener("seeked",a),e.currentTime=t+.001,e.seeking||a()}))}function le(e,t,i){return t.indexOf(e)>-1?e:void 0!==i?i:t[0]}const de=e=>({width:e.videoWidth||e.naturalWidth||e.width,height:e.videoHeight||e.naturalHeight||e.height});class ce{antialias=!1;containerElement;containerHeight=0;containerWidth=0;canvasContainer;controllerID="";t=!1;get displayRenderMode(){return this.t}set displayRenderMode(e){this.t=$(e),this.renderers&&this.renderers.forEach((e=>{e.displayRenderMode=this.t}))}drawTimer;duration=0;elementForTime;S;get endTime(){return void 0===this.S||0===this.S||Number.isNaN(this.S)||!Number.isFinite(this.S)?this.duration:this.S}eventListeners={};exposure=1;fps=0;frameRate=30;gamma=1;grid=0;gridElement;imageElements;integerScaling=!1;isPinchZooming=!1;lastX=0;lastY=0;layout="";looping=!0;maxContentDuration=0;media;mediaOrder=[];minStartTime=0;playing=!1;position={x:0,y:0,z:100};preserveDimensions=!1;M="auto";get renderMode(){let e=this.M;return this.C&&"2d"!==e&&(e="webgl"),e}set renderMode(e){const t=le(e,u.slice(),this.M);if(t===this.M)return;this.M=t;const i=this.renderMode;this.renderers&&this.renderers.forEach((e=>e.setRenderMode(i)))}renderers;resizeObserver;seeking=!1;singleCanvas;singleCanvasContext;singleCanvasTimer;speed=1;splitPosition=.5;splitHandleContainer;splitHandleContainerWrapper;splitHandleContainerWrapperInner;startTime=0;time=0;get totalFrames(){const e=this.startTime,t=this.endTime,i=this.fps;return Math.round((t-e)*i)}C=!1;get useSingleCanvas(){return this.C}set useSingleCanvas(e){cancelAnimationFrame(this.singleCanvasTimer),this.C=$(e),this.containerElement.setAttribute("data-use-single-canvas",this.C.toString());const t=this.renderMode;this.renderers&&this.renderers.forEach((e=>e.setRenderMode(t))),this.C?this.singleCanvasTimer=requestAnimationFrame(this.drawSingleCanvas):cancelAnimationFrame(this.singleCanvasTimer)}videoContainer;videoElements;viewportDimensions={paneWidth:0,paneHeight:0,height:0,width:0,minZoom:0,fitScale:1,fitWidth:0,fitHeight:0,fitPaneWidth:0,fitPaneHeight:0,contentWidth:0,contentHeight:0};windowScrolling=!1;positionUpdateCallback=e=>{console.warn("mediaController.positionUpdateCallback not set",e)};playStateUpdateCallback=e=>{console.warn("mediaController.playStateUpdateCallback not set",e)};seekStateUpdateCallback=e=>{console.warn("mediaController.seekStateUpdateCallback not set",e)};timeUpdateCallback=e=>{console.warn("mediaController.timeUpdateCallback not set",e)};timeDataCallback=e=>{console.warn("mediaController.timeDataCallback not set",e)};setTimeUpdateCallback=e=>{console.warn("mediaController.timeUpdateCallback not set",e)};constructor(e){if(this.controllerID=h(),!e||!e.container)throw new Error("Invalid parameters for media renderer, you must supply a container element");const t={container:null,antialias:this.antialias,endTime:this.endTime,grid:this.grid,layout:this.layout||y[0],looping:this.looping,preserveDimensions:this.preserveDimensions,speed:this.speed,startTime:this.startTime,time:this.time,renderMode:this.M,displayRenderMode:this.displayRenderMode,exposure:this.exposure,gamma:this.gamma,integerScaling:this.integerScaling,useSingleCanvas:this.useSingleCanvas,positionCallback:this.positionUpdateCallback,playStateUpdate:this.playStateUpdateCallback,timeUpdateCallback:this.timeUpdateCallback,setTimeUpdateCallback:this.setTimeUpdateCallback,timeDataCallback:this.timeDataCallback,seekingStateUpdate:this.seekStateUpdateCallback,...e};this.renderMode=t.renderMode,this.videoElements=new Map,this.imageElements=new Map,this.renderers=new Map,this.media=new Map,this.containerElement=t.container,this.containerElement.classList.add("media-controller-container"),this.antialias=t.antialias,this.S=t.endTime,this.grid=t.grid,this.layout=t.layout,this.looping=t.looping,this.preserveDimensions=t.preserveDimensions,this.speed=t.speed,this.startTime=t.startTime,this.time=t.time,this.displayRenderMode=t.displayRenderMode,this.exposure=t.exposure,this.gamma=t.gamma,this.integerScaling=t.integerScaling,this.useSingleCanvas=t.useSingleCanvas,this.positionUpdateCallback=t.positionCallback,this.playStateUpdateCallback=t.playStateUpdate,this.seekStateUpdateCallback=t.seekingStateUpdate,this.timeUpdateCallback=t.timeUpdateCallback,this.timeDataCallback=t.timeDataCallback,this.setTimeUpdateCallback=t.setTimeUpdateCallback;const i=document.createElement("div");i.id=this.controllerID,i.className="canvas-container",this.containerElement.appendChild(i),this.canvasContainer=i,this.singleCanvas=document.createElement("canvas"),this.singleCanvas.className="media-controller-single-canvas",this.containerElement.appendChild(this.singleCanvas),this.singleCanvasContext=this.singleCanvas.getContext("2d");const n=document.createElement("div");n.className="video-container",this.containerElement.appendChild(n),this.videoContainer=n,this.splitHandleContainerWrapper=document.createElement("div"),this.splitHandleContainerWrapper.className="split-handle-container-wrapper",this.splitHandleContainerWrapperInner=document.createElement("div"),this.splitHandleContainerWrapperInner.className="split-handle-container-wrapper-inner",this.splitHandleContainerWrapper.appendChild(this.splitHandleContainerWrapperInner),this.splitHandleContainer=document.createElement("div"),this.splitHandleContainer.className="split-handle-container",this.splitHandleContainerWrapperInner.appendChild(this.splitHandleContainer);const a=document.createElement("div");a.className="split-handle-inner",this.splitHandleContainer.appendChild(a);const s=document.createElement("div");s.className="split-handle-line",a.appendChild(s);const o=document.createElement("div");o.className="split-handle-box",a.appendChild(o),this.containerElement.appendChild(this.splitHandleContainerWrapper),this.gridElement=document.createElement("div"),this.gridElement.className="media-controller-grid",this.containerElement.appendChild(this.gridElement),this.canvasContainer.addEventListener("pointerdown",this.handleMove),this.eventListeners.canvasMove=()=>{this.canvasContainer.removeEventListener("pointerdown",this.handleMove),delete this.eventListeners.canvasMove},window.addEventListener("scroll",this.handleWindowScroll),this.eventListeners.windowScroll=()=>{window.removeEventListener("scroll",this.handleWindowScroll),delete this.eventListeners.windowScroll},this.containerElement.addEventListener("wheel",this.handleWheelEvent,{passive:!1}),this.eventListeners.wheel=()=>{this.containerElement.removeEventListener("wheel",this.handleWheelEvent),delete this.eventListeners.wheel};const r=function(e,t=33,i=!1){let n=0;const a=this;return function(){const s=a,o=arguments,r=i&&!n;clearTimeout(n),cancelAnimationFrame(n),n=setTimeout((function(){n=requestAnimationFrame((function(){n=0,i||e.apply(s,o)}))}),t),r&&e.apply(s,o)}}(this.updateCanvasDimensions);this.resizeObserver=new ResizeObserver((()=>r())),this.resizeObserver.observe(this.containerElement),this.splitHandleContainer.addEventListener("pointerdown",this.handleSplitMove),this.eventListeners.splitMove=()=>{this.splitHandleContainer.removeEventListener("pointerdown",this.handleSplitMove),delete this.eventListeners.splitMove},this.setGrid(this.grid),this.setAntialias(this.antialias),this.setSpeed(this.speed)}dispose=()=>{this.positionUpdateCallback=()=>{},this.playStateUpdateCallback=()=>{},this.seekStateUpdateCallback=()=>{},this.timeUpdateCallback=()=>{},this.timeDataCallback=()=>{},this.setTimeUpdateCallback=()=>{},this.playing=!1,cancelAnimationFrame(this.drawTimer),cancelAnimationFrame(this.singleCanvasTimer),Object.keys(this.eventListeners).forEach((e=>"function"==typeof this.eventListeners[`${e}`]?this.eventListeners[`${e}`]():void 0)),this.resizeObserver.disconnect(),this.renderers.forEach((e=>this.deleteMedia(e.id))),this.videoContainer.remove(),this.canvasContainer.remove(),this.splitHandleContainer.remove(),this.splitHandleContainer=null,this.splitHandleContainerWrapperInner.remove(),this.splitHandleContainerWrapperInner=null,this.splitHandleContainerWrapper.remove(),this.splitHandleContainerWrapper=null,this.gridElement.remove(),this.gridElement=null,this.renderers.clear(),this.media.clear(),this.videoElements.clear(),this.imageElements.clear()};addFrameImages=async(e,t)=>{await this.pause();const i=this.media.get(e);if(!i)return;this.media.set(e,{...i,frameImages:t,showFrameImages:!0});const n=this.renderers.get(e);n&&(await n.setFrameImages(t),this.drawFrameImage(n,this.media.get(e)))};removeFrameImages=async e=>{await this.pause();const t=this.media.get(e);if(!t)return;this.media.set(e,{...t,frameImages:[],showFrameImages:!0});const i=this.renderers.get(e);i&&(await i.removeFrameImages(),i.draw())};setFrameImagesVisibility=async(e,t)=>{await this.pause();const i=this.media.get(e);i&&(this.media.set(e,{...i,showFrameImages:t}),this.drawFrameImage(this.renderers.get(e),this.media.get(e)))};addMediaOverlay=async(e,t,i)=>{await this.pause();const n=N(t.timestamps,t.startTime,t.fps);if(i&&"video"===t.type){const e=i;e.dataset.mediaId=t.id,e.muted=t.muted,e.playbackRate=this.speed,this.videoElements.set(t.id,e),this.videoContainer.appendChild(e),await re(i,N(t.timestamps,this.time-n,t.fps))}else this.imageElements.set(t.id,i);this.media.set(t.id,{id:t.id,index:-1,width:t.width,height:t.height,fps:t.fps,timestamps:t.timestamps,type:t.type,startTime:n,shaderInputs:t.shaderInputs,shaderSettings:t.shaderSettings,shaderSource:t.shaderSource,duration:t.duration,x:t.x,y:t.y,z:t.z,visible:t.visible,overlayElement:null,sourceElement:i,muted:t.muted,frameImages:t.frameImages||[],showFrameImages:t.showFrameImages,showShader:t.showShader,infoTexts:t.infoTexts.slice(),showInfoText:t.showInfoText}),this.setMediaOverlay(e,t.id)};removeMediaOverlay=async e=>{await this.pause();const t=this.media.get(e);if(!t)return;const i=t.shaderInputs[Number(0)];this.media.set(t.id,{...t,shaderInputs:[],shaderSettings:{},shaderSource:"",overlayElement:null});const n=this.renderers.get(t.id);n&&(n.renderMode=this.M,await n.clearShader());if(!this.media.get(i))return;Array.from(this.media.values()).reduce(((e,n)=>e||n.id===i||n.id===t.id?e:n.shaderInputs.indexOf(i)>-1),!1)||this.deleteMedia(i)};addMedia=async(e,t)=>{await this.pause();const i=N(e.timestamps,e.startTime,e.fps);if(t&&"video"===e.type){const i=t;i.dataset.mediaId=e.id,i.muted=e.muted,i.playbackRate=this.speed,this.videoElements.set(e.id,i),this.videoContainer.appendChild(i)}else this.imageElements.set(e.id,t);const n=e.id;let a=this.mediaOrder.indexOf(n);-1===a&&(a=this.mediaOrder.length,this.mediaOrder.push(n));const s={id:n,index:a,width:e.width,height:e.height,fps:e.fps,timestamps:e.timestamps,type:e.type,startTime:i,shaderInputs:e.shaderInputs,shaderSettings:e.shaderSettings,shaderSource:e.shaderSource,duration:e.duration,x:e.x,y:e.y,z:e.z,visible:e.visible,overlayElement:null,sourceElement:t,frameImages:e.frameImages,showFrameImages:e.showFrameImages,muted:e.muted,showShader:e.showShader,infoTexts:e.infoTexts.slice(),showInfoText:e.showInfoText};this.media.set(e.id,s);const o=new ne({id:n,index:a,width:e.width,height:e.height,type:e.type,shaderSettings:e.shaderSettings,shaderSource:e.shaderSource,x:e.x||0,y:e.y||0,z:e.z?e.z:100,frameImages:e.frameImages,sourceElement:t},this.canvasContainer,{...this.position},this.renderMode,this.displayRenderMode,e.showInfoText);this.renderers.set(n,o),o.contentContainer.setAttribute("data-hide",e.visible?"false":"true");const r=this.media.get(e.mediaOverlay);(r&&!r.visible||!s.showShader)&&o.setFilterVisibility(!1),await re(t,N(e.timestamps,this.time-i,e.fps)),await this.drawFrameImage(o,s),this.setMediaOrder(this.mediaOrder),this.updateMediaTimeData(),await this.updateShaderInputs(n),this.renderInfoTexts(o,this.media.get(s.id))};setMediaOverlay=async(e,t)=>{await this.pause();const i=this.media.get(e),n=this.media.get(t),a=this.renderers.get(e);if(!i||!a)return;const s=i.shaderInputs[Number(0)];if(s&&s!==t){Array.from(this.media.values()).reduce(((e,t)=>e||t.id===s||t.id===i.id?e:t.shaderInputs.indexOf(s)>-1),!1)||this.deleteMedia(s)}const o=i.sourceElement,r=n?n.sourceElement:void 0;this.media.set(e,{...i,overlayElement:r,shaderInputs:[t]}),a.loadInputs(o,r),n.visible&&i.showShader||a.setFilterVisibility(!1),this.updateMediaTimeData(),this.renderInfoTexts(this.renderers.get(a.id),this.media.get(i.id))};deleteMedia=async e=>{await this.pause();const t=this.renderers.get(e);this.renderers.delete(e),t&&t.dispose();const i=this.videoElements.get(e);this.videoElements.delete(e),i&&(i.pause(),i.src="",i.remove());const n=this.imageElements.get(e);this.imageElements.delete(e),n&&(n.src="",n.remove()),this.setMediaOrder(this.mediaOrder.filter((t=>t!==e))),this.media.delete(e),this.updateMediaTimeData(),await this.updateShaderInputs(e)};addShaderMedia=(e,t)=>{const i={error:"",inputIds:[],settings:{}};if(!t)return i.error="Invalid shader data",i;if(i.settings=Y(t.UI),t.inputs)for(0===t.inputIds.length&&(t.inputIds=Array.from(this.media.values()).reduce(((e,i)=>"filter"===i.type||e.length===t.inputs?e:e.concat([i.id])),[]));t.inputIds.length{await this.pause();const i=this.media.get(e);if(!i)return;this.media.set(e,{...i,shaderSource:t});const n=this.renderers.get(e);n&&n.setShaderSource(t)};updateShaderInputs=async e=>{await this.pause();const t=this.media.has(e),i=[];this.media.forEach((t=>{t.id!==e&&"filter"===t.type&&t.shaderInputs.indexOf(e)>-1&&i.push(t)})),i.forEach((i=>{const n=this.renderers.get(i.id),a=i.shaderInputs.slice();if(t){if(n){const e=this.media.get(a[0])||{},t=this.media.get(a[1])||{};n.loadInputs(e.sourceElement,t.sourceElement)}}else{const t=a.map((t=>t!==e?t:"")),s=this.media.get(t[0])||{},o=this.media.get(t[1])||{};this.media.set(i.id,{...i,shaderInputs:t}),n.loadInputs(s.sourceElement,o.sourceElement)}}))};updateShaderInput=(e,t,i)=>{const n=this.media.get(e);if(!n)return[];const a=n.shaderInputs.slice();if(a.indexOf(i)===t)return a;a[Number(t)]=i,this.media.set(e,{...n,shaderInputs:a});const s=this.renderers.get(e);if(s){let e,t;a.forEach(((i,n)=>{const a=this.media.get(i);a&&(0===n&&(e=a.sourceElement),1===n&&(t=a.sourceElement))})),s.loadInputs(e,t)}return a};updateShaderSetting=async(e,t,i)=>{const n=this.media.get(e);if(!n)return{};const a=Y(n.shaderSettings);return a[`${t}`]={...a[`${t}`]||{},value:i},await this.updateShaderSettings(e,a),a};updateShaderSettings=async(e,t)=>{await this.pause();const i=this.media.get(e);if(!i)return;this.media.set(i.id,{...i,shaderSettings:t});const n=this.renderers.get(i.id);n&&n.setShaderSettings({...t,exposure:{name:"exposure",value:this.exposure,type:"float"},gamma:{name:"gamma",value:this.gamma,type:"float"}})};getMediaElement=e=>{let t=this.videoElements.get(e);return t||(t=this.imageElements.get(e),t)};getScreenshot=e=>{const t=this.renderers.get(e);if(t)return t.getScreenshot()};getNewMediaStartTimeFromFrame=(e,t)=>{const i=this.media.get(e);if(!i)return;let n=i.startTime;return t?n+=G(i.fps):n-=G(i.fps),{id:e,duration:i.duration,time:n,fps:i.fps}};setAntialias=e=>{this.antialias=e,this.containerElement.setAttribute("data-antialias",this.antialias.toString()),this.drawFrameImages()};setExposure=e=>{this.exposure=te(e,1),this.media.forEach((e=>this.updateShaderSettings(e.id,e.shaderSettings)))};setGamma=e=>{this.gamma=te(e,1),this.media.forEach((e=>this.updateShaderSettings(e.id,e.shaderSettings)))};setStartTime=async e=>{await this.pause();const t=Math.min(Math.max(this.minStartTime,e),this.endTime-G(this.fps));return this.startTime=B(V(t,this.fps)),this.triggerTimeDataUpdate(),this.startTime>this.time&&await this.seek(this.startTime),this.startTime};setEndTime=async e=>{await this.pause();const t=this.minStartTime,i=Array.from(this.media.values()).reduce(((e,t)=>"video"!==t.type?e:Math.min(e,t.duration+t.startTime)),this.duration),n=Math.max(this.startTime+G(this.fps),Math.min(i,Math.max(t+G(this.fps),e)));return this.S=B(V(n,this.fps)),this.triggerTimeDataUpdate(),this.endTime{await this.pause();const i=this.media.get(e);if(!i||"video"!==i.type)return;const n=G(i.fps);let a=Math.min(t,this.endTime-2*G(this.fps)),s=a+i.duration;this.media.forEach(((t,o)=>{o!==e&&"video"===t.type&&sthis.startTime&&(this.startTime=o,r=!0),this.endTime>a+i.duration&&(this.S=B(V(a+i.duration,this.fps)),r=!0),r&&this.triggerTimeDataUpdate(),this.time<=this.startTime?this.seek(this.startTime):this.time>=this.endTime?this.seek(this.endTime):this.seek(this.time),a};setGrid=e=>{const t=Math.max(0,Math.min(3,e));return this.grid=t,this.containerElement.setAttribute("data-grid",t.toString()),this.grid};setLooping=e=>{this.looping=ae(e)};setMediaOrder=e=>{this.mediaOrder=e.slice(),e.forEach(((e,t)=>{const i=this.renderers.get(e);i&&i.setIndex(t)})),this.setLayoutVisibility(),this.updateContentDimensions(),this.setPosition({})};setMediaPosition=(e,t)=>{const i=this.media.get(e);if(!i)return;this.media.set(e,{...i,...t});const n=this.renderers.get(e);n&&(n.z=void 0===t.z?n.z:t.z,n.x=void 0===t.x?n.x:t.x,n.y=void 0===t.y?n.y:t.y,n.updateTransform())};setSpeed=async e=>(await this.pause(),this.speed=e,this.videoElements.forEach((e=>{e.playbackRate=this.speed})),this.speed);setPreserveDimensions=e=>{this.preserveDimensions=$(e),this.preserveDimensions&&!this.C&&this.setUseSingleCanvas(!0),this.updateCanvasDimensions()};setLayout=e=>{if(-1===y.indexOf(e))return this.layout;this.layout!==e&&(this.layout=e,this.setLayoutVisibility(),this.updateContentDimensions(),this.setPosition({}))};setLayoutVisibility=()=>{let e=0;const t=()=>{this.containerElement.setAttribute("data-layout-split",("split"===this.layout&&e>1).toString())},i=()=>{t(),this.setSplitPosition(this.splitPosition)};if("split"===this.layout){let t=0;for(;t=2)return i()}(()=>{t(),this.renderers.forEach((e=>{e.contentContainer.setAttribute("data-layout-split-hide-item","false"),e.contentContainer.style.removeProperty("clip-path")}))})()};setPosition=e=>{const t=(e,t,i)=>this.renderers.forEach((n=>n.updatePosition(e,t,i))),i=(e,t)=>void 0===e||Number.isNaN(e)?t:e,n=(e,t,i)=>e!==this.position.x||t!==this.position.y||i!==this.position.z,a=void 0!==e.z&&void 0===e.x&&void 0===e.y,{contentWidth:s,contentHeight:o,minZoom:r}=this.viewportDimensions;let l=this.viewportDimensions.paneWidth,d=this.viewportDimensions.paneHeight;this.C&&(l=this.preserveDimensions&&"split"!==this.layout?this.viewportDimensions.fitPaneWidth/this.mediaToRender().length:this.viewportDimensions.fitPaneWidth,d=this.viewportDimensions.fitPaneHeight);let c=Math.max(r,i(e.z,this.position.z));if(this.integerScaling){c=this.position.z>c?100*Math.max(1,Math.floor(c/100)):100*Math.max(1,Math.ceil(c/100))}c=te(c,100);const h=c/100;if(a){const e=this.layout,i=this.mediaToRender().length,a=this.canvasContainer.getBoundingClientRect(),s=a.height/2+a.top;let o=a.width/2+a.left;"split"!==e&&(o/=i);const{x:r,y:l}=se({currentPositions:this.position,newZoomFraction:c/100,zoomFraction:this.position.z/100,fitToContent:this.C,pageX:o,pageY:s,mediaLength:i,box:a,contentPositionData:this.viewportDimensions,layout:e}),d=n(r,l,c);return this.position={x:r,y:l,z:c},d&&(this.triggerPositionUpdate({x:r,y:l,z:c}),t(r,l,c)),{x:r,y:l,z:c}}const{x:u,y:m}=oe(i(e.x,this.position.x),i(e.y,this.position.y),h,s,o,l,d),p=n(u,m,c);return this.position={x:u,y:m,z:c},p&&this.triggerPositionUpdate({x:u,y:m,z:c}),t(u,m,c),{x:u,y:m,z:c}};setSplitPosition=e=>{this.splitPosition=e,this.splitHandleContainer.style.left=100*e+"%";const t="data-layout-split-hide-item";let i=0;const n=e=>{e.setAttribute(t,"true"),e.style.removeProperty("clip-path")};this.mediaOrder.forEach((a=>{const s=this.media.get(a),o=this.renderers.get(a);if(!s||!o)return;const r=o.contentContainer;s.visible?(i+=1,i>2?n(r):2===i?(r.setAttribute(t,"false"),r.style.clipPath=`inset(0% 0% 0% ${100*e}%)`):(r.setAttribute(t,"false"),r.style.clipPath=`inset(0% ${100*(1-e)}% 0% 0%)`)):n(r)}))};setUseSingleCanvas=e=>{this.useSingleCanvas=e};updateMediaTimeData=()=>{0===this.videoElements.size&&(this.fps=0,this.maxContentDuration=0,this.duration=0,this.minStartTime=0,this.time=0,this.startTime=0,this.S=void 0,this.triggerTimeDataUpdate());let e=0,t=0,i=0,n=1e29;this.media.forEach((a=>{"video"===a.type&&(a.fps&&(t=Math.max(a.fps,t)),a.duration&&(n=Math.min(a.duration,n),i=Math.max(a.duration,i)),e=Math.max(a.startTime,e))})),this.fps=t,this.maxContentDuration=i,this.duration=n,this.minStartTime=e,this.triggerTimeDataUpdate()};updateCanvasDimensions=()=>{const e=this.containerElement.getBoundingClientRect();this.containerHeight=e.height,this.containerWidth=e.width;const t=this.canvasContainer;t&&(t.style.width=`${e.width}px`,t.style.height=`${e.height}px`),this.updateContentDimensions(),this.setPosition({})};updateContentDimensions=()=>{const e=this.mediaToRender(),t=e.reduce(((e,t)=>({width:Math.max(e.width,t.width),height:Math.max(e.height,t.height)})),{width:0,height:0}),i="split"===this.layout&&e.length>1,n=i||this.preserveDimensions,a=this.containerWidth/(n?1:e.length||1),s=this.containerHeight,o=t.width||a,r=t.height||s;let l=Math.min(100,100*Math.min(a/o,s/r));const d=n?o:o*e.length,c=r,h=Math.floor(d/(n?1:e.length||1)),u=c;let m=Math.min(this.containerWidth/d,this.containerHeight/c);!Number.isNaN(m)&&Number.isFinite(m)&&m||(m=1),this.C&&(l=100);const p={width:this.containerWidth,height:this.containerHeight,contentWidth:o,contentHeight:r,paneHeight:s,paneWidth:a,minZoom:Number.isNaN(l)?100:l,fitScale:m,fitWidth:n?o:o*e.length,fitHeight:c,fitPaneWidth:h,fitPaneHeight:u},g=Object.keys(p).filter((e=>p[`${e}`]!==this.viewportDimensions[`${e}`])).length>0;this.viewportDimensions=p;const b=this.splitHandleContainerWrapperInner;if(b)if(i&&this.C){const e=this.viewportDimensions.height/this.viewportDimensions.fitHeight*this.viewportDimensions.fitWidth;e{cancelAnimationFrame(this.drawTimer),this.renderers.forEach((e=>{e.showFrameImage=!1,e.render()})),this.playing&&(this.drawTimer=requestAnimationFrame(this.draw))};mediaFrameIndex=e=>((e,t,i)=>{const n=.1/i,a=Math.abs(B(t));if(!e||!e.length)return a;let s=0;for(;s=a)return s;s+=1}return s})(e.timestamps,this.time-e.startTime,e.fps);mediaFrameImage=e=>e.frameImages[Number(this.mediaFrameIndex(e))];drawFrameImages=()=>this.media.forEach((e=>this.drawFrameImage(this.renderers.get(e.id),e)));drawFrameImage=async(e,t)=>{if(!e||!t)return;if(!t.showFrameImages||!t.frameImages||!t.frameImages.length)return e.showFrameImage=!1,void e.draw();const i=this.mediaFrameImage(t);i?(e.showFrameImage=!1,await e.draw(),e.showFrameImage=!0,e.drawFrameImage(i)):(e.showFrameImage=!1,e.draw())};drawSingleCanvas=()=>{cancelAnimationFrame(this.singleCanvasTimer);const e=this.singleCanvasContext,t=this.mediaToRender(),i=this.viewportDimensions.fitPaneWidth,n=this.viewportDimensions.fitPaneHeight,a=this.viewportDimensions.fitWidth,s=this.viewportDimensions.fitHeight,o=this.viewportDimensions.fitWidth,r=this.viewportDimensions.fitHeight,{x:l,y:d}=this.position,c=this.preserveDimensions,h="split"===this.layout&&t.length>1,u=c&&!h?1/t.length:this.splitPosition,m=l,p=d,g=this.position.z/100;e.canvas.width=o,e.canvas.height=r,t.forEach(((t,l)=>{const d=this.renderers.get(t.id);if(!d)return;const b={x:d.x,y:d.y,z:d.z},v=d.canvas?d.canvas.width:0,f=d.canvas?d.canvas.height:0,y={common:{width:a,height:s,x:m,y:p,zoomFraction:g},pane:{width:i,height:n,x:h||c?l*(i*u):l*i,split:u},media:{width:v,height:f,x:b.x,y:b.y,z:b.z},splitScreen:h,preserveDimensions:c,index:l,canvas:{width:o,height:r}},{srcX:x,srcY:w,srcWidth:k,srcHeight:z,dstX:S,dstY:M,dstWidth:C,dstHeight:j}=function(e){let t=0,i=0,n=0,a=0,s=0,o=0,r=0,l=0;const d=e.index,c=e.pane.split,h=e.common.zoomFraction,u=e.common.x,m=e.common.y,p=e.canvas.width,g=e.canvas.height,b=e.media.x,v=e.media.y,f=e.media.z/100,y=e.media.width*f*h,x=e.media.height*f*h;let w=e.pane.width;e.preserveDimensions&&!e.splitScreen?w=p*c:e.splitScreen&&(w=p*(0===d?c:1-c));const k=e.splitScreen?g:e.pane.height;let z=d*e.pane.width,S=-(b+u),M=S*h;(e.splitScreen||e.preserveDimensions)&&d>0&&(z=p*c,M+=z,e.preserveDimensions&&!e.splitScreen?S-=z/h:S+=z/h);let C=M>0?Math.min(y-M,w):Math.min(y,w+M);e.preserveDimensions&&!e.splitScreen&&d>0?(C=Math.max(y-M,w),t=S/f+z/h):t=S<0?0:S/f,n=C/h/f,s=(e.preserveDimensions||e.splitScreen)&&d>0?(M<0?-M:0)+z*d:(M<0?-M:0)+z,r=C;const j=-(v+m),L=j*h,E=L>0?Math.min(x-L,k):Math.min(x,k+L);return i=j<0?0:j/f,a=E/h/f,o=L<0?-L:0,l=E,{srcX:t,srcY:i,srcWidth:n,srcHeight:a,dstX:s,dstY:o,dstWidth:r,dstHeight:l}}(y);j<=0||C<=0||(e.imageSmoothingEnabled=this.antialias,e.drawImage(d.canvas,x,w,k,z,S,M,C,j))})),this.C&&(this.singleCanvasTimer=requestAnimationFrame(this.drawSingleCanvas))};clearVideoEvents=()=>{this.videoElements.forEach((e=>{e.onplaying=null,e.onpause=null,e.onwaiting=null,e.onstalled=null,e.onsuspend=null}))};setVideoEvents=()=>{const e={},t=async e=>{const t=this.playing;t&&this.containerElement.dispatchEvent(new CustomEvent("video-stall",{composed:!0,bubbles:!0,detail:{id:e}})),await this.pause(),t&&await this.play()},i=i=>{const n=e[`${i}`];n?n.stalled||(n.stalled=!0,n.time=(new Date).getTime(),n.timer=setTimeout((()=>t(i)),1e3)):e[`${i}`]={id:i,stalled:!0,time:(new Date).getTime(),timer:setTimeout((()=>t(i)),1e3)}};this.videoElements.forEach((t=>{const n=t.dataset.mediaId;t.onwaiting=()=>i(n),t.onstalled=()=>i(n),t.onplaying=()=>(t=>{e[`${t}`]&&(clearTimeout(e[`${t}`].timer),e[`${t}`].stalled=!1,e[`${t}`].time=(new Date).getTime())})(n)}))};play=async(e=!0)=>{if(this.renderers.forEach((e=>{e.showFrameImage=!e.sourceElement})),this.playing||this.seeking||0===this.videoElements.size)return;const t=()=>{this.elementForTime&&(this.elementForTime.ontimeupdate=null),this.elementForTime=null};t(),this.clearVideoEvents();const i=this.time;await this.seek(i,e),this.playing=!0;let n=!1;const a=()=>{n||(n=!0,t(),this.handleEnded())};if(await Promise.all(Array.from(this.videoElements.values()).map((e=>(e.muted&&this.elementForTime||(this.elementForTime=e),e.onended=()=>a(),e.play())))),!this.elementForTime)return this.pause();this.setVideoEvents(),this.elementForTime.ontimeupdate=()=>{if(this.time=this.getCurrentTime(),this.triggerTimeUpdate(),this.endTime&&this.time>=this.endTime)return this.handleEnded()},this.drawTimer=requestAnimationFrame(this.draw),this.triggerPlayStateUpdate(),this.triggerSetTimeUpdate()};pause=async(e=!0)=>(cancelAnimationFrame(this.drawTimer),this.playing?(this.playing=!1,this.clearVideoEvents(),this.elementForTime&&(this.elementForTime.ontimeupdate=null,this.elementForTime.pause()),this.elementForTime=null,this.videoElements.forEach((e=>{e.onended=null,e.ontimeupdate=null,e.pause()})),this.time=this.getCurrentTime(),await this.seek(this.time),e&&this.drawFrameImages(),this.triggerPlayStateUpdate(),this.triggerSetTimeUpdate(),Promise.resolve()):Promise.resolve());seek=async(e,t=!0)=>{if(Number.isNaN(e)||0===this.fps||Number.isNaN(this.fps))return Promise.resolve(this.getCurrentTime());this.seeking=!0,this.triggerSeekingUpdate(),await this.pause();const i=Math.max(this.startTime,Math.min(this.endTime,B(e)));return await Promise.all(Array.from(this.videoElements.values()).map((e=>{const t=e.dataset.mediaId,n=this.media.get(t);return n&&"video"===n.type?re(e,N(n.timestamps,i-n.startTime,n.fps)):Promise.resolve(void 0)}))),this.seeking=!1,this.time=this.getCurrentTime(),t&&this.drawFrameImages(),this.triggerTimeUpdate(),this.triggerSetTimeUpdate(),this.triggerSeekingUpdate(),this.triggerPlayStateUpdate(),this.time};nextFrame=async()=>{const e=this.time+G(this.fps);await this.seek(e)};previousFrame=async()=>{const e=this.time-G(this.fps);await this.seek(e)};getCurrentTime=()=>{let e=0;return this.videoElements.forEach((t=>{const i=t.dataset.mediaId,n=this.media.get(i);if(!n||"video"!==n.type)return;const a=N(n.timestamps,Math.max(0,t.currentTime-.001),n.fps)+(n.startTime||0);e=Math.max(e,Number.isNaN(a)?e:a)})),e};mediaToRender=()=>this.mediaOrder.reduce(((e,t)=>{const i=this.media.get(t);return i&&i.visible?e.concat([i]):e}),[]).slice(0,"tile"===this.layout?void 0:2);setMediaMuted=async(e,t)=>{const i=this.playing;await this.pause(),this.videoElements.forEach((i=>{i.dataset.mediaId===e?i.muted=t:i.muted=!0;const n=this.media.get(e);n&&this.media.set(n.id,{...n,muted:n.id!==e||t})})),i&&await this.play()};setMediaVisibility=(e,t)=>{const i=this.media.get(e);if(!i)return;this.media.set(e,{...i,visible:t});const n=this.renderers.get(e);n&&n.contentContainer.setAttribute("data-hide",t?"false":"true"),this.setLayoutVisibility(),this.updateContentDimensions(),this.setPosition({})};setFilterVisibility=(e,t,i)=>{const n=this.media.get(i);n&&this.media.set(n.id,{...n,visible:t});const a=this.media.get(e);a&&this.media.set(a.id,{...a,showShader:t});const s=this.renderers.get(e);s&&s.setFilterVisibility(t)};toDataURL=()=>this.useSingleCanvas?this.singleCanvas.toDataURL():(console.warn("toDataURL is only available when useSingleCanvas is true"),"");toggleInfoText=(e,t)=>{const i=this.media.get(e);if(!i)return;this.media.set(e,{...i,showInfoText:t});const n=this.renderers.get(e);n&&(n.displayInfoText=t,this.renderInfoTexts(this.renderers.get(e),this.media.get(e)))};setMediaInfoTexts=(e,t)=>{const i=this.media.get(e);i&&(this.media.set(e,{...i,infoTexts:t}),this.renderers.forEach((e=>this.renderInfoTexts(e,this.media.get(e.id)))))};renderInfoTexts=(e,t)=>{if(!e||!t)return;const i=e=>t=>void 0===t.start||t.start<=e&&(void 0===t.end||t.end===t.start||t.end>e);let n=t.infoTexts.filter(i(this.time-t.startTime));t.shaderInputs.forEach((e=>{const t=this.media.get(e);t&&(n=n.concat(t.infoTexts.filter(i(this.time-t.startTime))))})),e.setInfoTexts(n)};handleWindowScroll=()=>{this.windowScrolling=!0,requestAnimationFrame((()=>{this.windowScrolling=!1}))};handleMove=e=>{if(this.isPinchZooming)return;e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),document.body.style.userSelect="none";const t=this.C?this.viewportDimensions.fitScale:1,i=this.C?(this.viewportDimensions.height-this.viewportDimensions.fitHeight*t)/2:0,n=this.C?(this.viewportDimensions.width-this.viewportDimensions.fitWidth*t)/2:0,a=this.canvasContainer.getBoundingClientRect();this.lastX=(e.clientX-a.left-n)/t,this.lastY=(e.clientY-a.top-i)/t;const s=e=>{const t=this.C?this.viewportDimensions.fitScale:1,i=this.C?(this.viewportDimensions.height-this.viewportDimensions.fitHeight*t)/2:0,n=this.C?(this.viewportDimensions.width-this.viewportDimensions.fitWidth*t)/2:0,a=this.canvasContainer.getBoundingClientRect(),s=(e.clientX-a.left-n)/t,o=(e.clientY-a.top-i)/t,r=this.position.z/100,l=this.position.x+(s-this.lastX)/r,d=this.position.y+(o-this.lastY)/r;this.setPosition({x:l,y:d}),this.lastX=s,this.lastY=o},o=e=>{e.preventDefault(),document.body.style.removeProperty("user-select"),this.lastX=0,this.lastY=0,window.removeEventListener("pointermove",s),window.removeEventListener("pointerup",o),window.removeEventListener("pointerleave",o)};window.addEventListener("pointermove",s),window.addEventListener("pointerup",o),window.addEventListener("pointerleave",o),this.containerElement.dispatchEvent(new Event("icat-focus",{composed:!0,bubbles:!0}))};handleWheelEvent=(e,t=!1)=>{if(this.windowScrolling||this.isPinchZooming)return;e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation();const i=e.deltaY<0?1:-1,n=Math.exp(.062*i);let a=Math.ceil(Math.min(1e8,this.position.z*n))/100;if(t){a=this.position.z/100>a?Math.max(1,Math.floor(a)):Math.max(1,Math.ceil(a))}const{x:s,y:o}=se({pageX:e.pageX,pageY:e.pageY,currentPositions:this.position,newZoomFraction:a,zoomFraction:this.position.z/100,fitToContent:this.C,mediaLength:this.mediaToRender().length,box:this.canvasContainer.getBoundingClientRect(),contentPositionData:this.viewportDimensions,layout:this.layout}),r=100*a;this.setPosition({x:s,y:o,z:r})};handleEnded=async()=>{const e=this.playing;await this.pause(!this.looping),e&&(await this.seek(this.startTime,!this.looping),this.looping&&await this.play(!this.looping))};handleSplitMove=e=>{const t=this.splitHandleContainer.getBoundingClientRect(),i=e.clientX-(t.left+t.width/2),n=e=>{e.preventDefault();const t=this.canvasContainer.getBoundingClientRect(),n=Math.min(1,Math.max(0,Math.round((e.clientX-t.left-i)/t.width*1e3)/1e3));this.setSplitPosition(n)},a=e=>{e.preventDefault(),document.body.style.removeProperty("user-select"),window.removeEventListener("pointermove",n),document.removeEventListener("pointerup",a),document.removeEventListener("pointerleave",a)};e.preventDefault(),document.body.style.userSelect="none",window.addEventListener("pointermove",n),document.addEventListener("pointerup",a),document.addEventListener("pointerleave",a)};triggerTimeDataUpdate=()=>{const e=this.endTime,t=this.startTime,i=this.fps,n=this.maxContentDuration,a=e-t,s=this.time,o=s-t,r=B(o),l=J(Math.max(0,o),i),d=Math.min(1,Math.max(0,o/(e-t))),c={time:s,effectiveTime:r,duration:a,durationText:J(a,i),maxContentDuration:n,fps:this.fps,startTime:t,endTime:e,timeString:l,progress:d};"function"==typeof this.timeDataCallback&&this.timeDataCallback(c),this.triggerTimeUpdate()};triggerTimeUpdate=()=>{this.renderers.forEach((e=>this.renderInfoTexts(e,this.media.get(e.id))));const e=this.endTime,t=this.startTime,i=this.fps,n=this.time-t,a=B(n),s=J(n,i),o=Math.min(1,Math.max(0,n/(e-t))),r={number:a,frame:Math.round(a/G(i)),string:s,progress:o};"function"==typeof this.timeUpdateCallback&&this.timeUpdateCallback(r)};triggerSetTimeUpdate=()=>{"function"==typeof this.setTimeUpdateCallback&&this.setTimeUpdateCallback(this.time)};triggerPlayStateUpdate=()=>{"function"==typeof this.playStateUpdateCallback&&this.playStateUpdateCallback(this.playing)};triggerSeekingUpdate=()=>{"function"==typeof this.seekStateUpdateCallback&&this.seekStateUpdateCallback(this.seeking)};triggerPositionUpdate=e=>{"function"==typeof this.positionUpdateCallback&&this.positionUpdateCallback(e)}}const he={showThumbs:0,integerScaling:!1,setOrder:"alphabetic",mediaOrder:"alphabetic"},ue=JSON.stringify(he),me={get:()=>({...he,...JSON.parse(localStorage.getItem("icat_settings")||ue)}),set:e=>localStorage.setItem("icat_settings",JSON.stringify({...he,...me.get(),...e}))},pe=15,ge=100;function be(e,t,i,n,a){let s,o,r=document.createElement("canvas").getContext("2d"),d=!1,c=()=>{};const h=()=>{o&&(o.onerror=null,o.src="",o=null),r=null,s=null};if("video"!==i)(async function(e,t,i){return e&&t?i?(P(i,t.canvas),Promise.resolve(t.canvas.toDataURL("image/png"))):new Promise((i=>{let n=new Image;n.onload=()=>{if(!n)return i("");const e=n.height*(ge/n.width);t.canvas.width=ge,t.canvas.height=e,t.drawImage(n,0,0,ge,e),requestAnimationFrame((()=>{i(t.canvas.toDataURL("image/png")),n&&(n.src=""),n=null}))},n.src=e})):Promise.reject()})(t,r,s).then((e=>{d||(n(new Array(pe).fill(e)),a())}));else{o=document.createElement("video"),o.muted=!0,o.onerror=h;try{c=function(e,t,i,n,a,s){let o=!1;const r=[];let d=0;return(()=>{let c=!1;const h=async()=>{if(o)return;c=!0;const i=(t.videoHeight||t.height)*(ge/(t.videoWidth||t.width)),u=t.duration/pe;n.canvas.width=ge,n.canvas.height=i,n.drawImage(t,0,0,ge,i);let m=n.canvas.toDataURL("image/png");if(l.isElectron&&(m=l.pathToElectronUrl(await window.NvCompareApi.createFile(`${e}_thumb_${d}.png`,m))),r.push(m),a(r.slice()),d+=1,t.onseeked=h,d{""!==t.src&&(t.currentTime=u*d)}));t.onseeked=null,s()},u=()=>{if(!c&&!o)return 4===t.readyState&&t.videoHeight&&t.videoWidth?h():requestAnimationFrame(u)};t.playsInline=!0,t.preload="auto",t.src=i,t.currentTime=1e-4,u()})(),()=>{o=!0}}(e,o,t,r,(e=>{if(d)return c(),void h();n(e)}),(()=>{if(d)return c(),void h();a(),h()}))}catch(e){if(console.warn(e),d)return;a()}}return()=>{d=!0,c()}}const ve={"en-us":["(i.e. https://domain.com/path)","Absolute","Add filter","Add media","Add overlay","Add Overlay to annotate your comparison.","Adjust the clip offset to align the videos.","Angle","Automatically create sets","Average colors (slower)","Bilinear","Binary","Bitrate","Black-blue-violet-yellow-white","Bottom Left","Bottom Right","Can not display filter:","Cancel","Change playback speed","CIE-LAB difference","Click Add Media or drag and drop video/image files into this window to compare them.","Codec","Color mode","Comparison sets","Contrast error only","Control bar","Copy embed code","CTRL +","CTRL + 1-9","CTRL + f","Customization","Delete","Difference","Dimensions","Disable","Don't save","Download","Download FFmpeg source.","Duration","Embed code copied","Embed code copied to clipboard","Embed images in code","Embedded in webpage code","Enable","Error loading media","Error loading media, unsupported file type","Error logs path","Export","Export still images","Export video segments","Exporting video","Exposure","Files without matching names are marked in red and will be omitted.","Filtering mode","Format","FPS","Frame advance","Frames per second","Gamma","Gaussian blur","General","Generating image","Global layout","GPU","Grayscale","Grid overlay","Half radius sigma","Heatmap","Height","Help button","Hide all","Hide layout","Hosting media","If you choose to host media in a different location from the root, specify the URL below.","Image","Images can be embedded directly in webpage embed code without uploading them separately if the total file size is less than 10MB.","Import","Initial","Input","Integer scaling","Invalid file. Only files with the following extensions are accepted:","Invalid files. Only files with the following extensions are accepted:","Invert output","Jet","Jump to start","Label","Laplacian (five point)","Laplacian (nine point)","Laplacian variance","Large","Layout tabs","Left/Right PX","Let's Get Started","Local shaders","Luminance difference","Luminance error only","Mark Inf/NaN","Media","Media domain/path","Media selectors","Medium","Mode","Mouse drag","Mouse scroll wheel","Multiplier","Nearest Neighbor","New Project","No folders selected","None","None (SSIM default)","Off","On","Open","Overlay","Package webpage embed","Pan view","Per-channel differences","Pixelization","Play/Pause","Position keyframes","Preserve dimensions","Preview","Previous/Next set","Radius","Reload","Remove","Remove comparison set?","Remove media?","Reset","Reset playback speed","RGB difference","Same width and height","Save","Save project","Scale %","Scale to fit","Select folder","Select folders with matching file names and comparison sets will automatically be created.","Set","Sets select","Settings","Sharpness","Shortcuts","Show angle","Show Color Map Legend","Show layout","Show thumbnails","Side-by-side","Side-by-side mode","Sigma","Sign flip","Size","Slider keyframes","Small","Sobel","Solo media","Sort alphabetically","Sort by created","Space","Split screen","Split screen mode","Squared","SSIM","SSIM full","SSIM Mode","SSIM simplified","Start time","Structural error only","Symmetric","There was an error exporting your video","There was an error generating your webpage embed package, please try again.","This software uses code of FFmpeg licensed under the LGPLv2.1","This will remove the media from all comparison sets in this project. Do you want to remove this media?","Tiling","Title size","Toggle fullscreen","Tolerance","Top Left","Top Right","Type","Up/Down PX","Version","Video","View release notes","Web","Webpage embed package successfully saved","Weight Contrast","Weight Luminance","Weight Structure","Width","Would you like to save your current project before continuing?","X Radius","X Sigma","Y Radius","Y Sigma","Your GPU is having trouble decoding your media. For better performance, try closing all applications utilizing GPU resources and/or restarting your device.","Your media clips will remain in the Media panel, but anything you have done in this comparison set will be lost. Do you want to remove this set?","Your project has been saved","Zoom view"],"ar-sa":["(مثل: https://مسار.com/للمجال)","مطلق","أضف المرشح","أضف الوسائط","أضف التراكب","أضف تراكبًا للتعليق على المقارنة خاصتك.","اضبط إزاحة المقطع لمحاذاة الفيديو.","الزاوية","إعداد المجموعات تلقائيًا","متوسط الألوان (بحد أبطئ)","خطين","ثنائيين","معدل البت","أسود-أزرق-بنفسجي-أصفر-أبيض","أسفل اليسار","أسفل اليمين","يتعذر عرض عامل التصفية:","إلغاء","تغيير سرعة التشغيل","الفروق الناشئة بين CIE-LAB",'انقر فوق "إضافة وسائط" أو قم بسحب ملفات الفيديو/الصور وإسقاطها في هذه النافذة لمقارنتهم.',"الترميز","وضع اللون","مجموعات المقارنة","حدث خطأ ما في التباين","شريط التحكم","نسخ رمز التضمين","CTRL +","CTRL + 1-9","CTRL + f","التخصيص","الحذف","الفروق","الأبعاد","تعطيل","إلغاء الحفظ","تنزيل","تنزيل مصدر FFmpeg.","المدة","تم نسخ رمز التضمين","نسخ رمز التضمين إلى الحافظة","تضمين الصور في الرمز","تم تضمينها في رمز صفحة الويب","تمكين","حدث خطأ ما أثناء تحميل الوسائط","حدث خطأ ما أثناء تحميل الوسائط نظرًا لأن نوع الملف غير مدعوم","مسار سجلات الخطأ","تصدير","تصدير الصور الثابتة","تصدير مقاطع الفيديو","تصدير الفيديو","التعرض","يتم تمييز الملفات التي تخلو من أسماء متطابقة باللون الأحمر ومن ثم يتم حذفها.","وضع الترشيح","التنسيق","إطار في الثانية","معدل تقدم الإطار","إطار في الثانية","جاما","التمويه الضبابي","عام","إعداد صورة","تخطيط شامل","وحدة معالجة الرسومات","تدرج اللون الرمادي","تراكب الشبكة","نصف قطر سيجما","خارطة الحرارة","الارتفاع","زر الدعم","إخفاء الجميع","إخفاء التخطيط","استضافة الوسائط","إذا اخترت استضافة الوسائط في موقع مختلف عن الأصلي، فحدد عنوان URL أدناه.","الصور","يمكن تضمين الصور مباشرة في رمز الويب من دون تحميلها بشكل منفصل، فقط في حال كان إجمالي حجم الملف يقل عن 10 ميجابايت.","استيراد","أولي","إدخال","تغيير الحجم المتكامل","ملف غير صالح. تُقبل الملفات بالامتدادات التالية فقط:","ملف غير صالح. تُقبل الملفات بالامتدادات التالية فقط:","عكس الإخراج","جيت","انتقل للبدء","علامة","مؤثرات لابلاسيان (خمس نقاط)","مؤثرات لابلاسيان (تسعة نقاط)","التباين اللابلاسي","كبير","علامات تبويب التخطيط","بيكسل (يسار/ يمين)","لنبدأ","تظليل العناصر المحلية","اختلاف السطوع","حدث خطأ ما في السطوع فقط","تحديد Inf/NaN","الوسائط","مجال/ مسار الوسائط","محددات الوسائط","متوسط","الوضع","سحب عبر الماوس","تمرير عجلة الماوس","متعددة","أقرب منطقة مجاورة","مشروع جديد","لم يتم تحديد أي مجلدات","لا شيء","لا شيء (SSIM الافتراضي)","إيقاف","تشغيل","فتح","تراكب","تضمين حزمة الويب","عرض (Pan)","الفروق الناشئة بين كل قناة","البكسلة","تشغيل/ إيقاف مؤقت","وضع الإطارات الرئيسية","الحفاظ على الأبعاد ثابتة","المعاينة","المجموعة السابقة/ التالية","نصف القطر","إعادة التحميل","إزالة","هل تود إزالة مجموعة المقارنة؟","هل تود إزالة الوسائط؟","إعادة الضبط","إعادة ضبط سرعة التشغيل","فروق إضاءة آر جي بي","نفس العرض والارتفاع","حفظ","حفظ المشروع","حجم ٪","تغيير الحجم للملاءمة","اختر مجلد","يتم إنشاء مجلدات محددة بأسماء الملفات المطابقة ومجموعات المقارنة تلقائيًا.","ضبط","ضبط تحديد المجموعات","الإعدادات","الحدة","الاختصارات","عرض الزاوية","عرض وسيلة إيضاح خارطة الألوان","عرض التخطيط","عرض الصور المصغره","جنبًا إلى جنب","وضع جنبًا إلى جنب","سيجما","قلب العلامة","الحجم","الإطارات الرئيسية المنزلقة","صغيرة","سوبيل","الوسائط المنفردة","الترتيب الأبجدي","الترتيب حسب الإعداد","المسافة","تقسيم الشاشة","وضع تقسيم الشاشة","تربيع","التشابه الهيكلي","التشابه الهيكلي المتكامل","وضع التشابه الهيكلي","وضع التشابه الهيكلي المبسط","وقت البدء","حدث خطأ ما هيكلي","متماثل","حدث خطأ ما أثناء تصدير مقطع الفيديو الخاص بك","حدث خطأ ما أثناء إنشاء حزمة تضمين صفحة الويب خاصتك، برجاء المحاولة مرة أخرى.","يستخدم هذا البرنامج رمز (FFmpeg) المرخص بموجب LGPLv2.1","وهذا من شأنه أن يؤدي إلى إزالة الوسائط من جميع مجموعات المقارنة في هذا المشروع. فهل تود إزالة هذه الوسائط؟","التجانب","حجم العنوان","تبديل وضع ملء الشاشة","نسبة التفاوت","أعلى اليسار","أعلى اليمين","النوع","بكسل (أعلى/ أسفل)","الإصدار","مقطع الفيديو","عرض ملاحظات الإصدار","ويب","تم حفظ حزمة تضمين الويب بنجاح","تباين العنصر","سطوع العنصر","هيكل العنصر","العرض","هل ترغب في حفظ مشروعك الحالي قبل المتابعة؟","نصف قطر X","سيجما X","نصف قطرY","سيجما Y","تواجه وحدة معالجة الرسوم لديك صعوبة في فك ترميز الوسائط الخاصة بك. لتحقيق أداء أفضل، جرّب إغلاق جميع التطبيقات التي تستخدم موارد وحدة معالجة الرسوم و/أو إعادة تشغيل جهازك.","ستظل الوسائط خاصتك في لوحة الوسائط، مع العلم بأنه ستفقد أي إعداد فعلته في مجموعة المقارنة هذه. هل تود إزالة هذه المجموعة؟","تم حفظ مشروعك","عرض مستوى التكبير"],"bg-bg":["(т.е. https://домейн.com/път)","Абсолютно","Добавяне на филтър","Добавяне на медия","Добавяне на слой","Добавяне на слой за анотиране на своето сравнение.","Регулиране на изместването на клип за центиране на видеата.","Ъгъл","Автоматично създаване на набори","Средни цветове (по-бавно)","Билинейно","Бинарно","Битрейт","Черно-синьо-виолетово-жълто-бяло","Долу вляво","Долу вдясно","Не може да се покаже филтър:","Отмяна","Промяна на скорост на възпроизвеждане","CIE-LAB разлика","Щракнете върду Добавяне на медия или дръпнете и пуснете файловете с видео/изображение в този прозорец, за да ги сравните.","Кодек","Цветови режим","Набори за сравнение","Само грешка в контраст","Контролна лента","Копиране на вграден код","CTRL +","CTRL + 1-9","CTRL + f","Персонализиране","Изтриване","Разлика","Размери","Деактивиране","Не запазвай","Изтегляне","Изтегляне на FFmpeg източник.","Продължение","Копиран вграден код","Вграденият код е копиран в клипборд","Вграждане на изображение в код","Вградено в код на уеб страница","Активиране","Грешка при зареждане на медия","Грешка при зареждане на медия, неподдържан тип файл","Път на регистри на грешки","Експорт","Експортиране на снимки","Експортиране на видео сегменти","Експортиране на видео","Експозиция","Файловете без съответстващи имена са маркирани в червено и ще бъдат пропуснати.","Филтриращ режим","Формат","FPS","Забързване на кадри","Кадри за секунда","Гама","Гаусово размиване","Общо","Генериране на изображение","Глобално оформление","GPU","Сива скала","Слой на мрежа","Половин радиус сигма","Топлинна карта","Височина","Бутон „Помощ“","Скриване на всички","Скриване на оформление","Съхранение на медия","Ако изберете да съхраните медия на друго място, различно от основното, определете URL по-долу.","Изображение","Изображенията могат да бъдат вградени директно в кода за вграждане в уеб страница без да е необходимо да бъдат качвани отделно, ако общият размер на файла е по-малко от 10 MB.","Импортиране","Инициал","Вход","Мащабиране на цяло число","Невалиден файл Приемливи са само файлове със следните разширения:","Невалидни файлове. Приемливи са само файлове със следните разширения:","Инвертиране на изход","Струя","Отиване в началото","Етикет","Лапласиан (пет точки)","Лапласиан (девет точки)","Лапласианова разлика","Голям","Раздели на оформление","Ляв/десен PX","Да започваме","Локални шейдъри","Разлика в яркостта","Само грешка в яркостта","Маркиране на Inf/NaN","Медия","Домейн/път на медия","Селектори на медия","Среден","Режим","Дърпане на мишка","Скрол колелце на мишка","Множител","Най-близък съседен пиксел","Нов проект","Няма избрани папки","Няма","Няма (SSIM по подразбиране)","Изключено","Включено","Отваряне","Слой","Вграден пакет на уеб страница","Панорамен изглед","Разлики в предварителни канали","Пикселизация","Възпроизвеждане/Пауза","Разположение на ключови кадри","Запазване на размери","Предварителен изглед","Предходен/Следващ набор","Радиус","Презареждане","Премахване","Премахване на набори за сравнение?","Премахване на медия?","Нулиране","Нулиране на скорост на възпроизвеждане","RGB разлика","Еднаква шириан и височина","Запазване","Запазване на проект","Мащаб %","Мащабиране за напасване","Избор на папка","Изберете папки със съответстващи имена на файлове и наборите за съхранение ще бъдат създадени автоматично.","Набор","Избор на набори","Настройки","Острота","Преки пътища","Показване на ъгъл","Показване на легенда на цветова карта","Показване на оформление","Показване на миниатюри","Едно до друго","Режим „Едно до друго“","Сигма","Обръщане на знак","Размер","Слайдер за ключови кадри","Малък","Собел","Соло медия","Сортиране по азбучен ред","Сортиране по създаване","Пространство","Разделяне на екран","Режим на разделяне на екран","Квадратен","SSIM","Пълен SSIM","SSIM режим","Опростен SSIM","Начално време","Само структурни грешки","Симетричен","Настъпи грешка при експортиране на Вашето видео","Настъпи грешка пр генериране на Вашия вграден в уеб страница пакет. Моля, опитайте отново.","Този софтуер използва код на FFmpeg, лицензиран според LGPLv2.1","Това ще отстрани медията от всички набори за сравнение в този проект. Желаете ли да отстраните тази медия?","Подреждане на плочки","Размер на заглавие","Превключване на цял екран","Толеранс","Горе вляво","Горе вдясно","Тип","PX нагоре/надолу","Версия","Видео","Вижте бележки на изданието","Уеб","Вграденият в уеб страница пакет е запазен успешно","Претегляне на контраст","Претегляне на яркост","Претегляне на структура","Ширина","Желаете ли да запазите актуалния си проект, преди да продължите","X радиус","Х Сигма","Y радиус","Y Сигма","Графичният Ви процесор има проблеми с декодирането на медията. За по-добра производителност опитайте да затворите всички приложения, използващи ресурсите на графичния процесор, и/или да рестартирате устройството си.","Вашите медийни клипове ще остат в медиен панел, но всичко, което сте направили в този набор за сравнение ще бъде изгубено. Желаете ли да отстраните този набор?","Вашият проект е запазен","Мащабиран изглед"],"cs-cz":["(tzn. https://doména.com/cesta)","Absolutní","Přidat filtr","Přidat média","Přidat překrytí","Přidejte překrytí pro okomentování vašeho porovnání.","Upravte začátek/konec klipu pro zarovnání videí.","Úhel","Automaticky vytvořit soubory","Průměrné barvy (pomalejší)","Bilineární","Binární","Přenosová rychlost","Černá-modrá-fialová-žlutá-bílá","Vlevo dole","Vpravo dole","Nelze zobrazit filtr:","Zrušit","Změnit rychlost přehrávání","Rozdíl mezi CIE a LAB","Klikněte na Přidat média nebo přetáhněte video/obrázkové soubory do tohoto okna pro jejich porovnání.","Kodek","Barevný režim","Soubory porovnání","Pouze chyba kontrastu","Ovládací lišta","Zkopírovat kód pro vložení","CTRL +","CTRL + 1-9","CTRL + f","Přizpůsobení","Odstranit","Rozdíl","Rozměry","Zakázat","Neukládat","Stáhnout","Stáhněte si zdroj FFmpeg.","Doba trvání","Kód pro vložení zkopírován","Kód pro vložení byl zkopírován do schránky","Vložené obrázky v kódu","Vloženo v kódu webové stránky","Povolit","Chyba při načítání média","Chyba při načítání média, nepodporovaný typ souboru","Cesta k chybovým protokolům","Exportovat","Exportovat statické obrázky","Exportovat video segmenty","Exportování videa","Expozice","Soubory bez odpovídajících názvů jsou označeny červeně a budou vynechány.","Režim filtrování","Formátovat","FPS","Posun po snímcích","Snímků za sekundu","Gama","Gaussovo rozostření","Obecné","Generování obrázku","Globální rozvržení","GPU","Stupnice šedé","Mřížkové překrytí","Poloměr sigma","Tepelná mapa","Výška","Tlačítko nápovědy","Skrýt vše","Skrýt rozvržení","Hostování médií","Pokud se rozhodnete hostovat média v jiném umístění než v kořenovém adresáři, zadejte níže příslušnou adresu URL.","Snímek","Obrázky lze vložit přímo do kódu pro vložení do webové stránky, aniž byste je museli nahrávat zvlášť, pokud je celková velikost souboru menší než 10 MB.","Importovat","Počáteční","Vstup","Celočíselné škálování","Neplatný soubor. Akceptovány jsou pouze soubory s následujícími příponami:","Neplatné soubory. Akceptovány jsou pouze soubory s následujícími příponami:","Invertovat výstup","Tryska","Přeskočit na začátek","Označení","Laplaceův operátor (pětibodový)","Laplaceův operátor (devítibodový)","Odchylka Laplaceova operátoru","Velká","Rozvržení karet","Levá/pravá poloha","Pojďme na to","Místní shadery","Rozdíl zářivosti","Pouze chyba zářivosti","Označit jako nekonečno / není číslo","Média","Doména/cesta médií","Voliče médií","Médium","Režim","Přetažení myší","Rolovací kolečko myši","Násobitel","Nejbližší sousední","Nový projekt","Nevybrali jste žádné složky","Žádné","Žádné (výchozí nastavení SSIM)","Vypnuto","Zapnuto","Otevřít","Překrytí","Balíček vložených souborů pro webovou stránku","Panoramatické zobrazení","Rozdíly mezi kanály","Pixelizace","Přehrát/Pozastavit","Klíčové snímky polohy","Zachovat rozměry","Náhled","Předchozí/další soubor","Poloměr","Znovu načíst","Odebrat","Odebrat soubor porovnání?","Odebrat média?","Resetovat","Resetovat rychlost přehrávání","Rozdíl RGB","Stejná šířka a výška","Uložit","Uložit projekt","Měřítko %","Přizpůsobit oknu","Vybrat složku","Vyberte složky s odpovídajícími názvy souborů a automaticky se vytvoří soubory porovnání.","Soubor","Výběr souborů","Nastavení","Ostrost","Zástupce","Zobrazit úhel","Zobrazit popis barevné mapy","Zobrazit rozvržení","Zobrazit miniatury","Vedle sebe","Režim zobrazení vedle sebe","Sigma","Otočení znaménka","Velikost","Klíčové snímky posuvníku","Malá","Sobelův filtr","Jeden soubor média","Řadit abecedně","Seřadit podle vytvoření","Mezerník","Rozdělit obrazovku","Režim rozdělené obrazovky","Na druhou","SSIM","SSIM plný","Režim SSIM","SSIM zjednodušený","Čas spuštění","Pouze chyba struktury","Symetrický","Došlo k chybě při exportování videa","Při generování balíčku vložených souborů pro webovou stránku došlo k chybě, zkuste to znovu.","Tento software používá kód FFmpeg licencovaný v rámci LGPLv2.1.","Tím se odstraní médium ze všech souborů porovnání v tomto projektu. Chcete toto médium odstranit?","Dlaždice","Velikost dlaždice","Přepnout zobrazení na celou obrazovku","Tolerance","Levý horní","Pravý horní","Typ","Horní/dolní poloha","Verze","Video","Zobrazit poznámky k verzi","Web","Balíček vložených souborů pro webovou stránku byl úspěšně uložen","Váha kontrastu","Váha zářivosti","Váha struktury","Šířka","Chcete před pokračováním uložit aktuální projekt?","Poloměr X","Sigma X","Poloměr Y","Sigma Y","Vaše jednotka GPU má potíže s dekódováním vašeho média. Pro zlepšení výkonu zkuste zavřít všechny aplikace, které využívají zdroje jednotky GPU, anebo restartovat zařízení.","Vaše mediální klipy zůstanou v panelu médií, ale vše, co jste provedli v tomto souboru porovnání, bude ztraceno. Chcete tento soubor odstranit?","Váš projekt byl uložen","Přiblížit zobrazení"],"da-dk":["(dvs. https://domæne.com/sti)","Absolut","Tilføj filter","Tilføj medier","Tilføj overlay","Tilføj overlay for at anmærke din sammenligning.","Juster forskydningen af klippet for at rette videoerne ind efter hinanden.","Vinkel","Opretter automatisk sæt","Gennemsnitsfarver (langsommere)","Tolineær","Binær","Bithastighed","Sort-blå-violet-gul-hvid","Nederst til venstre","Nederst til højre","Kan ikke vise filteret:","Annuller","Skift afspilningshastighed","CIE-LAB forskel","Klik på Tilføj medier eller træk og slip video-/billedfiler ind i dette vindue for at sammenligne dem.","Codec","Farvetilstand","Sammenligningssæt","Kun kontrastfejl","Kontrolpanel","Kopiér indlejringskode","CTRL +","CTRL + 1-9","CTRL + f","Brugerdefinering","Slet","Forskel","Dimensioner","Deaktivér","Gem ikke","Download","Download FFmpeg-kilde.","Varighed","Indlejringskode kopieret","Indlejringskode er kopieret til udklipsholderen","Indlejringsbilleder i kode","Indlejret i websidekode","Aktivér","Fejl under indlæsning af medier","Fejl under indlæsning af medier, filtype understøttes ikke","Sti til fejllogge","Eksportér","Eksportér stillbilleder","Eksportér videosegmenter","Eksporterer video","Eksponering","Filer uden matchende navne markeres med rødt og vil blive udeladt.","Filtreringstilstand","Format","FPS","Billedspring","Billeder pr. sekund","Gamma","Gaussian sløring","Generelt","Genererer billede","Globalt layout","GPU","Gråtone","Gitteroverlay","Halv radius sigma","Termisk kort","Højde","Hjælp-knap","Skjul alt","Skjul layout","Hosting af medier","Hvis du vælger at hoste medier et andet sted end roden, skal du angive URL-adressen nedenfor.","Billede","Billeder kan indlejres direkte i websidens indlejringskode uden at uploade dem separat, hvis den totale filstørrelse er mindre end 10 MB.","Importér","Indledende","Input","Heltal skalering","Ugyldig fil. Det er kun disse filtyper som accepteres:","Ugyldige filer. Det er kun disse filtyper som accepteres:","Inverter output","Jet","Spring til start","Etiket","Laplacian (fem punkt)","Laplacian (ni punkt)","Laplacian varians","Stor","Layout faner","Venstre/højre position","Lad os komme i gang","Lokale shadere","Luminans forskel","Kun kontrastfejl","Markér uendelig/ikke et nummer","Medier","Mediedomæne/sti","Medievælgere","Mellem","Tilstand","Musetræk","Muserullehjul","Multiplikator","Nærmeste nabo","Nyt projekt","Der er ikke valgt nogen mapper","Ingen","Ingen (SSIM standard)","Fra","Til","Åbn","Overlay","Pakke til websideindlejring","Panoreringsvisning","Forskelle pr. kanal","Pixelisering","Afspil/pause","Nøglebilleder til position","Bevar dimensioner","Vis udkast","Forrige/næste sæt","Radius","Genindlæs","Fjern","Fjern sammenligningssæt?","Fjern medier?","Nulstil","Nulstil afspilningshastighed","RGB forskel","Samme bredde og højde","Gem","Gem projekt","Skalering %","Skalér så det passer","Vælg mappe","Vælg mapper med matchende filnavne, og der vil automatisk blive oprettet sammenligningssæt.","Sæt","Vælg sæt","Indstillinger","Skarphed","Genveje","Vis vinkel","Vis beskrivelse af farvekort","Vis layout","Vis miniaturer","Side om side","Side om side-tilstand","Sigma","Vend tegn","Størrelse","Glidende nøglebilleder","Lille","Sobel","Enkelt medie","Sortér alfabetisk","Sortér efter oprettelse","Mellemrum","Delt skærm","Delt skærm-tilstand","Firkantet","SSIM","SSIM fuld","SSIM tilstand","SSIM simplificeret","Starttidspunkt","Kun strukturfejl","Symmetrisk","Der opstod en fejl under eksportering af din video","Der opstod en fejl under generering af din websides indlejringspakke. Prøv igen.","Denne software benytter kode af FFmpeg licenseret under LGPLv2.1","Dette vil fjerne medierne fra alle sammenligningssæt i dette projekt. Vil du fjerne dette medie?","Side om side","Titelstørrelse","Skift fuld skærm","Tolerance","Øverst til venstre","Øverst til højre","Type","Op/ned position","Version","Video","Vis produktbemærkninger","Web","Websidens indlejringspakke er blevet gemt","Vægtkontrast","Vægtluminans","Vægtstruktur","Bredde","Vil du gemme dit aktuelle projekt, før du fortsætter?","X radius","X sigma","Y radius","Y sigma","Din GPU har problemer med at afkode dine medier. Prøv at lukke alle applikationer, som bruger GPU-ressourcer, og/eller genstarte din enhed for at få en bedre ydeevne.","Dine medieklip vil forblive i mediepanelet, men alt hvad du har udført i dette sammenligningssæt vil gå tabt. Vil du fjerne dette sæt?","Dit projekt er blevet gemt","Zoomvisning"],"de-de":["(z. B. https://domaene.com/pfad)","Absolut","Filter hinzufügen","Medien hinzufügen","Overlay hinzufügen","Overlay hinzufügen, um Ihrem Vergleich eine Anmerkung hinzuzufügen.","Anpassen des Clip-Offsets zum Ausrichten der Videos.","Winkel","Automatisches Erstellen von Sätzen","Farben mitteln (langsamer)","Bilinear","Binär","Bitrate","Schwarz-blau-violett-gelb-weiß","Links unten","Rechts unten","Folgender Filter kann nicht angezeigt werden:","Abbrechen","Wiedergabegeschwindigkeit ändern","CIE-LAB-Unterschied","Klicken Sie auf Medien hinzufügen oder ziehen Sie Video-/Bilddateien per Drag & Drop in dieses Fenster, um sie zu vergleichen.","Codec","Farbmodus","Vergleichssätze","Nur Kontrastfehler","Kontrollleiste","Einbettungscode kopieren","STRG +","STRG + 1-9","STRG + f","Personalisierung","Löschen","Differenz","Abmessungen","Deaktivieren","Nicht speichern","Herunterladen","Ffmpeg-Quelle herunterladen","Dauer","Einbettungscode kopiert","Einbettungscode in die Zwischenablage kopiert","Bilder in Code einbetten","Eingebettet in Webseiten-Code","Aktivieren","Fehler beim Laden von Medien","Fehler beim Laden von Medien, nicht unterstützter Dateityp","Pfad der Fehlerprotokolle","Exportieren","Standbilder exportieren","Videosegmente exportieren","Video exportieren","Exposition","Dateien ohne passende Namen sind rot markiert und werden ausgelassen.","Filtermodus","Format","FPS","Bildvorlauf","Bilder pro Sekunde","Gamma","Gaußscher Weichzeichner","Allgemein","Bild wird erstellt...","Allgemeines Layout","GPU","Graustufen","Rasterüberlagerung","Halber Radius Sigma","Heatmap","Höhe","Hilfe-Taste","Alle ausblenden","Layout ausblenden","Medien hosten","Wenn Sie die Medien an einem anderen Ort als dem Stammverzeichnis hosten möchten, geben Sie die URL unten an.","Bild","Bilder können direkt in den Einbettungscode der Webseite eingebettet werden, ohne dass sie separat hochgeladen werden müssen, wenn die Gesamtgröße der Bilddateien weniger als 10 MB beträgt.","Importieren","Anfangswert","Eingabe","Ganzzahlige Skalierung","Ungültige Datei. Es werden nur Dateien mit den folgenden Erweiterungen akzeptiert:","Ungültige Dateien. Es werden nur Dateien mit den folgenden Erweiterungen akzeptiert:","Ausgabe umkehren","Jet","Zum Anfang springen","Bezeichnung","Laplace (fünf Punkte)","Laplace (neun Punkte)","Laplace-Abweichung","Groß","Layout-Registerkarten","Position Links/Rechts","Fangen wir an","Lokale Shader","Leuchtdichte-Unterschied","Nur Leuchtdichtefehler","Unendlich/Keine Zahl markieren","Medien","Medien Domäne/Pfad","Medien-Auswähler","Mittelgroß","Modus","Ziehen mit der Maus","Mausrad","Multiplikator","Nächster Nachbar","Neues Projekt","Keine Ordner ausgewählt","N. a.","N. a. (SSIM Standard)","Aus","Ein","Öffnen","Overlay","Paket zur Webseiteneinbettung","Ansicht verschieben","Unterschiede pro Kanal","Verpixelung","Play/Pause","Positions-Keyframes","Abmessungen beibehalten","Vorschau","Vorheriger/Nächster Satz","Radius","Neu laden","Entfernen","Vergleichssätze entfernen?","Medien entfernen?","Zurücksetzen","Wiedergabegeschwindigkeit zurücksetzen","RGB-Unterschied","Gleiche Breite und Höhe","Speichern","Projekt speichern","Skalierung %","Passend skalieren","Ordner auswählen","Wählen Sie Ordner mit übereinstimmenden Dateinamen aus und es werden automatisch Vergleichssätze erstellt.","Einstellen","Sätze auswählen","Einstellungen","Schärfe","Verknüpfungen","Winkel anzeigen","Legende der Farbkarte anzeigen","Layout anzeigen","Miniaturansichten anzeigen","Nebeneinander","Nebeneinander-Modus","Sigma","Vorzeichen umkehren","Größe","Regler Keyframes","Klein","Sobel","Einzelne Mediendatei","Alphabetisch sortieren","Sortieren nach Erstellung","Leertaste","Geteilter Bildschirm","Geteilter-Bildschirm-Modus","Zum Quadrat","SSIM","SSIM voll","SSIM-Modus","SSIM vereinfacht","Startzeit","Nur struktureller Fehler","Symmetrisch","Beim Exportieren Ihres Videos ist ein Fehler aufgetreten.","Bei der Erstellung des Einbettungspakets für Ihre Webseite ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut.","Diese Software verwendet einen Code von FFmpeg, der unter der LGPLv2.1 lizenziert ist.","Dadurch werden die Medien aus allen Vergleichssätzen in diesem Projekt entfernt. Möchten Sie das Medium entfernen?","Kacheln","Titel-Größe","Vollbild ein- und ausschalten","Toleranz","Oben links","Oben rechts","Typ","Position Auf/Ab","Version","Video","Versionshinweise anzeigen","Web","Webseiten-Einbettungspaket erfolgreich gespeichert","Kontrast gewichten","Leuchtdichte gewichten","Struktur gewichten","Breite","Möchten Sie Ihr aktuelles Projekt speichern, bevor Sie fortfahren?","X Radius","X Sigma","Y Radius","Y Sigma","Ihre GPU hat Probleme beim Decodieren Ihrer Medien. Versuchen Sie für eine bessere Leistung, alle Anwendungen zu schließen, die GPU-Ressourcen nutzen, und/oder Ihr Gerät neu zu starten.","Ihre Medienclips bleiben im Medienbedienfeld erhalten, aber alles, was Sie in diesem Vergleichssatz gemacht haben, geht verloren. Wollen Sie diesen Satz entfernen?","Ihr Projekt wurde gespeichert","Ansicht zoomen"],"el-gr":["(δηλ. https://tomeas.com/diadromi)","Απόλυτο","Προσθήκη φίλτρου","Προσθήκη μέσου","Προσθήκη υπέρθεσης","Προσθήκη υπέρθεσης για σχολιασμό της σύγκρισής σας.","Προσαρμόστε τη μετατόπιση κλιπ για να ευθυγραμμίσετε τα βίντεο.","Γωνία","Αυτόματη δημιουργία συνόλων","Μέσα χρώματα (πιο αργά)","Διγραμμικό","Δυαδικό","Ρυθμός bit","Μαύρο-μπλε-βιολετί-κίτρινο-λευκό","Κάτω αριστερά","Κάτω δεξιά","Δεν είναι δυνατή η εμφάνιση φίλτρου:","Ακύρωση","Αλλαγή ταχύτητας αναπαραγωγής","Διαφορά CIE-LAB","Κάντε κλικ στην «Προσθήκη μέσου» ή σύρετε και αποθέστε αρχεία βίντεο/εικόνας σε αυτό το παράθυρο για να τα συγκρίνετε.","Codec","Τρόπος λειτουργίας χρωμάτων","Σύνολα σύγκρισης","Σφάλμα αντίθεσης μόνο","Γραμμή ελέγχου","Αντιγραφή κώδικα ενσωμάτωσης","CTRL +","CTRL + 1-9","CTRL + f","Προσαρμογή","Διαγραφή","Διαφορά","Διαστάσεις","Απενεργοποίηση","Να μην γίνει αποθήκευση","Λήψη","Λήψη πηγής FFmpeg.","Διάρκεια","Κώδικας ενσωμάτωσης αντιγράφηκε","Κώδικας ενσωμάτωσης αντιγράφηκε στο πρόχειρο","Ενσωμάτωση εικόνων στον κώδικα","Ενσωματωμένο στον κώδικα ιστοσελίδας","Ενεργοποίηση","Σφάλμα κατά τη φόρτωση μέσου","Σφάλμα κατά τη φόρτωση μέσου, μη υποστηριζόμενος τύπος αρχείου","Διαδρομή αρχείων καταγραφής σφαλμάτων","Εξαγωγή","Εξαγωγή ακίνητων εικόνων","Εξαγωγή τμημάτων βίντεο","Γίνεται εξαγωγή βίντεο","Έκθεση","Αρχεία χωρίς αντιστοίχιση ονομάτων επισημαίνονται με κόκκινο και θα παραλειφθούν.","Λειτουργία φιλτραρίσματος","Μορφή","FPS","Προώθηση καρέ","Καρέ ανά δευτερόλεπτο","Γάμα","Γκαουσιανό θόλωμα","Γενικά","Γίνεται παραγωγή εικόνας","Γενική διάταξη","GPU","Κλίμακα του γκρι","Υπέρθεση πλέγματος","Σίγμα μισής ακτίνας","Χάρτης θερμότητας","Ύψος","Κουμπί βοήθειας","Απόκρυψη όλων","Απόκρυψη διάταξης","Φιλοξενία μέσων","Αν επιλέξετε να φιλοξενήσετε μέσα σε διαφορετική τοποθεσία από τη ρίζα, καθορίστε παρακάτω τη διεύθυνση URL.","Εικόνα","Οι εικόνες μπορούν να ενσωματωθούν απευθείας στον κώδικα ενσωμάτωσης ιστοσελίδας χωρίς να μεταφορτώνονται ξεχωριστά αν το συνολικό μέγεθος αρχείων είναι μικρότερο από 10MB.","Εισαγωγή","Αρχική","Είσοδος","Κλιμάκωση ακεραίου","Μη έγκυρο αρχείο. Μόνο αρχεία με τις ακόλουθες επεκτάσεις είναι αποδεκτά:","Μη έγκυρα αρχεία. Μόνο αρχεία με τις ακόλουθες επεκτάσεις είναι αποδεκτά:","Έξοδος αναστροφής","Τζετ","Μεταπήδηση στην αρχή","Ετικέτα","Λαπλασιανή (πέντε σημείων)","Λαπλασιανή (εννέα σημείων)","Λαπλασιανή απόκλιση","Μεγάλη","Καρτέλες διάταξης","Θέση αριστερά/δεξιά","Ας ξεκινήσουμε","Τοπικές σκιάσεις","Διαφορά φωτεινότητας","Σφάλμα φωτεινότητας μόνο","Επισήμανση Inf/NaN","Μέσα","Τομέας/διαδρομή μέσων","Επιλογείς μέσων","Μεσαίο","Λειτουργία","Σύρσιμο ποντικιού","Τροχός κύλισης ποντικιού","Πολλαπλασιαστής","Κοντινότερος γείτονας","Νέο έργο","Δεν επιλέχτηκε κανένας φάκελος","Κανένας","Κανένας (προεπιλογή SSIM)","Ανενεργός","Ενεργός","Άνοιγμα","Υπέρθεση","Πακέτο ενσωμάτωσης ιστοσελίδας","Προβολή πανοράματος","Διαφορές ανάλογα με το κανάλι","Πιξελοποίηση","Αναπαραγωγή/Παύση","Βασικά καρέ θέσης","Διατήρηση διαστάσεων","Προεπισκόπηση","Προηγούμενο/Επόμενο σετ","Ακτίνα","Επαναφόρτωση","Αφαίρεση","Να αφαιρεθεί το σετ σύγκρισης;","Να αφαιρεθούν τα μέσα;","Επαναφορά","Επαναφορά ταχύτητας αναπαραγωγής","Διαφορά RGB","Ίδιο πλάτος and ύψος","Αποθήκευση","Αποθήκευση έργου","Κλίμακα %","Κλιμάκωση για προσαρμογή","Επιλογή φακέλου","Επιλέξτε φακέλους με αντίστοιχα ονόματα αρχείων και αυτόματα θα δημιουργηθούν σύνολα σύγκρισης.","Σύνολο","Επιλογή συνόλων","Ρυθμίσεις","Ευκρίνεια","Συντομεύσεις","Εμφάνιση γωνίας","Εμφάνιση λεζάντας χάρτη χρωμάτων","Εμφάνιση διάταξης","Εμφάνιση μικρογραφιών","Παράθεση","Λειτουργία παράθεσης","Σίγμα","Αλλαγή προσήμου","Μέγεθος","Βασικά πλαίσια ρυθμιστικού","Μικρό","Sobel","Ένα μέσο","Ταξινόμηση αλφαβητικά","Ταξινόμηση κατά δημιουργία","Διάστημα","Διαιρεμένη οθόνη","Λειτουργία διαιρεμένης οθόνης","Υψομένο στο τετράγωνο","SSIM","SSIM πλήρες","Λειτουργία SSIM","SSIM απλοποιημένο","Ώρα έναρξης","Δομικό σφάλμα μόνο","Συμμετρικός","Υπήρχε σφάλμα κατά την εξαγωγή του βίντεό σας","Υπήρχε σφάλμα κατά την παραγωγή του πακέτου ενσωμάτωσης ιστοσελίδας, δοκιμάστε ξανά.","Αυτό το λογισμικό χρησιμοποιεί κώδικα FFmpeg με άδεια υπό το LGPLv2.1","Αυτό θα αφαιρέσει το μέσο από όλα τα σύνολα σύγκρισης σε αυτό το έργο. Θέλετε να αφαιρέσετε αυτό το μέσο;","Παράθεση","Μέγεθος τίτλου","Εναλλαγή πλήρους οθόνης","Ανοχή","Άνω αριστερά","Άνω δεξιά","Τύπος","Θέση πάνω/κάτω","Έκδοση","Βίντεο","Προβολή σημειώσεων έκδοσης","Web","Το πακέτο ενσωμάτωσης ιστοσελίδας αποθηκεύτηκε με επιτυχία","Βαρύτητα αντίθεσης","Βαρύτητα λαμπρότητας","Βαρύτητα δομής","Πλάτος","Θέλετε να αποθηκεύσετε το τρέχον έργο σας πριν συνεχίσετε;","Ακτίνα X","Σίγμα X","Ακτίνα Y","Σίγμα Y","Η GPU σας έχει πρόβλημα κατά την αποκωδικοποίηση των πολυμέσων σας. Για καλύτερη απόδοση, δοκιμάστε να κλείσετε όλες τις εφαρμογές που χρησιμοποιούν πόρους GPU ή/και να επανεκκινήσετε τη συσκευή σας.","Τα κλιπ μέσων σας θα παραμείνουν στον πίνακα «Μέσα», αλλά οτιδήποτε έχετε κάνει σε αυτό το σύνολο σύγκρισης θα χαθεί. Θέλετε να αφαιρέσετε αυτό το σετ;","Το έργο σας έχει αποθηκευτεί","Προβολή ζουμ"],"en-gb":["(i.e. https://domain.com/path)","Absolute","Add filter","Add media","Add overlay","Add Overlay to annotate your comparison.","Adjust the clip offset to align the videos.","Angle","Automatically create sets","Average colours (slower)","Bilinear","Binary","Bitrate","Black-blue-violet-yellow-white","Bottom Left","Bottom Right","Cannot display filter:","Cancel","Change playback speed","CIE-LAB difference","Click Add Media or drag and drop video/image files into this window to compare them.","Codec","Colour mode","Comparison sets","Contrast error only","Control bar","Copy embed code","CTRL +","CTRL + 1-9","CTRL + f","Customisation","Delete","Difference","Dimensions","Disable","Don't save","Download","Download FFmpeg source.","Duration","Embed code copied","Embed code copied to clipboard","Embed images in code","Embedded in webpage code","Enable","Error loading media","Error loading media, unsupported file type","Error logs path","Export","Export still images","Export video segments","Exporting video","Exposure","Files without matching names are marked in red and will be omitted.","Filtering mode","Format","FPS","Frame advance","Frames per second","Gamma","Gaussian blur","General","Generating image","Global layout","GPU","Greyscale","Grid overlay","Half radius sigma","Heatmap","Height","Help button","Hide all","Hide layout","Hosting media","If you choose to host media in a different location from the root, specify the URL below.","Image","Images can be embedded directly in webpage embed code without uploading them separately if the total file size is less than 10MB.","Import","Initial","Input","Integer scaling","Invalid file. Only files with the following extensions are accepted:","Invalid files. Only files with the following extensions are accepted:","Invert output","Jet","Jump to start","Label","Laplacian (five point)","Laplacian (nine point)","Laplacian variance","Large","Layout tabs","Left/Right PX","Let's Get Started","Local shaders","Luminance difference","Luminance error only","Mark Inf/NaN","Media","Media domain/path","Media selectors","Medium","Mode","Mouse drag","Mouse scroll wheel","Multiplier","Nearest Neighbour","New Project","No folders selected","None","None (SSIM default)","Off","On","Open","Overlay","Package webpage embed","Pan view","Per-channel differences","Pixelisation","Play/Pause","Position keyframes","Preserve dimensions","Preview","Previous/Next set","Radius","Reload","Remove","Remove comparison set?","Remove media?","Reset","Reset playback speed","RGB difference","Same width and height","Save","Save project","Scale %","Scale to fit","Select folder","Select folders with matching file names and comparison sets will automatically be created.","Set","Sets select","Settings","Sharpness","Shortcuts","Show angle","Show Colour Map Legend","Show layout","Show thumbnails","Side-by-side","Side-by-side mode","Sigma","Sign flip","Size","Slider keyframes","Small","Sobel","Solo media","Sort alphabetically","Sort by created","Space","Split screen","Split screen mode","Squared","SSIM","SSIM full","SSIM Mode","SSIM simplified","Start time","Structural error only","Symmetric","There was an error exporting your video","There was an error generating your webpage embed package, please try again.","This software uses code of FFmpeg licensed under the LGPLv2.1","This will remove the media from all comparison sets in this project. Do you want to remove this media?","Tiling","Title size","Toggle fullscreen","Tolerance","Top Left","Top Right","Type","Up/Down PX","Version","Video","View release notes","Web","Webpage embed package successfully saved","Weight Contrast","Weight Luminance","Weight Structure","Width","Would you like to save your current project before continuing?","X Radius","X Sigma","Y Radius","Y Sigma","Your GPU is having trouble decoding your media. For better performance, try closing all applications utilising GPU resources and/or restarting your device.","Your media clips will remain in the Media panel, but anything you have done in this comparison set will be lost. Do you want to remove this set?","Your project has been saved","Zoom view"],"es-es":["(p. ej., https://dominio.com/ruta)","Absoluta","Añadir filtro","Añadir medios","Añadir superposición","Añadir superposición para anotar su comparación.","Ajustar el desplazamiento del clip para alinear los vídeos.","Ángulo","Crear conjuntos automáticamente","Media de colores (más lento)","Bilineal","Binario","Velocidad de bits","Negro-azul-morado-amarillo-blanco","Parte inferior izquierda","Parte inferior derecha","No se puede mostrar el filtro:","Cancelar","Cambiar velocidad de reproducción","Diferencia CIE-LAB","Haga clic en Añadir medios o arrastre y suelte en esta ventana los archivos de vídeo/imagen para compararlos.","Códec","Modo de color","Conjuntos de comparación","Solo error de contraste","Barra de control","Copiar código de inserción","CTRL +","CTRL + 1-9","CTRL + f","Personalización","Eliminar","Diferencia","Dimensiones","Deshabilitar","No guardar","Descargar","Descargar fuente FFmpeg.","Duración","Código de inserción copiado","Código de inserción copiado en el portapapeles","Insertar imágenes en el código","Insertado en el código de la página web","Habilitar","Error al cargar medios","Error al cargar medios, tipo de archivo no compatible","Ruta de registros de errores","Exportar","Exportar imágenes fijas","Exportar segmentos de vídeo","Exportando vídeo","Exposición","Los archivos sin nombres coincidentes se marcan en rojo y se omitirán.","Modo de filtrado","Formato","FPS","Avance por fotograma","Fotogramas por segundo","Gamma","Desenfoque gaussiano","General","Generando imagen","Disposición global","GPU","Escala de grises","Superposición de rejilla","Sigma medio radio","Mapa térmico","Altura","Botón de ayuda","Ocultar todo","Ocultar disposición","Alojando medios","Si decide alojar los medios en una ubicación diferente de la raíz, especifique la URL a continuación.","Imagen","Las imágenes pueden insertarse directamente en el código de inserción de la página web sin cargarlas por separado si el tamaño total de los archivos es inferior a 10 MB.","Importar","Inicial","Entrada","Escalado de número entero","Archivo no válido. Solo se aceptan los archivos con las siguientes extensiones:","Archivos no válidos. Solo se aceptan los archivos con las siguientes extensiones:","Invertir salida","Chorro","Saltar para iniciar","Etiqueta","Laplaciano (cinco puntos)","Laplaciano (nueve puntos)","Variación laplaciana","Grande","Pestañas de disposición","Posición izquierda/derecha","Comencemos","Sombreadores locales","Diferencia de luminancia","Solo error de luminancia","Marcar Inf/NuN","Medios","Dominio/ruta de medios","Selectores de medios","Medio","Modo","Arrastre de ratón","Rueda de desplazamiento del ratón","Multiplicador","Píxel más cercano","Nuevo proyecto","No se ha seleccionado ninguna carpeta","Ninguno","Ninguno (SSIM predeterminado)","Desactivado","Activado","Abrir","Superposición","Paquete de inserción en página web","Vista panorámica","Diferencias por canal","Pixelización","Reproducir/pausar","Fotogramas clave para la posición","Preservar dimensiones","Vista previa","Conjunto anterior/siguiente","Radio","Recargar","Eliminar","¿Eliminar conjunto de comparación?","¿Eliminar medios?","Restablecer","Reestablecer velocidad de reproducción","Diferencia de RGB","Misma anchura y altura","Guardar","Guardar proyecto","% de escala","Ajustar al tamaño","Seleccionar carpeta","Seleccione carpetas con nombres de archivo coincidentes y se crearán automáticamente conjuntos de comparación.","Conjunto","Seleccionar conjuntos","Ajustes","Nitidez","Accesos directos","Mostrar ángulo","Mostrar leyenda de mapa de color","Mostrar disposición","Mostrar miniaturas","Uno al lado del otro","Modo uno al lado del otro","Sigma","Cambio de signo","Tamaño","Fotogramas clave del control deslizante","Pequeño","Sobel","Un medio","Ordenar alfabéticamente","Ordenar por creado","Espacio","Pantalla dividida","Modo de pantalla dividida","Cuadrado","SSIM","SSIM lleno","Modo de SSIM","SSIM simplificado","Hora de inicio","Solo error estructural","Simétrico","Se ha producido un error al exportar su vídeo","Se ha producido un error al generar el paquete de inserción de su página web, inténtelo de nuevo.","Este software utiliza código de FFmpeg licenciado bajo la LGPLv2.1","Esto eliminará los medios de todos los conjuntos de comparación de este proyecto. ¿Desea eliminar estos medios?","Mosaico","Tamaño del título","Alternar pantalla completa","Tolerancia","Parte superior izquierda","Parte superior derecha","Tipo","Posición arriba/abajo","Versión","Vídeo","Ver notas de versión","Web","Paquete de inserción de página web guardado correctamente","Ponderar contraste","Ponderar luminancia","Ponderar estructura","Anchura","¿Desea guardar el proyecto actual antes de continuar?","Radio X","Sigma X","Radio Y","Sigma Y","Su GPU tiene problemas para decodificar sus archivos multimedia. Para obtener un mejor rendimiento, intente cerrar todas las aplicaciones que utilizan recursos de GPU y/o reiniciar su dispositivo.","Sus clips de medios permanecerán en el panel de Medios, pero todo lo que haya hecho en este conjunto de comparación se perderá. ¿Desea eliminar este conjunto?","Su proyecto se ha guardado","Vista de zoom"],"es-mx":["(es decir, https://dominio.com/ruta)","Absoluto","Agregar filtro","Agregar medios","Agregar superposición","Agregar superposición para realizar anotaciones de su comparación.","Ajustar la compensación de los videoclips para alinearlos.","Ángulo","Crear conjuntos automáticamente","Colores promedio (más lentos)","Bilineal","Binario","Velocidad de transmisión","Negro-azul-violeta-amarillo-blanco","Parte inferior izquierda","Parte inferior derecha","No se puede mostrar el filtro:","Cancelar","Cambiar velocidad de reproducción","Diferencia CIE-LAB","Haga clic en Agregar medios o arrastre y suelte archivos de video/imagen en esta ventana para compararlos.","Codec","Modo de color","Conjuntos de comparación","Solo error de contraste","Barra de control","Copiar código de inserción","CTRL +","CTRL + 1-9","CTRL + f","Personalización","Eliminar","Diferencia","Dimensiones","Desactivar","No guardar","Descargar","Descargar la fuente de FFmpeg.","Duración","Código de inserción copiado","Código de inserción copiado al portapapeles","Insertar imágenes en el código","Insertado en el código de la página web","Activar","Error al cargar medios","Error al cargar medios, tipo de archivo no compatible","Ruta de registros de errores","Exportar","Exportar imágenes fijas","Exportar segmentos de video","Exportando video","Exposición","Los archivos sin nombres coincidentes se marcan en rojo y se omitirán.","Modo de filtrado","Formato","FPS","Avance de fotogramas","Fotogramas por segundo","Gamma","Desenfoque gaussiano","General","Generando imagen","Disposición global","GPU","Escala de grises","Superposición de cuadrícula","Sigma de medio radio","Mapa de calor","Altura","Botón Ayuda","Ocultar todo","Ocultar disposición","Alojamiento de medios","Si elige alojar medios en una ubicación diferente a la raíz, especifique la URL a continuación.","Imagen","Las imágenes se pueden insertar directamente en el código de inserción de la página web sin cargarlas por separado si el tamaño total del archivo es inferior a 10 MB.","Importar","Inicial","Entrada","Escalado de enteros","Archivo no válido. Solo se aceptan archivos con las siguientes extensiones:","Archivos no válidos. Solo se aceptan archivos con las siguientes extensiones:","Invertir salida","Jet","Saltar al inicio","Etiqueta","Laplaciano (cinco puntos)","Laplaciano (nueve puntos)","Variación laplaciana","Grande","Fichas de disposición","Posición izquierda/derecha","Comencemos","Sombreadores locales","Diferencia de luminancia","Solo error de luminancia","Marcar Inf/NaN","Medios","Dominio/ruta de medios","Selectores de medios","Medio","Modo","Arrastre del ratón","Rueda de desplazamiento del ratón","Multiplicador","Vecino más cercano","Proyecto nuevo","No hay carpetas seleccionadas","Ninguno/a","Ninguno (SSIM predeterminado)","Apagado","Encendido","Abrir","Superposición","Insertar página web del paquete","Vista panorámica","Diferencias por canal","Pixelización","Reproducción/Pausa","Fotogramas clave de posición","Preservar dimensiones","Vista previa","Conjunto Anterior/Siguiente","Radio","Recargar","Quitar","¿Eliminar conjunto de comparación?","¿Eliminar medios?","Restablecer","Restablecer velocidad de reproducción","Diferencia de RGB","Mismo ancho y altura","Guardar","Guardar proyecto","Escala %","Escalar para ajustar","Seleccionar carpeta","Se crearán automáticamente carpetas seleccionadas con nombres de archivos coincidentes y conjuntos de comparación.","Conjunto","Selección de conjuntos","Configuración","Nitidez","Accesos directos","Mostrar ángulo","Mostrar leyenda del mapa de colores","Mostrar disposición","Mostrar miniaturas","Lado a lado","Modo de lado a lado","Sigma","Cambio de signo","Tamaño","Fotogramas clave de control deslizante","Pequeño","Sobel","Modo de medios","Ordenar alfabéticamente","Ordenar por fecha de creación","Espacio","Pantalla dividida","Modo de pantalla dividida","Al cuadrado","SSIM","SSIM completo","Modo SSIM","SSIM simplificado","Hora de inicio","Solo error estructural","Simétrico","Se produjo un error al exportar su video","Se produjo un error al generar el paquete de inserción de su página web. Inténtelo de nuevo.","Este software utiliza código de FFmpeg con licencia LGPLv2.1","Esto eliminará los medios de todos los conjuntos de comparación en este proyecto. ¿Desea eliminar estos medios?","Mosaico","Tamaño del título","Alternar pantalla completa","Tolerancia","Parte superior izquierda","Parte superior derecha","Tipo","Posición Arriba/Abajo","Versión","Video","Ver notas de la versión","Web","El paquete de inserción de página web se guardó satisfactoriamente","Ponderar contraste","Ponderar luminancia","Ponderar estructura","Ancho","¿Desea guardar su proyecto actual antes de continuar?","Radio X","Sigma X","Radio Y","Sigma Y","Su GPU está teniendo problemas para decodificar sus medios. Para obtener un mejor rendimiento, pruebe cerrar todas las aplicaciones utilizando los recursos de la GPU o reiniciando su dispositivo.","Sus secciones de medios permanecerán en el panel de Medios, pero todo lo que haya hecho en este conjunto de comparación se perderá. ¿Desea eliminar este conjunto?","Se ha guardado su proyecto","Vista ampliada"],"fi-fi":["(eli https://verkkotunnus.com/polku)","Absoluuttinen","Lisää suodatin","Lisää media","Lisää päällekkäistaso","Lisää päällekkäistaso lisätäksesi selitys vertailullesi.","Tasaa videot säätämällä leikkeen siirtymää.","Kuvakulma","Luo setit automaattisesti","Keskitasoiset värit (hitaampi)","Bilineaarinen","Binäärinen","Bittitaajuus","Musta-sininen-violetti-keltainen-valkoinen","Vasen alakulma","Oikea alakulma","Suodatinta ei voi näyttää:","Peruuta","Muuta toiston nopeutta","CIE-LAB-eroavaisuus","Napsauta kohtaa Lisää media tai vedä ja pudota video/kuvatiedosto tähän ikkunaan vertailleksasi niitä.","Koodekki","Väritila","Vertailusetit","Vain kontrastivirhe","Säädinpalkki","Kopioi upotettu koodi","CTRL +","CTRL + 1-9","CTRL + f","Mukautus","Poista","Eroavaisuus","Mitat","Poista käytöstä","Älä tallenna","Lataa","Lataa Fmpeg-lähde","Kesto","Upotettu koodi on kopioitu","Upotettu koodi on kopioitu leikepöydälle","Ulota kuvat koodiin","Upotettu verkkosivun koodiin","Ota käyttöön","Median latausvirhe","Median latausvirhe, tuntematon tiedostotyyppi","Virhelokin polku","Vie","Vie pysäytyskuva","Vie videosegmentti","Vie video","Valotus","Tiedostot, joilla ei ole yhteneviä nimiä merekitään punaisella ja ohitetaan.","Suodatustila","Tiedostomuoto","FPS (kuvaa sekunnissa)","Kehystaajuus","Ruutuja sekunnissa","Gamma","Säteittäinen Gauss-sumennus","Yleistä","Luodaan kuvaa","Yleinen asettelu","Grafiikkasuoritin","Mustavalkoinen","Grid-päällekkäistaso","Puolittainen sigma","Lämpökartta","Korkeus","Ohjepainike","Piilota kaikki","Piilota asettelu","Isännöi mediaa","Jos valitset mediasi isäännöitäväksi muualla kuin juuressa, määritä URL tässä alla.","Kuva","Kuvat voidaan upottaa suoraan verkkosivun upotuskoodiin ilman erillistä latausta, jos tiedostojen yhteenlaskettu koko on alle 10 Mt.","Tuo","Aloitusnäkymä","Syöte","Integer skaalaus","Tiedosto ei kelpaa Vain seuraavat tiedstopäätteet hyväksytään:","Tiedostot eivät kelpaa Vain seuraavat tiedstopäätteet hyväksytään:","Käännön lähtö","Jet","Hyppää alkuun","Nimike","Laplacen (5-pisteinen)","Laplacen (9-pisteinen)","Laplacen varianssi","Suuri","Asettelu-välilehdet","Vasen/Oikea PX","Aloitetaan","Paikalliset varjostimet","Luminanssi-eroavaisuus","Vain luminanssivirhe","Merkki Inf/NaN","Media","Media/verkkotunnus/polku","Median valitsimet","Keskitaso","Tila","Hiirellä veto","Hiiren rulla","Kerroin","Lähin naapuri","Uusi projekti","Ei valittuja kansioita","Ei mitään","Ei mitään (SSIM-oletusarvo)","Pois päältä","Päällä","Avaa","Päällekkäistaso","Verkkosivulle upotettu paketti","Panorointinäkymä","Kanavakohtainen eroavaisuus","Pikselöinti","Toista/tauko","Avainruutujen sijainti","Säilytä mitat","Esikatselu","Edellinen/seuraava setti","Säde","Lataa uudelleen","Poista","Poistetaanko vertailusetti?","Poistetaanko media?","Palauta","Palauta toiston nopeus","RGB-eroavaisuus","Sama leveys ja korkeus","Tallenna","Tallenna projekti","Skaalaus %","Skaalaa sopivaksi","Valitse kansio","Vertailusetit luodaan automaattisesti, kun valitset kansiot, joissa on saman nimisiä tiedostoja.","Setti","Valitut setit","Asetukset","Terävyys","Pikanäppäimet","Näytä kuvakulma","Näytä väritetyn kartan selitteet","Näytä asettelu","Pienoiskuvat","Näytä pienoiskuvat","Rinnakkain-tila","Sigma","Allekirjoita kääntö","Koko","Liukusäätimen avainruudut","Pieni","Sobel","Solo-media","Lajittelu aakkosjärjestyksessä","Lajittele luomisajankohdan mukaan","Näyttötila","Jaettu näyttö","Jettu näyttö -tila","Neliöity","SSIM","SSIM täynnä","SSIM-tila","Yksinkertaistettu SSIM","Alkamisaika","Vain rakennevirhe","Symmetrinen","Virhe videosi viemisessä","Virhe verkkosivusi upotuspaketin luomisessa, yritä uudelleen.","Tämä ohjelmisto käyttää LGPLv2.1-lisensioitua FFmpegin koodia.","Tämä poistaa media kaikista tämän projektin vertailuseteistä. Haluatko poistaa tämän median?","Laatoitus","Otsikon koko","Vaihtele koko näyttöön ja pois","Sietokyky","Vasen yläkulma","Oikea yläkulma","Tyyppi","Ylös/Alas PX","Versio","Video","Katso versiotiedot","Verkko","Verkkosivustoon upotetun paketin tallentaminen onnistui","Painotuskontrasti","Painotusluminanssi","Painotusrakenne","Leveys","Haluatko tallentaa nykyisen projektisi ennen kuin jatkat?","X-säde","X-Sigma","Y-säde","Y-Sigma","Grafiikkasuorittimellasi on ongelmia mediasi dekoodauksessa. Parempaa suorituskykyä varten kokeile sulkea kaikki grafiikkasuorittimen resursseja käyttävät sovellukset ja/tai käynnistä laitteesi uudelleen.","Medialeikkeesi pysyy Mediapaneelissa, mutta kaikki tässä vertailusetissä tekemäsi asiat menetetään. Haluatko poistaa tämän setin?","Projektisi on tallennettu","Zoomausnäkymä"],"fr-fr":["(p. ex. https://domaine.com/chemin)","Absolue","Ajouter un filtre","Ajouter un média","Ajouter une interface superposée","Ajoutez une interface superposée pour annoter votre comparaison.","Réglez le décalage du clip pour aligner les vidéos.","Angle","Créer automatiquement des ensembles","Moyenne des couleurs (plus lent)","Bilinéaire","Binaire","Débit","Noir-bleu-violet-jaune-blanc","En bas à gauche","En bas à droite","Impossible d'afficher le filtre :","Annuler","Changer la vitesse de lecture","Écart CIE-LAB","Cliquez sur Ajouter un média ou glissez-déposez des fichiers vidéo/image dans cette fenêtre pour les comparer.","Codec","Mode Couleur","Ensembles de comparaison","Erreur de contraste uniquement","Barre de contrôle","Copier le code d’intégration","CTRL +","CTRL + 1-9","CTRL + f","Personnalisation","Supprimer","Écart","Dimensions","Désactiver","Ne pas enregistrer","Télécharger","Téléchargez la source FFmpeg.","Durée","Code d’intégration copié","Code d’intégration copié dans le presse-papiers","Images intégrées dans le code","Intégré dans le code de la page Web","Activer","Erreur de chargement du média","Erreur de chargement du média, type de fichier non pris en charge","Chemin des journaux d’erreur","Exporter","Exporter des images fixes","Exporter des segments vidéo","Exportation de la vidéo en cours","Exposition","Les fichiers dont les noms ne correspondent pas sont marqués en rouge et seront ignorés.","Mode de filtrage","Format","Images/s","Avance image par image","Images par seconde","Gamma","Flou gaussien","Général","Génération de l’image en cours","Disposition globale","Processeur graphique","Niveaux de gris","Superposition de grille","Sigma demi-rayon","Carte thermique","Hauteur","Bouton Aide","Masquer tout","Masquer la disposition","Hébergement du média","Si vous choisissez d’héberger le média dans un emplacement autre que l'emplacement racine, indiquez l’URL ci-dessous.","Image","Les images peuvent être intégrées directement dans le code d’intégration de la page Web sans être téléchargées séparément si la taille totale des fichiers est inférieure à 10 Mo.","Importer","Initiale","Entrée","Mise à l’échelle par nombres entiers","Fichier non valide. Seuls les fichiers avec les extensions suivantes sont acceptés :","Fichiers non valides. Seuls les fichiers avec les extensions suivantes sont acceptés :","Inverser la sortie","Jet","Aller au début","Étiquette","Laplacien (cinq points)","Laplacien (neuf points)","Écart laplacien","Grand","Onglets de disposition","Position gauche/droite","Lancez-vous","Moteurs d’ombrage locaux","Écart de luminance","Erreur de luminance uniquement","Marquer Inf/NaN","Média","Domaine/chemin du média","Sélecteurs de média","Moyen","Mode","Glissement de la souris","Molette de la souris","Multiplicateur","Plus proche voisin","Nouveau projet","Aucun dossier sélectionné","Aucun","Aucun (SSIM par défaut)","Désactivé","Activé","Ouvrir","Interface superposée","Intégration d’un package dans une page Web","Vue panoramique","Écarts par canal","Pixellisation","Lire/mettre en pause","Images clés de position","Conserver les dimensions","Aperçu","Ensemble précédent/suivant","Rayon","Recharger","Supprimer","Supprimer l’ensemble de comparaison ?","Supprimer le média ?","Réinitialiser","Réinitialiser la vitesse de lecture","Écart RGB","Même largeur et hauteur","Enregistrer","Enregistrer le projet","Échelle (%)","Ajuster","Sélectionner un dossier","Sélectionnez des dossiers dont les noms correspondent pour créer automatiquement des ensembles de comparaison.","Ensemble","Sélection d’ensembles","Paramètres","Lissage","Raccourcis","Afficher l’angle","Afficher la légende de la table des couleurs","Afficher la disposition","Afficher les miniatures","Côte à côte","Mode Côte à côte","Sigma","Inverser le signe","Taille","Images clés de curseur","Petit","Sobel","Un seul média","Trier par ordre alphabétique","Trier par date de création","Barre d’espace","Écran divisé","Mode Écran divisé","Carré","SSIM","SSIM complète","Mode SSIM","SSM simplifiée","Heure de début","Erreur structurelle uniquement","Symétrique","Une erreur s’est produite pendant l’exportation de votre vidéo","Une erreur s’est produite pendant la génération de votre package intégré dans la page Web. Veuillez réessayer.","Ce logiciel utilise le code de FFmpeg sous licence de LGPLv2.1","Le média sera supprimé de tous les ensembles de comparaison dans ce projet. Voulez-vous supprimer ce média ?","Pavage","Taille du titre","Basculer en mode Plein écran","Tolérance","En haut à gauche","En haut à droite","Type","Position haut/bas","Version","Vidéo","Afficher les notes de version","Web","Package intégré dans la page Web enregistré","Contraste pondéré","Luminance pondérée","Structure pondérée","Largeur","Voulez-vous enregistrer le projet en cours avant de continuer ?","Rayon X","Sigma X","Rayon Y","Sigma Y","Votre processeur graphique a du mal à décoder votre média. Pour de meilleures performances, essayez de fermer toutes les applications utilisant les ressources du processeur graphique et/ou redémarrez votre appareil.","Vos clips multimédia resteront dans le panneau Média, mais tout ce que vous avez effectué dans cet ensemble de comparaison sera perdu. Voulez-vous supprimer cet ensemble ?","Votre projet a été enregistré","Vue zoomée"],"hr-hr":["(tj. https://domena.com/put)","Apsolut","Dodaj filtar","Dodaj medij","Dodaj prekrivanje","Dodaj prekrivanje za anotiranje usporedbe.","Podesi pomak isječka za usklađivanje videozapisa.","Kut","Automatski kreiraj setove","Prosječne boje (sporije)","Bilinearno","Binarno","Brzina prijenosa","Crno-plavo-ljubičasto-žuto-bijelo","Dolje lijevo","Dolje desno","Nije moguće prikazati filtar:","Odustani","Promijeni brzinu reprodukcije","CIE-LAB razlika","Kliknite Dodaj medij ili povucite i ispustite video/slikovne datoteke u ovaj prozor i usporedite ih.","Kodek","Način boje","Setovi usporedbe","Samo pogreška kontrasta","Kontrolna traka","Kopiraj kod za ugradnju","CTRL +","CTRL + 1 – 9","CTRL + f","Prilagodba","Izbriši","Razlika","Dimenzije","Onemogući","Nemoj spremiti","Preuzmi","Preuzi FFmpeg izvor.","Trajanje","Kod za ugradnju kopiran","Kod za ugradnju kopiran u međuspremnik","Ugradi slike u kod","Ugrađeno u kod web-stranice","Omogući","Pogreška pri učitavanju medija","Pogreška pri učitavanju medija, vrsta datoteke nije podržana","Put zapisnika pogreške","Izvoz","Izvoz fotografija","Izvoz segmenata videozapisa","Izvoz videozapisa","Izlaganje","Datoteke bez odgovarajućih naziva označene su crveno i izostavit će se.","Način filtriranja","Format","FPS","Ubrzanje kadra","Broj slika u sekundi","Gamma","Gaussovo zamućenje","Općenito","Generiranje slike","Globalni raspored","GPU","Sivi tonovi","Mrežno prekrivanje","Sigma polumjera","Toplinska karta","Visina","Gumb za pomoć","Sakrij sve","Sakrij raspored","Hostiranje medija","Ako odlučite hostirati medij na lokaciji koja nije korijen, navedite URL u nastavku.","Slika","Slike se mogu ugraditi izravno u kod za ugradnju web-stranice bez zasebnog učitavanja ako je ukupna veličina datoteke manja od 10 MB.","Uvezi","Početno","Unos","Skaliranje cijelog broja","Neispravna datoteka. Prihvaćene su samo datoteke sa sljedećim ekstenzijama:","Neispravne datoteke. Prihvaćene su samo datoteke sa sljedećim ekstenzijama:","Obrni izlaz","Jet","Skok na početak","Oznaka","Laplacijan (pet točaka)","Laplacijan (devet točaka)","Odstupanje Laplacijana","Veliko","Kartice rasporeda","Lijevi/desni PX","Započnimo","Lokalno sjenčanje","Razlika u osvjetljenju","Samo pogreška osvjetljenja","Oznaka Inf/NaN","Mediji","Domena/put medija","Birači medija","Srednje","Način","Povlačenje miša","Kotačić za pomicanje miša","Množitelj","Najbliži piksel","Novi projekt","Nema odabranih mapa","Ništa","Ništa (SSIM zadano)","Isključeno","Uključeno","Otvori","Prekrivanje","Paket za ugradnju u web-stranicu","Pomicanje prikaza","Razlike prema kanalu","Pikselizacija","Reproduciraj/pauziraj","Postavi ključne okvire","Očuvaj dimenzije","Pregled","Prethodni/sljedeći set","Polumjer","Ponovno učitaj","Ukloni","Ukloniti set za usporedbu?","Ukloniti medij?","Ponovno postavi","Ponovno postavi brzinu reprodukcije","RGB razlika","Ista širina i visina","Spremi","Spremi projekt","Skala %","Skaliraj da pristaje","Odaberi mapu","Odaberite mape s odgovarajućim nazivima i setovi za usporedbu automatski će se izraditi.","Postavi","Postavlja odabrano","Postavke","Oštrina","Prečaci","Prikaži kut","Prikaži legendu boje karte","Prikaži raspored","Prikaži minijature","Usporedni prikaz","Način usporednog prikaza","Sigma","Okretanje znaka","Veličina","Ključni okviri klizača","Malo","Sobel","Solo mediji","Razvrstaj po abecedi","Razvrstaj prema izrađenom","Razmak","Podijeljeni zaslon","Način podijeljenog zaslona","Kvadratno","SSIM","SSIM pun","SSIM način","SSIM pojednostavljen","Vrijeme početka","Samo strukturna pogreška","Simetrično","Došlo je do pogreške pri izvozu videozapisa","Došlo je do pogreške u generiranju paketa za ugradnju u web-stranicu, pokušajte ponovno.","Ovaj softver upotrebljava kod FFmpeg licenciran prema LGPLv2.1","Ovo će ukloniti medije iz svih setova usporedbe u ovom projektu. Želite li ukloniti ove medije?","Popločavanje","Veličina naslova","Prebacivanje na puni zaslon","Tolerancija","Gore lijevo","Gore desno","Vrsta","Gornji/donji PX","Verzija","Videozapis","Prikaži napomene o izdanju","Web","Paket za ugradnju u web-stranicu uspješno spremljen","Kontrast težine","Osvjetljenje težine","Struktura težine","Širina","Želite li spremiti trenutačni projekt prije nastavka?","X polumjer","X sigma","Y polumjer","Y sigma","Vaš GPU ima poteškoća s dekodiranjem medija. Za bolje performanse pokušajte zatvoriti sve aplikacije koje koriste GPU resurse i/ili ponovno pokrenuti uređaj.","Vaši medijski isječci ostat će na ploči Mediji, ali sve što ste napravili u ovom setu za usporedbu izgubit će se. Želite li ukloniti ovaj set?","Vaš je projekt spremljen","Uvećaj prikaz"],"hu-hu":["(pl. https://tartomány.com/útvonal)","Abszolút","Szűrő hozzáadása","Média hozzáadása","Réteg hozzáadása","Az összehasonlítás magyarázatához adjon hozzá réteget.","A videók igazításához állítsa be a klip eltolását.","Szög","Sorozatok automatikus létrehozása","Átlagos színek (lassabb)","Bilineáris","Bináris","Bitsebesség","Fekete-kék-ibolya-sárga-fehér","Balra lent","Jobbra lent","A szűrő nem jeleníthető meg:","Mégse","Lejátszási sebesség módosítása","CIE-LAB különbség","Az összehasonlításhoz kattintson a Média hozzáadása gombra, vagy húzzon videó-/képfájlokat ebbe az ablakba.","Kodek","Szín mód","Összehasonlítási sorozatok","Csak kontraszthiba","Vezérlősáv","Beágyazási kód másolása","CTRL +","CTRL + 1-9","CTRL + f","Testreszabás","Törlés","Különbség","Méretek","Letiltás","Ne mentse","Letöltés","FFmpeg forrás letöltése.","Időtartam","Beágyazási kód kimásolva","A beágyazási kód ki van másolva a vágólapra","Képek beágyazása a kódba","Beágyazva a weboldal kódjába","Engedélyezés","Hiba a média betöltésekor","Hiba a média betöltésekor, nem támogatott fájltípus","Hibanaplók elérési útja","Exportálás","Állóképek exportálása","Videószegmensek exportálása","Videó exportálása","Megvilágítás","Az egyező nevekkel nem rendelkező fájlok pirossal lesznek megjelölve és ki lesznek hagyva.","Szűrési mód","Formátum","FPS","Képkockaléptetés","Képkockaszám másodpercenként","Gamma","Gauss-homályosítás","Általános","Kép generálása","Globális elrendezés","GPU","Szürkeskála","Rácsréteg","Fél sugár szigma","Hőtérkép","Magasság","Súgó gomb","Az összes elrejtése","Réteg elrejtése","Médiatárolás","Ha a médiafájlokat a gyökérkönyvtártól eltérő helyen tárolja, adja meg alább az URL-t.","Kép","Ha a teljes fájlméret kisebb, mint 10 MB, a képek közvetlenül beágyazhatók a weboldal beágyazási kódjába, anélkül, hogy külön fel kellene tölteni őket.","Importálás","Kezdeti","Bemenet","Egész arányú méretezés","Érvénytelen fájl. Csak a következő kiterjesztésű fájlok fogadhatók el:","Érvénytelen fájlok. Csak a következő kiterjesztésű fájlok fogadhatók el:","Kimenet invertálása","Sugárhajtás","Ugrás az elejére","Címke","Laplace (öt pont)","Laplace (kilenc pont)","Laplace-operátor","Nagy","Lapok elrendezése","Bal/jobb pozíció","Kezdjük!","Helyi árnyékolók","Fényerőkülönbség","Csak fényerőhiba","Érvénytelen műveletek jelölése","Média","Médiatartomány/elérési út","Médiaválasztók","Közepes","Mód","Egérhúzás","Egér görgetőgombja","Szorzó","Legközelebbi szomszéd","Új projekt","Nincs kiválasztva mappa","Nincs","Nincs (SSIM alapértelmezés)","Ki","Be","Megnyitás","Réteg","Weboldalba ágyazható csomag","Pásztázó nézet","Csatornánkénti különbségek","Pixelizálás","Lejátszás/Szünet","Pozíció-kulcsképkockák","Méretek megőrzése","Előnézet","Előző/következő sorozat","Sugár","Újratöltés","Eltávolítás","Eltávolítja az összehasonlítási sorozatot?","Eltávolítja a médiát?","Alaphelyzetbe állítás","Lejátszási sebesség alaphelyzetbe állítása","RGB-különbség","Azonos szélesség és magasság","Mentés","Projekt mentése","Lépték %","Igazítás ablakmérethez","Mappaválasztás","Válasszon mappákat egyező fájlnevekkel, és az összehasonlítási sorozatok automatikusan létrejönnek.","Sorozat","Sorozatok kiválasztása","Beállítások","Élesség","Parancsikonok","Szög megjelenítése","Színtérképfeliratok megjelenítése","Elrendezés megjelenítése","Bélyegképek megjelenítése","Egymás mellett","Egymás mellett mód","Szigma","Előjelváltás","Méret","Csúszkaképkockák","Kicsi","Sobel","Egy médiafájl","Rendezés betűrendbe","Rendezés létrehozás ideje szerint","Szóköz","Képernyőfelosztás","Képernyőfelosztási mód","Négyzeten","SSIM","SSIM megtelt","SSIM mód","Egyszerűsített SSIM","Kezdési idő","Csak szerkezeti hiba","Szimmetrikus","Hiba történt a videó exportálásakor","Hiba történt a weboldalba ágyazható csomag létrehozásakor. Próbálja meg újra.","Ez a szoftver az LGPLv2.1 alatt licencelt FFmpeg kódját használja","Ez eltávolítja a médiát minden összehasonlítási sorozatból ebben a projektben. El szeretnéd távolítani ezt a médiát?","Csempézés","Cím mérete","Váltás teljes képernyőre","Tűrés","Balra fent","Jobbra fent","Típus","Fent/lent pozíció","Verzió","Videó","Kibocsátási megjegyzések megtekintése","Web","A weboldalba ágyazható csomag sikeresen mentve","Kontraszt súlyozása","Fényesség súlyozása","Szerkezet súlyozása","Szélesség","Szeretné menteni a jelenlegi projektet a folytatás előtt?","X sugár","X szigma","Y sugár","Y szigma","A GPU nem tudja dekódolni a médiát. A jobb teljesítmény érdekében zárjon be minden olyan alkalmazást, amely a GPU erőforrásait használja, és/vagy indítsa újra az eszközt.","A médiaklipek megmaradnak a Média panelen, de az ebben az összehasonlítási sorozatban végzett összes művelete elvész. El szeretnéd távolítani ezt a sorozatot?","A projekt mentve","Nagyított nézet"],"it-it":["(ad es. https://dominio.com/percorso)","Assoluto","Aggiungi filtro","Aggiungi contenuti multimediali","Aggiungi sovrapposizione","Aggiungi una sovrapposizione per annotare il confronto.","Regola lo scarto tra le clip per allineare i video.","Angolo","Crea gruppo automaticamente","Media colori (più lento)","Bilineare","Binario","Velocità in bit","Nero-blu-viola-giallo-bianco","In basso a sinistra","In basso a destra","Impossibile visualizzare il filtro:","Annulla","Modifica velocità di riproduzione","Differenza CIE-LAB","Fare clic su Aggiungi contenuti multimediali oppure trascinare immagini/video all’interno di questa finestra per confrontarli.","Codec","Modalità Colore","Gruppo di confronto","Solo errore di contrasto","Barra di controllo","Copia codice di incorporamento","CTRL +","CTRL + 1-9","CTRL + f","Personalizzazione","Elimina","Differenza","Dimensioni","Disattiva","Non salvare","Scarica","Scarica sorgente FFmpeg.","Durata","Codice di incorporamento copiato","Codice di incorporamento copiato negli appunti","Incorpora immagini nel codice","Incorporato nel codice della pagina web","Attiva","Errore caricamento contenuti multimediali","Errore caricamento contenuti multimediali, tipo file non supportato","Percorso registro errori","Esporta","Esporta immagini fisse","Esporta segmenti video","Esportazione video in corso","Esposizione","I file i cui nomi non corrispondono sono evidenziati in rosso e non saranno inclusi.","Modalità filtro","Formato","FPS","Avanza per fotogrammi","Fotogrammi al secondo","Gamma","Sfocatura gaussiana","Generale","Generazione immagine in corso","Layout globale","GPU","Scala di grigi","Sovrapposizione griglia","Sigma mezzo raggio","Mappa di calore","Altezza","Pulsante Guida","Nascondi tutto","Nascondi layout","Hosting dei contenuti multimediali","Se si desidera impostare l’host per i contenuti multimediali in una posizione diversa da quella principale, specificare l’URL di seguito.","Immagine","Se le dimensioni complessive delle immagini sono inferiori a 10 MB, è possibile incorporarle direttamente nel codice di incorporamento di una pagina web, senza caricarle separatamente.","Importa","Iniziale","Input","Ridimensionamento per numeri interi","File non valido. Sono ammessi solo file con le seguenti estensioni:","File non validi. Sono ammessi solo file con le seguenti estensioni:","Inverti output","Jet","Vai all'inizio","Etichetta","Laplaciano (cinque punti)","Laplaciano (nove punti)","Varianza laplaciana","Grande","Schede layout","Posizione sinistra/destra","Per iniziare","Shader locali","Differenza luminanza","Solo errore di luminanza","Evidenzia Inf/NaN","Contenuti multimediali","Dominio/percorso contenuti multimediali","Selettori contenuti multimediali","Medio","Modalità","Trascina con il mouse","Scorri con la rotella del mouse","Moltiplicatore","Prossimità","Nuovo progetto","Nessuna cartella selezionata","Nessun elemento","Nessun elemento (valore predefinito SSIM)","Off","On","Apri","Sovrapposizione","Incorporamento del pacchetto in una pagina web","Vista Panoramica","Differenze per canale","Pixelizzazione","Riprodurre/Mettere in pausa","Keyframe di posizione","Mantieni dimensioni","Anteprima","Gruppo precedente/successivo","Raggio","Ricarica","Rimuovi","Rimuovere gruppo di confronto?","Rimuovere contenuti multimediali?","Reimposta","Reimposta velocità di riproduzione","Differenza RGB","Stessa larghezza e altezza","Salva","Salva progetto","% ridimensionamento","Adatta","Seleziona cartella","Seleziona cartelle con nomi file corrispondenti e crea automaticamente gruppi di confronto.","Gruppo","Selezione gruppo","Impostazioni","Nitidezza","Scorciatoie","Mostra angolo","Mostra legenda mappa di colore","Mostra layout","Mostra miniature","Affiancati","Modalità affiancata","Sigma","Cambiamento di segno","Dimensioni","Keyframe slider","Piccolo","Sobel","Contenuto multimediale singolo","Ordine alfabetico","Ordina per creazione","Spazio","Dividi schermo","Modalità schermo diviso","Quadrato","SSIM","SSIM completo","Modalità SSIM","SSIM semplificato","Ora di inizio","Solo errore strutturale","Simmetrico","Si è verificato un errore durante l’esportazione del video","Si è verificato un errore durante la creazione del pacchetto di incorporamento della pagina web. Riprova più tardi.","Questo software utilizza codici FFmpeg ai sensi della licenza LGPLv2.1","Il contenuto multimediale sarà rimosso da tutti i gruppi di confronto presenti nel progetto. Rimuovere il contenuto multimediale?","Affiancamento","Dimensioni titolo","Schermo intero","Tolleranza","In alto a sinistra","In alto a destra","Tipo","Posizione su/giù","Versione","Video","Visualizza le note sulla versione","Web","Pacchetto di incorporamento della pagina web salvato con successo","Peso contrasto","Peso luminanza","Peso struttura","Larghezza","Salvare il progetto corrente prima di continuare?","Raggio X","Sigma X","Raggio Y","Sigma Y","La GPU sta facendo registrare problemi nella decodifica del supporto. Per prestazioni migliori, tentare di chiudere tutte le applicazioni utilizzando le risorse GPU e/o riavviando il dispositivo.","Le clip multimediali resteranno nel pannello dei contenuti multimediali, mentre tutte le operazioni eseguite in questo gruppo di confronto andranno perse. Rimuovere il gruppo?","Il progetto è stato salvato","Vista Zoom"],"ja-jp":["(例https://ドメイン.com/パス)","アブソリュート","フィルターの追加","メディアの追加","オーバーレイの追加","比較対照に注釈をつけるためオーバーレイを追加します。","クリップのオフセットを調整してビデオの位置を揃えます。","アングル","セットを自動的に作成","平均カラー (遅い)","バイリニア","2進法","ビットレート","ブラック-ブルー-ヴァイオレット-イエロー-ホワイト","左下","右下","フィルターを表示することができません。","キャンセル","ポインタの速度の変更","CIE-LABの相違点","[メディアの追加]をクリックするか、ビデオ/画像ファイルをこのウィンドウにドラッグ&ドロップしてそれらを比較します。","Codec","カラー モード","比較対照セット","コントラスト エラーのみ","コントロール バー","埋め込みコードをコピー","CTRL+","CTRL + 1-9","CTRL + f","カスタマイズ","削除","相違点","ディメンション","無効にする","保存しないでください","ダウンロード","FFmpegソースをダウンロードする","期間","埋め込みコードがコピーされました","埋め込みコードがクリップボードにコピーされました","コード内に埋め込まれた画像","ウェブページのコードに埋め込まれました","有効にする","メディアの読み込みエラー","メディアの読み込みエラー、サポートされていないファイルの種類","エラーログのパス","エクスポート","静止画像のエクスポート","ビデオセグメントのエクスポート","ビデオのエクスポート","自動露出","名前が一致しないファイルは赤でマークされ、省略されます。","フィルタリング モード","フォーマット","FPS","コマ送り","フレーム数/秒","ガンマ","ガウシアン ブラー","全般","画像の生成","グローバル既定値","GPU","グレースケール","グリッド オーバーレイ","半半径シグマ","ヒートマップ","高さ","ヘルプボタン","すべて非表示","レイアウト非表示","メディアのホスティング中","メディアをルートとは別の場所にホストする場合は下記のURLを指定してください。","画像","画像は、全ファイルのサイズが10MB未満であれば、別々にアップロードせずにウェブページの埋め込みコードに直接埋め込むことができます。","インポート","初期","入力","整数のスケーリング","無効なファイル以下の拡張ファイルのみ受け入れ可能です。","無効なファイル。以下の拡張ファイルのみ受け入れ可能です。","反転出力","ジェット","スタートへ移動","ラベル","Laplacian(5ポイント)","Laplacian(9ポイント)","Laplacian分散","大","レイアウト タブ","左/右PX","さあ、始めましょう","ローカル シェーダー","輝度差","輝度エラーのみ","Inf/NaNをマーク","メディア","メディアのドメイン/パス","メディア セレクター","中","モード","マウス ドラッグ","マウス スクロール ホイール","マルチプライヤ","最隣接","新規プロジェクト","フォルダが選択されていません","なし","なし(SSIM 既定)","オフ","オン","開く","オーバーレイ","埋め込まれたパッケージのウェブページ","Panビュー","チャネルごとの相違点","モザイク処理","再生/一時停止","キーフレームの配置","ディメンションの維持","プレビュー","前の/次のセット","半径","リロード","削除","比較対照セットを削除しますか?","メディアを削除しますか?","リセット","再生速度のリセット","RGBの相違点","同じ幅と高さ","保存","プロジェクトの保存","拡張率 (%)","全体表示","フォルダの選択","ファイル名が一致するフォルダーを選択すると、比較対照セットが自動的に作成されます。","設定","選択の設定","設定","鮮鋭度","ショートカット","アングルを表示","カラー マップ レジェンドを表示する","レイアウト表示","サムネール表示","サイド バイ サイド","サイド バイ サイド モード","シグマ","サイン フリップ","サイズ","スライダー キーフレーム","小","Sobel","ソロ メディア","アルファベット順","作成順","スペース","分割スクリーン","分割スクリーン モード","平方","SSIM","SSIMがいっぱいです","SSIMモード","SSIMは簡素化済み","開始時刻","構造上のエラーのみ","対称的","ビデオをエクスポートする際にエラーが発生しました","ウェブページの埋め込みパッケージの生成にエラーが発生しました。もう一度お試しください。","このソフトウェアは、LGPLv2.1に基づいて使用許諾されたFFmpegのコードを使用しています。","これにより、このプロジェクトのすべての比較対照セットからメディアが削除されます。このメディアを削除しますか?","タイリング","タイトル サイズ","フルスクリーンの切り替え","トレランス","左上","右上","タイプ","アップ/ダウンPX","バージョン","ビデオ","リリース ノートを表示する","ウェブ","ウェブページの埋め込みパッケージが正常に保存されました","重量のコントラスト","重量の輝度","重量の構造","幅","続行する前に現在のプロジェクトを保存しますか?","Xの半径","Xのシグマ","Yの半径","Yのシグマ","メディアの解読中にGPUの問題が発生しています。パフォーマンスを改善するには、GPUリソースを使用しているアプリケーションをすべて終了するか、デバイスを再起動してください。","メディアクリップはメディアパネルに残りますが、この比較対照セットで行ったことはすべて失われます。このセットを削除しますか?","プロジェクトは保存されました","ズーム ビュー"],"ko-kr":["(예: https://도메인.com/경로)","절대","필터 추가","미디어 추가","오버레이 추가","비교에 주석을 달려면 오버레이를 추가하세요.","비디오를 정렬하려면 클립 오프셋을 조정하세요.","각도","세트 자동 생성","평균 컬러(느립니다)","이중선형","2치","비트 전송률","블랙-블루-바이올렛-옐로우-화이트","왼쪽 하단","오른쪽 하단","필터를 표시할 수 없습니다:","취소","재생 속도 변경","CIE-LAB 차이","비교하려면 미디어 추가를 클릭하거나 비디오/오디오 파일을 이 창으로 끌어오세요.","코덱","컬러 모드","비교 세트","대비 오류에만 해당","컨트롤 바","엠베드 코드 복사","CTRL +","CTRL + 1-9","CTRL + f","사용자 정의","삭제","차이","크기","비활성화","저장 안 함","다운로드","FFmpeg 소스 다운로드","지속 시간","엠베드 코드 복사됨","엠베드 코드가 클립보드에 복사됨","코드 내 엠베드 이미지","웹페이지 코드 내 엠베디드","활성화","미디어 로드 중 오류","미디어 로드 중 오류, 지원되지 않는 파일 유형","오류 로그 경로","내보내기","정지 이미지 내보내기","비디오 세그먼트 내보내기","비디오 내보내기","노출","일치하는 이름이 없는 파일은 빨간 색으로 표시되고 삭제됩니다.","필터링 모드","포맷","FPS","프레임 진행","초당 프레임","감마","가우스 블러","일반","이미지 생성","전체 레이아웃","GPU","회색톤","그리드 오버레이","하프 래디우스 시그마","히트맵","높이","도움말 버튼","전체 숨기기","레이아웃 숨기기","호스팅 미디어","루트가 다른 위치에 미디어를 호스팅하도록 선택한 경우, 아래 URL을 지정하세요.","이미지","전체 파일 크기가 10MB 미만인 경우, 이미지를 별도로 업로드하지 않고 웹페이지 엠베드 코드에 직접 엠베드할 수 있습니다.","가져오기","초기","입력","인터저 스케일링","잘못된 파일입니다. 다음 확장자를 가진 파일만 허용됩니다:","잘못된 파일입니다. 다음 확장자를 가진 파일만 허용됩니다:","출력 반전","제트","시작으로 이동","레이블","라플라시안(5지점)","라플라시안(9지점)","라플라시안 분산","대형","레이아웃 탭","왼쪽/오른쪽 PX","시작하기","로컬 쉐이더","광도 차이","광도 오류에만 해당","Inf/NaN 표시","미디어","미디어 도메인/경로","미디어 셀렉터","중형","모드","마우스 드래그","마우스 스크롤 휠","배율기","NN(Nearest Neighbor)","새 프로젝트","선택된 폴더 없음","없음","없음(SSIM 기본값)","끄기","켜기","열기","오버레이","패키지 웹페이지 엠베드","팬 뷰","채널별 차이","픽셀화","재생/일시 정지","위치 키프레임","크기 유지","미리보기","이전/다음 세트","반경","리로드","제거","비교 세트를 삭제하시겠습니까?","미디어를 삭제하시겠습니까?","초기화","재생 속도 초기화","RGB 차이","동일한 너비 및 높이","저장","프로젝트 저장","% 조정","크기 맞게 조정","폴더 선택","파일 이름이 일치파는 폴더를 선택하면 비교 세트가 자동으로 생성됩니다.","세트","세트 선택","정","선명도","바로 가기","각도 보기","컬러 맵 범례 보기","레이아웃 보기","섬네일 보기","나란히","나란히 모드","시그마","기호 플립","크기","슬라이더 키프레임","소형","소벨","단일 미디어","알파벳순으로 정렬","생성순으로 정렬","스페이스","화면 분할","화면 분할 모드","제곱","SSIM","SSIM 완전","SSIM 모드","SSIM 단순화됨","시작 시간","구조 오류에만 해당","대칭","비디오 내보내기 중 오류가 발생했습니다.","웹페이지 엠베드 패키지 생성 중 오류가 발생했습니다. 다시 시도하십시오.","이 소프트웨어는 LGPLv2.1 라이센스된 FFmpeg 코드를 사용합니다.","이렇게 하면 이 프로젝트의 모든 비교 세트에서 미디어가 제거됩니다. 이 미디어를 삭제하시겠습니까?","타일링","제목 크기","전체 화면 토글","허용","왼쪽 상단","오른쪽 상단","유형","상단/하단 PX","버전","비디오","릴리즈 정보 보기","웹","웹페이지 엠베드 패키지가 성공적으로 저장되었습니다.","대비 가중치","광도 가중치","구조 가중치","너비","현재 프로젝트를 저장하고 계속하시겠습니까?","X 반경","X 시그마","Y 반경","Y 시그마","미디어를 디코딩하는 데 GPU에 문제가 있습니다. 향상된 성능을 위해 GPU 리소스를 사용하는 모든 응용프로그램을 닫고/또는 장치를 다시 시작하십시오.","미디어 클립이 미디어 패널에 남아 있으나, 이 비교 세트에서 수행한 모든 작업이 손실됩니다. 이 세트를 삭제하시겠습니까?","프로젝트가 저장되었습니다.","확대/축소 뷰"],"nb-no":["(dvs. https://domene.com/bane)","Absolutt","Legg til filter","Legg til media","Legg til overlegg","Legg til overlegg for å kommentere på sammenligningen din.","Juster klippets forskyvning for å innrette videoene.","Vinkel","Opprett sett automatisk","Gjennomsnittlige farger (saktere)","Tolinjet","Binær","Bithastighet","Svart-blå-fiolett-hvit","Nedre venstre","Nedre høyre","Kan ikke vise filter:","Avbryt","Endre avspillingshastighet","CIE-LAB-forskjell","Klikk Legg til media eller dra og slipp video-/bildefiler i dette vinduet for å sammenligne dem.","Kodek","Fargemodus","Sammenligningssett","Kun kontrastfeil","Kontrollinje","Kopier innebyggingskode","CTRL +","CTRL + 1-9","CTRL + f","Tilpassing","Slett","Forskjell","Dimensjoner","Deaktiver","Ikke lagre","Last ned","Last ned FFmpeg-kilde.","Varighet","Innebyggingskode kopiert","Innebyggingskode kopiert til utklippstavle","Bygg bilder inn i kode","Innebygd i nettsidens kode","Aktiver","Feil under lasting av media","Feil under lasting av media, filtypen støttes ikke","Feilkodebane","Eksporter","Eksporter stillbilder","Eksporter videosegmenter","Eksporterer video","Eksponering","Filer uten matchende navn merkes med rødt og vil bli utelatt.","Filtreringsmodus","Format","BPS","Bildefremmating","Bilder per sekund","Gamma","Gaussisk uskarphet","Generelt","Genererer bilde","Global layout","GPU","Gråtone","Ruteoverlegg","Sigma med halv radius","Varmekart","Høyde","Hjelp-knapp","Skjul alle","Skjul layout","Hosting av media","Hvis du velger å hoste media på et annet sted enn roten, må du spesifisere URL-en under.","Bilde","Bilder kan bygges direkte inn i en nettside med innebyggingskode uten å laste dem opp separat, hvis den totale filstørrelsen er under 10 MB.","Importer","Forbokstav","Inndata","Heltallskalering","Ugyldig fil. Kun filer med følgende filnavn aksepteres:","Ugyldige filer. Kun filer med følgende filnavn aksepteres:","Inverter utdata","Jet","Gå til start","Etikett","Laplace-operator (fem-punkts)","Laplace-operator (ni-punkts)","Laplace-variant","Stor","Layout-faner","Venstre/høyre PX","La oss komme i gang","Lokale skyggeleggere","Lystetthetsforskjell","Kun lystetthetsfeil","Merk Inf/NaN","Medier","Mediedomene/-bane","Medievelgere","Middel","Modus","Dra mus","Musehjul","Multiplikator","Nærmeste nabo","Nytt prosjekt","Ingen mapper valgt","Ingen","Ingen (SSIM-standard)","Av","På","Åpne","Overlegg","Bygg pakke inn i nettside","Panorer visning","Forskjeller per kanal","Pikselisering","Spill av / pause","Posisjonsnøkkelbilder","Bevar dimensjoner","Forhåndsvisning","Forrige/neste sett","Radius","Last inn på nytt","Fjern","Fjene sammenligningssett?","Fjerne medier?","Tilbakestill","Tilbakestill avspillingshastighet","RGB-forskjell","Samme bredde og høyde","Lagre","Lagre prosjekt","Skala %","Skaler til riktig størrelse","Velg mappe","Velg mapper med matchende filnavn, og sammenligningssett vil opprettes automatisk.","Sett","Valg av sett","Innstillinger","Skarphet","Snarveier","Vis vinkel","Vis tegnforklaring for fargekart","Vis layout","Vis miniatyrbilder","Side-ved-side","Side-ved-side-modus","Sigma","Vend skilt","Størrelse","Glidebryter for nøkkelbilder","Liten","Sobel","Solo media","Sorter alfabetisk","Sorter etter opprettet","Mellomrom","Delt skjerm","Delt skjerm-modus","Multiplisert","SSIM","SSIM full","SSIM-modus","SSIM forenklet","Starttidspunkt","Kun strukturfeil","Symmetrisk","Det oppsto en feil under eksportering av videoen din","Det oppsto en feil ved oppretting av din innebygde nettsidepakke, prøv igjen.","Denne programvaren bruker kode for FFmpeg lisensiert under LGPLv2.1","Dette vil fjerne mediene fra alle sammenligningssett i dette prosjektet. Vil du fjerne disse mediene?","Tiling","Tittelstørrelse","Slå av og på fullskjerm","Toleranse","Øvre venstre","Øvre høyre","Type","Opp/ned PX","Versjon","Video","Vis versjonsmerknader","Internett","Innebyggingspakke for nettside ble lagret","Vekt kontrast","Vekt lystetthet","Vekt struktur","Bredde","Vil du lagre ditt nåværende prosjekt før du fortsetter?","X-radius","X-sigma","Y-radius","Y-sigma","Din GPU har problemer med å dekode mediene dine. For bedre ytelse kan du prøve å lukke alle applikasjoner som bruker GPU-ressurser, og/eller starte enheten din på nytt.","Medieklippene dine vil være på Media-panelet, men alt du har gjort i dette sammenligningssettet vil gå tapt. Vil du fjerne dette settet?","Prosjektet ditt er lagret","Zoom visning"],"nl-nl":["(bijvoorbeeld https://domein.com/pad)","Absoluut","Filter toevoegen","Media toevoegen","Overlay toevoegen","Voeg een overlay toe om je vergelijking te annoteren.","Pas de offset van clips aan om de video's uit te lijnen.","Hoek","Automatisch sets maken","Gemiddelde kleuren (trager)","Bilineair","Binair","Bitsnelheid","Zwart-blauw-violet-geel-wit","Linksonder","Rechtsonder","Filter kan niet worden weergegeven:","Annuleren","Afspeelsnelheid wijzigen","CIE-LAB-verschil","Klik op Media toevoegen of sleep video-/afbeeldingsbestanden naar dit venster om ze te vergelijken.","Codec","Kleurmodus","Vergelijkingssets","Alleen contrastfout","Controlebalk","Insluitingscode kopiëren","CTRL +","CTRL + 1-9","CTRL + f","Aanpassing","Verwijderen","Verschil","Dimensies","Uitschakelen","Niet opslaan","Downloaden","Download de FFmpeg-bron.","Duur","Insluitingscode gekopieerd","Insluitingscode gekopieerd naar klembord","Afbeeldingen insluiten in code","Ingesloten in webpaginacode","Inschakelen","Fout bij het laden van media","Fout bij het laden van media, niet-ondersteund bestandstype","Pad naar foutlogs","Exporteren","Stilstaande beelden exporteren","Videosegmenten exporteren","Video exporteren","Belichting","Bestanden zonder bijpassende namen worden rood gemarkeerd en buiten beschouwing gelaten.","Filtermodus","Indeling","FPS","Framesnelheid","Frames per seconde","Gamma","Normale vervaging","Algemeen","Afbeelding genereren","Algemene lay-out","GPU","Grijswaarden","Raster-overlay","Half-radius sigma","Heatmap","Hoogte","Hulpknop","Alles verbergen","Lay-out verbergen","Media hosten","Als je ervoor kiest om media op een andere locatie vanaf de root te hosten, moet je hieronder de URL specificeren.","Afbeelding","Als de totale bestandsgrootte kleiner is dan 10 MB, kun je afbeeldingen rechtstreeks insluiten in code op de webpagina zonder dat je ze afzonderlijk hoeft te uploaden.","Importeren","Begin","Invoer","Getalschaling","Ongeldig bestand. Alleen bestanden met de volgende extensies worden geaccepteerd:","Ongeldige bestanden. Alleen bestanden met de volgende extensies worden geaccepteerd:","Uitvoer inverteren","Fel","Naar begin springen","Label","Laplaciaan (vijfpunts)","Laplaciaan (negenpunts)","Laplaciaanse variatie","Groot","Lay-outtabbladen","Pos links/rechts","Aan de slag","Lokale shaders","Luminantieverschil","Alleen luminantiefout","Inf/NaN-markering","Media","Mediadomein/-pad","Mediaselectors","Gemiddeld","Modus","Slepen met muis","Muiswieltje","Vermenigvuldiger","Dichtstbijzijnde buur","Nieuw project","Geen mappen geselecteerd","Geen","Geen (SSIM-standaard)","Uit","Aan","Openen","Overlay","Pakket insluiten in webpagina","Beeld pannen","Verschillen per kanaal","Pixelisatie","Afspelen/pauze","Sleutelframes positie","Dimensies behouden","Voorbeeld","Vorige/volgende set","Radius","Herladen","Verwijderen","Vergelijkingsset verwijderen?","Media verwijderen?","Resetten","Afspeelsnelheid resetten","RGB-verschil","Zelfde breedte en hoogte","Opslaan","Project opslaan","Schaal-%","Passende schaal","Map selecteren","Selecteer mappen met bijpassende bestandsnamen om automatisch vergelijkingssets te maken.","Instellen","Sets selecteren","Instellingen","Scherpte","Sneltoetsen","Hoek weergeven","Kleurenlegenda weergeven","Lay-out weergeven","Thumbnails weergeven","Naast elkaar","Naast elkaar weergeven","Sigma","Teken wijzigen","Grootte","Sleutelframes schuif","Klein","Sobel","Solomedia","Alfabetisch sorteren","Sorteren op aanmaakdatum","Spatie","Gesplitst scherm","Gesplitst scherm-modus","Gekwadrateerd","SSIM","SSIM volledig","SSIM-modus","SSIM vereenvoudigd","Begintijd","Alleen structurele fout","Symmetrisch","Er ging iets mis bij het exporteren van je video","Er ging iets mis bij het genereren van je in de webpagina ingesloten pakket. Probeer het nog eens.","Deze software maakt gebruik van FFmpeg-code onder licentie van de LGPLv2.1","Hiermee verwijder je de media uit alle vergelijkingssets in dit project. Wil je deze media verwijderen?","Tegels","Titelgrootte","Volledig scherm aan/uit","Tolerantie","Linksboven","Rechtsboven","Type","Pos omhoog/omlaag","Versie","Video","Release-opmerkingen bekijken","Web","In webpagina ingesloten pakket opgeslagen","Gewogen contrast","Gewogen luminantie","Gewogen structuur","Breedte","Wil je je huidige project opslaan voordat je doorgaat?","X-radius","X-sigma","Y-radius","Y-sigma","Je GPU heeft moeite met het decoderen van je media. Sluit voor betere prestaties alle apps die gebruikmaken van GPU-bronnen en/of start je apparaat opnieuw op.","Je mediaclips blijven in het mediapaneel, maar alles wat je hebt gedaan in deze vergelijkingsset gaat verloren. Wil je deze set verwijderen?","Je project is opgeslagen","Beeld zoomen"],"pl-pl":["(tzn. https://domena.com/ścieżka)","Bezwzględne","Dodaj filtr","Dodaj multimedia","Dodaj nakładkę","Dodaj nakładkę, aby opisać swoje porównanie.","Dostosuj odstęp między klipami, aby dopasować filmy.","Kąt","Twórz zestawy automatycznie","Uśrednij kolory (wolniejsze)","Dwuliniowe","Binarne","Szybkość transmisji","Czarny-niebieski-fioletowy-żółty-biały","Na dole po lewej","Na dole po prawej","Nie można wyświetlić filtra:","Anuluj","Zmień prędkość odtwarzania","Różnica CIE-LAB","Kliknij Dodaj multimedia lub przeciągnij i upuść pliki wideo / obrazy do tego okna, aby je porównać.","Kodek","Tryb koloru","Zestawy porównawcze","Tylko błąd kontrastu","Pasek sterowania","Kopiuj kod osadzenia","CTRL +","CTRL + 1–9","CTRL + f","Dostosowywanie","Usuń","Różnica","Wymiary","Wyłącz","Nie zapisuj","Pobierz","Pobierz źródło FFmpeg.","Czas trwania","Kod osadzania skopiowany","Kod osadzania został skopiowany do schowka","Osadź obrazy w kodzie","Osadzono w kodzie strony WWW","Włącz","Błąd podczas ładowania multimediów","Błąd podczas ładowania multimediów, nieobsługiwany typ pliku","Ścieżka dzienników błędów","Eksportuj","Eksportuj obrazy","Eksportuj segmenty filmu","Eksportowanie filmu","Ekspozycja","Pliki bez pasujących nazw są zaznaczone na czerwono i zostaną pominięte.","Tryb filtrowania","Format","KL./S","Odtwarzanie po klatce","Liczba klatek na sekundę","Gamma","Rozmycie gaussowskie","Ogólne","Generowanie obrazu","Ogólny układ","Procesor graficzny","Skala szarości","Nakładka siatki","Sigma półpromienia","Mapa cieplna","Wysokość","Przycisk Pomoc","Ukryj wszystko","Ukryj układ","Hostowanie multimediów","Jeśli zdecydujesz się hostować multimedia w innej lokalizacji niż główna, określ adres URL poniżej.","Obraz","Obrazy można osadzać bezpośrednio w kodzie osadzania strony internetowej bez konieczności przesyłania ich osobno, jeśli całkowity rozmiar pliku jest mniejszy niż 10 MB.","Importuj","Początkowe","Wejście","Skalowanie całkowite","Nieprawidłowy plik. Akceptowane są tylko pliki z następującymi rozszerzeniami:","Nieprawidłowe pliki. Akceptowane są tylko pliki z następującymi rozszerzeniami:","Odwróć wyjście","Strumień","Przejdź do początku","Etykieta","Laplasjan (pięciopunktowy)","Laplasjan (dziewięciopunktowy)","Wariancja laplasjana","Duży","Karty układu","Położ. lewo/prawo","Rozpocznijmy","Lokalne jednostki cieniowania","Różnica luminancji","Tylko błąd luminancji","Oznacz Nieskończoność / Nie liczba","Multimedia","Domena/ścieżka multimediów","Selektory multimediów","Średni","Tryb","Przeciągnięcie myszą","Kółko przewijania myszy","Mnożnik","Najbliższy sąsiad","Nowy projekt","Nie wybrano folderów","Brak","Brak (domyślne SSIM)","Wył.","Wł.","Otwórz","Nakładka","Zapakuj osadzenie w stronie WWW","Widok panoramiczny","Różnice wg kanałów","Pikselizacja","Odtwórz/Wstrzymaj","Pozycja klatek kluczowych","Zachowaj wymiary","Podgląd","Poprzedni/Następny zestaw","Promień","Załaduj ponownie","Usuń","Usunąć zestaw porównawczy?","Usunąć multimedia?","Resetuj","Resetuj prędkość odtwarzania","Różnica RGB","Ta sama szerokość i wysokość","Zapisz","Zapisz projekt","Wartość procentowa skalowania","Skaluj, aby dopasować","Wybierz folder","Wybierz foldery z pasującymi nazwami plików, a zestawy porównawcze zostaną utworzone automatycznie.","Ustaw","Wybór zestawów","Ustawienia","Ostrość","Skróty","Pokaż kąt","Pokaż legendę mapy kolorów","Pokaż układ","Pokaż miniatury","Obok siebie","Tryb obok siebie","Sigma","Zmiana znaku na przeciwny","Rozmiar","Suwak klatek kluczowych","Mały","Sobel","Pojedynczy element multimedialny","Sortuj alfabetycznie","Sortuj wg czasu utworzenia","Przestrzeń","Podzielony ekran","Tryb Podzielony ekran","Kwadratowy","SSIM","SSIM, pełny","Tryb SSIM","SIMM, uproszczony","Czas rozpoczęcia","Tylko błąd strukturalny","Symetryczny","Podczas eksportowania filmu wideo wystąpił błąd","Wystąpił błąd podczas generowania pakietu osadzania strony. Spróbuj ponownie.","To oprogramowanie wykorzystuje kod FFmpeg na licencji LGPLv2.1","Spowoduje to usunięcie tego elementu multimedialnego ze wszystkich zestawów porównawczych w tym projekcie. Czy chcesz usunąć ten element multimedialny?","Kafelki","Rozmiar tytułu","Przełącz pełny ekran","Tolerancja","U góry po lewej","U góry po prawej","Typ","Położ. góra/dół","Wersja","Wideo","Wyświetl informacje o wersji","WWW","Pakiet osadzania strony internetowej został pomyślnie zapisany","Waga kontrastu","Waga luminancji","Waga struktury","Szerokość","Czy chcesz zapisać bieżący projekt przed kontynuowaniem?","Promień X","Sigma X","Promień Y","Sigma Y","Procesor graficzny ma problemy z dekodowaniem multimediów. Aby uzyskać lepszą wydajność, spróbuj zamknąć wszystkie aplikacje wykorzystujące zasoby procesora graficznego i (lub) uruchom ponownie urządzenie.","Klipy multimedialne pozostaną w panelu multimediów, ale wszystko, co zostało zrobione w tym zestawie porównawczym, zostanie utracone. Czy chcesz usunąć ten zestaw?","Projekt został zapisany","Powiększ widok"],"pt-br":["(por exemplo, https://domínio.com/caminho)","Absoluta","Adicionar filtro","Adicionar mídia","Adicionar sobreposição","Adicione Sobreposição para fazer anotações em sua comparação.","Ajuste o deslocamento do clipe para alinhar os vídeos.","Ângulo","Criar conjuntos automaticamente","Média de cores (mais lento)","Bilinear","Binária","Taxa de bits","Preto-azul-violeta-amarelo-branco","Inferior à esquerda","Inferior à direita","Não foi possível exibir o filtro:","Cancelar","Alterar a velocidade de reprodução","Diferença entre CIE e LAB","Clique em Adicionar mídia ou arraste e solte arquivos de vídeo/imagem nessa janela para compará-los.","Codec","Modo de cor","Conjuntos de comparação","Somente erro de contraste","Barra de controle","Copiar código de inserção","CTRL +","CTRL + 1-9","CTRL + f","Personalização","Excluir","Diferença","Dimensões","Desabilitar","Não salvar","Baixar","Baixe a fonte FFmpeg.","Duração","Código de inserção copiado","Código de inserção copiado para a área de transferência","Imagens de inserção no código","Incorporado no código da página da web","Habilitar","Erro ao carregar mídia","Erro ao carregar mídia. Tipo de arquivo não aceito","Caminho dos logs de erros","Exportar","Exportar imagens estáticas","Exportar segmentos de vídeo","Exportando o vídeo","Exposição","Arquivos sem nomes correspondentes são marcados em vermelho e serão omitidos.","Modo de filtragem","Formato","FPS","Avanço de quadro","Quadros por segundo","Gama","Desfoque gaussiano","Geral","Gerando imagem","Layout global","GPU","Escala de cinza","Sobreposição da grade","Sigma de meio raio","Mapa de calor","Altura","Botão Ajuda","Ocultar tudo","Ocultar layout","Hospedando mídia","Se você optar por hospedar a mídia em um local diferente da raiz, especifique o URL abaixo.","Imagem","As imagens podem ser incorporadas diretamente no código de inserção da página da web sem carregá-las separadamente se o tamanho total do arquivo for inferior a 10 MB.","Importar","Inicial","Entrada","Dimensionamento inteiro","Arquivo inválido. Somente arquivos com as seguintes extensões são aceitos:","Arquivos inválidos. Somente arquivos com as seguintes extensões são aceitos:","Inverter saída","Jato","Ir para o início","Etiqueta","Laplaciano (cinco pontos)","Laplaciano (nove pontos)","Variância laplaciana","Grande","Guias de layout","Posição para a esquerda/direita","Vamos começar","Sombreadores locais","Diferença de luminância","Somente erro de luminância","Marcar Inf/NaN","Mídia","Domínio/caminho da mídia","Seletores de mídia","Médio","Modo","Arrasto do mouse","Roda de rolagem do mouse","Multiplicador","Vizinho mais próximo","Novo projeto","Nenhuma pasta selecionada","Nenhum(a)","Nenhum (padrão SSIM)","Desligado","Ligado","Abrir","Sobreposição","Pacote de inserção de página da web","Vista panorâmica","Diferenças por canal","Pixelização","Reproduzir/Pausar","Quadros-chave de posição","Preservar dimensões","Visualizar","Conjunto anterior/próximo conjunto","Raio","Recarregar","Remover","Remover conjunto de comparação?","Remover mídia?","Redefinir","Redefinir a velocidade de reprodução","Diferença de RGB","Mesma largura e altura","Salvar","Salvar projeto","Dimensionamento em %","Dimensionar para caber","Selecionar pasta","Selecione as pastas com nomes de arquivo correspondentes e os conjuntos de comparação serão criados automaticamente.","Conjunto","Selecionar conjuntos","Configurações","Nitidez","Atalhos","Mostrar ângulo","Mostrar legenda do mapa de cores","Mostrar layout","Mostrar miniaturas","Lado a lado","Modo lado a lado","Sigma","Inversão de sinal","Tamanho","Quadros-chave deslizantes","Pequeno","Sobel","Mídia individual","Classificar em ordem alfabética","Classificar por data de criação","Barra de espaço","Tela dividida","Modo de tela dividida","Quadrado","SSIM","SSIM completo","Modo de SSIM","SSIM simplificado","Hora de início","Somente erro estrutural","Simétrico","Ocorreu um erro ao exportar o vídeo","Ocorreu um erro ao gerar o pacote de inserção de página da web. Tente novamente.","Esse software usa código FFmpeg licenciado de acordo com a LGPLv2.1","Isso removerá a mídia de todos os conjuntos de comparação nesse projeto. Deseja remover essa mídia?","Lado a lado","Tamanho do título","Ativar/desativar tela cheia","Tolerância","Superior à esquerda","Superior à direita","Tipo","Posição para cima/baixo","Versão","Vídeo","Exibir notas da versão","Web","Pacote de inserção de página da web salvo com sucesso","Contraste de peso","Luminância de peso","Estrutura de peso","Largura","Gostaria de salvar o projeto atual antes de continuar?","Raio de X","Sigma de X","Raio de Y","Sigma de Y","Sua GPU está com dificuldade de decodificar sua mídia. Para um melhor desempenho, tente fechar todos os aplicativos que usam recursos da GPU e/ou reiniciar seu dispositivo.","Os clipes de mídia permanecerão no painel Mídia, mas tudo o que você fez nesse conjunto de comparação será perdido. Deseja remover esse conjunto?","O projeto foi salvo","Aplicar zoom na vista"],"pt-pt":["(p.ex., https://domínio.com/caminho)","Absoluta","Adicionar filtro","Adicionar multimédia","Adicionar sobreposição","Adicione uma sobreposição para anotar a comparação.","Ajuste o desvio do clipe para alinhar os vídeos.","Ângulo","Criar conjuntos automaticamente","Nível médio de cores (mais lento)","Bilinear","Binário","Velocidade de transmissão","Preto-azul-violeta-amarelo-branco","Inferior esquerdo","Inferior direito","Não é possível apresentar o filtro:","Cancelar","Alterar velocidade de reprodução","Diferença CIE-LAB","Clique em Adicionar multimédia ou arraste e largue os ficheiros de vídeo/imagem para esta janela para compará-los.","Codec","Modo de cor","Conjuntos de comparação","Apenas erros de contraste","Barra de controlo","Copiar código integrado","CTRL +","CTRL + 1-9","CTRL + F","Personalização","Eliminar","Diferença","Dimensões","Desativar","Não guardar","Transferir","Transfira a origem FFmpeg.","Duração","Código integrado copiado","Código integrado copiado para a área de transferência","Imagens integradas no código","Integrado no código da página web","Ativar","Erro ao carregar multimédia","Erro ao carregar multimédia, tipo de ficheiro não suportado","Caminho dos registos de erros","Exportar","Exportar imagens estáticas","Exportar segmentos de vídeo","A exportar vídeo","Exposição","Os ficheiros sem nomes correspondentes estão assinalados a vermelho e serão omitidos.","Modo de filtração","Formato","FPS","Avançar videogramas","Videogramas por segundo","Gama","Desfocagem gaussiana","Geral","A gerar imagem","Disposição global","GPU","Escala de cinza","Sobreposição da grelha","Meio-raio sigma","Mapa térmico","Altura","Botão de ajuda","Ocultar tudo","Ocultar disposição","Alojamento de multimédia","Se optar por alojar multimédia numa localização diferente da raiz, indique o URL abaixo.","Imagem","As imagens podem ser incorporadas diretamente no código integrado da página web sem efetuar o carregamento das mesmas em separado, se o tamanho total do ficheiro for inferior a 10 MB.","Importar","Inicial","Entrada","Dimensionamento Integer","O ficheiro não é válido. Apenas são aceites os ficheiros com as seguintes extensões:","Os ficheiros não são válidos. Apenas são aceites os ficheiros com as seguintes extensões:","Inverter saída","Chama azul","Avançar para o início","Etiqueta","Laplaciano (cinco pontos)","Laplaciano (nove pontos)","Variância laplaciana","Grande","Separadores da disposição","PX esquerdo/direito","Vamos começar","Sombreadores locais","Diferença de luminâcia","Apenas erros de luminância","Marcar Inf/NaN","Multimédia","Domínio/Caminho da multimédia","Seletores de multimédia","Nível médio","Modo","Arrastar do rato","Roda do rato","Multiplicador","Vizinho mais próximo","Novo projeto","Nenhuma pasta selecionada","Nenhum/a","Nenhum (predefinição SSIM)","Desativar","Ativar","Abrir","Sobreposição","Integração do pacote da página web","Vista panorâmica","Diferença por canal","Pixelização","Reproduzir/Pausa","Fotogramas chave da posição","Preservar dimensões","Pré-visualização","Conjunto anterior/seguinte","Raio","Recarregar","Remover","Remover conjunto de comparação?","Remover multimédia?","Repor","Repor velocidade de reprodução","Diferença RGB","Largura e altura iguais","Guardar","Guardar projeto","Escala %","Ajustar tamanho","Selecionar pasta","Selecione as pastas com os nomes de ficheiro correspondentes e os conjuntos de comparação serão criados automaticamente.","Definir","Conjuntos selecionados","Definições","Acentuação","Atalhos","Mostrar ângulo","Mostrar legenda do mapa de cores","Mostrar disposição","Mostrar miniaturas","Lado a lado","Modo lado a lado","Sigma","Inverter sinal","Tamanho","Fotogramas chave do cursor","Pequeno","Sobel","Multimédia individual","Ordenar alfabeticamente","Ordenar por data de criação","Espaço","Ecrã dividido","Modo de ecrã dividido","Quadrado","SSIM","SSIM integral","Modo SSIM","SSIM simplificado","Hora de início","Apenas erros de estrutura","Simétrico","Ocorreu um erro ao exportar o vídeo","Ocorreu um erro ao gerar o pacote integrado da página web, tente novamente.","Este software utiliza código FFmpeg licenciado ao abrigo de LGPLv2.1","Esta ação irá remover a multimédia de todos os conjuntos de comparação deste projeto. Pretende remover esta multimédia?","Repetir em azulejo","Tamanho do título","Alternar ecrã inteiro","Tolerância","Superior esquerdo","Superior direito","Tipo","PX superior/inferior","Versão","Vídeo","Ver notas de lançamento","Web","Pacote integrado da página web guardado com êxito","Contraste do peso","Luminância do peso","Estrutura do peso","Largura","Pretende guardar o projeto atual antes de continuar?","Raio X","Sigma X","Raio Y","Sigma Y","A GPU está a apresentar dificuldades na descodificação do seu conteúdo multimédia. Para conseguir um melhor desempenho, experimente fechar todas as aplicações que utilizam recursos da GPU e/ou reinicie o seu dispositivo.","Os clipes de multimédia permanecerão no painel Multimédia, contudo, todas as ações efetuadas neste conjunto de comparação serão perdidas. Pretende remover este conjunto?","O projeto foi guardado","Vista de zoom"],"ro-ro":["(de ex. https://domeniu.com/cale)","Absolut","Adăugare filtru","Adăugare media","Adăugare suprapunere","Adăugare suprapunere pentru a adnota comparația.","Reglați decalajul decupajului pentru a alinia videoclipurile.","Unghi","Creare seturi automat","Culori nivel mediu (mai încet)","Biliniar","Binar","Rată biți","Negru-albastru-violet-galben-alb","Stânga jos","Dreapta jos","Filtrul nu poate fi afișat:","Anulare","Modificare viteză de redare","Diferență CIE-LAB","Faceți clic pe Adăugare media sau trageți și fixați fișiere video/imagine în această fereastră pentru a le compara.","Codec","Mod culoare","Seturi de comparare","Numai eroare de contrast","Bara de control","Copiere cod de integrare","CTRL +","CTRL + 1-9","CTRL + f","Personalizare","Ștergeți","Diferență","Dimensiuni","Dezactivați","Nu salvați","Descărcare","Descărcare sursă FFmpeg","Durata","Integrare cod copiat","Cod de integrare copiat în clipboard","Integrare imagini în cod","Integrare pagină web în cod","Activați","Eroare la încărcarea media","Eroare la încărcarea media, tip de fișier neacceptat","Cale jurnale de eroare","Export","Exportare imagini fixe","Exportare segmente videoclip","Se exportă videoclip","Expunere","Fișierele care nu au nume corespunzătoare sunt marcate cu roșu și vor fi omise.","Mod de filtrare","Format","FPS","Cadru avansat","Cadre pe secundă","Gamma","Gaussian blur","General","Se generează imaginea","Format global","GPU","Scală","Suprapunere grilă","Jumătate de rază sigma","Hartă termică","Înălțime","Buton ajutor","Ascundere toate","Ascundere format","Găzduire media","Dacă alegeți să găzduiți mediile într-o locație diferită de cea a rădăcinii, specificați URL-ul de mai jos.","Imagine","Imaginile pot fi încorporate direct în codul de încorporare al paginii web fără a le încărca separat, dacă dimensiunea totală a fișierului este mai mică de 10 MB.","Importare","Inițială","Intrare","Scalare număr întreg","Fișier nevalid. Sunt acceptate numai fișierele cu următoarele extensii:","Fișiere nevalide. Sunt acceptate numai fișierele cu următoarele extensii:","Inversare ieșire","Jet","Mergeți la început","Etichetă","Laplacian (cinci puncte)","Laplacian (nouă puncte)","Variație laplaciană","Mare","Format file","Poz. stânga/dreapta","Să începem","Shaders local","Diferența de luminanță","Numai eroare de luminanță","Marcaj Inf/NaN","Media","Domeniu/cale media","Selectori media","Medie","Mod","Tragere cu mouse-ul","Rotiță de derulare a mouse-ului","Multiplicator","Cel mai apropiat","Proiect nou","Niciun folder selectat","Niciunul","Niciunul (SSIM implicit)","Dezactivat","Pornit","Deschidere","Suprapunere","Pachet încorporabil în pagina web","Vizualizare panoramică","Diferențe per canal","Pixelizare","Redare/Pauză","Poziție cadre cheie","Păstrare dimensiuni","Previzualizare","Set anteriorul/următorul","Radius","Reîncărcare","Eliminare","Eliminați setul de comparație?","Eliminați media?","Resetați","Resetare viteză de redare","Diferență RGB","Aceeași lățime și înălțime","Salvare","Salvare proiect","Scală %","Scalare pentru potrivire","Selectare folder","Selectați folderele cu nume de fișiere corespunzătoare și se vor crea automat seturi de comparație.","Set","Selectare seturi","Setări","Acuitate","Comenzi rapide","Afișare unghi","Afișare legendă culori hartă","Afișare format","Afișare miniaturi","Side-by-side","Mod Side-by-side","Sigma","Schimbare semn","Dimensiune","Cadre cheie ale cursorului","Mică","Sobel","Media unic","Sortați în ordine alfabetică","Sortare după creare","Spațiu","Divizare ecran","Mod divizare ecran","La pătrat","SSIM","SSIM plin","Mod SSIM","SSIM simplificat","Ora de pornire","Numai eroare structurală","Simetric","Există o eroare la exportul videoclipului","A apărut o eroare la generarea pachetului paginii încorporabil în pagina web, încercați din nou.","Acest software folosește codul lui FFmpeg licențiat sub LGPLv2.1","Acest lucru va elimina mediile din toate seturile de comparație din acest proiect. Eliminați acest media?","Multiplicare","Dimensiune titlu","Comutare ecran complet","Toleranță","Stânga sus","Dreapta sus","Tip","Poz. sus/jos","Versiune","Videoclip","Vizualizare note de versiune","Web","Pachet încorporabil în pagina web salvat cu succes","Pondere contrast","Pondere luminanță","Pondere structură","Lățime","Salvați proiectul actual înainte de a continua?","X Radius","X Sigma","Y Radius","Y Sigma","GPU întâmpină dificultăți în decodarea suportului media. Pentru performanță îmbunătățită, închideți toate aplicațiile care utilizează resursele GPU și/sau reporniți dispozitivul.","Decupajele media vor rămâne în panoul Media, dar tot ceea ce ați făcut în acest set de comparație se va pierde. Eliminați acest set?","Proiectul a fost salvat","Vizualizare zoom"],"ru-ru":["(например, https://домен.com/путь)","Абсолютное","Добавить фильтр","Добавить медиафайлы","Добавить оверлей","Добавить оверлей для аннотирования сравнения.","Добавить смещение клипа для выравнивания видео.","Угол","Создать наборы автоматически","Усреднить цвета (медленнее)","Билинейная","Черно-белый","Скорость передачи","Черный-синий-фиолетовый-желтый-белый","Внизу слева","Внизу справа","Не удается отобразить фильтр:","Отмена","Изменить скорость воспроизведения","Разница между CIE и LAB","Нажмите «Добавить медиафайлы» или перетащите сравниваемые графические или видеофайлы в это окно.","Кодек","Цветовой режим","Наборы сравнения","Только ошибка констрастности","Панель управления","Копировать код внедрения","CTRL +","CTRL + 1-9","CTRL + f","Настройка","Удалить","Разница","Измерения","Выключить","Не сохранять","Загрузить","Загрузить источник FFmpeg.","Продолжительность","Код внедрения скопирован","Код внедрения скопирован в буфер обмена","Внедрить изображения в код","Внедрено в код веб-страницы","Включить","Ошибка загрузки медиафайлов","Ошибка загрузки медиафайлов, неподдерживаемый тип файла","Путь к журналам ошибок","Экспорт","Экспорт статических изображений","Экспорт видеофрагментов","Экспорт видео","Экспозиция","Файлы с несовпадающими именами выделены красным цветом и будут пропущены.","Режим фильтрации","Формат","Кадров/с","Продвижение кадра","Кадров в секунду","Гамма","Гауссово размытие","Общие","Создание изображения","Глобальная компоновка","ГП","Оттенки серого","Оверлей сетки","Сигма половины радиуса","Тепловая карта","Высота","Кнопка справки","Скрыть все","Скрыть компоновку","Размещение медиафайлов","Если вы хотите разместить медиафайлы не в корневом каталоге, укажите URL-адрес ниже.","Изображение","Изображения можно встраивать непосредственно в код внедрения веб-страницы, не загружая их отдельно, если общий размер файлов не превышает 10 МБ.","Импорт","Начальное","Ввод","Целочисленное масштабирование","Недопустимый файл. Допускаются только файлы со следующими расширениями:","Недопустимые файлы. Допускаются только файлы со следующими расширениями:","Инверсия вывода","Пламя","Перейти к началу","Метка","Оператор Лапласа (пять точек)","Оператор Лапласа (девять точек)","Лапласова вариантность","Большой","Вкладки компоновки","Положение слева/справа","Начало работы","Локальные шейдеры","Разница яркости","Только ошибка яркости","Пометить Inf/NaN","Медиафайлы","Путь/домен медиафайлов","Выбор медиафайлов","Средний","Режим","Перетащить мышью","Колесо прокрутки мыши","Множитель","Ближайший сосед","Новый проект","Папка не выбрана","Нет","Нет (SSIM по умолчанию)","Выкл.","Вкл.","Открыть","Оверлей","Встраиваемый в веб-страницу пакет","Панорамный вид","Разница по каналам","Пикселизация","Воспр./Пауза","Ключевые кадры положения","Сохранить размеры","Предварительный просмотр","Предыдущий/следующий набор","Радиус","Перезагрузить","Удалить","Удалить набор сравнения?","Удалить медиафайлы?","Сбросить","Сбросить скорость воспроизведения","Разница RGB","Одинаковая ширина и высота","Сохранить","Сохранить проект","% масштаба","Масштабировать по размеру","Выбрать папку","Выберите папки с совпадающими именами файлов, и наборы сравнения будут созданы автоматически.","Набор","Выбор наборов","Настройки","Резкость","Ярлыки","Показать угол","Показать легенду цветовой карты","Показать компоновку","Показать миниатюры","Параллельно","Параллельный режим","Сигма","Сменить знак","Размер","Ползунок ключевых кадров","Маленький","Оператор Собеля","Один медиафайл","Упорядочить по алфавиту","Упорядочить по дате создания","Пробел","Разделенный экран","Режим разделения экрана","В квадрате","SSIM","SSIM (полный)","Режим SSIM","SSIM (упрощенный)","Время запуска","Только структурная ошибка","Симметрично","Ошибка экспорта видео","Ошибка создания пакета для вставки на веб-страницу, повторите попытку.","В данной программе используется код FFmpeg, лицензированный в рамках LGPLv2.1","Это приведет к удалению медиафайла из всех наборов сравнения в данном проекте. Удалить этот медиафайл?","Мозаичное размещение","Размер заголовка","Вкл./выкл. полный экран","Допуск","Вверху слева","Вверху справа","Тип","Положение сверху/снизу","Версия","Видео","Просмотреть заметки о выпуске","Веб","Пакет для вставки на веб-страницу сохранен","Коэффициент контрастности","Коэффициент яркости","Коэффициент структуры","Ширина","Сохранить текущий проект, прежде чем продолжить?","Радиус X","Сигма X","Радиус Y","Сигма Y","У ГП возникли проблемы с декодированием мультимедиа. Для повышения производительности попробуйте закрыть все приложения, использующие ресурсы ГП, и/или перезагрузить устройство.","Ваши медиаклипы останутся на панели «Медиафайлы», но все операции в этом наборе сравнения будут потеряны. Удалить этот набор?","Проект сохранен","Увеличить"],"sk-sk":["(napr. https://domena.sk/cesta)","Absolútna","Pridať filter","Pridať médiá","Pridať prekrytie","Pridajte prekrytie a okomentujte svoje porovnanie.","Upravte posun klipu a zarovnajte videá.","Uhol","Automaticky vytvárať skupiny","Spriemerovať farby (pomalšie)","Bilineárne","Binárne","Bitová rýchlosť","Čierna, modrá, fialová, žltá, biela","Vľavo dole","Vpravo dole","Filter sa nedá zobraziť:","Zrušiť","Zmeniť rýchlosť prehrávania","Rozdiel medzi CIE a LAB","Kliknite na položku Pridať médiá alebo presuňte myšou videosúbory alebo obrázkové súbory do tohto okna, aby ste ich mohli porovnať.","Kodek","Farebný režim","Skupiny porovnaní","Iba chyby kontrastu","Ovládací panel","Kopírovať vkladací kód","CTRL +","CTRL + 1 – 9","CTRL + f","Prispôsobenie","Odstrániť","Rozdiel","Rozmery","Vypnúť","Neuložiť","Prevziať","Prevezme sa zdroj FFmpeg.","Trvanie","Vkladací kód sa skopíroval","Vkladací kód sa skopíroval do schránky","Vložiť obrázky do kódu","Vložené do kódu webovej stránky","Zapnúť","Chyba pri načítavaní médií","Chyba pri načítavaní médií, nepodporovaný typ súboru","Cesta k denníkom chýb","Exportovať","Exportovať statické obrázky","Exportovať videosegmenty","Exportuje sa video","Expozícia","Súbory bez zhodných názvov sú označené červenou farbou a vynechajú sa.","Režim filtrovania","Formát","Sn./s","Posun po snímkach","Snímky za sekundu","Gama","Gaussovské rozostrenie","Všeobecné","Generuje sa obrázok","Globálne rozloženie","GPU","Odtiene sivej","Prekrytie mriežkou","Polovičný rádius sigma","Tepelná mapa","Výška","Tlačidlo pomocníka","Skryť všetko","Skryť rozloženie","Hosťovanie médií","Ak sa rozhodnete hosťovať médiá mimo koreňového umiestnenia, nižšie uveďte URL adresu.","Obrázok","Obrázky sa dajú vkladať priamo do vkladacieho kódu webovej stránky bez toho, aby ste ich museli nahrávať samostatne, ak je celková veľkosť všetkých súborov menšia ako 10 MB.","Importovať","Počiatočná","Vstup","Zmena mierky v násobkoch celých čísel","Neplatný súbor. Akceptované sú len súbory s nasledujúcimi príponami:","Neplatné súbory. Akceptované sú len súbory s nasledujúcimi príponami:","Invertovať výstup","Plameň","Prejsť na začiatok","Označenie","Laplaceov operátor (päťbodový)","Laplaceov operátor (deväťbodový)","Laplaceova odchýlka","Veľké","Karty rozloženia","Pozícia vpravo/vľavo","Začíname","Lokálne tieňovače","Rozdiel vo svietivosti","Iba chyby svietivosti","Označiť Inf/NaN","Médiá","Doména/cesta médií","Nástroje na výber médií","Stredné","Režim","Potiahnutie myšou","Koliesko myši","Násobiteľ","Najbližšia hodnota","Nový projekt","Nie sú vybraté žiadne priečinky","Žiadne","Žiadne (predvolene SSIM)","Vypnuté","Zapnuté","Otvorené","Prekrytie","Balík na vloženie do webovej stránky","Posun zobrazenia","Rozdiely v kanáloch","Pixelizácia","Prehrať/pozastaviť","Kľúčové snímky pozície","Zachovať rozmery","Zobraziť ukážku","Predchádzajúca/nasledujúca skupina","Rádius","Znova načítať","Odstrániť","Chcete odstrániť skupinu porovnania?","Chcete odstrániť médiá?","Resetovať","Resetovať rýchlosť prehrávania","Rozdiel v RGB","Rovnaká šírka a výška","Uložiť","Uložiť projekt","Mierka v %","Prispôsobiť podľa veľkosti","Výber priečinka","Vyberte priečinky so zhodnými názvami súborov a skupiny porovnaní sa vytvoria automaticky.","Skupina","Výber skupín","Nastavenia","Ostrosť","Skratky","Zobraziť uhol","Zobraziť legendu farebnej mapy","Zobraziť rozloženie","Zobraziť miniatúry","Vedľa seba","Režim Vedľa seba","Sigma","Zmena znamienka","Veľkosť","Kľúčové snímky jazdca","Malé","Sobelov filter","Jeden mediálny súbor","Zoradiť podľa abecedy","Zoradiť podľa času vytvorenia","Medzerník","Rozdelená obrazovka","Režim rozdelenej obrazovky","Na druhú","SSIM","SSIM (úplné)","Režim SSIM","SSIM (zjednodušené)","Čas začatia","Iba štrukturálne chyby","Symetrické","Pri exportovaní videa sa vyskytla chyba","Pri generovaní balíka na vloženie do webovej stránky sa vyskytla chyba. Skúste to znova.","Tento softvér používa kód FFmpeg licencovaný v rámci LGPLv2.1","Týmto sa odstránia médiá zo všetkých skupín porovnania v tomto projekte. Chcete odstrániť tento mediálny súbor?","Dlaždice","Veľkosť nadpisu","Zapnúť zobrazenie na celú obrazovku","Tolerancia","Vľavo hore","Vpravo hore","Typ","Pozícia Hore/dole","Verzia","Video","Zobraziť poznámky k vydaniu","Web","Balík na vloženie do webovej stránky sa úspešne uložil","Priradenie váhy kontrastu","Priradenie váhy svietivosti","Priradenie váhy štruktúre","Šírka","Chcete pred pokračovaním uložiť svoj aktuálny projekt?","Rádius X","Sigma X","Rádius Y","Sigma Y","Grafický procesor má problém s dekódovaním média. Ak chcete zlepšiť výkon, skúste zavrieť všetky aplikácie využívajúce zdroje grafického procesora alebo reštartovať zariadenie.","Vaše mediálne klipy zostanú na paneli s médiami, no zmeny vykonané v tejto skupine porovnania sa stratia. Chcete odstrániť túto skupinu?","Váš projekt sa uložil","Priblížiť/oddialiť zobrazenie"],"sl-si":["(t.p. https://domena.com/pot)","Absoluten","Dodajte filter","Dodajte medije","Dodajte prekrivanje","Dodajte prekrivanje, da zabeležite primerjavo.","Prilagodite zamik posnetka, da poravnate videe.","Kot","Samodejno ustvarite komplete","Povprečne barve (počasneje)","Bilinearno","Binarno","Bitna hitrost","Črna-modra-vijoilična-rumena-bela","Spodnja leva","Spodnja desna","Ni mogoče prikazati filtra:","Prekliči","Spremeni hitrost predvajanja","CIE-LAB razlika","Kliknite Dodaj medije ali povlecite in spustite video/slikovne datoteke v okno, da jih primerjate.","Kodek","Barvni način","Kompleti primerjav","Samo napaka v kontrastu","Nadzorna vrstica","Kopiraj vgrajeno kodo","CTRL +","CTRL + 1-9","CTRL + f","Prilagajanje uporabnikom","Izbriši","Razlika","Dimenzije","Onemogoči","Ne shrani","Prenesi","Prenesite vir FFmpeg.","Trajanje","Vgrajena koda kopirana","Vgrajena koda kopirana v odložišče","Vgradite slike v kodo","Vgrajeno v kodo spletne strani","Omogoči","Napaka pri nalaganju medijev","Napaka pri nalaganju medijev, nepodprta vrsta datoteke","Pot do dnevnika napak","Izvoz","Izvozi mirujoče slike","Izvozi video segmente","Izvoz videa","Čas osvetlitve","Datoteke brez imen, ki bi se ujemala, so označene z rdečo in bodo izpuščene.","Način filtriranja","Format","SLIK/SEK.","Napredovanje okvira","Okvirov na sekundo","Gama","Gausijanska zameglitev","Splošno","Generiranje slike","Globalna razporeditev","GRAFIČNI PROCESOR","Sivina","Prekrivanje mreže","Polovičen radij sigma","Toplotna mapa","Višina","Gumb za pomoč","Skrij vse","Skrij razpored","Gostitev medijev","Če izberete, da boste gostili medije na drugi lokaciji, ne na korenu, spodaj navedite URL.","Slika","Slike lahko neposredno vgradite v kodo na spletni strani, ne da bi jih morali ločeno naložiti, če je skupna velikost datoteke manj kot 10 MB.","Uvozi","Začeten","Vnos","Prilagoditev velikosti celega števila","Neveljavna datoteka. Samo datoteke z naslednjimi priponami so sprejemljive:","Neveljavne datoteke. Samo datoteke z naslednjimi priponami so sprejemljive:","Negativen izpis","Jet","Hiter zagon","Nalepka","Laplacian (pet točk)","Laplacian (devet točk)","Laplacian odstopanje","Veliko","Zavihki za razpored","Položaj levo/desno","Začnimo","Lokalni senčniki","Razlika v svetilnosti","Samo napaka v svetilnosti","Označi Inf (neskončno)/NaN (ni številka)","Mediji","Medijska domena/pot","Medijski selektorji","Srednja","Način","Poteg z miško","Kolesce na miški","Več","Najbližja pika","Nov projekt","Izbrana ni nobena mapa","Noben/a","Noben/a (Privzeta strukturna podobnost, SSIM)","Izklopljeno","Vklopljeno","Odprite","Prekrivanje","Paket, vgrajen v spletno stran","Panoramski pogled","Razlika po kanalih","Mozaična obdelava","Predvajanje/Premor","Ključni okviri za položaj","Ohrani dimenzije","Predogled","Prejšnji/Naslednji komplet","Radij","Ponovno naloži","Odstrani","Odstranim primerjalni komplet?","Odstranim medije?","Ponastavi","Ponastavi hitrost predvajanja","Razlika barvnega sistema RGB","Ista širina in višina","Shrani","Shrani projekt","Prilagoditev za %","Prilagodi, da se bo prilegalo","Izberi mapo","Izberite mape z ujemajočimi imeni datotek in primerjalnimi kompleti bodo ustvarjeni samodejno.","Nastavi","Izberi komplet","Nastavitve","Ostrina","Bližnjica","Pokaži kot","Pokaži legendo za barvno karto","Pokaži razpored","Pokaži sličice","Drug ob drugem","Način Drug ob drugem","Sigma","Preklop znaka","Velikost","Ključni okviri za drsnik","Majhni","Sobel","Posamezni medij","Sortiraj po abecedi","Sortiraj po datumu ustvaritve","Preslednica","Razdeljen zaslon","Način Razdeljen zaslon","Na kvadrat","Strukturna podobnost (SSIM)","Popoln SSIM","Način SSIM","Poenostavljen SSIM","Čas začetka","Samo strukturna napaka","Simetričen","Pri izvozu videa je prišlo do napake","Pri generiranju vašega paketa, vgrajenega v spletno stran, je prišlo do napake. Poizkusite znova.","Ta programska oprema uporablja kodo FFmpeg z licenco v okviru LGPLv2.1","To bo odstranilo medije z vseh primerjalnih kompletov v tem projektu. Ali želite odstraniti te medije?","Namestitev v obliki ploščic","Velikost ploščic","Preklopi celotni zaslon","Toleranca","Zgoraj levo","Zgoraj desno","Vrsta","Položaj gor/dol","Različica","Video","Ogled opomb ob izdaji","Splet","Paket, vgrajen v spletno stran, je bil uspešno shranjen","Kontrast v teži","Kontrast v svetilnosti","Kontrast v strukturi","Širina","Ali želite shraniti svoj trenutni projekt pred nadaljevanjem?","Radij X","Sigma X","Radij Y","Sigma Y","Vaša GPE ima težave z dešifriranjem medija. Za boljšo zmogljivost poizkusite zapreti vse aplikacije, ki uporabljajo vire PGE in/ali ponovno zaženite napravo.","Vaši medijski posnetek bo ostal v Nadzorni plošči medijev, vendar pa bo vse, kar ste naredili v tem primerjalnem kompletu, izgubljeno. Ali želite odstraniti ta komplet?","Vaš projekt je bil shranjen","Pogled povečave"],"sv-se":["(dvs. https://domän.com/sökväg)","Absolut","Lägg till filter","Lägg till media","Lägg till overlay","Lägg till overlay för att kommentera din jämförelse.","Justera redigeraren (clip offset) för att anpassa videorna.","Vinkel","Skapar automatiskt uppsättningar","Genomsnittliga färger (långsammare)","Bilinjär","Binär","Bithastighet","Svart-blå-violett-gul-vit","Nedan till vänster","Nedan till höger","Kan inte visa filter:","Avbryt","Ändra uppspelningshastighet","CIE-LAB-skillnad","Klicka på Lägg till media eller dra och släpp video-/bildfiler till det här fönstret för att jämföra dem.","Codec","Färgläge","Jämförelseuppsättningar","Endast kontrastfel","Kontrollfält","Kopiera inbäddningskoden","CTRL +","CTRL + 1-9","CTRL + f","Anpassning","Radera","Skillnad","Mått","Inaktivera","Spara inte","Ladda ner","Ladda ner FFmpeg-källa.","Varaktighet","Inbäddningskod kopierad","Inbäddningskod kopierad till urklipp","Bädda in bilder i kod","Bädda in på webbsidekod","Aktivera","Fel vid laddning av media","Fel vid laddning av media, filtyp som inte stöds","Sökväg för felloggar","Exportera","Exportera bilder","Exportera video segment","Exportera video","Exponering","Filer utan matchande namn är markerade med rött och kommer att utelämnas.","Filtreringsläge","Format","FPS","Bildfrekvens","Bilder per sekund","Gamma","Gaussisk oskärpa","Allmänt","Genererar bild","Global layout","GPU","Gråskala","Rutnätsoverlay","Halvradie sigma","Färgdiagram","Höjd","Knappen Hjälp","Dölj alla","Dölj layout","Mediahosting","Om du väljer mediahosting på en annan plats än roten, ange URL-adressen nedan.","Bild","Om den totala filstorleken är mindre än 10 MB kan bilder bäddas in direkt i webbsidans inbäddningskod utan att ladda upp dem separat.","Importera","Ursprunglig","Indata","Heltalsskalning","Ogiltig fil. Endast filer med följande filändelse accepteras:","Ogiltiga filer. Endast filer med följande filändelse accepteras:","Invertera utdata","Jet","Gå till Start","Etikett","Laplaceoperator (fempunkts)","Laplaceoperator (niopunkts)","Laplaceoperator avvikelse","Stor","Layout-flikar","Vänster/Höger PX"," Låt oss komma igång.","Lokala shaders","Skillnad i ljusstyrka","Endast ljusstyrkefel","Markera Inf/NaN","Media","Mediadomän/sökväg","Mediaväljare","Medel","Läge","Musdrag","Mushjul","Multiplikator","Närmaste granne","Nytt projekt","Ingen mapp vald","Ingen","Ingen (SSIM-standard)","Av","På","Öppna","Overlay","Inbäddning av webbsida för paket","Panoreringsvy","Skillnader per kanal","Pixelisering","Spela upp/Pausa","Positionera nyckelbildrutor","Bevara mått","Förhandsgranska","Föregående/Nästa uppsättning","Radie","Läs in på nytt","Ta bort","Ta bort jämförelseuppsättningar?","Ta bort media?","Återställ","Återställ uppspelningshastighet","RGB-skillnad","Samma bredd och höjd","Spara","Spara projekt","Skalering i %","Skalera till att passa","Välj mapp","Välj mappar med matchande filnamn så kommer jämförelseuppsättningar att skapas automatiskt.","Uppsättning","Uppsättningar valda","Inställningar","Skärpa","Genvägar","Visa vinkel","Visa förklaring för färgkarta","Visa layout","Visa miniatyrbilder","Sida vid sida","Sida vid sida-läge","Sigma","Teckenskifte","Storlek","Reglage nyckelbildrutor","Liten","Sobel","Solo-media","Sortera i bokstavsordning","Sortera efter skapandedatum","Utrymme","Delad skärm","Delat skärmläge","Kvadrerad","SSIM","SSIM full","SSIM-läge","SSIM förenklad","Starttid","Endast struktur-fel","Symmetrisk","Det uppstod ett fel vid export av din video","Det uppstod ett fel vid genereringen av webbsidans inbäddningspaket. Försök igen.","Denna programvara använder en kod från FFmpeg licensierad under LGPLv2.1","Detta kommer att ta bort media från alla jämförelseuppsättningar i det här projektet. Vill du ta bort det här mediet?","Sida-vid-sida","Titelstorlek","Växla till helskärm","Tolerans","Överst till vänster","Överst till höger","Typ","Upp/Ned PX","Version","Video","Se versionsinformation","Webb","Inbäddningspaketet för webbsidan har sparats","Viktkontrast","Vikt av ljusstyrka","Viktstruktur","Bredd","Vill du spara ditt nuvarande projekt innan du fortsätter?","X-radie","X-sigma","Y-radie","Y-sigma","Din GPU-enhet har problem med att avkoda din media. För bättre prestanda, försök att stänga alla applikationer som använder GPU-resurser och/eller starta om din enhet.","Dina medieklipp kommer att finnas kvar i Media-panelen, men allt du har gjort i den här jämförelseuppsättningen kommer att gå förlorat. Vill du ta bort den här uppsättningen?","Ditt projekt har sparats","Zoomvy"],"th-th":["(กล่าวคือ https://โดเมน.com/พาธ)","ทั้งหมด","เพิ่มตัวกรอง","เพิ่มสื่อ","เพิ่มโอเวอร์เลย์","เพิ่มโอเวอร์เลย์เพื่อใส่คำอธิบายประกอบการเปรียบเทียบของคุณ","ปรับออฟเซตของคลิปให้สอดคล้องกับวิดีโอ","มุม","สร้างชุดโดยอัตโนมัติ","สีโดยเฉลี่ย (ที่ทำงานช้าลง)","ไบลิเนียร์","ไบนารี","Bitrate","สีดำ-สีน้ำเงิน-สีม่วง-สีเหลือง-สีขาว","ล่างซ้าย","ล่างขวา","ไม่สามารถแสดงตัวกรองได้:","ยกเลิก","เปลี่ยนความเร็วในการเล่น","ความแตกต่างระหว่าง CIE-LAB",'คลิก "เพิ่มสื่อ" หรือลากไฟล์วิดีโอ/รูปภาพแล้ววางลงในหน้าต่างนี้เพื่อเปรียบเทียบ',"Codec","โหมดสี","ชุดการเปรียบเทียบ","ข้อผิดพลาดของความเปรียบต่างเท่านั้น","แผงควบคุม","คัดลอกโค้ดฝัง","CTRL +","CTRL + 1-9","CTRL + f","การกำหนดเอง","ลบ","ความแตกต่าง","มิติ","ปิดการทำงาน","ไม่บันทึก","ดาวน์โหลด","ดาวน์โหลดแหล่งที่มาของ FFmpeg","ระยะเวลา","คัดลอกโค้ดฝังแล้ว","คัดลอกโค้ดฝังไปยังคลิปบอร์ดแล้ว","รูปภาพที่ฝังในโค้ด","ฝังอยู่ในโค้ดหน้าเว็บ","เปิดการทำงาน","ข้อผิดพลาดในการโหลดสื่อ","ข้อผิดพลาดในการโหลดสื่อ ประเภทไฟล์ที่ไม่รองรับ","พาธของไฟล์บันทึกข้อผิดพลาด","ส่งออก","ส่งออกภาพนิ่ง","ส่งออกส่วนวิดีโอ","กำลังส่งออกวิดีโอ","การเปิดรับแสง","ไฟล์ที่ไม่มีชื่อตรงกันจะถูกทำเครื่องหมายด้วยสีแดงและจะถูกละไว้","โหมดการกรอง","รูปแบบ","FPS","การตั้งค่าเฟรมขั้นสูง","เฟรมต่อวินาที","แกมมา","ภาพมัวแบบ Gaussian","ทั่วไป","กำลังสร้างรูปภาพ","เค้าโครงส่วนกลาง","GPU","เกรย์สเกล","การซ้อนทับกันของเส้นตัด","ซิกมารัศมีครึ่งหนึ่ง","แผนภูมิความร้อน","ความสูง","ปุ่มวิธีใช้","ซ่อนทั้งหมด","ซ่อนเค้าโครง","กำลังโฮสต์สื่อ","หากคุณเลือกที่จะโฮสต์สื่อในตำแหน่งที่แตกต่างจากรูท ให้ระบุ URL ด้านล่าง","รูปภาพ","สามารถฝังรูปภาพลงในโค้ดฝังหน้าเว็บได้โดยตรง ไม่ต้องอัปโหลดแยกกัน หากขนาดไฟล์ทั้งหมดน้อยกว่า 10MB","นำเข้า","เริ่มต้น","อินพุต","การปรับสเกลเชิงจำนวนเต็ม","ไฟล์ไม่ถูกต้อง ยอมรับเฉพาะไฟล์ที่มีนามสกุลดังต่อไปนี้:","ไฟล์ไม่ถูกต้อง ยอมรับเฉพาะไฟล์ที่มีนามสกุลดังต่อไปนี้:","สลับเอาต์พุต","ไอพ่น","ข้ามไปที่จุดเริ่มต้น","ป้าย","ลาปลาเซียน (ห้าจุด)","ลาปลาเซียน (เก้าจุด)","ตัวแปรลาปลาเซียน","ใหญ่","แท็บเค้าโครง","PX ด้านซ้าย/ขวา","มาเริ่มใช้งานกัน","แสงเงาในพื้นที่","ความแตกต่างของความสว่าง","ข้อผิดพลาดของความสว่างเท่านั้น","ทำเครื่องหมาย Inf/NaN","สื่อ","โดเมน/พาธของสื่อ","ตัวเลือกสื่อ","ปานกลาง","โหมด","การลากเมาส์","ปุ่มแบบเลื่อนของเมาส์","ตัวคูณ","พื้นที่ใกล้เคียงที่สุด","โปรเจ็กต์ใหม่","ไม่ได้เลือกโฟลเดอร์ไว้","ไม่มี","ไม่มี (ค่า SSIM เริ่มต้น)","ปิด","เปิด","เปิด","โอเวอร์เลย์","ฝังหน้าเว็บของแพ็กเกจ","มุมมองแนวราบ","ความแตกต่างต่อช่องทาง","การทำให้เป็นพิกเซล","เล่น/หยุดชั่วคราว","คีย์เฟรมของตำแหน่ง","รักษามิติ","แสดงตัวอย่าง","ชุดก่อนหน้า/ถัดไป","รัศมี","รีโหลด","ลบออก","ลบชุดการเปรียบเทียบออกหรือไม่","ลบสื่อออกหรือไม่","รีเซ็ต","รีเซ็ตความเร็วในการเล่น","ความแตกต่างของ RGB","ความกว้างและความสูงเดียวกัน","บันทึก","บันทึกโปรเจ็กต์","% สัดส่วน","ปรับให้พอดี","เลือกโฟลเดอร์","เลือกโฟลเดอร์ที่ตรงกับชื่อไฟล์ และชุดการเปรียบเทียบจะถูกสร้างโดยอัตโนมัติ","ชุด","เลือกชุด","การตั้งค่า","ความคมชัด","ทางลัด","แสดงมุม","แสดงคำอธิบายของแผนภูมิสี","แสดงเค้าโครง","แสดงรูปตัวอย่าง","แบบเคียงข้างกัน","โหมดแบบเคียงข้างกัน","ซิกมา","พลิกป้าย","ขนาด","คีย์เฟรมของแถบเลื่อน","เล็ก","โซเบล","สื่อแบบเดี่ยว","จัดเรียงตามลำดับตัวอักษร","จัดเรียงตามวันที่สร้าง","ช่องว่าง","แยกหน้าจอ","โหมดแยกหน้าจอ","ที่เป็นสี่เหลี่ยม","SSIM","SSIM เต็มรูปแบบ","โหมด SSIM","SSIM แบบปรับให้ง่าย","เวลาเริ่มต้น","ข้อผิดพลาดทางโครงสร้างเท่านั้น","ที่สมมาตรกัน","มีข้อผิดพลาดขณะส่งออกวิดีโอของคุณ","มีข้อผิดพลาดขณะสร้างแพ็กเกจที่ฝังหน้าเว็บ โปรดลองอีกครั้ง","ซอฟต์แวร์นี้ใช้รหัสของ FFmpeg ที่ได้รับการรับรองภายใต้ LGPLv2.1","การดำเนินการนี้จะลบสื่อออกจากชุดการเปรียบเทียบทั้งหมดในโปรเจ็กต์นี้ คุณต้องการลบสื่อนี้ออกหรือไม่","การเรียงต่อกัน","ขนาดของชื่อเรื่อง","สลับใช้โหมดเต็มหน้าจอ","ช่วงที่ยอมรับได้","บนซ้าย","บนขวา","ประเภท","PX ด้านบน/ล่าง","เวอร์ชัน","วิดีโอ","ดูหมายเหตุรีลีส","เว็บ","บันทึกแพ็กเกจที่ฝังหน้าเว็บสำเร็จแล้ว","ความเปรียบต่างของน้ำหนัก","ความสว่างของน้ำหนัก","โครงสร้างของน้ำหนัก","ความกว้าง","คุณต้องการบันทึกโปรเจ็กต์ปัจจุบันของคุณก่อนดำเนินการต่อหรือไม่","รัศมี X","ซิกมา X","รัศมี Y","ซิกมา Y","หน่วยประมวลผลกราฟิก (GPU) ประสบปัญหาในการถอดรหัสสื่อของคุณ เพื่อประสิทธิภาพที่ดีกว่า ให้ลองปิดแอปพลิเคชันทั้งหมดที่ใช้ทรัพยากร GPU และ/หรือรีสตาร์ทอุปกรณ์ของคุณ","คลิปสื่อของคุณจะยังคงอยู่ในแผงสื่อ แต่ทุกสิ่งที่คุณทำในชุดการเปรียบเทียบนี้จะหายไป คุณต้องการลบชุดนี้ออกหรือไม่","บันทึกโปรเจ็กต์ของคุณแล้ว","มุมมองแบบซูม"],"tr-tr":["(örneğin: https://alan-adı.com/yol)","Mutlak","Filtre ekle","Medya ekle","Yer paylaşımı ekle","Karşılaştırmanıza ek açıklama yapmak için Yer Paylaşımı ekleyin.","Videoları hizalandırmak için klip kayma ayarını yapın.","Açı","Setleri otomatik oluştur","Ortalama renkler (daha yavaş)","İkili Doğrusal","İkili","Bit hızı","Siyah mavi mor sarı beyaz","Sol alt","Sağ alt","Filtre görüntülenemiyor:","İptal","Geri oynatma hızını değiştir","CIE-LAB farkı","Medya Ekle'ye tıklayın veya video/görüntü dosyalarını karşılaştırmak için bu pencereye sürükleyip bırakın.","Kodek","Renk modu","Karşılaştırma setleri","Yalnızca kontrast hatası","Kontrol çubuğu","Gömme kodunu kopyala","CTRL +","CTRL + 1-9","CTRL + f","Özelleştirme","Sil","Fark","Boyutlar","Devre Dışı Bırak","Kaydetme","İndir","FFmpeg kaynağını indirin.","Süre","Gömme kodu kopyalandı","Gömme kodu panoya kopyalandı","Kod içindeki görselleri göm","Web sayfası koduna gömülü","Etkinleştir","Medya yüklenirken hata oluştu","Medya yüklenirken hata oluştu, desteklenmeyen dosya türü","Hata günlükleri yolu","Dışa Aktar","Hareketsiz görüntüleri dışa aktar","Video segmentlerini dışa aktar","Video dışa aktarılıyor","Pozlama","Eşleşen isimleri olmayan dosyalar kırmızıyla işaretlenip dikkate alınmaz.","Filtreleme Modu","Biçim","FPS","Kare ilerlemesi","Saniyedeki kare sayısı","Gama","Gauss bulanıklaştırma","Genel","Görüntü oluşturuluyor","Genel düzen","GPU","Gri ölçekli","Izgara yer paylaşımı","Yarım sigma yarıçapı","Isı haritası","Yükseklik","Yardım düğmesi","Tümünü Gizle","Düzeni gizle","Medya barındırılıyor","Medyayı kökten farklı bir konumda barındırmayı seçerseniz, URL'yi aşağıda belirtin.","Resim","Toplam dosya boyutu 10 MB'tan küçükse, resimler ayrıca yüklenmeden doğrudan web sayfası gömme koduna yerleştirilebilir.","İçe Aktar","İlk","Giriş","Tamsayı ölçeklendirme","Geçersiz dosya Yalnızca aşağıdaki uzantılara sahip dosyalar kabul edilir:","Geçersiz dosyalar Yalnızca aşağıdaki uzantılara sahip dosyalar kabul edilir:","Çıkışı tersine çevir","Jet","Başlat seçeneğine geç","Etiket","Laplas işleci (beş nokta)","Laplas işleci (dokuz nokta)","Laplas işleci değişikliği","Büyük","Düzen sekmeleri","Sol/Sağ Konum","Başlarken","Yerel gölgelendiriciler","Parlaklık farkı","Yalnızca parlaklık hatası","Inf/NaN olarak işaretle","Medya","Medya alan adı/yolu","Medya seçme araçları","Orta","Mod","Fareyi sürükle","Fare kaydırma tekerleği","Çarpan","En yakın renk","Yeni proje","Hiçbir dizin seçilmedi","Yok","Yok (SSIM varsayılan)","Kapalı","Açık","Aç","Yer paylaşımı","Web sayfası gömme paketi","Yatay kaydırma görünümü","Kanal başına fark","Pikselleme","Oynat/Durdur","Anahtar kareleri konumlandır","Boyutları koru","Önizleme","Önceki/Sonraki set","Yarıçap","Yeniden yükle","Kaldır","Karşılaştırma seti kaldırılsın mı?","Medya kaldırılsın mı?","Sıfırla","Geri oynatma hızını sıfırla","RGB farkı","Aynı genişlik ve yükseklik","Kaydet","Projeyi kaydet","Ölçek %","Ölçekleyerek sığdır","Dizini seç","Eşleşen dosya adlarına sahip klasörleri seçtiğinizde karşılaştırma setleri otomatik olarak oluşturulur.","Ayarla","Ayarları seç","Ayarlar","Keskinlik","Kısayollar","Açıyı göster","Renk Haritası Göstergesini Göster","Düzeni göster","Küçük resimleri göster","Yan yana","Yan yana modu","Sigma","İşaret ters çevirme","Boyut","Kaydırıcı anahtar kareler","Küçük","Sobel","Tekli medya","Alfabetik sıralama","Oluşturma tarihine göre sıralama","Boşluk","Bölünmüş ekran","Bölünmüş ekran modu","Karesi alınmış","SSIM","SSIM tam","SSIM Modu","Basitleştirilmiş SSIM","Süreyi başlat","Yalnızca yapısal hata","Simetrik","Video dışa aktarılırken hata oluştu","Web sayfası gömme paketiniz oluşturulurken bir hata oluştu, lütfen tekrar deneyin.","Bu yazılım LGPLv2.1 sürümü altında lisanslı FFmpeg kodu kullanmaktadır.","Bu, medyayı bu projedeki tüm karşılaştırma setlerinden kaldıracaktır. Bu medyayı kaldırmak istiyor musunuz?","Döşeme","Başlık boyutu","Kenarlıksız Tam EkranTam ekran aç/kapat","Dayanıklılık","Üst sol","Üst sağ","Tür","Yukarı/Aşağı Konum","Sürüm","Video","Sürüm notlarını görüntüle","Web","Web sayfası gömme paketi başarıyla kaydedildi","Kontrast ağırlığı","Parlaklık ağırlığı","Yağı ağırlığı","Genişlik","Devam etmeden önce mevcut projenizi kaydetmek ister misiniz?","X Yarıçap","X Sigma","Y Yarıçap","Y Sigma","GPU’nuz medyanızın şifresini çözmekte sıkıntı yaşıyor. Daha iyi performans almak için, GPU kaynaklarını kullanan tüm uygulamaları kapatmayı ve/veya aygıtınızı yeniden başlatmayı deneyin.","Medya klipleriniz Medya panelinde kalacaktır ancak bu karşılaştırma setinde yaptığınız her şey kaybolacaktır. Bu seti kaldırmak istiyor musunuz?","Projeniz kaydedildi","Yakınlaştırma görünümü"],"uk-ua":["(тобто https://домен.com/шлях)","Абсолютний","Додати фільтр","Додати файл мультимедіа","Додати накладання","Додати накладання, щоб помітити ваше порівняння.","Відрегулювати зміщення кліпу для вирівнювання відеороликів.","Кут","Автоматичне створення наборів","Середні кольори (повільніше)","Дволінійний","Бінарний колір","Швидкість передачі даних","Чорний-синій-фіолетовий-жовтий-білий","Нижній лівий","Нижній правий","Не вдається відобразити фільтр:","Скасувати","Змінити швидкість відтворення","Відмінність CIE-LAB","Натисніть на «Додати файл мультимедіа» або перетягніть відеофайли/файли зображень в це вікно, щоб порівняти їх.","Кодек","Режим кольору","Набори для порівняння","Лише помилка контрасту","Панель управління","Скопіювати код для вставки","CTRL +","CTRL + 1-9","CTRL + f","Персоналізація","Видалити","Відмінність","Розміри","Виключити","Не зберігати","Завантажити","Завантажити джерело у форматі FFmpeg.","Тривалість","Вбудований код скопійовано","Вбудований код скопійовано в буфер обміну","Вбудовані зображення в коді","Вбудований в коді веб-сторінки","Включити","Помилка завантаження файлу мультимедіа","Помилка завантаження файлу мультимедіа, тип файлу не підтримується","Шлях до журналу помилок","Експортувати","Експортувати статичне зображення","Експортувати відеофрагменти","Триває експортування відео","Засвічування плівки","Файли без співпадання назв позначаються червоним кольором та будуть пропускатися.","Режим фільтрації","Формат","КАДРІВ/С","Просування кадру","Кількість кадрів за секунду","Гамма","Гаусівська розпливчастість","Загальні","Триває створення зображення","Глобальний макет","Графічний процесор","Відтінки сірого","Накладання сітки","Середнє квадратичне відхилення половинного радіуса","Теплова карта","Висота","Кнопка «Довідка»","Сховати всі","Сховати макет","Триває розміщення файлу мультимедіа","Якщо ви приймете рішення розмістити файл мультимедіа не в кореневому каталозі, вкажіть нижче URL-адресу.","Зображення","Зображення можуть бути вбудованими безпосередньо у вбудований код веб-сторінки без окремого їх завантаження, якщо загальний розмір файлів менший ніж 10 МБ.","Імпортувати","Первинне значення","Введення даних","Цілочислове масштабування","Невідповідний файл. Приймаються лише файли з наступними розширеннями:","Невідповідний файл. Приймаються лише файли з наступними розширеннями:","Інвертний вихід","Схема кольорів струменя полум'я","Стрибнути для початку","Ярлик","Лапласіанське відхилення (п'ять пунктів)","Лапласіанське відхилення (дев'ять пунктів)","Лапласіанське відхилення","Великий розмір","Макет вкладок","Зміна положення вліво/вправо","Давайте розпочнемо","Місцеві шейдери","Відмінність яскравості","Лише помилка яскравості","Inf/NaN позначки","Файл мультимедіа","Домен/шлях до файлу мультимедіа","Селектор файлу мультимедіа","Середній розмір","Режим","Перетягування за допомогою мишки","Коліщатко мишки для прокручування","Мультиплікатор","Найближчий сусідній піксель","Новий проект","Не вибрано жодних папок","Відсутнє","Відсутнє (SSIM за умовчанням)","Вимкн.","Увімкн.","Відкрити","Накладання","Пакет файлів, що може бути вбудований у вебсторінку","Панорамний вид","Поканальні відмінності","Пікселізація","Відтворити/Призупинити","Ключові кадри позиції","Зберегти розміри","Попередній перегляд","Попередній/Наступний набір","Радіус","Перезавантажити","Видалити","Видалити набір порівняння?","Видалити файл мультимедіа?","Скинути налаштування","Скинути налаштування швидкості відтворення?","Відмінність компонентного відеосигналу RGB","Така сама ширина і висота","Зберегти","Зберегти проект","Масштаб %","Змініть масштаб, щоб припасувати","Вибрати папку","Внаслідок вибору папок зі співпаданням назв файлів автоматично буде створено набори порівняння.","Набір","Вибір наборів","Налаштування","Різкість","Ярлики","Показати кут","Показати позначення карти кольорів","Показати макет","Показати мініатюрні зображення","Суміжне відображення","Режим суміжного відображення","Середнє квадратичне відхилення","Зміна знаку","Розмір","Інструмент переміщення ключових кадрів","Малий розмір","Фільтр Sobel","Одиночний файл мультимедіа","Сортувати за алфавітом","Сортувати за створеним","Пробіл","Розділити екран","Режим розділення екрану","В другому ступені","SSIM","SSIM повний рівень","Режим SSIM","SSIM - Спрощений рівень","Час початку","Лише структурна помилка","Симетричний","Під час експортування відео виникла помилка.","Виникла помилка при створенні вбудованого у вебсторінку пакета. Будь ласка, повторіть спробу.","Це програмне забезпечення використовує код формату FFmpeg, ліцензованого згідно LGPLv2.1","Це видалить файл мультимедіа з усіх наборів порівнянь в цьому проекті. Ви хочете видалити цей файл мультимедіа?","Мозаїчне розміщення","Розмір заголовка","Переключення повноекранного режиму","Стійкість","Верхній лівий","Верхній правий","Тип","Зміна положення вверх/вниз","Версія","Відео","Переглянути примітки до нової версії програми","Веб-технологія","Пакет, вбудований у вебсторінку, успішно збережено","Коефіцієнт врахування відмінностей контрасту","Коефіцієнт врахування відмінностей яскравості","Коефіцієнт врахування відмінностей структури","Ширина","Хочете зберегти ваш поточний проект перед продовженням?","Радіус X","Стандартне відхилення X","Радіус Y","Стандартне відхилення Y","У вашого графічного процесора (GPU) виникли труднощі з розкодуванням носія. Для забезпечення кращої продуктивності, спробуйте закрити всі застосунки, що використовують ресурси графічного процесора (GPU), та/або перезапустити ваш пристрій.","Ваші кліпи мультимедіа залишаться на панелі файлів мультимедіа, але не буде втрачено нічого з того, що ви зробили в цьому наборі порівняння. Ви хочете видалити цей набір?","Ваш проект було збережено","Масштабований вид"],"zh-cn":["(即 https://域.com/路径)","绝对","添加滤镜","添加媒体","添加覆盖","添加覆盖以说明相关比较。","调整剪辑偏移以对齐视频。","角度","自动创建设置","平均颜色(较慢)","双线性","二进制","Bitrate(比特率)","黑-蓝-紫-黄-白","左下角","右下角","无法显示过滤器:","取消","更改回放速度","CIE-LAB 差","单击“添加媒体”或将视频/图像文件拖放到此窗口中进行比较。","编码译码器","颜色模式","比较集","仅对比误差","控制栏","复制嵌入代码","CTRL +","CTRL + 1-9","CTRL + f","自定义","删除","不同","度量","禁用","不要保存","下载","下载 FFmpeg 资源。","持续时间","嵌入代码已复制","嵌入代码已复制到剪贴板","代码中嵌入的图像","嵌入网页代码","启用","加载媒体出错","加载媒体出错,不受支持的文件类型","日志路径错误","导出","导出静态图像","导出视频分段","正在导出视频","曝光","未匹配名称的文件将被标记为红色并将被忽略。","过滤模式","格式化","FPS","逐帧推进","每秒帧数","灰度","高斯模糊","常规","正在生成图像","全面布局","GPU","灰度","网格板","1/2 半径 sigma","热图","高度","帮助按键","隐藏全部","隐藏布局","托管媒体","如果选择将媒体托管在与根不同的位置,请指定下面的 URL。","图像","如果总文件大小不足 10MB,图像可直接嵌入到网页嵌入代码中,而无需单独上传。","导入","初始","输入","整数缩放","无效文件。仅可接受以下扩展名的文件:","无效文件。仅可接受以下扩展名的文件:","反转输出","喷射","跳转到起点","标签","拉普拉斯(五点)","低量算符(九点)","拉普拉斯方差","大","布局标签","左/右位置","让我们开始","本地着色器","亮度差","仅亮度误差","标记信息/非数","媒体","媒体域/路径","媒体选择器","中","模式","鼠标拖动","鼠标滚轮","倍增器","最近邻","新项目","未选择文件夹","无","无(SSIM 默认)","关","开","打开","覆盖","软件包网页嵌入","平移视图","通道差","马赛克","播放/暂停","位置关键帧","保留尺寸","预览","上一个/下一个设定","半径","重新加载","移除","移除比较集?","移除媒体?","重置","重置回放速度","RGB 差","同样宽度及高度","保存","保存项目","缩放 %","缩放至适当大小","选择文件夹","选择具有匹配的文件名的文件夹,将自��创建比较集。","设置","设置选择","设置","锐度","快捷方式","显示角度","显示彩色地图图例","显示布局","显示缩略图","并排","并排模式","Sigma","符号翻转","尺寸","滑块关键帧","小","Sobel","个人媒体","按字母顺序排序","按创建排序","空间","分屏","分屏模式","方格","SSIM(结构相似性)","SSIM 完全","SSIM 模式","SSIM 简化","开始时间","仅结构误差","对称","导出视频时出错","生成网页嵌入软件包时出错,请重试。","该软件使用根据 LGPLv2.1 授权的 FFmpeg 代码","这将从此项目中的所有比较集中移除媒体。您要移除该媒体吗?","拼贴","标题尺寸","切换全屏","公差","左上角","右上角","类型","上/下位置","版本","视频","查看版本提示","网络","网页嵌入软件包已成功保存","权重对比","亮度权重","结构权重","宽度","在继续之前您是否要保存当前项目?","X 半径","X Sigma","Y 半径","Y Sigma","您的 GPU 在解码媒体时遇到麻烦。为了获得更好的性能,请尝试关闭所有使用 GPU 资源的应用程序及/或重启设备。","您的媒体剪辑将保留在媒体面板,但您在此比较集中进行的任何操作将丢失。您要移除该设置吗?","您的项目已保存","缩放视图"],"zh-tw":["(即 https://網域.com/路徑)","絕對","新增過濾器","新增媒體","新增重疊","新增重疊來附註您的比較。","調整剪輯偏移以對齊影片。","角度","自動建立媒體集","平均色彩(較慢)","雙線性","二進位","位元率","黑-藍-紫-黃-白","左下","右下","無法顯示過濾器:","取消","變更播放速度","CIE-LAB 差異","按一下「新增媒體」或將影片/影像檔案拖放到此視窗中以進行比較。","Codec","色彩模式","媒體集","僅限對比誤差","控制列","複製內嵌程式碼","CTRL +","CTRL + 1-9","CTRL + f","自訂","刪除","差異","尺寸","停用","不要儲存","下載","下載 FFmpeg 來源。","持續時間","已複製內嵌程式碼","已將內嵌程式碼複製到剪貼簿","程式碼中的內嵌影像","內嵌在網頁程式碼中","啟用","載入媒體時發生錯誤","載入媒體時發生錯誤,檔案類型不受支援","錯誤記錄檔路徑","匯出","匯出靜態影像","匯出影片片段","正在匯出影片","曝光","沒有相符名稱的檔案會被標記為紅色並將被忽略。","過濾模式","格式","FPS","畫面前進","每秒播放畫面","色差補正 (Gamma)","Gaussian 柔邊","一般","正在產生影像","全域版面配置","GPU","灰階","格點重疊","半半徑 sigma","熱力圖","高度","說明按鈕","全部隱藏","隱藏版面配置","主控媒體","如果您選擇將媒體託管在與根目錄不同的位置,請指定下方的 URL。","影像","如果全部檔案大小不到 10MB,影像可以直接內嵌至網頁內嵌程式碼中,而無需分開上傳。","匯入","初始值","輸入","整數縮放比例","無效的檔案。僅接受具有以下副檔名的檔案:","無效的檔案。僅接受具有以下副檔名的檔案:","反轉輸出","噴焰","跳至開始","標籤","拉普拉斯(五點)","拉普拉斯(九點)","拉普拉斯方差","大","版面配置索引標籤","左/右水平位置","開始使用","本機著色器","亮度差異","僅限亮度錯誤","標記 Inf/NaN","媒體","媒體網域/路徑","媒體選取器","中","模式","滑鼠拖曳","滑鼠滾輪","倍頻器","最鄰近的值","新專案","未選取任何資料夾","無","無(SSIM 預設值)","關閉","開啟","開啟","重疊","網頁內嵌套件","平移檢視","每個頻道的差異","像素化","播放/暫停","位置關鍵影格","保留尺寸","預覽","上一個/下一個媒體集","半徑","重新載入","移除","移除比較媒體集?","移除媒體?","重設","重設播放速度","RGB 差異","相同的寬度和高度","儲存","儲存專案","比例 %","調整至視窗大小","選取資料夾","選取具有相符檔案名稱的資料夾將會自動建立比較媒體集。","媒體集","媒體集選取","設定","清晰度","快速鍵","顯示角度","顯示色彩圖圖例","顯示版面配置","顯示縮圖","並排","並排模式","Sigma","符號互換","大小","滑桿關鍵影格","小","Sobel","單一媒體","依字母排序","按建立日期排序","空白鍵","分割畫面","分割畫面模式","平方","SSIM","SSIM 完整","SSIM 模式","SSIM 簡化","開始時間","僅限結構錯誤","對稱","匯出您的影片時發生錯誤","產生網頁內嵌套件時發生錯誤。請再試一次。","此軟體使用根據 LGPLv2.1 授權的 FFmpeg 程式碼","這將從此專案的所有比較媒體集中移除媒體。您是否要移除此媒體?","拼接","標題大小","切換全螢幕","容錯","左上","右上","類型","上/下垂直位置","版本","影片","檢視發行聲明","Web","已成功儲存網頁內嵌套件","重量對比","重量亮度","重量結構","寬度","您是否要先儲存目前的專案後再繼續?","X 半徑","X Sigma","Y 半徑","Y Sigma","您的 GPU 在解碼媒體時遇到問題。為了獲得更佳的遊戲效能,請嘗試關閉所有使用 GPU 資源的應用程式和/或重新啟動裝置。","您的媒體剪輯將會保留在「媒體」面板中,但將遺失您在此比較媒體集中所做的所有操作。您是否要移除此媒體集?","已儲存您的專案","縮放視圖"]},fe=ve["en-us"].slice(),ye=Object.keys(ve).reduce(((e,t)=>{const i=t.split("-").map((e=>e.toLowerCase()));return e[`${i[0]}`]?e[`${i[0]}`].push(i[1]):e[`${i[0]}`]=[i[1]],e}),{});function xe(e){if(!e)return"";const t=fe.indexOf(e);if(-1===t)return e;const i=navigator.language.toLowerCase(),n=ve[`${i}`];if(n)return n[Number(t)]||e;const a=i.split("-").map((e=>e.toLowerCase())),s=a[0];return ye[`${s}`]?(1===a.length?a.push(ye[`${s}`][0]):-1===ye[`${s}`].indexOf(a[1])&&(a[1]=ye[`${s}`][0]),U(ve,[a.join("-"),t],e)):e}function we(e=""){return`.${e.split(".").pop()||""}`}function ke(e=""){const t=e.indexOf("\\")>-1?"\\":"/",i=e.split(/\\|\//).filter((e=>!!e)),n=i.slice(),a=i.pop()||"",s=`.${a}`.split(".").filter((e=>!!e)).pop()||"";return{path:e,ext:s,base:a.split(`.${s}`)[0]||"",name:a,dir:i.join(t),dirArray:i,pathArray:n,delimiter:t}}const ze={codec:!1,bitrate:!1,format:!1,dimensions:!1,fps:!1,duration:!1,startTime:!1},Se=(e,t,i,n,a)=>`${U(e,["name"],t)||t}-${U(e,["path"],i)||i}-${U(e,["size"],n)||0}-${U(e,["lastModified"],a)||0}`,Me=e=>e?Se(e.file,e.name,e.path,e.size,e.modified):void 0,Ce=e=>{if(!e)return;const t=ke(e.path),i=ke(e.src),n=U(e,["file"]),a=U(t,["name"],U(i,["name"],U(e,["name"],""))),s=U(e,["path"],""),o=U(e,["size"],0),r=U(e,["modified"],(new Date).getTime());return Se(n,a,s,o,r)},je=(e,t)=>{if(!t)return;const i=U(t,["name"],U(t,["mediaName","name"],"")),n=U(t,["path"],U(t,["mediaName","path"],"")),a=U(t,["size"],U(t,["metadata","size"],0)),s=U(t,["modified"],U(t,["metadata","modified"],0));return{id:Se(e,i,n,a,s),file:e,name:i,size:a,path:n,modified:s,created:U(t,["created"],(new Date).getTime()),base:U(t,["originalBase"],U(t,["mediaName","originalBase"],"")),originalBase:U(t,["originalBase"],U(t,["mediaName","originalBase"],"")),codec:U(t,["codec"],U(t,["metadata","codec"],"")),format:U(t,["format"],U(t,["metadata","format"],"")),width:U(t,["width"],U(t,["metadata","width"],0)),height:U(t,["height"],U(t,["metadata","height"],0)),fps:U(t,["fps"],U(t,["metadata","fps"],0)),duration:U(t,["duration"],U(t,["metadata","duration"],0)),hasAudio:U(t,["hasAudio"],!1),bitrate:U(t,["bitrate"],U(t,["metadata","bitrate"],0)),timestamps:U(t,["timestamps"],[]),type:U(t,["type"],U(t,["metadata","type"],"")),extension:U(t,["extension"],U(t,["mediaName","extension"],we(t.src)))}},Le=(e,t)=>{if(!t)return;const i=ke(t.path),n=ke(t.src),a=U(i,["name"],U(n,["name"],U(t,["name"],""))),s=U(t,["path"],""),o=U(t,["size"],0),r=U(t,["modified"],(new Date).getTime());return{id:Se(e,a,s,o,r),file:e,path:s,name:a,size:o,modified:r,created:U(t,["created"],(new Date).getTime()),base:U(t,["base"],U(i,["base"],U(n,["base"],""))),extension:U(t,["extension"],U(i,["extension"],U(n,["extension"],""))),originalBase:U(t,["originalBase"],U(i,["base"],U(n,["base"],""))),width:t.width,height:t.height,type:"image",codec:"",bitrate:0,format:"",fps:0,duration:0,hasAudio:!1,timestamps:[]}},Ee=e=>({id:e.id,base:e.base,startTime:e.startTime,muted:e.muted,visible:e.visible,type:e.type,fps:e.fps,duration:e.duration,hasAudio:e.hasAudio,thumbnails:e.thumbnails.slice(),mediaOverlay:e.mediaOverlay,shaderId:e.shaderId,showShader:e.showShader,hasFrameImages:e.frameImages.length>0,showFrameImages:e.showFrameImages,timestamps:e.timestamps.slice(),infoTexts:Y(e.infoTexts)}),_e=(e,t)=>({id:e.id,name:e.name,base:e.base,originalBase:e.originalBase,x:e.x,y:e.y,z:e.z,startTime:e.startTime,labelVisibility:{...e.labelVisibility},muted:e.muted,visible:e.visible,shaderId:e.shaderId,shaderSettings:Y(e.shaderSettings),shaderInputs:e.shaderInputs.slice(),codec:e.codec,format:e.format,bitrate:e.bitrate,width:e.width,height:e.height,type:e.type,fps:e.fps,duration:e.duration,hasAudio:e.hasAudio,hasFrameImages:e.frameImages.length>0,hasInfoTexts:e.infoTexts.length>0||!!t&&t.infoTexts.length>0,showInfoText:e.showInfoText,showFrameImages:e.showFrameImages,showShader:e.showShader}),Ie=(e,t,i,n,a,s)=>{const o=a/n*i;let r=e;if(r>s)o-r/n*i<=20&&(r=(o-20)/i*n);else if(r+te.name?e.name:e.base,Pe=e=>{const t=e.map((e=>Te(e))),i=[];return t.forEach((e=>{i.indexOf(e)>-1||t.filter((t=>t===e)).length>1&&i.push(e)})),t=>{const n=Te(t);if(-1===i.indexOf(n))return n;const a=ke(t.path),s=e.filter((e=>Te(e)===n&&e.id!==t.id)).map((e=>ke(e.path).dirArray));let o=n,r=a.dirArray.length-1;for(;r>-1;){const e=r,t=a.dirArray[Number(e)];if(!t)break;const i=s.filter((i=>i[Number(e)]===t));if(o=`${t}/${o}`,!i.length)break;r-=1}return o}},Fe=(e,t,i)=>{if(e)return Ae(e);let n,a=0;for(;!n&&a{const i=h(),n=ke(e.path||e.webkitRelativePath||e.name);let a;m.indexOf(n.ext.toLowerCase())>-1?a="video":g.indexOf(n.ext.toLowerCase())>-1?a="hdrimage":p.indexOf(n.ext.toLowerCase())>-1&&(a="image");return{id:i,created:(new Date).getTime(),codec:"",bitrate:0,width:0,height:0,type:a,fps:0,duration:0,size:e.size,modified:new Date(e.lastModified).getTime(),hasAudio:!1,timestamps:[],path:n.path,name:n.name,base:t?n.path:n.base,originalBase:t?n.path:n.base,extension:n.ext,format:n.ext.toUpperCase(),x:0,y:0,z:100,startTime:0,thumbnails:[],labelVisibility:{codec:!1,bitrate:!1,dimensions:!1,format:!1,fps:!1,duration:!1,startTime:!1},muted:!0,visible:!0,shaderId:"",shaderInputs:[],shaderSettings:{},shaderSource:"",showShader:!0,src:a?l.getUrl(e):void 0,mediaOverlay:"",frameImages:[],showFrameImages:!0,infoTexts:[],showInfoText:!1}},Re=e=>{const t={id:h(),created:(new Date).getTime(),codec:"",bitrate:0,width:0,height:0,type:void 0,fps:0,duration:0,size:0,modified:(new Date).getTime(),hasAudio:!1,timestamps:[],path:"",name:"",base:"",originalBase:"",extension:"",format:"",x:0,y:0,z:100,startTime:0,thumbnails:[],labelVisibility:{codec:!1,bitrate:!1,dimensions:!1,format:!1,fps:!1,duration:!1,startTime:!1},muted:!0,visible:!0,shaderId:"",shaderInputs:[],shaderSettings:{},shaderSource:"",showShader:!0,src:"",mediaOverlay:"",frameImages:[],showFrameImages:!0,infoTexts:[],showInfoText:!1},i={...t,...e,labelVisibility:{...t.labelVisibility,...e.labelVisibility},thumbnails:[]};return e.src||(i.src=e.path),i},Ge=(e,t)=>{let i=e.size+1,n=`${xe("Set")} ${i.toLocaleString(navigator.language)}`;const a=Array.from(e.values()).map((e=>e.label));for(;a.indexOf(n)>-1;)i+=1,n=`${xe("Set")} ${i.toLocaleString(navigator.language)}`;return((e,t)=>({id:h(),created:(new Date).getTime(),label:e,antiAlias:!1,endTime:0,grid:0,layout:y[0],overlayOrder:[],looping:!0,boomerang:!1,mediaOrder:[],x:0,y:0,z:100,speed:1,splitposition:.5,startTime:0,time:0,viewport:t,gamma:1,exposure:1}))(n,t)};function Be(e){const t={};if(!e)return;if(e.logos||e.shaderUiSettings||e.shaderInputs){const i=e;return{set:{id:i.id,created:(new Date).getTime(),label:i.label,antiAlias:i.antiAlias,endTime:i.endTime,grid:i.grid,layout:i.layout,looping:i.looping,boomerang:i.boomerang,x:i.position.x,y:i.position.y,z:i.position.z,speed:i.speed,splitposition:i.splitposition,startTime:i.startTime,time:i.time,viewport:{paneWidth:0,paneHeight:0,height:i.viewport.height,width:i.viewport.width,minZoom:100,fitScale:1,fitWidth:0,fitHeight:0,fitPaneWidth:0,fitPaneHeight:0,contentWidth:0,contentHeight:0},gamma:1,exposure:1,overlays:i.logos.map((e=>{const i=Le(e.file,e);t[`${i.id}`]||(t[`${i.id}`]=i);return{id:e.id,src:l.getUrl(e.file,e.src),base:e.name,path:e.path,extension:we(e.src),width:e.width,height:e.height,size:e.size,modified:e.modified,created:U(e,["created"],(new Date).getTime()),displayWidth:e.displayWidth,x:e.x,y:e.y,visible:e.visible,type:"overlay"}})),overlayOrder:i.logos.map((e=>e.id)),media:i.media.map((e=>((e,t={},i={},n={},a={})=>{const s=i[`${e.id}`],o=t[`${e.id}`],r=n[`${e.id}`],d=e.mediaName.extension;let c="filter";p.indexOf(d)>-1?c="image":m.indexOf(d)>-1?c="video":g.indexOf(d)>-1&&(c="hdrimage");const h=e.metadata?e.metadata.file:e.file,u=je(h,e);return u&&!a[`${u.id}`]&&(a[`${u.id}`]=u),{id:e.id,created:U(e,["created"],(new Date).getTime()),codec:"",bitrate:0,format:"",width:0,height:0,type:c,fps:0,duration:0,size:0,modified:0,hasAudio:!1,timestamps:[],path:e.mediaName.path,name:e.mediaName.name,base:e.mediaName.base,extension:e.mediaName.extension,originalBase:e.mediaName.originalBase,x:e.mediaPosition.x,y:e.mediaPosition.y,z:e.mediaPosition.z,startTime:e.mediaStartTime,thumbnails:[],labelVisibility:{codec:e.mediaLabels.codec,bitrate:e.mediaLabels.bitrate,format:e.mediaLabels.format,dimensions:e.mediaLabels.dimensions,duration:e.mediaLabels.duration,fps:e.mediaLabels.fps,startTime:e.mediaLabels.startTime},muted:e.muted,visible:e.visible,shaderId:"",shaderSettings:r||{},shaderInputs:o?o.map((e=>e.id)):[],shaderSource:s?s.source:"",showShader:!0,src:l.getUrl(h,e.src),mediaOverlay:"",frameImages:[],showFrameImages:!0,infoTexts:[],showInfoText:!1}})(e,i.shaderInputs,i.shaderSources,i.shaderUiSettings,t))),mediaOrder:i.media.map((e=>e.id))},files:t}}const i=e;return i.media=i.media.map((e=>{const i=Re(e),n=je(i.file,i);return n&&!t[`${n.id}`]&&(t[`${n.id}`]=n),i})),i.mediaOrder&&0!==i.mediaOrder.length||(i.mediaOrder=i.media.map((e=>e.id))),i.overlays&&(i.overlays=i.overlays.map((e=>{const i=Le(e.file,e);return i&&!t[`${i.id}`]&&(t[`${i.id}`]=i),{...e,src:l.getUrl(U(i,["file"]),e.src)}}))),i.overlayOrder||(i.overlayOrder=i.overlays.map((e=>e.id))),{set:i,files:t}}function Ve(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.constructor!==t.constructor)return!1;if(Array.isArray(e)){const i=e.length;let n=i;if(i!==t.length)return!1;for(;n;)if(n-=1,!Ve(e[Number(n)],t[Number(n)]))return!1;return!0}if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;let i=!0;return e.forEach(((e,n)=>{i&&(Ve(e,t.get(n))||(i=!1))})),i}if(e instanceof Set&&t instanceof Set)return Ve(Array.from(e),Array.from(t));if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();const i=Object.keys(e),n=i.length;if(n!==Object.keys(t).length)return!1;let a=n;for(;a;){a-=1;const n=i[Number(a)];if(!Ve(e[`${n}`],t[`${n}`]))return!1}return!0}return!(!Number.isNaN(e)||!Number.isNaN(t))}const Ne=e=>{e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation()};function De({container:e,array:t,getElementsFn:i,createFn:n,updateFn:a,preDeleteFn:s,valueKeyFn:o,elementValueKeyFn:r}){if(!e)return;let l=i();const d=l.slice(),c=(e,t)=>e.findIndex(((e,i)=>r(e,i)===t));t&&0!==t.length?(t.forEach(((t,s)=>{const r=o(t,s),h=c(l,r);if(-1===h){const a=n(t,s);if(!a)return;e.insertBefore(a,l[Number(s)]),l=i()}else{const n=l[Number(h)];h!==s&&(e.insertBefore(n,l[Number(s)]),l=i()),function(e){const t=c(d,e);t>-1&&d.splice(t,1)}(r),"function"==typeof a&&a(n,t,s)}})),d.forEach((e=>{s&&"function"==typeof s&&s(e),e.remove()}))):l.forEach((e=>e.remove()))}const Oe=e=>localStorage.setItem("customShaders",JSON.stringify(e)),He={get:()=>JSON.parse(localStorage.getItem("customShaders")||"[]").map((e=>{if(!(e&&e.data&&e.created&&e.data))return;const i={id:t.sanitize(U(e,["id"],h())),path:t.sanitize(U(e,["path"],"")),filename:t.sanitize(U(e,["filename"],"")),created:te(t.sanitize(U(e,["created"],0)),0),data:{id:t.sanitize(U(e,["data","id"],h())),name:t.sanitize(U(e,["data","name"],"")),source:U(e,["data","source"],""),inputs:te(U(e,["data","inputs"],0),0),inputIds:U(e,["data","inputIds"],[]),UI:Y(U(e,["data","UI"],{}))}};return He.remove(e.path),He.set(i),i})).filter((e=>!!e)),set:e=>{const t=He.get(),i=t.findIndex((t=>t.path===e.path));i>-1?t[Number(i)]=e:t.push(e),Oe(t)},remove:e=>{const t=Y(He.get()),i=t.findIndex((t=>U(t,["path"],"")===e));-1!==i&&(t.splice(i,1),Oe(t))},reload:e=>{const t=window.NvCompareApi;if(!t||!e)return;if("json"!==e.split(".").pop())return;const i=Y(He.get()),n=i.findIndex((t=>U(t,["path"],"")===e));if(-1===n)return;const a=i[Number(n)];return t.readShaderFile(a.path).then((e=>{const t={id:e.id||h(),name:e.name,source:e.source,UI:e.UI||{},inputs:e.inputs,inputIds:[]};t.name&&t.source&&t.inputs&&He.set({filename:a.filename,path:a.path,created:(new Date).getTime(),data:t})}))}};const $e={id:"difference",inputIds:[],name:"Difference",source:"#version 300 es\nprecision highp float;\n#define DIFF_MODE_RGB 0\n#define DIFF_MODE_LAB_LENGTH 1\n#define DIFF_MODE_LUMINANCE 2\nuniform bool uAbsolute,uSignFlip,uSquared,uMarkInfNaN;uniform float uTolerance,uMultiplier;uniform int uMode,uColorMode,uShowColorMap,uTonemapper;uniform float uGamma,uExposure;uniform sampler2D uTexture0,uTexture1;in vec2 vTextureCoord;out vec4 outColor;float RGBtoLuma(vec3 color){const float RED_COEFFICIENT=.212655,GREEN_COEFFICIENT=.715158,BLUE_COEFFICIENT=.072187;return color.x*RED_COEFFICIENT+color.y*GREEN_COEFFICIENT+color.z*BLUE_COEFFICIENT;}vec3 XYZtoLAB(vec3 c){vec3 n=abs(c)/vec3(95.047,100,108.883),v;v.x=n.x>.008856?pow(n.x,1./3.):7.787*n.x+16./116.;v.y=n.y>.008856?pow(n.y,1./3.):7.787*n.y+16./116.;v.z=n.z>.008856?pow(n.z,1./3.):7.787*n.z+16./116.;return vec3(116.*v.y-16.,5e2*(v.x-v.y),2e2*(v.y-v.z));}vec3 RGBtoXYZ(vec3 c){vec3 tmp;c=abs(c);tmp.x=c.x>.04045?pow((c.x+.055)/1.055,2.4):c.x/12.92;tmp.y=c.y>.04045?pow((c.y+.055)/1.055,2.4):c.y/12.92,tmp.z=c.z>.04045?pow((c.z+.055)/1.055,2.4):c.z/12.92;const mat3 mat=mat3(.4124,.3576,.1805,.2126,.7152,.0722,.0193,.1192,.9505);return tmp*transpose(mat)*1e2;}vec3 RGBtoLAB(vec3 c){vec3 lab=XYZtoLAB(RGBtoXYZ(c));return vec3(lab.x/1e2,.5+.5*(lab.y/127.),.5+.5*(lab.z/127.));}vec3 HSVtoRGB(vec3 hsv){float h=hsv.x,s=hsv.y,v=hsv.z;const float PI=acos(-1.);vec3 rgb=vec3(v);if(s>0.){h=mod(h+2.*PI,2.*PI);h/=PI/3.;int i=int(floor(h));float f=h-float(i),p=v*(1.-s),q=v*(1.-s*f),t=v*(1.-s*(1.-f));rgb=i==0?vec3(v,t,p):i==1?vec3(q,v,p):i==2?vec3(p,v,t):i==3?vec3(p,q,v):i==4?vec3(t,p,v):vec3(v,p,q);}return rgb;}vec3 heatMap(float value,float lb,float ub){float p=clamp((value-lb)/(ub-lb),0.,1.),r,g,b,h=3.7*(1.-p),s=sqrt(p),v=sqrt(p);return HSVtoRGB(vec3(h,s,v));}vec3 colorRamp(float value){vec3 color;if(value<.25)color.x=0.;else if(value>=.57)color.x=1.;else color.x=value*3.215-.78125;if(value<.42)color.y=0.;else if(value>=.92)color.y=1.;else color.y=2.*value-.84;if(value<0.)color.z=0.;else if(value>1.)color.z=1.;else if(value<.25)color.z=4.*value;else if(value<.42)color.z=1.;else if(value<.92)color.z=-2.*value+1.84;else color.z=value*12.5-11.5;return color;}vec3 colorMap(float value,int mode){vec3 color;if(mode==0);else color=mode==1?clamp(1.5-abs(4.*clamp(value,0.,1.)-vec3(3,2,1)),0.,1.):mode==2?heatMap(value,0.,1.):mode==3?vec3(value):mode==4?colorRamp(value):value>0.?vec3(1):vec3(0);return color;}bool isNaN(float val){return!(val<0.||0.=uTolerance?1.:0.;value.y*=value.y>=uTolerance?1.:0.;value.z*=value.z>=uTolerance?1.:0.;value*=uMultiplier;float error=RGBtoLuma(value),fade=0.;if(uShowColorMap!=0){vec2 paletteCorner=vec2(uShowColorMap==1||uShowColorMap==3?0.:1.,uShowColorMap==1||uShowColorMap==2?0.:1.);float kPaletteEdgeWidth=2.,kPaletteLength=float(min(dimensions.x,dimensions.y))*.1,kPaletteWidth=kPaletteLength/5.;vec2 kPaletteCenter=abs(vec2(float(dimensions.x),float(dimensions.y))*paletteCorner-vec2(kPaletteWidth*5.,kPaletteLength*2.)),paletteVec=vec2(loc2d)-vec2(float(kPaletteCenter.x),float(kPaletteCenter.y)),paletteDim=vec2(kPaletteWidth,kPaletteLength);bool bInside=abs(paletteVec.x)=0&&tap.x=0&&tap.y0.){h=mod(h+2.*PI,2.*PI);h/=PI/3.;int i=int(floor(h));float f=h-float(i),p=v*(1.-s),q=v*(1.-s*f),t=v*(1.-s*(1.-f));rgb=i==0?vec3(v,t,p):i==1?vec3(q,v,p):i==2?vec3(p,v,t):i==3?vec3(p,q,v):i==4?vec3(t,p,v):vec3(v,p,q);}return rgb;}vec3 heatMap(float value,float lb,float ub){float p=clamp((value-lb)/(ub-lb),0.,1.),h=3.7*(1.-p),s=sqrt(p),v=sqrt(p);return HSVtoRGB(vec3(h,s,v));}vec3 colorRamp(float value){vec3 color;if(value<.25)color.x=0.;else if(value>=.57)color.x=1.;else color.x=value*3.215-.78125;if(value<.42)color.y=0.;else if(value>=.92)color.y=1.;else color.y=2.*value-.84;if(value<0.)color.z=0.;else if(value>1.)color.z=1.;else if(value<.25)color.z=4.*value;else if(value<.42)color.z=1.;else if(value<.92)color.z=-2.*value+1.84;else color.z=value*12.5-11.5;return color;}vec3 colorMap(float value,int mode){vec3 color;if(mode==0);else color=mode==1?clamp(1.5-abs(4.*clamp(value,0.,1.)-vec3(3,2,1)),0.,1.):mode==2?heatMap(value,0.,1.):mode==3?vec3(value):mode==4?colorRamp(value):value>0.?vec3(1):vec3(0);return color;}float lerp(float a,float b,float v){v=clamp(v,0.,1.);return a*(1.-v)+b*v;}vec3 lerp(vec3 a,vec3 b,float v){v=clamp(v,0.,1.);return a*(1.-v)+b*v;}\n#define KERNELWIDTH 11\nfloat psnr(ivec2 loc2d,float sigma,float invGamma,float exposure){const int kKernelWidth=KERNELWIDTH;float mse=0.;vec3 color_0_max=vec3(0),color_1_max=vec3(0);for(int y=0;y=dimensions.x||pos.y<0||pos.y>=dimensions.y)continue;vec3 c=exposureGamma(texelFetch(texture,loc2d+ivec2(x,y),0),invGamma,exposure).xyz;float luminance=(c.x+c.y+c.z)/3.;G.x+=luminance*kGx[y+1][x+1];G.y+=luminance*kGy[y+1][x+1];}return length(G);}float laplacian(sampler2D texture,ivec2 loc2d,float invGamma,float exposure){float c0=RGBtoLuma(exposureGamma(texelFetch(texture,loc2d,0),invGamma,exposure).xyz),c1=RGBtoLuma(exposureGamma(texelFetch(texture,loc2d+ivec2(-1,0),0),invGamma,exposure).xyz),c2=RGBtoLuma(exposureGamma(texelFetch(texture,loc2d+ivec2(1,0),0),invGamma,exposure).xyz),c3=RGBtoLuma(exposureGamma(texelFetch(texture,loc2d+ivec2(0,-1),0),invGamma,exposure).xyz),c4=RGBtoLuma(exposureGamma(texelFetch(texture,loc2d+ivec2(0,1),0),invGamma,exposure).xyz);return-4.*c0+c1+c2+c3+c4;}float laplacian2(sampler2D texture,ivec2 loc2d,float invGamma,float exposure){float c0=RGBtoLuma(exposureGamma(texelFetch(texture,loc2d+ivec2(-1,-1),0),invGamma,exposure).xyz),c1=RGBtoLuma(exposureGamma(texelFetch(texture,loc2d+ivec2(0,-1),0),invGamma,exposure).xyz),c2=RGBtoLuma(exposureGamma(texelFetch(texture,loc2d+ivec2(1,-1),0),invGamma,exposure).xyz),c3=RGBtoLuma(exposureGamma(texelFetch(texture,loc2d+ivec2(-1,0),0),invGamma,exposure).xyz),c4=RGBtoLuma(exposureGamma(texelFetch(texture,loc2d+ivec2(0,0),0),invGamma,exposure).xyz),c5=RGBtoLuma(exposureGamma(texelFetch(texture,loc2d+ivec2(1,0),0),invGamma,exposure).xyz),c6=RGBtoLuma(exposureGamma(texelFetch(texture,loc2d+ivec2(-1,1),0),invGamma,exposure).xyz),c7=RGBtoLuma(exposureGamma(texelFetch(texture,loc2d+ivec2(0,1),0),invGamma,exposure).xyz),c8=RGBtoLuma(exposureGamma(texelFetch(texture,loc2d+ivec2(1,1),0),invGamma,exposure).xyz);return.25*c0+.5*c1+.25*c2+.5*c3-3.*c4+.5*c5+.25*c6+.5*c7+.25*c8;}float laplacianVariance(sampler2D texture,ivec2 loc2d,int radius,ivec2 dimensions,float invGamma,float exposure){float sum=0.,variance=0.,n=0.;for(int y=-radius;y<=radius;y++)for(int x=-radius;x<=radius;x++){ivec2 pos=loc2d+ivec2(x,y);if(pos.x<0||pos.x>=dimensions.x||pos.y<0||pos.y>=dimensions.y)continue;float value=laplacian(texture,pos,invGamma,exposure);sum+=value;n+=1.;}float mean=sum/n;for(int y=-radius;y<=radius;y++)for(int x=-radius;x<=radius;x++){ivec2 pos=loc2d+ivec2(x,y);if(pos.x<0||pos.x>=dimensions.x||pos.y<0||pos.y>=dimensions.y)continue;float value=laplacian(texture,pos,invGamma,exposure);variance+=pow(value-mean,2.);}variance/=n;return variance;}void main(){ivec2 dimensions=textureSize(uTexture0,0),loc2d=ivec2(vTextureCoord*vec2(dimensions));float invGamma=1./uGamma,exposure=uExposure,value0,value1;if(uType==0)value0=sobel(uTexture0,loc2d,dimensions,invGamma,exposure),value1=sobel(uTexture1,loc2d,dimensions,invGamma,exposure);if(uType==1)value0=laplacian(uTexture0,loc2d,invGamma,exposure),value1=laplacian(uTexture1,loc2d,invGamma,exposure);if(uType==2)value0=laplacian2(uTexture0,loc2d,invGamma,exposure),value1=laplacian2(uTexture1,loc2d,invGamma,exposure);if(uType==3)value0=laplacianVariance(uTexture0,loc2d,uVarianceRadius,dimensions,invGamma,exposure),value1=laplacianVariance(uTexture1,loc2d,uVarianceRadius,dimensions,invGamma,exposure);float value=(value0-value1)*uMultiplier;outColor=vec4(0,0,0,1);if(uOverlay)outColor=exposureGamma(texelFetch(uTexture0,loc2d,0),invGamma,exposure);if(value>uTolerance)outColor+=vec4(0,value,0,0);else if(value<-uTolerance)outColor+=vec4(-value,0,0,0);}",inputs:2,UI:{uType:{name:"Type",type:"dropdown",value:3,alternatives:["Sobel","Laplacian (five point)","Laplacian (nine point)","Laplacian variance"]},uVarianceRadius:{name:"Radius",type:"int",value:3,min:1,max:25,condition:"uType == 3"},uMultiplier:{name:"Multiplier",type:"float",value:3,min:1,max:100,step:.5},uTolerance:{name:"Tolerance",type:"float",value:0,min:0,max:10,step:.1},uOverlay:{name:"Overlay",type:"bool",value:!0}}};const qe={id:"sobel",inputIds:[],name:"Sobel",source:"#version 300 es\nprecision highp float;uniform vec2 uMouse;uniform float uTime,uFrame;uniform int uType;uniform bool uX,uY,uAngle;uniform int uVarianceRadius;uniform float uMultiplier;uniform int uTonemapper;uniform float uGamma,uExposure;uniform sampler2D uTexture0;in vec2 vTextureCoord;out vec4 outColor;vec4 exposureGamma(vec4 txl,float invGamma,float exposure){if(uTonemapper==0)txl.x=exposure*pow(txl.x,invGamma),txl.y=exposure*pow(txl.y,invGamma),txl.z=exposure*pow(txl.z,invGamma);return txl;}float RGBtoLuma(vec3 color){const float RED_COEFFICIENT=.212655,GREEN_COEFFICIENT=.715158,BLUE_COEFFICIENT=.072187;return color.x*RED_COEFFICIENT+color.y*GREEN_COEFFICIENT+color.z*BLUE_COEFFICIENT;}float laplacian(ivec2 loc2d,float invGamma,float exposure){float c0=RGBtoLuma(exposureGamma(texelFetch(uTexture0,loc2d,0),invGamma,exposure).xyz),c1=RGBtoLuma(exposureGamma(texelFetch(uTexture0,loc2d+ivec2(-1,0),0),invGamma,exposure).xyz),c2=RGBtoLuma(exposureGamma(texelFetch(uTexture0,loc2d+ivec2(1,0),0),invGamma,exposure).xyz),c3=RGBtoLuma(exposureGamma(texelFetch(uTexture0,loc2d+ivec2(0,-1),0),invGamma,exposure).xyz),c4=RGBtoLuma(exposureGamma(texelFetch(uTexture0,loc2d+ivec2(0,1),0),invGamma,exposure).xyz);return-4.*c0+c1+c2+c3+c4;}float laplacian2(ivec2 loc2d,float invGamma,float exposure){float c0=RGBtoLuma(exposureGamma(texelFetch(uTexture0,loc2d+ivec2(-1,-1),0),invGamma,exposure).xyz),c1=RGBtoLuma(exposureGamma(texelFetch(uTexture0,loc2d+ivec2(0,-1),0),invGamma,exposure).xyz),c2=RGBtoLuma(exposureGamma(texelFetch(uTexture0,loc2d+ivec2(1,-1),0),invGamma,exposure).xyz),c3=RGBtoLuma(exposureGamma(texelFetch(uTexture0,loc2d+ivec2(-1,0),0),invGamma,exposure).xyz),c4=RGBtoLuma(exposureGamma(texelFetch(uTexture0,loc2d+ivec2(0,0),0),invGamma,exposure).xyz),c5=RGBtoLuma(exposureGamma(texelFetch(uTexture0,loc2d+ivec2(1,0),0),invGamma,exposure).xyz),c6=RGBtoLuma(exposureGamma(texelFetch(uTexture0,loc2d+ivec2(-1,1),0),invGamma,exposure).xyz),c7=RGBtoLuma(exposureGamma(texelFetch(uTexture0,loc2d+ivec2(0,1),0),invGamma,exposure).xyz),c8=RGBtoLuma(exposureGamma(texelFetch(uTexture0,loc2d+ivec2(1,1),0),invGamma,exposure).xyz);return.25*c0+.5*c1+.25*c2+.5*c3-3.*c4+.5*c5+.25*c6+.5*c7+.25*c8;}float laplacianVariance(ivec2 loc2d,int radius,ivec2 dimensions,float invGamma,float exposure){float sum=0.,variance=0.,n=0.;for(int y=-radius;y<=radius;y++)for(int x=-radius;x<=radius;x++){ivec2 pos=loc2d+ivec2(x,y);if(pos.x<0||pos.x>=dimensions.x||pos.y<0||pos.y>=dimensions.y)continue;float value=laplacian(pos,invGamma,exposure);sum+=value;n+=1.;}float mean=sum/n;for(int y=-radius;y<=radius;y++)for(int x=-radius;x<=radius;x++){ivec2 pos=loc2d+ivec2(x,y);if(pos.x<0||pos.x>=dimensions.x||pos.y<0||pos.y>=dimensions.y)continue;float value=laplacian(pos,invGamma,exposure);variance+=pow(value-mean,2.);}variance/=n;return variance;}void main(){ivec2 dimensions=textureSize(uTexture0,0),loc2d=ivec2(vTextureCoord*vec2(dimensions));float invGamma=1./uGamma,exposure=uExposure;const float Pi=acos(-1.),TwoDivPi=2./Pi;const mat3 kGx=mat3(-1.,0.,1.,-2.,0.,2.,-1.,0.,1.),kGy=mat3(-1.,-2.,-1.,0.,0.,0.,1.,2.,1.);vec4 colorSum=vec4(0,0,0,1);float kernelSum=0.;if(uType==1){float laplacian=laplacian(loc2d,invGamma,exposure)*uMultiplier;outColor=vec4(laplacian,laplacian,laplacian,1);return;}if(uType==2){float laplacian=laplacian2(loc2d,invGamma,exposure)*uMultiplier;outColor=vec4(laplacian,laplacian,laplacian,1);return;}if(uType==3){float laplacianVariance=laplacianVariance(loc2d,uVarianceRadius,dimensions,invGamma,exposure)*uMultiplier;outColor=vec4(laplacianVariance,laplacianVariance,laplacianVariance,1);return;}vec3 G=vec3(0);for(int y=-1;y<=1;y++)for(int x=-1;x<=1;x++){ivec2 pos=loc2d+ivec2(x,y);if(pos.x<0||pos.x>=dimensions.x||pos.y<0||pos.y>=dimensions.y)continue;vec3 c=exposureGamma(texelFetch(uTexture0,loc2d+ivec2(x,y),0),invGamma,exposure).xyz;float luminance=(c.x+c.y+c.z)/3.;if(uX)G.x+=luminance*kGx[y+1][x+1];if(uY)G.y+=luminance*kGy[y+1][x+1];}if(uAngle){float angle=atan(G.y/G.x)*TwoDivPi;outColor=vec4(angle>0.?angle:0.,angle<0.?-angle:0.,0,1);}else{float value=length(G);outColor=vec4(value,value,value,1);}}",inputs:1,UI:{uType:{name:"Type",type:"dropdown",value:0,alternatives:["Sobel","Laplacian (five point)","Laplacian (nine point)","Laplacian variance"]},uX:{name:"X",type:"bool",value:!0,condition:"uType == 0"},uY:{name:"Y",type:"bool",value:!0,sameLine:!0,condition:"uType == 0"},uAngle:{name:"Show angle",type:"bool",value:!1,condition:"uType == 0"},uVarianceRadius:{name:"Radius",type:"int",value:3,min:1,max:25,condition:"uType == 3"},uMultiplier:{name:"Multiplier",type:"float",value:10,min:1,max:100,step:.5,condition:"uType == 1,2,3"}}};const Ze={id:"ssim",inputIds:[],name:"SSIM",source:"#version 300 es\nprecision highp float;uniform vec2 uMouse;uniform float uTime,uFrame;uniform int uMode;uniform float uC1,uC2,uC3,uSigma,uWeightLuminance,uWeightContrast,uWeightStructure;uniform bool uInvert;uniform int uColorMode,uShowColorMap,uTonemapper;uniform float uGamma,uExposure;uniform sampler2D uTexture0,uTexture1;in vec2 vTextureCoord;out vec4 outColor;vec4 exposureGamma(vec4 txl,float invGamma,float exposure){if(uTonemapper==0)txl.x=exposure*pow(txl.x,invGamma),txl.y=exposure*pow(txl.y,invGamma),txl.z=exposure*pow(txl.z,invGamma);return txl;}float RGBtoLuma(vec3 color){const float RED_COEFFICIENT=.212655,GREEN_COEFFICIENT=.715158,BLUE_COEFFICIENT=.072187;return color.x*RED_COEFFICIENT+color.y*GREEN_COEFFICIENT+color.z*BLUE_COEFFICIENT;}vec3 HSVtoRGB(vec3 hsv){float h=hsv.x,s=hsv.y,v=hsv.z;const float PI=acos(-1.);vec3 rgb=vec3(v);if(s>0.){h=mod(h+2.*PI,2.*PI);h/=PI/3.;int i=int(floor(h));float f=h-float(i),p=v*(1.-s),q=v*(1.-s*f),t=v*(1.-s*(1.-f));rgb=i==0?vec3(v,t,p):i==1?vec3(q,v,p):i==2?vec3(p,v,t):i==3?vec3(p,q,v):i==4?vec3(t,p,v):vec3(v,p,q);}return rgb;}vec3 heatMap(float value,float lb,float ub){float p=clamp((value-lb)/(ub-lb),0.,1.),r,g,b,h=3.7*(1.-p),s=sqrt(p),v=sqrt(p);return HSVtoRGB(vec3(h,s,v));}vec3 colorRamp(float value){vec3 color;if(value<.25)color.x=0.;else if(value>=.57)color.x=1.;else color.x=value*3.215-.78125;if(value<.42)color.y=0.;else if(value>=.92)color.y=1.;else color.y=2.*value-.84;if(value<0.)color.z=0.;else if(value>1.)color.z=1.;else if(value<.25)color.z=4.*value;else if(value<.42)color.z=1.;else if(value<.92)color.z=-2.*value+1.84;else color.z=value*12.5-11.5;return color;}vec3 colorMap(float value,int mode){vec3 color;if(mode==0);else color=mode==1?clamp(1.5-abs(4.*clamp(value,0.,1.)-vec3(3,2,1)),0.,1.):mode==2?heatMap(value,0.,1.):mode==3?vec3(value):mode==4?colorRamp(value):value>0.?vec3(1):vec3(0);return color;}bool isNaN(float val){return!(val<0.||0.t in e?at(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,ct=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},ht=(e,t,i)=>(ct(e,t,"read from private field"),i?i.call(e):t.get(e)),ut=(e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)},mt=(e,t,i,n)=>(ct(e,t,"write to private field"),n?n.call(e,i):t.set(e,i),i),pt=(e,t,i)=>(ct(e,t,"access private method"),i),gt=new Uint8Array(8),bt=new DataView(gt.buffer),vt=e=>[(e%256+256)%256],ft=e=>(bt.setUint16(0,e,!1),[gt[0],gt[1]]),yt=e=>(bt.setUint32(0,e,!1),[gt[1],gt[2],gt[3]]),xt=e=>(bt.setUint32(0,e,!1),[gt[0],gt[1],gt[2],gt[3]]),wt=e=>(bt.setUint8(0,e),bt.setUint8(1,e<<8),[gt[0],gt[1]]),kt=e=>(bt.setUint16(0,e,!1),bt.setUint16(2,e<<16,!1),[gt[0],gt[1],gt[2],gt[3]]),zt=(e,t=!1)=>{let i=Array(e.length).fill(null).map(((t,i)=>e.charCodeAt(i)));return t&&i.push(0),i},St=e=>e&&e[e.length-1],Mt=(e,t,i=!0)=>{let n=e*t;return i?Math.round(n):n},Ct=[65536,0,0,0,65536,0,0,0,1073741824].map(xt),jt=(e,t,i)=>({type:e,contents:t&&new Uint8Array(t.flat(10)),children:i}),Lt=(e,t,i,n,a)=>jt(e,[vt(t),yt(i),null!=n?n:[]],a),Et=(e,t)=>{let i=Mt(Math.max(0,...t.filter((e=>e.samples.length>0)).map((e=>St(e.samples).timestamp+St(e.samples).duration))),Ki),n=Math.max(...t.map((e=>e.id)))+1;return Lt("mvhd",0,0,[xt(e),xt(e),xt(Ki),xt(i),kt(1),wt(1),Array(10).fill(0),Ct,Array(24).fill(0),xt(n)])},_t=(e,t)=>jt("trak",null,[It(e,t),Tt(e,t)]),It=(e,t)=>{let i=St(e.samples),n=Mt(i?i.timestamp+i.duration:0,Ki);return Lt("tkhd",0,3,[xt(t),xt(t),xt(e.id),xt(0),xt(n),Array(8).fill(0),ft(0),ft(0),wt("audio"===e.info.type?1:0),ft(0),Ct,kt("video"===e.info.type?e.info.width:0),kt("video"===e.info.type?e.info.height:0)])},Tt=(e,t)=>jt("mdia",null,[Pt(e,t),Ft("video"===e.info.type?"vide":"soun"),At(e)]),Pt=(e,t)=>{let i=St(e.samples),n=Mt(i?i.timestamp+i.duration:0,e.timescale);return Lt("mdhd",0,0,[xt(t),xt(t),xt(e.timescale),xt(n),ft(21956),ft(0)])},Ft=e=>Lt("hdlr",0,0,[zt("mhlr"),zt(e),xt(0),xt(0),xt(0),zt("mp4-muxer-hdlr")]),At=e=>jt("minf",null,["video"===e.info.type?Rt():Gt(),Bt(),Dt(e)]),Rt=()=>Lt("vmhd",0,1,[ft(0),ft(0),ft(0),ft(0)]),Gt=()=>Lt("smhd",0,0,[ft(0),ft(0)]),Bt=()=>jt("dinf",null,[Vt()]),Vt=()=>Lt("dref",0,0,[xt(1)],[Nt()]),Nt=()=>Lt("url ",0,1),Dt=e=>jt("stbl",null,[Ot(e),Ut(e),Wt(e),Kt(e),qt(e),Zt(e)]),Ot=e=>Lt("stsd",0,0,[xt(1)],["video"===e.info.type?Ht(Yt[e.info.codec],e):$t(Jt[e.info.codec],e)]),Ht=(e,t)=>{return jt(e,[Array(6).fill(0),ft(1),ft(0),ft(0),Array(12).fill(0),ft(t.info.width),ft(t.info.height),xt(4718592),xt(4718592),xt(0),ft(1),Array(32).fill(0),ft(24),(i=65535,bt.setInt16(0,i,!1),[gt[0],gt[1]])],[Xt[t.info.codec](t)]);var i},$t=(e,t)=>jt(e,[Array(6).fill(0),ft(1),ft(0),ft(0),xt(0),ft(t.info.numberOfChannels),ft(16),ft(0),ft(0),kt(t.info.sampleRate)],[Qt[t.info.codec](t)]),Ut=e=>Lt("stts",0,0,[xt(e.timeToSampleTable.length),e.timeToSampleTable.map((e=>[xt(e.sampleCount),xt(e.sampleDelta)]))]),Wt=e=>{if(e.samples.every((e=>"key"===e.type)))return null;let t=[...e.samples.entries()].filter((([,e])=>"key"===e.type));return Lt("stss",0,0,[xt(t.length),t.map((([e])=>xt(e+1)))])},Kt=e=>Lt("stsc",0,0,[xt(e.compactlyCodedChunkTable.length),e.compactlyCodedChunkTable.map((e=>[xt(e.firstChunk),xt(e.samplesPerChunk),xt(1)]))]),qt=e=>Lt("stsz",0,0,[xt(0),xt(e.samples.length),e.samples.map((e=>xt(e.size)))]),Zt=e=>e.writtenChunks.length>0&&St(e.writtenChunks).offset>=lt(2,32)?Lt("co64",0,0,[xt(e.writtenChunks.length),e.writtenChunks.map((e=>{return t=e.offset,bt.setUint32(0,Math.floor(t/lt(2,32)),!1),bt.setUint32(4,t,!1),[gt[0],gt[1],gt[2],gt[3],gt[4],gt[5],gt[6],gt[7]];var t}))]):Lt("stco",0,0,[xt(e.writtenChunks.length),e.writtenChunks.map((e=>xt(e.offset)))]),Yt={avc:"avc1",hevc:"hvc1",vp9:"vp09",av1:"av01"},Xt={avc:e=>e.codecPrivate&&jt("avcC",[...e.codecPrivate]),hevc:e=>e.codecPrivate&&jt("hvcC",[...e.codecPrivate]),vp9:e=>e.codecPrivate&&jt("vpcC",[...e.codecPrivate]),av1:e=>e.codecPrivate&&jt("av1C",[...e.codecPrivate])},Jt={aac:"mp4a",opus:"opus"},Qt={aac:e=>Lt("esds",0,0,[xt(58753152),vt(32+e.codecPrivate.byteLength),ft(1),vt(0),xt(75530368),vt(18+e.codecPrivate.byteLength),vt(64),vt(21),yt(0),xt(130071),xt(130071),xt(92307584),vt(e.codecPrivate.byteLength),...e.codecPrivate,xt(109084800),vt(1),vt(2)]),opus:e=>jt("dOps",[vt(0),vt(e.info.numberOfChannels),ft(3840),xt(e.info.sampleRate),wt(0),vt(0)])},ei=class{constructor(){this.buffer=null}},ti=class{constructor(e,t,i){this.onData=e,this.onDone=t,this.options=i}},ii=class{constructor(e,t){this.stream=e,this.options=t}},ni=class{constructor(){this.pos=0,ut(this,Xe,new Uint8Array(8)),ut(this,Je,new DataView(ht(this,Xe).buffer)),this.offsets=new WeakMap}seek(e){this.pos=e}writeU32(e){ht(this,Je).setUint32(0,e,!1),this.write(ht(this,Xe).subarray(0,4))}writeU64(e){ht(this,Je).setUint32(0,Math.floor(e/lt(2,32)),!1),ht(this,Je).setUint32(4,e,!1),this.write(ht(this,Xe).subarray(0,8))}writeAscii(e){for(let t=0;te.start-t.start));e.push({start:t[0].start,size:t[0].data.byteLength});for(let i=1;ie.start<=t&&t2){for(let e=0;e=e.written[a+1].start;)e.written[a].end=Math.max(e.written[a].end,e.written[a+1].end),e.written.splice(a+1,1)},gi=new WeakSet,bi=function(e){let t={start:Math.floor(e/ht(this,di))*ht(this,di),data:new Uint8Array(ht(this,di)),written:[],shouldFlush:!1};return ht(this,ci).push(t),ht(this,ci).sort(((e,t)=>e.start-t.start)),ht(this,ci).indexOf(t)},vi=new WeakSet,fi=function(e=!1){for(let t=0;te.stream.write({type:"write",data:t,position:i})),void 0,{chunkSize:null==(t=e.options)?void 0:t.chunkSize}))}},Ki=1e3,qi=["avc","hevc","vp9","av1"],Zi=["aac","opus"],Yi=["strict","offset"],Xi=class{constructor(e){var t;if(ut(this,Li),ut(this,_i),ut(this,Ti),ut(this,Fi),ut(this,Ri),ut(this,Bi),ut(this,Ni),ut(this,Oi),ut(this,$i),ut(this,wi,void 0),ut(this,ki,void 0),ut(this,zi,void 0),ut(this,Si,null),ut(this,Mi,null),ut(this,Ci,Math.floor(Date.now()/1e3)+2082844800),ut(this,ji,!1),pt(this,Li,Ei).call(this,e),this.target=e.target,mt(this,wi,((e,t)=>{for(var i in t||={})ot.call(t,i)&&dt(e,i,t[i]);if(st)for(var i of st(t))rt.call(t,i)&&dt(e,i,t[i]);return e})({firstTimestampBehavior:"strict"},e)),e.target instanceof ei)mt(this,ki,new oi(e.target));else if(e.target instanceof ti)mt(this,ki,(null==(t=e.target.options)?void 0:t.chunked)?new xi(e.target):new ri(e.target));else{if(!(e.target instanceof ii))throw new Error(`Invalid target: ${e.target}`);mt(this,ki,new Wi(e.target))}pt(this,_i,Ii).call(this),pt(this,Ti,Pi).call(this)}addVideoChunk(e,t,i){let n=new Uint8Array(e.byteLength);e.copyTo(n),this.addVideoChunkRaw(n,e.type,null!=i?i:e.timestamp,e.duration,t)}addVideoChunkRaw(e,t,i,n,a){if(pt(this,$i,Ui).call(this),!ht(this,wi).video)throw new Error("No video track declared.");pt(this,Ri,Gi).call(this,ht(this,Si),e,t,i,n,a)}addAudioChunk(e,t,i){let n=new Uint8Array(e.byteLength);e.copyTo(n),this.addAudioChunkRaw(n,e.type,null!=i?i:e.timestamp,e.duration,t)}addAudioChunkRaw(e,t,i,n,a){if(pt(this,$i,Ui).call(this),!ht(this,wi).audio)throw new Error("No audio track declared.");pt(this,Ri,Gi).call(this,ht(this,Mi),e,t,i,n,a)}finalize(){ht(this,Si)&&pt(this,Ni,Di).call(this,ht(this,Si)),ht(this,Mi)&&pt(this,Ni,Di).call(this,ht(this,Mi));let e=ht(this,ki).offsets.get(ht(this,zi)),t=ht(this,ki).pos-e;ht(this,zi).size=t,ht(this,ki).patchBox(ht(this,zi));let i=(n=[ht(this,Si),ht(this,Mi)].filter(Boolean),a=ht(this,Ci),jt("moov",null,[Et(a,n),...n.map((e=>_t(e,a)))]));var n,a;ht(this,ki).writeBox(i),pt(this,Oi,Hi).call(this),ht(this,ki).finalize(),mt(this,ji,!0)}};wi=new WeakMap,ki=new WeakMap,zi=new WeakMap,Si=new WeakMap,Mi=new WeakMap,Ci=new WeakMap,ji=new WeakMap,Li=new WeakSet,Ei=function(e){if(e.video&&!qi.includes(e.video.codec))throw new Error(`Unsupported video codec: ${e.video.codec}`);if(e.audio&&!Zi.includes(e.audio.codec))throw new Error(`Unsupported audio codec: ${e.audio.codec}`);if(e.firstTimestampBehavior&&!Yi.includes(e.firstTimestampBehavior))throw new Error(`Invalid first timestamp behavior: ${e.firstTimestampBehavior}`)},_i=new WeakSet,Ii=function(){var e;let t="hevc"===(null==(e=ht(this,wi).video)?void 0:e.codec);ht(this,ki).writeBox((e=>jt("ftyp",e?[zt("isom"),xt(0),zt("iso4"),zt("hvc1")]:[zt("isom"),xt(0),zt("isom"),zt("avc1"),zt("mp41")]))(t)),mt(this,zi,{type:"mdat",largeSize:!0}),ht(this,ki).writeBox(ht(this,zi)),pt(this,Oi,Hi).call(this)},Ti=new WeakSet,Pi=function(){if(ht(this,wi).video&&mt(this,Si,{id:1,info:{type:"video",codec:ht(this,wi).video.codec,width:ht(this,wi).video.width,height:ht(this,wi).video.height},timescale:720,codecPrivate:new Uint8Array(0),samples:[],writtenChunks:[],currentChunk:null,firstTimestamp:void 0,lastTimestamp:-1,timeToSampleTable:[],lastTimescaleUnits:null,compactlyCodedChunkTable:[]}),ht(this,wi).audio){let e=pt(this,Fi,Ai).call(this,2,ht(this,wi).audio.sampleRate,ht(this,wi).audio.numberOfChannels);mt(this,Mi,{id:ht(this,wi).video?2:1,info:{type:"audio",codec:ht(this,wi).audio.codec,numberOfChannels:ht(this,wi).audio.numberOfChannels,sampleRate:ht(this,wi).audio.sampleRate},timescale:ht(this,wi).audio.sampleRate,codecPrivate:e,samples:[],writtenChunks:[],currentChunk:null,firstTimestamp:void 0,lastTimestamp:-1,timeToSampleTable:[],lastTimescaleUnits:null,compactlyCodedChunkTable:[]})}},Fi=new WeakSet,Ai=function(e,t,i){let n=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350].indexOf(t),a=i,s="";s+=e.toString(2).padStart(5,"0"),s+=n.toString(2).padStart(4,"0"),15===n&&(s+=t.toString(2).padStart(24,"0")),s+=a.toString(2).padStart(4,"0");let o=8*Math.ceil(s.length/8);s=s.padEnd(o,"0");let r=new Uint8Array(s.length/8);for(let e=0;e=.5)&&(e.currentChunk&&pt(this,Ni,Di).call(this,e),e.currentChunk={startTimestamp:r,sampleData:[],sampleCount:0}),e.currentChunk.sampleData.push(t),e.currentChunk.sampleCount++,(null==(o=null==s?void 0:s.decoderConfig)?void 0:o.description)&&(e.codecPrivate=new Uint8Array(s.decoderConfig.description)),e.samples.push({timestamp:r,duration:l,size:t.byteLength,type:i}),null!==e.lastTimescaleUnits){let t=Mt(r,e.timescale,!1),i=Math.round(t-e.lastTimescaleUnits);e.lastTimescaleUnits+=i;let n=St(e.timeToSampleTable);1===n.sampleCount?(n.sampleDelta=i,n.sampleCount++):n.sampleDelta===i?n.sampleCount++:(n.sampleCount--,e.timeToSampleTable.push({sampleCount:2,sampleDelta:i}))}else e.lastTimescaleUnits=0,e.timeToSampleTable.push({sampleCount:1,sampleDelta:Mt(l,e.timescale)})},Bi=new WeakSet,Vi=function(e,t){if("strict"===ht(this,wi).firstTimestampBehavior&&-1===t.lastTimestamp&&0!==e)throw new Error(`The first chunk for your media track must have a timestamp of 0 (received ${e}). Non-zero first timestamps are often caused by directly piping frames or audio data from a MediaStreamTrack into the encoder. Their timestamps are typically relative to the age of the document, which is probably what you want.\n\nIf you want to offset all timestamps of a track such that the first one is zero, set firstTimestampBehavior: 'offset' in the options.\n`);if("offset"===ht(this,wi).firstTimestampBehavior&&(e-=t.firstTimestamp),e{const i=ke(e.path||e.webkitdirectory||e.name),n={id:h(),src:l.getUrl(e)||"",base:e.name,path:i.path,extension:i.ext,width:0,height:0,size:e.size,modified:new Date(e.lastModified).getTime(),created:new Date(e.lastModified).getTime(),displayWidth:95,x:0,y:0,visible:!0,type:"overlay"},a=new Image;a.onload=()=>{n.width=a.naturalWidth||a.width,n.height=a.naturalHeight||a.height,a.onload=null,a.onerror=null,a.src="",t({data:n,file:e})},a.onerror=()=>{a.onload=null,a.onerror=null,a.src="";try{URL.revokeObjectURL(n.src)}catch(e){}t(`Could not load logo ${e.name}`)},a.src=n.src}))}class nn extends HTMLElement{j=!0;get isEmbed(){return this.j}set isEmbed(e){this.j=e,this.shadowRoot.getElementById("top-bar").setAttribute("data-is-embed",e.toString())}L="";get packageType(){return this.L}set packageType(e){const t=le(e,["external","internal"],"external");this.L=t,this.shadowRoot.getElementById("top-bar").setAttribute("data-package",t)}constructor(){super(),i(this,a('