Compare commits

...

22 Commits

Author SHA1 Message Date
dce76bb0f4 Remove useRandomMatrix 2020-12-17 10:10:47 +00:00
d6c178f9dc Tweaking wp2 options 2020-12-15 10:32:20 +00:00
c3d05e0e2d Merge pull request #892 from XhmikosR/gitignore 2020-12-10 14:00:56 +00:00
0c848a33ad Merge branch 'dev' into gitignore 2020-12-10 13:49:38 +00:00
57357f5c8d Merge pull request #894 from fernap3/validate-input-files
Validate that input files exist before attempting to process them
2020-12-10 13:22:11 +00:00
6bfd1f2c29 Merge branch 'dev' into validate-input-files 2020-12-10 13:18:41 +00:00
8b20aa5f14 Merge branch 'dev' into gitignore 2020-12-10 13:11:45 +00:00
81e171e684 Merge pull request #891 from kurtextrem/patch-1
Fix typo
2020-12-10 13:06:52 +00:00
7b4dbbfe2d Merge branch 'dev' into patch-1 2020-12-10 13:03:27 +00:00
a972dfdeed Update .gitignore 2020-12-10 14:29:53 +02:00
f190ca6069 Merge branch 'dev' into validate-input-files 2020-12-10 12:26:54 +00:00
adb2f7ed50 Use real font. Fixes #895 2020-12-10 10:45:43 +00:00
d6de741ddc Copying over old sw-bridge
This is from the webpack build, but the old build failed to make this file work offline. It's the file that handles the "update available" stuff, which is why users using the old version aren't seeing the UI update. We can remove this file once everyone's off the old version.
2020-12-10 10:33:56 +00:00
b5f708a1e6 Fix formatting 2020-12-09 17:17:31 -05:00
15248bf85a Validate that input files exist before attempting to process them 2020-12-09 17:14:43 -05:00
5d691af8a1 Simpler fallback 2020-12-09 22:03:34 +00:00
722f1c806c Correct service worker name 2020-12-09 21:54:08 +00:00
522449adc1 Add .DS_Store to .gitignore. 2020-12-09 22:35:41 +02:00
07b4e53718 Fix typo 2020-12-09 19:15:12 +01:00
c6e6042726 Merge branch 'plan-b' into dev 2020-12-09 17:33:54 +00:00
94b9d08719 Update SIMD token (#889) 2020-12-09 16:26:30 +00:00
064b152e2a CLI v0.6.0 2020-12-09 16:06:58 +00:00
31 changed files with 258 additions and 72 deletions

1
.gitignore vendored
View File

@ -4,6 +4,7 @@ node_modules
*.css.d.ts
build
*.o
.DS_Store
# Auto-generated by lib/feature-plugin.js
src/features-worker/index.ts

BIN
cli/.DS_Store vendored

Binary file not shown.

1
cli/.gitignore vendored
View File

@ -1,2 +1,3 @@
node_modules
build
.DS_Store

View File

@ -47,7 +47,7 @@ The default values for each `config` option can be found in the [`codecs.js`][co
Squoosh CLI has an _experimental_ auto optimizer that compresses an image as much as possible, trying to hit a specific [Butteraugli] target value. The higher the Butteraugli target value, the more artifacts can be introduced.
You can make use of the auto optimizer buy using “auto” as the config object.
You can make use of the auto optimizer by using “auto” as the config object.
```
$ npx @squoosh/cli --wp2 auto test.png

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

2
cli/package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "@squoosh/cli",
"version": "0.5.0",
"version": "0.6.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@ -1,6 +1,6 @@
{
"name": "@squoosh/cli",
"version": "0.5.0",
"version": "0.6.0",
"description": "A CLI for Squoosh",
"public": true,
"bin": {

View File

@ -4,6 +4,7 @@ import { isMainThread } from 'worker_threads';
import { cpus } from 'os';
import { extname, join, basename } from 'path';
import { promises as fsp } from 'fs';
import { resolve as resolvePath } from 'path';
import { version } from 'json:../package.json';
import ora from 'ora';
import kleur from 'kleur';
@ -182,7 +183,32 @@ function progressTracker(results) {
return tracker;
}
async function checkInputFilesValid(files) {
const validFiles = [];
for (const file of files) {
try {
await fsp.stat(file);
} catch (err) {
if (err.code === 'ENOENT') {
console.warn(
`Warning: Input file does not exist: ${resolvePath(file)}`,
);
continue;
} else {
throw err;
}
}
validFiles.push(file);
}
return validFiles;
}
async function processFiles(files) {
files = await checkInputFilesValid(files);
const parallelism = cpus().length;
const results = new Map();

File diff suppressed because one or more lines are too long

BIN
codecs/wp2/dec/wp2_dec.wasm Normal file → Executable file

Binary file not shown.

Binary file not shown.

View File

@ -17,7 +17,7 @@ struct WP2Options {
float sns;
int csp_type;
int error_diffusion;
bool use_random_matrix;
int tile_shape;
};
val encode(std::string image_in, int image_width, int image_height, WP2Options options) {
@ -31,7 +31,7 @@ val encode(std::string image_in, int image_width, int image_height, WP2Options o
config.csp_type = static_cast<WP2::Csp>(options.csp_type);
config.sns = options.sns;
config.error_diffusion = options.error_diffusion;
config.use_random_matrix = options.use_random_matrix;
config.tile_shape = static_cast<WP2::TileShape>(options.tile_shape);
uint8_t* image_buffer = (uint8_t*)image_in.c_str();
WP2::ArgbBuffer src = WP2::ArgbBuffer();
@ -62,7 +62,6 @@ EMSCRIPTEN_BINDINGS(my_module) {
.field("uv_mode", &WP2Options::uv_mode)
.field("csp_type", &WP2Options::csp_type)
.field("error_diffusion", &WP2Options::error_diffusion)
.field("use_random_matrix", &WP2Options::use_random_matrix)
.field("sns", &WP2Options::sns);
function("encode", &encode);

View File

@ -7,7 +7,7 @@ export interface EncodeOptions {
uv_mode: UVMode;
csp_type: Csp;
error_diffusion: number;
use_random_matrix: boolean;
tile_shape: TileShape;
}
export const enum UVMode {
@ -24,6 +24,14 @@ export const enum Csp {
kYIQ,
}
export const enum TileShape {
Square128,
Square256,
Square512,
Wide,
Auto,
}
export interface WP2Module extends EmscriptenWasm.Module {
encode(
data: BufferSource,

View File

@ -35,12 +35,12 @@ toWireType:function(m,h){return h?d:e},argPackAdvance:8,readValueFromPointer:fun
toWireType:function(d,e){if("number"!==typeof e&&"boolean"!==typeof e)throw new TypeError('Cannot convert "'+Ua(e)+'" to '+this.name);return e},argPackAdvance:8,readValueFromPointer:Va(b,c),K:null})},m:function(a,b,c,d,e,g){var m=Za(b,c);a=U(a);e=Y(d,e);Ya(a,function(){db("Cannot call "+a+" due to unbound types",m)},b-1);Na([],m,function(h){var k=a,l=a;h=[h[0],null].concat(h.slice(1));var n=e,q=h.length;2>q&&W("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var x=
null!==h[1]&&!1,y=!1,p=1;p<h.length;++p)if(null!==h[p]&&void 0===h[p].K){y=!0;break}var ha="void"!==h[0].name,z="",F="";for(p=0;p<q-2;++p)z+=(0!==p?", ":"")+"arg"+p,F+=(0!==p?", ":"")+"arg"+p+"Wired";l="return function "+Ja(l)+"("+z+") {\nif (arguments.length !== "+(q-2)+") {\nthrowBindingError('function "+l+" called with ' + arguments.length + ' arguments, expected "+(q-2)+" args!');\n}\n";y&&(l+="var destructors = [];\n");var V=y?"destructors":"null";z="throwBindingError invoker fn runDestructors retType classParam".split(" ");
n=[W,n,g,Ga,h[0],h[1]];x&&(l+="var thisWired = classParam.toWireType("+V+", this);\n");for(p=0;p<q-2;++p)l+="var arg"+p+"Wired = argType"+p+".toWireType("+V+", arg"+p+"); // "+h[p+2].name+"\n",z.push("argType"+p),n.push(h[p+2]);x&&(F="thisWired"+(0<F.length?", ":"")+F);l+=(ha?"var rv = ":"")+"invoker(fn"+(0<F.length?", ":"")+F+");\n";if(y)l+="runDestructors(destructors);\n";else for(p=x?1:2;p<h.length;++p)q=1===p?"thisWired":"arg"+(p-2)+"Wired",null!==h[p].K&&(l+=q+"_dtor("+q+"); // "+h[p].name+"\n",
z.push(q+"_dtor"),n.push(h[p].K));ha&&(l+="var ret = retType.fromWireType(rv);\nreturn ret;\n");z.push(l+"}\n");h=Wa(z).apply(null,n);p=b-1;if(!f.hasOwnProperty(k))throw new Ma("Replacing nonexistant public symbol");void 0!==f[k].J&&void 0!==p?f[k].J[p]=h:(f[k]=h,f[k].R=p);return[]})},d:function(a,b,c,d,e){function g(l){return l}b=U(b);-1===e&&(e=4294967295);var m=Oa(c);if(0===d){var h=32-8*c;g=function(l){return l<<h>>>h}}var k=-1!=b.indexOf("unsigned");T(a,{name:b,fromWireType:g,toWireType:function(l,
z.push(q+"_dtor"),n.push(h[p].K));ha&&(l+="var ret = retType.fromWireType(rv);\nreturn ret;\n");z.push(l+"}\n");h=Wa(z).apply(null,n);p=b-1;if(!f.hasOwnProperty(k))throw new Ma("Replacing nonexistant public symbol");void 0!==f[k].J&&void 0!==p?f[k].J[p]=h:(f[k]=h,f[k].R=p);return[]})},c:function(a,b,c,d,e){function g(l){return l}b=U(b);-1===e&&(e=4294967295);var m=Oa(c);if(0===d){var h=32-8*c;g=function(l){return l<<h>>>h}}var k=-1!=b.indexOf("unsigned");T(a,{name:b,fromWireType:g,toWireType:function(l,
n){if("number"!==typeof n&&"boolean"!==typeof n)throw new TypeError('Cannot convert "'+Ua(n)+'" to '+this.name);if(n<d||n>e)throw new TypeError('Passing a number "'+Ua(n)+'" from JS side to C/C++ side to an argument of type "'+b+'", which is outside the valid range ['+d+", "+e+"]!");return k?n>>>0:n|0},argPackAdvance:8,readValueFromPointer:eb(b,m,0!==d),K:null})},b:function(a,b,c){function d(g){g>>=2;var m=K;return new e(I,m[g+1],m[g])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,
Uint32Array,Float32Array,Float64Array][b];c=U(c);T(a,{name:c,fromWireType:d,argPackAdvance:8,readValueFromPointer:d},{X:!0})},k:function(a,b){b=U(b);var c="std::string"===b;T(a,{name:b,fromWireType:function(d){var e=K[d>>2];if(c)for(var g=d+4,m=0;m<=e;++m){var h=d+4+m;if(m==e||0==D[h]){g=C(g,h-g);if(void 0===k)var k=g;else k+=String.fromCharCode(0),k+=g;g=h+1}}else{k=Array(e);for(m=0;m<e;++m)k[m]=String.fromCharCode(D[d+4+m]);k=k.join("")}Z(d);return k},toWireType:function(d,e){e instanceof ArrayBuffer&&
(e=new Uint8Array(e));var g="string"===typeof e;g||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int8Array||W("Cannot pass non-string to std::string");var m=(c&&g?function(){for(var l=0,n=0;n<e.length;++n){var q=e.charCodeAt(n);55296<=q&&57343>=q&&(q=65536+((q&1023)<<10)|e.charCodeAt(++n)&1023);127>=q?++l:l=2047>=q?l+2:65535>=q?l+3:l+4}return l}:function(){return e.length})(),h=nb(4+m+1);K[h>>2]=m;if(c&&g)ia(e,h+4,m+1);else if(g)for(g=0;g<m;++g){var k=e.charCodeAt(g);255<k&&
(Z(h),W("String has UTF-16 code units that do not fit in 8 bits"));D[h+4+g]=k}else for(g=0;g<m;++g)D[h+4+g]=e[g];null!==d&&d.push(Z,h);return h},argPackAdvance:8,readValueFromPointer:Ha,K:function(d){Z(d)}})},f:function(a,b,c){c=U(c);if(2===b){var d=ka;var e=la;var g=ma;var m=function(){return E};var h=1}else 4===b&&(d=na,e=oa,g=pa,m=function(){return K},h=2);T(a,{name:c,fromWireType:function(k){for(var l=K[k>>2],n=m(),q,x=k+4,y=0;y<=l;++y){var p=k+4+y*b;if(y==l||0==n[p>>h])x=d(x,p-x),void 0===q?
q=x:(q+=String.fromCharCode(0),q+=x),x=p+b}Z(k);return q},toWireType:function(k,l){"string"!==typeof l&&W("Cannot pass non-string to C++ string type "+c);var n=g(l),q=nb(4+n+b);K[q>>2]=n>>h;e(l,q+4,n+b);null!==k&&k.push(Z,q);return q},argPackAdvance:8,readValueFromPointer:Ha,K:function(k){Z(k)}})},o:function(a,b,c,d,e,g){Fa[a]={name:U(b),Z:Y(c,d),$:Y(e,g),O:[]}},c:function(a,b,c,d,e,g,m,h,k,l){Fa[a].O.push({S:U(b),W:c,U:Y(d,e),V:g,ga:m,fa:Y(h,k),ha:l})},x:function(a,b){b=U(b);T(a,{ia:!0,name:b,argPackAdvance:0,
q=x:(q+=String.fromCharCode(0),q+=x),x=p+b}Z(k);return q},toWireType:function(k,l){"string"!==typeof l&&W("Cannot pass non-string to C++ string type "+c);var n=g(l),q=nb(4+n+b);K[q>>2]=n>>h;e(l,q+4,n+b);null!==k&&k.push(Z,q);return q},argPackAdvance:8,readValueFromPointer:Ha,K:function(k){Z(k)}})},o:function(a,b,c,d,e,g){Fa[a]={name:U(b),Z:Y(c,d),$:Y(e,g),O:[]}},d:function(a,b,c,d,e,g,m,h,k,l){Fa[a].O.push({S:U(b),W:c,U:Y(d,e),V:g,ga:m,fa:Y(h,k),ha:l})},x:function(a,b){b=U(b);T(a,{ia:!0,name:b,argPackAdvance:0,
fromWireType:function(){},toWireType:function(){}})},i:Sa,A:function(a){if(0===a)return Ta(gb());var b=fb[a];a=void 0===b?U(a):b;return Ta(gb()[a])},l:function(a){4<a&&(X[a].N+=1)},p:function(a,b,c,d){a||W("Cannot use deleted val. handle = "+a);a=X[a].value;var e=ib[b];if(!e){e="";for(var g=0;g<b;++g)e+=(0!==g?", ":"")+"arg"+g;var m="return function emval_allocator_"+b+"(constructor, argTypes, args) {\n";for(g=0;g<b;++g)m+="var argType"+g+" = requireRegisteredType(Module['HEAP32'][(argTypes >>> 2) + "+
g+'], "parameter '+g+'");\nvar arg'+g+" = argType"+g+".readValueFromPointer(args);\nargs += argType"+g+"['argPackAdvance'];\n";e=(new Function("requireRegisteredType","Module","__emval_register",m+("var obj = new constructor("+e+");\nreturn __emval_register(obj);\n}\n")))(hb,f,Ta);ib[b]=e}return e(a,c,d)},g:function(){A()},t:function(a,b,c){D.copyWithin(a,b,b+c)},e:function(a){a>>>=0;var b=D.length;if(2147483648<a)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);d=Math.max(16777216,
a,d);0<d%65536&&(d+=65536-d%65536);a:{try{B.grow(Math.min(2147483648,d)-I.byteLength+65535>>>16);sa(B.buffer);var e=1;break a}catch(g){}e=void 0}if(e)return!0}return!1},u:function(){return 0},r:function(){},h:function(a,b,c,d){for(var e=0,g=0;g<c;g++){for(var m=H[b+8*g>>2],h=H[b+(8*g+4)>>2],k=0;k<h;k++){var l=D[m+k],n=jb[a];if(0===l||10===l){for(l=0;n[l]&&!(NaN<=l);)++l;l=fa.decode(n.subarray?n.subarray(0,l):new Uint8Array(n.slice(0,l)));(1===a?da:v)(l);n.length=0}else n.push(l)}e+=h}H[d>>2]=e;return 0},

BIN
codecs/wp2/enc/wp2_enc.wasm Normal file → Executable file

Binary file not shown.

View File

@ -17,7 +17,7 @@ function Ba(a){return 2*a.length}function Ca(a,b){for(var c=0,d="";!(c>=b/4);){v
function Ea(a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);55296<=d&&57343>=d&&++c;b+=4}return b}var m,aa,ca,da,fa,ha,ia,ka,ma;function p(a){m=a;A.HEAP8=aa=new Int8Array(a);A.HEAP16=da=new Int16Array(a);A.HEAP32=ha=new Int32Array(a);A.HEAPU8=ca=new Uint8Array(a);A.HEAPU16=fa=new Uint16Array(a);A.HEAPU32=ia=new Uint32Array(a);A.HEAPF32=ka=new Float32Array(a);A.HEAPF64=ma=new Float64Array(a)}var Fa=A.INITIAL_MEMORY||16777216;
if(D)k=A.wasmMemory,m=A.buffer;else if(A.wasmMemory)k=A.wasmMemory;else if(k=new WebAssembly.Memory({initial:Fa/65536,maximum:32768,shared:!0}),!(k.buffer instanceof SharedArrayBuffer))throw H("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),Error("bad memory");k&&(m=k.buffer);Fa=m.byteLength;p(m);var L,Ga=[],Ha=[],Ia=[],Ja=[];
function Ka(){var a=A.preRun.shift();Ga.unshift(a)}var N=0,La=null,O=null;A.preloadedImages={};A.preloadedAudios={};function J(a){if(A.onAbort)A.onAbort(a);D&&console.error("Pthread aborting at "+Error().stack);H(a);ua=!0;a=new WebAssembly.RuntimeError("abort("+a+"). Build with -s ASSERTIONS=1 for more info.");oa(a);throw a;}function Ma(){var a=P;return String.prototype.startsWith?a.startsWith("data:application/octet-stream;base64,"):0===a.indexOf("data:application/octet-stream;base64,")}var P="wp2_enc_mt.wasm";
Ma()||(P=qa(P));function Na(){try{if(I)return new Uint8Array(I);if(ra)return ra(P);throw"both async and sync fetching of the wasm failed";}catch(a){J(a)}}function Oa(){return I||"function"!==typeof fetch?Promise.resolve().then(Na):fetch(P,{credentials:"same-origin"}).then(function(a){if(!a.ok)throw"failed to load wasm binary file at '"+P+"'";return a.arrayBuffer()}).catch(function(){return Na()})}var Qa={124965:function(a,b){setTimeout(function(){Pa(a,b)},0)},125043:function(){throw"Canceled!";}};
Ma()||(P=qa(P));function Na(){try{if(I)return new Uint8Array(I);if(ra)return ra(P);throw"both async and sync fetching of the wasm failed";}catch(a){J(a)}}function Oa(){return I||"function"!==typeof fetch?Promise.resolve().then(Na):fetch(P,{credentials:"same-origin"}).then(function(a){if(!a.ok)throw"failed to load wasm binary file at '"+P+"'";return a.arrayBuffer()}).catch(function(){return Na()})}var Qa={124949:function(a,b){setTimeout(function(){Pa(a,b)},0)},125027:function(){throw"Canceled!";}};
function Ra(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b(A);else{var c=b.mb;"number"===typeof c?void 0===b.Ka?L.get(c)():L.get(c)(b.Ka):c(void 0===b.Ka?null:b.Ka)}}}function Sa(a,b,c){var d;-1!=a.indexOf("j")?d=c&&c.length?A["dynCall_"+a].apply(null,[b].concat(c)):A["dynCall_"+a].call(null,b):d=L.get(b).apply(null,c);return d}A.dynCall=Sa;var Q=0,Ta=0,Ua=0;function Va(a,b,c){Q=a|0;Ua=b|0;Ta=c|0}A.registerPthreadPtr=Va;
function Wa(a,b){if(0>=a||a>e().length||a&1||0>b)return-28;if(0==b)return 0;2147483647<=b&&(b=Infinity);var c=Atomics.load(y(),R.bb>>2),d=0;if(c==a&&Atomics.compareExchange(y(),R.bb>>2,c,0)==c&&(--b,d=1,0>=b))return 1;a=Atomics.notify(y(),a>>2,b);if(0<=a)return a+d;throw"Atomics.notify returned an unexpected value "+a;}A._emscripten_futex_wake=Wa;
function Xa(a){if(D)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!a)throw"Internal Error! Null pthread_ptr in cleanupThread!";y()[a+12>>2]=0;(a=R.Ea[a])&&R.Qa(a.worker)}
@ -59,12 +59,12 @@ qb(c);b=X(b);W(a,{name:b,fromWireType:function(l){return!!l},toWireType:function
b,c){c=qb(c);b=X(b);W(a,{name:b,fromWireType:function(d){return d},toWireType:function(d,f){if("number"!==typeof f&&"boolean"!==typeof f)throw new TypeError('Cannot convert "'+wb(f)+'" to '+this.name);return f},argPackAdvance:8,readValueFromPointer:xb(b,c),Fa:null})},w:function(a,b,c,d,f,g){var l=Bb(b,c);a=X(a);f=Db(d,f);Ab(a,function(){Hb("Cannot call "+a+" due to unbound types",l)},b-1);pb([],l,function(h){var n=a,r=a;h=[h[0],null].concat(h.slice(1));var q=f,v=h.length;2>v&&Y("argTypes array size mismatch! Must at least get return value and 'this' types!");
for(var x=null!==h[1]&&!1,E=!1,t=1;t<h.length;++t)if(null!==h[t]&&void 0===h[t].Fa){E=!0;break}var pa="void"!==h[0].name,G="",M="";for(t=0;t<v-2;++t)G+=(0!==t?", ":"")+"arg"+t,M+=(0!==t?", ":"")+"arg"+t+"Wired";r="return function "+lb(r)+"("+G+") {\nif (arguments.length !== "+(v-2)+") {\nthrowBindingError('function "+r+" called with ' + arguments.length + ' arguments, expected "+(v-2)+" args!');\n}\n";E&&(r+="var destructors = [];\n");var ba=E?"destructors":"null";G="throwBindingError invoker fn runDestructors retType classParam".split(" ");
q=[Y,q,g,ib,h[0],h[1]];x&&(r+="var thisWired = classParam.toWireType("+ba+", this);\n");for(t=0;t<v-2;++t)r+="var arg"+t+"Wired = argType"+t+".toWireType("+ba+", arg"+t+"); // "+h[t+2].name+"\n",G.push("argType"+t),q.push(h[t+2]);x&&(M="thisWired"+(0<M.length?", ":"")+M);r+=(pa?"var rv = ":"")+"invoker(fn"+(0<M.length?", ":"")+M+");\n";if(E)r+="runDestructors(destructors);\n";else for(t=x?1:2;t<h.length;++t)v=1===t?"thisWired":"arg"+(t-2)+"Wired",null!==h[t].Fa&&(r+=v+"_dtor("+v+"); // "+h[t].name+
"\n",G.push(v+"_dtor"),q.push(h[t].Fa));pa&&(r+="var ret = retType.fromWireType(rv);\nreturn ret;\n");G.push(r+"}\n");h=yb(G).apply(null,q);t=b-1;if(!A.hasOwnProperty(n))throw new ob("Replacing nonexistant public symbol");void 0!==A[n].Da&&void 0!==t?A[n].Da[t]=h:(A[n]=h,A[n].jb=t);return[]})},j:function(a,b,c,d,f){function g(r){return r}b=X(b);-1===f&&(f=4294967295);var l=qb(c);if(0===d){var h=32-8*c;g=function(r){return r<<h>>>h}}var n=-1!=b.indexOf("unsigned");W(a,{name:b,fromWireType:g,toWireType:function(r,
"\n",G.push(v+"_dtor"),q.push(h[t].Fa));pa&&(r+="var ret = retType.fromWireType(rv);\nreturn ret;\n");G.push(r+"}\n");h=yb(G).apply(null,q);t=b-1;if(!A.hasOwnProperty(n))throw new ob("Replacing nonexistant public symbol");void 0!==A[n].Da&&void 0!==t?A[n].Da[t]=h:(A[n]=h,A[n].jb=t);return[]})},i:function(a,b,c,d,f){function g(r){return r}b=X(b);-1===f&&(f=4294967295);var l=qb(c);if(0===d){var h=32-8*c;g=function(r){return r<<h>>>h}}var n=-1!=b.indexOf("unsigned");W(a,{name:b,fromWireType:g,toWireType:function(r,
q){if("number"!==typeof q&&"boolean"!==typeof q)throw new TypeError('Cannot convert "'+wb(q)+'" to '+this.name);if(q<d||q>f)throw new TypeError('Passing a number "'+wb(q)+'" from JS side to C/C++ side to an argument of type "'+b+'", which is outside the valid range ['+d+", "+f+"]!");return n?q>>>0:q|0},argPackAdvance:8,readValueFromPointer:Ib(b,l,0!==d),Fa:null})},g:function(a,b,c){function d(g){g>>=2;var l=z();return new f(m,l[g+1],l[g])}var f=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,
Uint32Array,Float32Array,Float64Array][b];c=X(c);W(a,{name:c,fromWireType:d,argPackAdvance:8,readValueFromPointer:d},{rb:!0})},u:function(a,b){b=X(b);var c="std::string"===b;W(a,{name:b,fromWireType:function(d){var f=z()[d>>2];if(c)for(var g=d+4,l=0;l<=f;++l){var h=d+4+l;if(l==f||0==u()[h]){g=K(g,h-g);if(void 0===n)var n=g;else n+=String.fromCharCode(0),n+=g;g=h+1}}else{n=Array(f);for(l=0;l<f;++l)n[l]=String.fromCharCode(u()[d+4+l]);n=n.join("")}T(d);return n},toWireType:function(d,f){f instanceof
ArrayBuffer&&(f=new Uint8Array(f));var g="string"===typeof f;g||f instanceof Uint8Array||f instanceof Uint8ClampedArray||f instanceof Int8Array||Y("Cannot pass non-string to std::string");var l=(c&&g?function(){return ya(f)}:function(){return f.length})(),h=S(4+l+1);z()[h>>2]=l;if(c&&g)xa(f,h+4,l+1);else if(g)for(g=0;g<l;++g){var n=f.charCodeAt(g);255<n&&(T(h),Y("String has UTF-16 code units that do not fit in 8 bits"));u()[h+4+g]=n}else for(g=0;g<l;++g)u()[h+4+g]=f[g];null!==d&&d.push(T,h);return h},
argPackAdvance:8,readValueFromPointer:jb,Fa:function(d){T(d)}})},o:function(a,b,c){c=X(c);if(2===b){var d=za;var f=Aa;var g=Ba;var l=function(){return ea()};var h=1}else 4===b&&(d=Ca,f=Da,g=Ea,l=function(){return z()},h=2);W(a,{name:c,fromWireType:function(n){for(var r=z()[n>>2],q=l(),v,x=n+4,E=0;E<=r;++E){var t=n+4+E*b;if(E==r||0==q[t>>h])x=d(x,t-x),void 0===v?v=x:(v+=String.fromCharCode(0),v+=x),x=t+b}T(n);return v},toWireType:function(n,r){"string"!==typeof r&&Y("Cannot pass non-string to C++ string type "+
c);var q=g(r),v=S(4+q+b);z()[v>>2]=q>>h;f(r,v+4,q+b);null!==n&&n.push(T,v);return v},argPackAdvance:8,readValueFromPointer:jb,Fa:function(n){T(n)}})},y:function(a,b,c,d,f,g){hb[a]={name:X(b),zb:Db(c,d),Ab:Db(f,g),Za:[]}},i:function(a,b,c,d,f,g,l,h,n,r){hb[a].Za.push({lb:X(b),qb:c,ob:Db(d,f),pb:g,Jb:l,Ib:Db(h,n),Kb:r})},O:function(a,b){b=X(b);W(a,{Vb:!0,name:b,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},I:function(a,b){if(a==b)postMessage({cmd:"processQueuedMainThreadWork"});
c);var q=g(r),v=S(4+q+b);z()[v>>2]=q>>h;f(r,v+4,q+b);null!==n&&n.push(T,v);return v},argPackAdvance:8,readValueFromPointer:jb,Fa:function(n){T(n)}})},y:function(a,b,c,d,f,g){hb[a]={name:X(b),zb:Db(c,d),Ab:Db(f,g),Za:[]}},j:function(a,b,c,d,f,g,l,h,n,r){hb[a].Za.push({lb:X(b),qb:c,ob:Db(d,f),pb:g,Jb:l,Ib:Db(h,n),Kb:r})},O:function(a,b){b=X(b);W(a,{Vb:!0,name:b,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},I:function(a,b){if(a==b)postMessage({cmd:"processQueuedMainThreadWork"});
else if(D)postMessage({targetThread:a,cmd:"processThreadQueue"});else{a=(a=R.Ea[a])&&a.worker;if(!a)return;a.postMessage({cmd:"processThreadQueue"})}return 1},q:ub,L:function(a){if(0===a)return vb(Kb());var b=Jb[a];a=void 0===b?X(a):b;return vb(Kb()[a])},S:function(a){4<a&&(Z[a].Ua+=1)},z:function(a,b,c,d){a||Y("Cannot use deleted val. handle = "+a);a=Z[a].value;var f=Mb[b];if(!f){f="";for(var g=0;g<b;++g)f+=(0!==g?", ":"")+"arg"+g;var l="return function emval_allocator_"+b+"(constructor, argTypes, args) {\n";
for(g=0;g<b;++g)l+="var argType"+g+" = requireRegisteredType(Module['HEAP32'][(argTypes >>> 2) + "+g+'], "parameter '+g+'");\nvar arg'+g+" = argType"+g+".readValueFromPointer(args);\nargs += argType"+g+"['argPackAdvance'];\n";f=(new Function("requireRegisteredType","Module","__emval_register",l+("var obj = new constructor("+f+");\nreturn __emval_register(obj);\n}\n")))(Lb,A,vb);Mb[b]=f}return f(a,c,d)},r:function(){J()},l:function(a,b,c){Tb.length=0;var d;for(c>>=2;d=u()[b++];)(d=105>d)&&c&1&&c++,
Tb.push(d?la()[c++>>1]:y()[c]),++c;return Qa[a].apply(null,Tb)},J:function(){},p:function(){},e:Nb,f:Wa,b:db,n:function(){return Ua|0},m:function(){return Ta|0},D:function(a,b,c){u().copyWithin(a,b,b+c)},T:function(){return navigator.hardwareConcurrency},F:function(a,b,c){Sb.length=b;c>>=3;for(var d=0;d<b;d++)Sb[d]=la()[c+d];return(0>a?Qa[-a-1]:nc[a]).apply(null,Sb)},k:function(a){a>>>=0;var b=u().length;if(a<=b||2147483648<a)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);
@ -84,7 +84,7 @@ A._emscripten_sync_run_in_main_thread=function(){return(A._emscripten_sync_run_i
A._emscripten_sync_run_in_main_thread_2=function(){return(A._emscripten_sync_run_in_main_thread_2=A.asm.pa).apply(null,arguments)};A._emscripten_sync_run_in_main_thread_xprintf_varargs=function(){return(A._emscripten_sync_run_in_main_thread_xprintf_varargs=A.asm.qa).apply(null,arguments)};A._emscripten_sync_run_in_main_thread_3=function(){return(A._emscripten_sync_run_in_main_thread_3=A.asm.ra).apply(null,arguments)};
var pc=A._emscripten_sync_run_in_main_thread_4=function(){return(pc=A._emscripten_sync_run_in_main_thread_4=A.asm.sa).apply(null,arguments)};A._emscripten_sync_run_in_main_thread_5=function(){return(A._emscripten_sync_run_in_main_thread_5=A.asm.ta).apply(null,arguments)};A._emscripten_sync_run_in_main_thread_6=function(){return(A._emscripten_sync_run_in_main_thread_6=A.asm.ua).apply(null,arguments)};
A._emscripten_sync_run_in_main_thread_7=function(){return(A._emscripten_sync_run_in_main_thread_7=A.asm.va).apply(null,arguments)};var Rb=A._emscripten_run_in_main_runtime_thread_js=function(){return(Rb=A._emscripten_run_in_main_runtime_thread_js=A.asm.wa).apply(null,arguments)},Xb=A.__emscripten_call_on_thread=function(){return(Xb=A.__emscripten_call_on_thread=A.asm.xa).apply(null,arguments)};A._emscripten_tls_init=function(){return(A._emscripten_tls_init=A.asm.ya).apply(null,arguments)};
A.dynCall_jiji=function(){return(A.dynCall_jiji=A.asm.za).apply(null,arguments)};var Za=A._main_thread_futex=139708;A.PThread=R;A.PThread=R;A._pthread_self=jc;A.wasmMemory=k;A.ExitStatus=sc;var tc;function sc(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}O=function uc(){tc||vc();tc||(O=uc)};
A.dynCall_jiji=function(){return(A.dynCall_jiji=A.asm.za).apply(null,arguments)};var Za=A._main_thread_futex=139692;A.PThread=R;A.PThread=R;A._pthread_self=jc;A.wasmMemory=k;A.ExitStatus=sc;var tc;function sc(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}O=function uc(){tc||vc();tc||(O=uc)};
function vc(){function a(){if(!tc&&(tc=!0,A.calledRun=!0,!ua)){Ra(Ha);D||Ra(Ia);na(A);if(A.onRuntimeInitialized)A.onRuntimeInitialized();if(!D){if(A.postRun)for("function"==typeof A.postRun&&(A.postRun=[A.postRun]);A.postRun.length;){var b=A.postRun.shift();Ja.unshift(b)}Ra(Ja)}}}if(!(0<N)){if(!D){if(A.preRun)for("function"==typeof A.preRun&&(A.preRun=[A.preRun]);A.preRun.length;)Ka();Ra(Ga)}0<N||(A.setStatus?(A.setStatus("Running..."),setTimeout(function(){setTimeout(function(){A.setStatus("")},
1);a()},1)):a())}}A.run=vc;if(A.preInit)for("function"==typeof A.preInit&&(A.preInit=[A.preInit]);0<A.preInit.length;)A.preInit.pop()();D||(noExitRuntime=!0);D?R.wb():vc();

BIN
codecs/wp2/enc/wp2_enc_mt.wasm Normal file → Executable file

Binary file not shown.

View File

@ -17,7 +17,7 @@ function Ba(a){return 2*a.length}function Ca(a,b){for(var c=0,d="";!(c>=b/4);){v
function Ea(a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);55296<=d&&57343>=d&&++c;b+=4}return b}var m,aa,ca,da,fa,ha,ia,ka,ma;function p(a){m=a;A.HEAP8=aa=new Int8Array(a);A.HEAP16=da=new Int16Array(a);A.HEAP32=ha=new Int32Array(a);A.HEAPU8=ca=new Uint8Array(a);A.HEAPU16=fa=new Uint16Array(a);A.HEAPU32=ia=new Uint32Array(a);A.HEAPF32=ka=new Float32Array(a);A.HEAPF64=ma=new Float64Array(a)}var Fa=A.INITIAL_MEMORY||16777216;
if(D)k=A.wasmMemory,m=A.buffer;else if(A.wasmMemory)k=A.wasmMemory;else if(k=new WebAssembly.Memory({initial:Fa/65536,maximum:32768,shared:!0}),!(k.buffer instanceof SharedArrayBuffer))throw H("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),Error("bad memory");k&&(m=k.buffer);Fa=m.byteLength;p(m);var L,Ga=[],Ha=[],Ia=[],Ja=[];
function Ka(){var a=A.preRun.shift();Ga.unshift(a)}var N=0,La=null,O=null;A.preloadedImages={};A.preloadedAudios={};function J(a){if(A.onAbort)A.onAbort(a);D&&console.error("Pthread aborting at "+Error().stack);H(a);ua=!0;a=new WebAssembly.RuntimeError("abort("+a+"). Build with -s ASSERTIONS=1 for more info.");oa(a);throw a;}function Ma(){var a=P;return String.prototype.startsWith?a.startsWith("data:application/octet-stream;base64,"):0===a.indexOf("data:application/octet-stream;base64,")}var P="wp2_enc_mt_simd.wasm";
Ma()||(P=qa(P));function Na(){try{if(I)return new Uint8Array(I);if(ra)return ra(P);throw"both async and sync fetching of the wasm failed";}catch(a){J(a)}}function Oa(){return I||"function"!==typeof fetch?Promise.resolve().then(Na):fetch(P,{credentials:"same-origin"}).then(function(a){if(!a.ok)throw"failed to load wasm binary file at '"+P+"'";return a.arrayBuffer()}).catch(function(){return Na()})}var Qa={125045:function(a,b){setTimeout(function(){Pa(a,b)},0)},125123:function(){throw"Canceled!";}};
Ma()||(P=qa(P));function Na(){try{if(I)return new Uint8Array(I);if(ra)return ra(P);throw"both async and sync fetching of the wasm failed";}catch(a){J(a)}}function Oa(){return I||"function"!==typeof fetch?Promise.resolve().then(Na):fetch(P,{credentials:"same-origin"}).then(function(a){if(!a.ok)throw"failed to load wasm binary file at '"+P+"'";return a.arrayBuffer()}).catch(function(){return Na()})}var Qa={125029:function(a,b){setTimeout(function(){Pa(a,b)},0)},125107:function(){throw"Canceled!";}};
function Ra(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b(A);else{var c=b.ob;"number"===typeof c?void 0===b.Ma?L.get(c)():L.get(c)(b.Ma):c(void 0===b.Ma?null:b.Ma)}}}function Sa(a,b,c){var d;-1!=a.indexOf("j")?d=c&&c.length?A["dynCall_"+a].apply(null,[b].concat(c)):A["dynCall_"+a].call(null,b):d=L.get(b).apply(null,c);return d}A.dynCall=Sa;var Q=0,Ta=0,Ua=0;function Va(a,b,c){Q=a|0;Ua=b|0;Ta=c|0}A.registerPthreadPtr=Va;
function Wa(a,b){if(0>=a||a>e().length||a&1||0>b)return-28;if(0==b)return 0;2147483647<=b&&(b=Infinity);var c=Atomics.load(y(),R.eb>>2),d=0;if(c==a&&Atomics.compareExchange(y(),R.eb>>2,c,0)==c&&(--b,d=1,0>=b))return 1;a=Atomics.notify(y(),a>>2,b);if(0<=a)return a+d;throw"Atomics.notify returned an unexpected value "+a;}A._emscripten_futex_wake=Wa;
function Xa(a){if(D)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!a)throw"Internal Error! Null pthread_ptr in cleanupThread!";y()[a+12>>2]=0;(a=R.Ga[a])&&R.Sa(a.worker)}
@ -60,12 +60,12 @@ qb(c);b=X(b);W(a,{name:b,fromWireType:function(l){return!!l},toWireType:function
b,c){c=qb(c);b=X(b);W(a,{name:b,fromWireType:function(d){return d},toWireType:function(d,f){if("number"!==typeof f&&"boolean"!==typeof f)throw new TypeError('Cannot convert "'+wb(f)+'" to '+this.name);return f},argPackAdvance:8,readValueFromPointer:xb(b,c),Ha:null})},x:function(a,b,c,d,f,g){var l=Bb(b,c);a=X(a);f=Db(d,f);Ab(a,function(){Hb("Cannot call "+a+" due to unbound types",l)},b-1);pb([],l,function(h){var n=a,r=a;h=[h[0],null].concat(h.slice(1));var q=f,v=h.length;2>v&&Y("argTypes array size mismatch! Must at least get return value and 'this' types!");
for(var x=null!==h[1]&&!1,E=!1,t=1;t<h.length;++t)if(null!==h[t]&&void 0===h[t].Ha){E=!0;break}var pa="void"!==h[0].name,G="",M="";for(t=0;t<v-2;++t)G+=(0!==t?", ":"")+"arg"+t,M+=(0!==t?", ":"")+"arg"+t+"Wired";r="return function "+lb(r)+"("+G+") {\nif (arguments.length !== "+(v-2)+") {\nthrowBindingError('function "+r+" called with ' + arguments.length + ' arguments, expected "+(v-2)+" args!');\n}\n";E&&(r+="var destructors = [];\n");var ba=E?"destructors":"null";G="throwBindingError invoker fn runDestructors retType classParam".split(" ");
q=[Y,q,g,ib,h[0],h[1]];x&&(r+="var thisWired = classParam.toWireType("+ba+", this);\n");for(t=0;t<v-2;++t)r+="var arg"+t+"Wired = argType"+t+".toWireType("+ba+", arg"+t+"); // "+h[t+2].name+"\n",G.push("argType"+t),q.push(h[t+2]);x&&(M="thisWired"+(0<M.length?", ":"")+M);r+=(pa?"var rv = ":"")+"invoker(fn"+(0<M.length?", ":"")+M+");\n";if(E)r+="runDestructors(destructors);\n";else for(t=x?1:2;t<h.length;++t)v=1===t?"thisWired":"arg"+(t-2)+"Wired",null!==h[t].Ha&&(r+=v+"_dtor("+v+"); // "+h[t].name+
"\n",G.push(v+"_dtor"),q.push(h[t].Ha));pa&&(r+="var ret = retType.fromWireType(rv);\nreturn ret;\n");G.push(r+"}\n");h=yb(G).apply(null,q);t=b-1;if(!A.hasOwnProperty(n))throw new ob("Replacing nonexistant public symbol");void 0!==A[n].Fa&&void 0!==t?A[n].Fa[t]=h:(A[n]=h,A[n].lb=t);return[]})},j:function(a,b,c,d,f){function g(r){return r}b=X(b);-1===f&&(f=4294967295);var l=qb(c);if(0===d){var h=32-8*c;g=function(r){return r<<h>>>h}}var n=-1!=b.indexOf("unsigned");W(a,{name:b,fromWireType:g,toWireType:function(r,
"\n",G.push(v+"_dtor"),q.push(h[t].Ha));pa&&(r+="var ret = retType.fromWireType(rv);\nreturn ret;\n");G.push(r+"}\n");h=yb(G).apply(null,q);t=b-1;if(!A.hasOwnProperty(n))throw new ob("Replacing nonexistant public symbol");void 0!==A[n].Fa&&void 0!==t?A[n].Fa[t]=h:(A[n]=h,A[n].lb=t);return[]})},i:function(a,b,c,d,f){function g(r){return r}b=X(b);-1===f&&(f=4294967295);var l=qb(c);if(0===d){var h=32-8*c;g=function(r){return r<<h>>>h}}var n=-1!=b.indexOf("unsigned");W(a,{name:b,fromWireType:g,toWireType:function(r,
q){if("number"!==typeof q&&"boolean"!==typeof q)throw new TypeError('Cannot convert "'+wb(q)+'" to '+this.name);if(q<d||q>f)throw new TypeError('Passing a number "'+wb(q)+'" from JS side to C/C++ side to an argument of type "'+b+'", which is outside the valid range ['+d+", "+f+"]!");return n?q>>>0:q|0},argPackAdvance:8,readValueFromPointer:Ib(b,l,0!==d),Ha:null})},g:function(a,b,c){function d(g){g>>=2;var l=z();return new f(m,l[g+1],l[g])}var f=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,
Uint32Array,Float32Array,Float64Array][b];c=X(c);W(a,{name:c,fromWireType:d,argPackAdvance:8,readValueFromPointer:d},{tb:!0})},v:function(a,b){b=X(b);var c="std::string"===b;W(a,{name:b,fromWireType:function(d){var f=z()[d>>2];if(c)for(var g=d+4,l=0;l<=f;++l){var h=d+4+l;if(l==f||0==u()[h]){g=K(g,h-g);if(void 0===n)var n=g;else n+=String.fromCharCode(0),n+=g;g=h+1}}else{n=Array(f);for(l=0;l<f;++l)n[l]=String.fromCharCode(u()[d+4+l]);n=n.join("")}T(d);return n},toWireType:function(d,f){f instanceof
ArrayBuffer&&(f=new Uint8Array(f));var g="string"===typeof f;g||f instanceof Uint8Array||f instanceof Uint8ClampedArray||f instanceof Int8Array||Y("Cannot pass non-string to std::string");var l=(c&&g?function(){return ya(f)}:function(){return f.length})(),h=S(4+l+1);z()[h>>2]=l;if(c&&g)xa(f,h+4,l+1);else if(g)for(g=0;g<l;++g){var n=f.charCodeAt(g);255<n&&(T(h),Y("String has UTF-16 code units that do not fit in 8 bits"));u()[h+4+g]=n}else for(g=0;g<l;++g)u()[h+4+g]=f[g];null!==d&&d.push(T,h);return h},
argPackAdvance:8,readValueFromPointer:jb,Ha:function(d){T(d)}})},p:function(a,b,c){c=X(c);if(2===b){var d=za;var f=Aa;var g=Ba;var l=function(){return ea()};var h=1}else 4===b&&(d=Ca,f=Da,g=Ea,l=function(){return z()},h=2);W(a,{name:c,fromWireType:function(n){for(var r=z()[n>>2],q=l(),v,x=n+4,E=0;E<=r;++E){var t=n+4+E*b;if(E==r||0==q[t>>h])x=d(x,t-x),void 0===v?v=x:(v+=String.fromCharCode(0),v+=x),x=t+b}T(n);return v},toWireType:function(n,r){"string"!==typeof r&&Y("Cannot pass non-string to C++ string type "+
c);var q=g(r),v=S(4+q+b);z()[v>>2]=q>>h;f(r,v+4,q+b);null!==n&&n.push(T,v);return v},argPackAdvance:8,readValueFromPointer:jb,Ha:function(n){T(n)}})},z:function(a,b,c,d,f,g){hb[a]={name:X(b),Bb:Db(c,d),Cb:Db(f,g),ab:[]}},i:function(a,b,c,d,f,g,l,h,n,r){hb[a].ab.push({nb:X(b),sb:c,qb:Db(d,f),rb:g,Lb:l,Kb:Db(h,n),Mb:r})},O:function(a,b){b=X(b);W(a,{Xb:!0,name:b,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},I:function(a,b){if(a==b)postMessage({cmd:"processQueuedMainThreadWork"});
c);var q=g(r),v=S(4+q+b);z()[v>>2]=q>>h;f(r,v+4,q+b);null!==n&&n.push(T,v);return v},argPackAdvance:8,readValueFromPointer:jb,Ha:function(n){T(n)}})},z:function(a,b,c,d,f,g){hb[a]={name:X(b),Bb:Db(c,d),Cb:Db(f,g),ab:[]}},j:function(a,b,c,d,f,g,l,h,n,r){hb[a].ab.push({nb:X(b),sb:c,qb:Db(d,f),rb:g,Lb:l,Kb:Db(h,n),Mb:r})},O:function(a,b){b=X(b);W(a,{Xb:!0,name:b,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},I:function(a,b){if(a==b)postMessage({cmd:"processQueuedMainThreadWork"});
else if(D)postMessage({targetThread:a,cmd:"processThreadQueue"});else{a=(a=R.Ga[a])&&a.worker;if(!a)return;a.postMessage({cmd:"processThreadQueue"})}return 1},r:ub,L:function(a){if(0===a)return vb(Kb());var b=Jb[a];a=void 0===b?X(a):b;return vb(Kb()[a])},S:function(a){4<a&&(Z[a].Wa+=1)},A:function(a,b,c,d){a||Y("Cannot use deleted val. handle = "+a);a=Z[a].value;var f=Mb[b];if(!f){f="";for(var g=0;g<b;++g)f+=(0!==g?", ":"")+"arg"+g;var l="return function emval_allocator_"+b+"(constructor, argTypes, args) {\n";
for(g=0;g<b;++g)l+="var argType"+g+" = requireRegisteredType(Module['HEAP32'][(argTypes >>> 2) + "+g+'], "parameter '+g+'");\nvar arg'+g+" = argType"+g+".readValueFromPointer(args);\nargs += argType"+g+"['argPackAdvance'];\n";f=(new Function("requireRegisteredType","Module","__emval_register",l+("var obj = new constructor("+f+");\nreturn __emval_register(obj);\n}\n")))(Lb,A,vb);Mb[b]=f}return f(a,c,d)},s:function(){J()},l:function(a,b,c){Tb.length=0;var d;for(c>>=2;d=u()[b++];)(d=105>d)&&c&1&&c++,
Tb.push(d?la()[c++>>1]:y()[c]),++c;return Qa[a].apply(null,Tb)},J:function(){},q:function(){},e:Nb,f:Wa,b:db,n:function(){return Ua|0},m:function(){return Ta|0},D:function(a,b,c){u().copyWithin(a,b,b+c)},T:function(){return navigator.hardwareConcurrency},F:function(a,b,c){Sb.length=b;c>>=3;for(var d=0;d<b;d++)Sb[d]=la()[c+d];return(0>a?Qa[-a-1]:nc[a]).apply(null,Sb)},k:function(a){a>>>=0;var b=u().length;if(a<=b||2147483648<a)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);
@ -85,7 +85,7 @@ A._emscripten_sync_run_in_main_thread=function(){return(A._emscripten_sync_run_i
A._emscripten_sync_run_in_main_thread_2=function(){return(A._emscripten_sync_run_in_main_thread_2=A.asm.pa).apply(null,arguments)};A._emscripten_sync_run_in_main_thread_xprintf_varargs=function(){return(A._emscripten_sync_run_in_main_thread_xprintf_varargs=A.asm.qa).apply(null,arguments)};A._emscripten_sync_run_in_main_thread_3=function(){return(A._emscripten_sync_run_in_main_thread_3=A.asm.ra).apply(null,arguments)};
var pc=A._emscripten_sync_run_in_main_thread_4=function(){return(pc=A._emscripten_sync_run_in_main_thread_4=A.asm.sa).apply(null,arguments)};A._emscripten_sync_run_in_main_thread_5=function(){return(A._emscripten_sync_run_in_main_thread_5=A.asm.ta).apply(null,arguments)};A._emscripten_sync_run_in_main_thread_6=function(){return(A._emscripten_sync_run_in_main_thread_6=A.asm.ua).apply(null,arguments)};
A._emscripten_sync_run_in_main_thread_7=function(){return(A._emscripten_sync_run_in_main_thread_7=A.asm.va).apply(null,arguments)};var Rb=A._emscripten_run_in_main_runtime_thread_js=function(){return(Rb=A._emscripten_run_in_main_runtime_thread_js=A.asm.wa).apply(null,arguments)},Xb=A.__emscripten_call_on_thread=function(){return(Xb=A.__emscripten_call_on_thread=A.asm.xa).apply(null,arguments)};A._emscripten_tls_init=function(){return(A._emscripten_tls_init=A.asm.ya).apply(null,arguments)};
A.dynCall_jiii=function(){return(A.dynCall_jiii=A.asm.za).apply(null,arguments)};A.dynCall_jiiiiii=function(){return(A.dynCall_jiiiiii=A.asm.Aa).apply(null,arguments)};A.dynCall_jiji=function(){return(A.dynCall_jiji=A.asm.Ba).apply(null,arguments)};var Za=A._main_thread_futex=139852;A.PThread=R;A.PThread=R;A._pthread_self=jc;A.wasmMemory=k;A.ExitStatus=sc;var tc;function sc(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}O=function uc(){tc||vc();tc||(O=uc)};
A.dynCall_jiii=function(){return(A.dynCall_jiii=A.asm.za).apply(null,arguments)};A.dynCall_jiiiiii=function(){return(A.dynCall_jiiiiii=A.asm.Aa).apply(null,arguments)};A.dynCall_jiji=function(){return(A.dynCall_jiji=A.asm.Ba).apply(null,arguments)};var Za=A._main_thread_futex=139836;A.PThread=R;A.PThread=R;A._pthread_self=jc;A.wasmMemory=k;A.ExitStatus=sc;var tc;function sc(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}O=function uc(){tc||vc();tc||(O=uc)};
function vc(){function a(){if(!tc&&(tc=!0,A.calledRun=!0,!ua)){Ra(Ha);D||Ra(Ia);na(A);if(A.onRuntimeInitialized)A.onRuntimeInitialized();if(!D){if(A.postRun)for("function"==typeof A.postRun&&(A.postRun=[A.postRun]);A.postRun.length;){var b=A.postRun.shift();Ja.unshift(b)}Ra(Ja)}}}if(!(0<N)){if(!D){if(A.preRun)for("function"==typeof A.preRun&&(A.preRun=[A.preRun]);A.preRun.length;)Ka();Ra(Ga)}0<N||(A.setStatus?(A.setStatus("Running..."),setTimeout(function(){setTimeout(function(){A.setStatus("")},
1);a()},1)):a())}}A.run=vc;if(A.preInit)for("function"==typeof A.preInit&&(A.preInit=[A.preInit]);0<A.preInit.length;)A.preInit.pop()();D||(noExitRuntime=!0);D?R.yb():vc();

BIN
codecs/wp2/enc/wp2_enc_mt_simd.wasm Normal file → Executable file

Binary file not shown.

View File

@ -36,12 +36,12 @@ toWireType:function(l,k){return k?d:e},argPackAdvance:8,readValueFromPointer:fun
toWireType:function(d,e){if("number"!==typeof e&&"boolean"!==typeof e)throw new TypeError('Cannot convert "'+Wa(e)+'" to '+this.name);return e},argPackAdvance:8,readValueFromPointer:Xa(b,c),K:null})},m:function(a,b,c,d,e,g){var l=ab(b,c);a=V(a);e=Y(d,e);$a(a,function(){fb("Cannot call "+a+" due to unbound types",l)},b-1);Pa([],l,function(k){var h=[k[0],null].concat(k.slice(1)),m=k=a,n=e,p=h.length;2>p&&W("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var x=null!==
h[1]&&!1,y=!1,q=1;q<h.length;++q)if(null!==h[q]&&void 0===h[q].K){y=!0;break}var fa="void"!==h[0].name,z="",F="";for(q=0;q<p-2;++q)z+=(0!==q?", ":"")+"arg"+q,F+=(0!==q?", ":"")+"arg"+q+"Wired";m="return function "+La(m)+"("+z+") {\nif (arguments.length !== "+(p-2)+") {\nthrowBindingError('function "+m+" called with ' + arguments.length + ' arguments, expected "+(p-2)+" args!');\n}\n";y&&(m+="var destructors = [];\n");var T=y?"destructors":"null";z="throwBindingError invoker fn runDestructors retType classParam".split(" ");
n=[W,n,g,Ia,h[0],h[1]];x&&(m+="var thisWired = classParam.toWireType("+T+", this);\n");for(q=0;q<p-2;++q)m+="var arg"+q+"Wired = argType"+q+".toWireType("+T+", arg"+q+"); // "+h[q+2].name+"\n",z.push("argType"+q),n.push(h[q+2]);x&&(F="thisWired"+(0<F.length?", ":"")+F);m+=(fa?"var rv = ":"")+"invoker(fn"+(0<F.length?", ":"")+F+");\n";if(y)m+="runDestructors(destructors);\n";else for(q=x?1:2;q<h.length;++q)p=1===q?"thisWired":"arg"+(q-2)+"Wired",null!==h[q].K&&(m+=p+"_dtor("+p+"); // "+h[q].name+"\n",
z.push(p+"_dtor"),n.push(h[q].K));fa&&(m+="var ret = retType.fromWireType(rv);\nreturn ret;\n");z.push(m+"}\n");h=Ya(z).apply(null,n);q=b-1;if(!f.hasOwnProperty(k))throw new Oa("Replacing nonexistant public symbol");void 0!==f[k].J&&void 0!==q?f[k].J[q]=h:(f[k]=h,f[k].R=q);return[]})},d:function(a,b,c,d,e){function g(m){return m}b=V(b);-1===e&&(e=4294967295);var l=Qa(c);if(0===d){var k=32-8*c;g=function(m){return m<<k>>>k}}var h=-1!=b.indexOf("unsigned");U(a,{name:b,fromWireType:g,toWireType:function(m,
z.push(p+"_dtor"),n.push(h[q].K));fa&&(m+="var ret = retType.fromWireType(rv);\nreturn ret;\n");z.push(m+"}\n");h=Ya(z).apply(null,n);q=b-1;if(!f.hasOwnProperty(k))throw new Oa("Replacing nonexistant public symbol");void 0!==f[k].J&&void 0!==q?f[k].J[q]=h:(f[k]=h,f[k].R=q);return[]})},c:function(a,b,c,d,e){function g(m){return m}b=V(b);-1===e&&(e=4294967295);var l=Qa(c);if(0===d){var k=32-8*c;g=function(m){return m<<k>>>k}}var h=-1!=b.indexOf("unsigned");U(a,{name:b,fromWireType:g,toWireType:function(m,
n){if("number"!==typeof n&&"boolean"!==typeof n)throw new TypeError('Cannot convert "'+Wa(n)+'" to '+this.name);if(n<d||n>e)throw new TypeError('Passing a number "'+Wa(n)+'" from JS side to C/C++ side to an argument of type "'+b+'", which is outside the valid range ['+d+", "+e+"]!");return h?n>>>0:n|0},argPackAdvance:8,readValueFromPointer:gb(b,l,0!==d),K:null})},b:function(a,b,c){function d(g){g>>=2;var l=J;return new e(H,l[g+1],l[g])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,
Uint32Array,Float32Array,Float64Array][b];c=V(c);U(a,{name:c,fromWireType:d,argPackAdvance:8,readValueFromPointer:d},{X:!0})},k:function(a,b){b=V(b);var c="std::string"===b;U(a,{name:b,fromWireType:function(d){var e=J[d>>2];if(c)for(var g=d+4,l=0;l<=e;++l){var k=d+4+l;if(l==e||0==C[k]){g=B(g,k-g);if(void 0===h)var h=g;else h+=String.fromCharCode(0),h+=g;g=k+1}}else{h=Array(e);for(l=0;l<e;++l)h[l]=String.fromCharCode(C[d+4+l]);h=h.join("")}Z(d);return h},toWireType:function(d,e){e instanceof ArrayBuffer&&
(e=new Uint8Array(e));var g="string"===typeof e;g||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int8Array||W("Cannot pass non-string to std::string");var l=(c&&g?function(){for(var m=0,n=0;n<e.length;++n){var p=e.charCodeAt(n);55296<=p&&57343>=p&&(p=65536+((p&1023)<<10)|e.charCodeAt(++n)&1023);127>=p?++m:m=2047>=p?m+2:65535>=p?m+3:m+4}return m}:function(){return e.length})(),k=pb(4+l+1);J[k>>2]=l;if(c&&g)ma(e,k+4,l+1);else if(g)for(g=0;g<l;++g){var h=e.charCodeAt(g);255<h&&
(Z(k),W("String has UTF-16 code units that do not fit in 8 bits"));C[k+4+g]=h}else for(g=0;g<l;++g)C[k+4+g]=e[g];null!==d&&d.push(Z,k);return k},argPackAdvance:8,readValueFromPointer:Ja,K:function(d){Z(d)}})},f:function(a,b,c){c=V(c);if(2===b){var d=oa;var e=pa;var g=qa;var l=function(){return D};var k=1}else 4===b&&(d=ra,e=sa,g=ta,l=function(){return J},k=2);U(a,{name:c,fromWireType:function(h){for(var m=J[h>>2],n=l(),p,x=h+4,y=0;y<=m;++y){var q=h+4+y*b;if(y==m||0==n[q>>k])x=d(x,q-x),void 0===p?
p=x:(p+=String.fromCharCode(0),p+=x),x=q+b}Z(h);return p},toWireType:function(h,m){"string"!==typeof m&&W("Cannot pass non-string to C++ string type "+c);var n=g(m),p=pb(4+n+b);J[p>>2]=n>>k;e(m,p+4,n+b);null!==h&&h.push(Z,p);return p},argPackAdvance:8,readValueFromPointer:Ja,K:function(h){Z(h)}})},o:function(a,b,c,d,e,g){Q[a]={name:V(b),Z:Y(c,d),$:Y(e,g),O:[]}},c:function(a,b,c,d,e,g,l,k,h,m){Q[a].O.push({S:V(b),W:c,U:Y(d,e),V:g,ha:l,ga:Y(k,h),ia:m})},x:function(a,b){b=V(b);U(a,{ja:!0,name:b,argPackAdvance:0,
p=x:(p+=String.fromCharCode(0),p+=x),x=q+b}Z(h);return p},toWireType:function(h,m){"string"!==typeof m&&W("Cannot pass non-string to C++ string type "+c);var n=g(m),p=pb(4+n+b);J[p>>2]=n>>k;e(m,p+4,n+b);null!==h&&h.push(Z,p);return p},argPackAdvance:8,readValueFromPointer:Ja,K:function(h){Z(h)}})},o:function(a,b,c,d,e,g){Q[a]={name:V(b),Z:Y(c,d),$:Y(e,g),O:[]}},d:function(a,b,c,d,e,g,l,k,h,m){Q[a].O.push({S:V(b),W:c,U:Y(d,e),V:g,ha:l,ga:Y(k,h),ia:m})},x:function(a,b){b=V(b);U(a,{ja:!0,name:b,argPackAdvance:0,
fromWireType:function(){},toWireType:function(){}})},i:Ua,A:function(a){if(0===a)return Va(ib());var b=hb[a];a=void 0===b?V(a):b;return Va(ib()[a])},l:function(a){4<a&&(X[a].N+=1)},p:function(a,b,c,d){a||W("Cannot use deleted val. handle = "+a);a=X[a].value;var e=kb[b];if(!e){e="";for(var g=0;g<b;++g)e+=(0!==g?", ":"")+"arg"+g;var l="return function emval_allocator_"+b+"(constructor, argTypes, args) {\n";for(g=0;g<b;++g)l+="var argType"+g+" = requireRegisteredType(Module['HEAP32'][(argTypes >>> 2) + "+
g+'], "parameter '+g+'");\nvar arg'+g+" = argType"+g+".readValueFromPointer(args);\nargs += argType"+g+"['argPackAdvance'];\n";e=(new Function("requireRegisteredType","Module","__emval_register",l+("var obj = new constructor("+e+");\nreturn __emval_register(obj);\n}\n")))(jb,f,Va);kb[b]=e}return e(a,c,d)},g:function(){u()},t:function(a,b,c){C.copyWithin(a,b,b+c)},e:function(a){a>>>=0;var b=C.length;if(2147483648<a)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);d=Math.max(16777216,
a,d);0<d%65536&&(d+=65536-d%65536);a:{try{A.grow(Math.min(2147483648,d)-H.byteLength+65535>>>16);wa(A.buffer);var e=1;break a}catch(g){}e=void 0}if(e)return!0}return!1},u:function(){return 0},r:function(){},h:function(a,b,c,d){for(var e=0,g=0;g<c;g++){for(var l=G[b+8*g>>2],k=G[b+(8*g+4)>>2],h=0;h<k;h++){var m=C[l+h],n=lb[a];if(0===m||10===m){m=1===a?ja:v;var p;for(p=0;n[p]&&!(NaN<=p);)++p;p=la.decode(n.subarray?n.subarray(0,p):new Uint8Array(n.slice(0,p)));m(p);n.length=0}else n.push(m)}e+=k}G[d>>

Binary file not shown.

View File

@ -112,7 +112,9 @@ export default async function ({ watch }) {
plugins: [
{ resolveFileUrl, resolveImportMeta },
OMT({ loader: await omtLoaderPromise }),
serviceWorkerPlugin({ output: 'static/sw.js' }),
serviceWorkerPlugin({
output: 'static/serviceworker.js',
}),
...commonPlugins(),
commonjs(),
resolve(),

137
src/copy/sw-bridge.894ac.js Normal file
View File

@ -0,0 +1,137 @@
(self.webpackJsonp = self.webpackJsonp || []).push([
[0],
{
54: function (e, t, n) {
'use strict';
n.d(t, 'a', function () {
return o;
}),
n.d(t, 'b', function () {
return s;
});
class r {
constructor(e = 'keyval-store', t = 'keyval') {
(this.storeName = t),
(this._dbp = new Promise((n, r) => {
const a = indexedDB.open(e, 1);
(a.onerror = () => r(a.error)),
(a.onsuccess = () => n(a.result)),
(a.onupgradeneeded = () => {
a.result.createObjectStore(t);
});
}));
}
_withIDBStore(e, t) {
return this._dbp.then(
(n) =>
new Promise((r, a) => {
const i = n.transaction(this.storeName, e);
(i.oncomplete = () => r()),
(i.onabort = i.onerror = () => a(i.error)),
t(i.objectStore(this.storeName));
}),
);
}
}
let a;
function i() {
return a || (a = new r()), a;
}
function o(e, t = i()) {
let n;
return t
._withIDBStore('readonly', (t) => {
n = t.get(e);
})
.then(() => n.result);
}
function s(e, t, n = i()) {
return n._withIDBStore('readwrite', (n) => {
n.put(t, e);
});
}
},
56: function (e, t, n) {
'use strict';
n.r(t),
function (e) {
n.d(t, 'getSharedImage', function () {
return i;
}),
n.d(t, 'offliner', function () {
return o;
}),
n.d(t, 'mainAppLoaded', function () {
return s;
});
var r = n(54);
async function a(e) {
if (e.waiting) return;
const t = await (async function (e) {
return e.installing
? e.installing
: new Promise((t) => {
e.addEventListener('updatefound', () => t(e.installing), {
once: !0,
});
});
})(e);
return new Promise((e) => {
t.addEventListener('statechange', () => {
'installed' === t.state && e();
});
});
}
function i() {
return new Promise((e) => {
const t = (n) => {
'load-image' === n.data.action &&
(e(n.data.file),
navigator.serviceWorker.removeEventListener('message', t));
};
navigator.serviceWorker.addEventListener('message', t),
navigator.serviceWorker.controller.postMessage('share-ready');
});
}
async function o(t) {
if ('boolean' == typeof PRERENDER) return;
navigator.serviceWorker.register(e);
const n = !!navigator.serviceWorker.controller;
if (
(navigator.serviceWorker.addEventListener(
'controllerchange',
async () => {
n
? location.reload()
: t('Ready to work offline', { timeout: 5e3 });
},
),
!n)
)
return;
const r = await navigator.serviceWorker.getRegistration();
r &&
(await a(r),
'reload' ===
(await t('Update available', {
actions: ['reload', 'dismiss'],
})) &&
(async function () {
const e = await navigator.serviceWorker.getRegistration();
e && e.waiting && e.waiting.postMessage('skip-waiting');
})());
}
async function s() {
if (await Object(r.a)('user-interacted')) return;
Object(r.b)('user-interacted', !0);
const e = await (async function () {
const e = await navigator.serviceWorker.getRegistration();
return e ? e.active || e.waiting || e.installing : null;
})();
e && e.postMessage('cache-all');
}
}.call(this, n.p + 'serviceworker.js');
},
},
]);
//# sourceMappingURL=sw-bridge.894ac.js.map

4
src/copy/sw.js Normal file
View File

@ -0,0 +1,4 @@
// I accidentally shipped with the wrong service worker name.
// This picks up users that still might be using that version.
// We'll be able to delete this file eventually.
skipWaiting();

View File

@ -10,6 +10,7 @@ import Checkbox from 'client/lazy-app/Compress/Options/Checkbox';
import Expander from 'client/lazy-app/Compress/Options/Expander';
import linkState from 'linkstate';
import Revealer from 'client/lazy-app/Compress/Options/Revealer';
import { TileShape } from 'codecs/wp2/enc/wp2_enc';
export const encode = (
signal: AbortSignal,
@ -35,9 +36,9 @@ interface State {
slightLoss: number;
colorSpace: number;
errorDiffusion: number;
useRandomMatrix: boolean;
showAdvanced: boolean;
separateAlpha: boolean;
tileShape: number;
}
export class Options extends Component<Props, State> {
@ -60,8 +61,8 @@ export class Options extends Component<Props, State> {
uvMode: options.uv_mode,
colorSpace: options.csp_type,
errorDiffusion: options.error_diffusion,
useRandomMatrix: options.use_random_matrix,
separateAlpha: options.quality !== options.alpha_quality,
tileShape: options.tile_shape,
};
// If quality is > 95, it's lossless with slight loss
@ -120,7 +121,7 @@ export class Options extends Component<Props, State> {
uv_mode: optionState.uvMode,
csp_type: optionState.colorSpace,
error_diffusion: optionState.errorDiffusion,
use_random_matrix: optionState.useRandomMatrix,
tile_shape: optionState.tileShape,
};
// Updating options, so we don't recalculate in getDerivedStateFromProps.
@ -148,9 +149,9 @@ export class Options extends Component<Props, State> {
slightLoss,
colorSpace,
errorDiffusion,
useRandomMatrix,
separateAlpha,
showAdvanced,
tileShape,
}: State,
) {
return (
@ -213,17 +214,23 @@ export class Options extends Component<Props, State> {
</div>
)}
</Expander>
<label class={style.optionReveal}>
<Revealer
checked={showAdvanced}
onChange={linkState(this, 'showAdvanced')}
/>
Advanced settings
</label>
</div>
)}
</Expander>
<label class={style.optionReveal}>
<Revealer
checked={showAdvanced}
onChange={linkState(this, 'showAdvanced')}
/>
Advanced settings
</label>
<Expander>
{showAdvanced && (
<div>
<Expander>
{showAdvanced && (
{!lossless && (
<div>
<div class={style.optionOneCell}>
{/*<div class={style.optionOneCell}>
<Range
min="1"
max="10"
@ -233,7 +240,7 @@ export class Options extends Component<Props, State> {
>
Passes:
</Range>
</div>
</div>*/}
<div class={style.optionOneCell}>
<Range
min="0"
@ -245,17 +252,6 @@ export class Options extends Component<Props, State> {
Spatial noise shaping:
</Range>
</div>
<div class={style.optionOneCell}>
<Range
min="0"
max="100"
step="1"
value={errorDiffusion}
onInput={this._inputChange('errorDiffusion', 'number')}
>
Error diffusion:
</Range>
</div>
<label class={style.optionTextFirst}>
Subsample chroma:
<Select
@ -263,7 +259,7 @@ export class Options extends Component<Props, State> {
onInput={this._inputChange('uvMode', 'number')}
>
<option value={UVMode.UVModeAuto}>Auto</option>
<option value={UVMode.UVModeAdapt}>Vary</option>
<option value={UVMode.UVModeAdapt}>Mixed</option>
<option value={UVMode.UVMode420}>Half</option>
<option value={UVMode.UVMode444}>Off</option>
</Select>
@ -276,22 +272,37 @@ export class Options extends Component<Props, State> {
>
<option value={Csp.kYCoCg}>YCoCg</option>
<option value={Csp.kYCbCr}>YCbCr</option>
<option value={Csp.kCustom}>Adaptive</option>
<option value={Csp.kYIQ}>YIQ</option>
</Select>
</label>
<label class={style.optionToggle}>
Random matrix
<Checkbox
checked={useRandomMatrix}
onChange={this._inputChange(
'useRandomMatrix',
'boolean',
)}
/>
</label>
<div class={style.optionOneCell}>
<Range
min="0"
max="100"
step="1"
value={errorDiffusion}
onInput={this._inputChange('errorDiffusion', 'number')}
>
Error diffusion:
</Range>
</div>
</div>
)}
</Expander>
<label class={style.optionTextFirst}>
Tile shape:
<Select
value={tileShape}
onInput={this._inputChange('tileShape', 'number')}
>
<option value={TileShape.Auto}>Auto</option>
<option value={TileShape.Square128}>128x128</option>
<option value={TileShape.Square256}>256x256</option>
<option value={TileShape.Square512}>512x512</option>
<option value={TileShape.Wide}>Maximum</option>
</Select>
</label>
</div>
)}
</Expander>

View File

@ -11,7 +11,7 @@
* limitations under the License.
*/
import type { EncodeOptions } from 'codecs/wp2/enc/wp2_enc';
import { UVMode, Csp } from 'codecs/wp2/enc/wp2_enc';
import { UVMode, Csp, TileShape } from 'codecs/wp2/enc/wp2_enc';
export { EncodeOptions, UVMode, Csp };
@ -27,5 +27,5 @@ export const defaultOptions: EncodeOptions = {
uv_mode: UVMode.UVModeAuto,
csp_type: Csp.kYCoCg,
error_diffusion: 0,
use_random_matrix: false,
tile_shape: TileShape.Auto,
};

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -28,7 +28,7 @@ const branchOriginTrialIds = new Map([
],
[
'live',
'AgoKiDqjr0GVPtrwV/vuVlrrSvbDa5Yb99s+q66ly816DrrAQ8Cdas33NgDtmhxM4BtDP9PEdyuxHPyTQHD5ZAcAAABUeyJvcmlnaW4iOiJodHRwczovL3NxdW9vc2guYXBwOjQ0MyIsImZlYXR1cmUiOiJXZWJBc3NlbWJseVNpbWQiLCJleHBpcnkiOjE2MDg2NzI5OTR9',
'Ak9YMaDZyWUUZFbVJng8FM2LWWNeBcWaHTtHzzaTAq044kMlQH5/hsMb/90Ii2I7m/lPx8EpgOIUMWkWeoaKfgIAAABUeyJvcmlnaW4iOiJodHRwczovL3NxdW9vc2guYXBwOjQ0MyIsImZlYXR1cmUiOiJXZWJBc3NlbWJseVNpbWQiLCJleHBpcnkiOjE2MTExNTkwNjZ9',
],
]);