mirror of
https://github.com/GoogleChromeLabs/squoosh.git
synced 2025-11-13 09:17:20 +00:00
Compare commits
7 Commits
warn-on-un
...
hotfix-avi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ecc864120e | ||
|
|
89d5d8063d | ||
|
|
2e8dd1e247 | ||
|
|
fc2e658feb | ||
|
|
43233e2c55 | ||
|
|
2467d0046e | ||
|
|
c58c4beb1a |
@@ -1,13 +1,16 @@
|
||||
CODEC_URL = https://github.com/AOMediaCodec/libavif/archive/v0.9.0.tar.gz
|
||||
CODEC_URL = https://github.com/AOMediaCodec/libavif/archive/31d7c6d1e32cf467ac24fb8c7a76c4902a4c00db.tar.gz
|
||||
CODEC_PACKAGE = node_modules/libavif.tar.gz
|
||||
|
||||
LIBAOM_URL = https://aomedia.googlesource.com/aom/+archive/v2.0.2.tar.gz
|
||||
LIBAOM_URL = https://aomedia.googlesource.com/aom/+archive/4a8e276e3e0ef3c76083f3975d5caa85bc9593ce.tar.gz
|
||||
LIBAOM_PACKAGE = node_modules/libaom.tar.gz
|
||||
|
||||
export CODEC_DIR = node_modules/libavif
|
||||
export BUILD_DIR = node_modules/build
|
||||
export LIBAOM_DIR = node_modules/libaom
|
||||
|
||||
export CFLAGS += -g
|
||||
export CXXFLAGS += -g
|
||||
|
||||
OUT_ENC_JS = enc/avif_enc.js
|
||||
OUT_NODE_ENC_JS = enc/avif_node_enc.js
|
||||
OUT_ENC_MT_JS = enc/avif_enc_mt.js
|
||||
@@ -21,10 +24,6 @@ ENVIRONMENT = worker
|
||||
|
||||
HELPER_MAKEFLAGS := -f helper.Makefile
|
||||
|
||||
export CFLAGS+=-g
|
||||
export CXXFLAGS+=-g
|
||||
export LDFLAGS+=-g
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
all: $(OUT_ENC_JS) $(OUT_DEC_JS) $(OUT_ENC_MT_JS) $(OUT_NODE_ENC_JS) $(OUT_NODE_DEC_JS)
|
||||
@@ -54,7 +53,7 @@ $(OUT_ENC_MT_JS): $(OUT_ENC_CPP) $(CODEC_DIR)/CMakeLists.txt $(LIBAOM_DIR)/CMake
|
||||
" \
|
||||
ENVIRONMENT=$(ENVIRONMENT) \
|
||||
LIBAVIF_FLAGS="-DAVIF_CODEC_AOM_DECODE=0" \
|
||||
OUT_FLAGS="-pthread"
|
||||
OUT_FLAGS="-pthread -s PROXY_TO_PTHREAD=1 -g"
|
||||
|
||||
$(OUT_NODE_DEC_JS): ENVIRONMENT=node
|
||||
$(OUT_NODE_DEC_JS) $(OUT_DEC_JS): $(OUT_DEC_CPP) $(CODEC_DIR)/CMakeLists.txt $(LIBAOM_DIR)/CMakeLists.txt
|
||||
|
||||
702
codecs/avif/dec/avif_dec.js
generated
702
codecs/avif/dec/avif_dec.js
generated
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
723
codecs/avif/enc/avif_enc.js
generated
723
codecs/avif/enc/avif_enc.js
generated
File diff suppressed because it is too large
Load Diff
Binary file not shown.
2031
codecs/avif/enc/avif_enc_mt.js
generated
2031
codecs/avif/enc/avif_enc_mt.js
generated
File diff suppressed because it is too large
Load Diff
Binary file not shown.
25
codecs/avif/enc/avif_enc_mt.worker.js
generated
25
codecs/avif/enc/avif_enc_mt.worker.js
generated
@@ -16,10 +16,6 @@ var initializedJS = false; // Guard variable for one-time init of the JS state (
|
||||
|
||||
var Module = {};
|
||||
|
||||
function assert(condition, text) {
|
||||
if (!condition) abort('Assertion failed: ' + text);
|
||||
}
|
||||
|
||||
function threadPrintErr() {
|
||||
var text = Array.prototype.slice.call(arguments).join(' ');
|
||||
console.error(text);
|
||||
@@ -28,12 +24,6 @@ function threadAlert() {
|
||||
var text = Array.prototype.slice.call(arguments).join(' ');
|
||||
postMessage({cmd: 'alert', text: text, threadId: selfThreadId});
|
||||
}
|
||||
// We don't need out() for now, but may need to add it if we want to use it
|
||||
// here. Or, if this code all moves into the main JS, that problem will go
|
||||
// away. (For now, adding it here increases code size for no benefit.)
|
||||
var out = function() {
|
||||
throw 'out() is not defined in worker.js.';
|
||||
}
|
||||
var err = threadPrintErr;
|
||||
this.alert = threadAlert;
|
||||
|
||||
@@ -91,16 +81,9 @@ this.onmessage = function(e) {
|
||||
// The stack grows downwards
|
||||
var max = e.data.stackBase;
|
||||
var top = e.data.stackBase + e.data.stackSize;
|
||||
assert(threadInfoStruct);
|
||||
assert(selfThreadId);
|
||||
assert(parentThreadId);
|
||||
assert(top != 0);
|
||||
assert(max != 0);
|
||||
assert(top > max);
|
||||
// Also call inside JS module to set up the stack frame for this pthread in JS module scope
|
||||
Module['establishStackSpace'](top, max);
|
||||
Module['_emscripten_tls_init']();
|
||||
Module['writeStackCookie']();
|
||||
|
||||
Module['PThread'].receiveObjectTransfer(e.data);
|
||||
Module['PThread'].setThreadStatus(Module['_pthread_self'](), 1/*EM_THREAD_STATUS_RUNNING*/);
|
||||
@@ -122,7 +105,6 @@ this.onmessage = function(e) {
|
||||
// flag -s EMULATE_FUNCTION_POINTER_CASTS=1 to add in emulation for this x86 ABI extension.
|
||||
var result = Module['dynCall']('ii', e.data.start_routine, [e.data.arg]);
|
||||
|
||||
Module['checkStackCookie']();
|
||||
// The thread might have finished without calling pthread_exit(). If so, then perform the exit operation ourselves.
|
||||
// (This is a no-op if explicit pthread_exit() had been called prior.)
|
||||
if (!Module['getNoExitRuntime']())
|
||||
@@ -134,15 +116,8 @@ this.onmessage = function(e) {
|
||||
Atomics.store(Module['HEAPU32'], (threadInfoStruct + 4 /*C_STRUCTS.pthread.threadExitCode*/ ) >> 2, (ex instanceof Module['ExitStatus']) ? ex.status : -2 /*A custom entry specific to Emscripten denoting that the thread crashed.*/);
|
||||
|
||||
Atomics.store(Module['HEAPU32'], (threadInfoStruct + 0 /*C_STRUCTS.pthread.threadStatus*/ ) >> 2, 1); // Mark the thread as no longer running.
|
||||
if (typeof(Module['_emscripten_futex_wake']) !== "function") {
|
||||
err("Thread Initialisation failed.");
|
||||
throw ex;
|
||||
}
|
||||
Module['_emscripten_futex_wake'](threadInfoStruct + 0 /*C_STRUCTS.pthread.threadStatus*/, 0x7FFFFFFF/*INT_MAX*/); // Wake all threads waiting on this thread to finish.
|
||||
if (!(ex instanceof Module['ExitStatus'])) throw ex;
|
||||
} else {
|
||||
// else e == 'unwind', and we should fall through here and keep the pthread alive for asynchronous events.
|
||||
err('Pthread 0x' + threadInfoStruct.toString(16) + ' completed its pthread main entry point with an unwind, keeping the pthread worker alive for asynchronous operation.');
|
||||
}
|
||||
}
|
||||
} else if (e.data.cmd === 'cancel') { // Main thread is asking for a pthread_cancel() on this thread.
|
||||
|
||||
4
codecs/avif/enc/avif_node_enc.js
generated
4
codecs/avif/enc/avif_node_enc.js
generated
@@ -961,9 +961,9 @@ function updateGlobalBufferAndViews(buf) {
|
||||
Module['HEAPF64'] = HEAPF64 = new Float64Array(buf);
|
||||
}
|
||||
|
||||
var STACK_BASE = 6122064,
|
||||
var STACK_BASE = 6122000,
|
||||
STACKTOP = STACK_BASE,
|
||||
STACK_MAX = 879184;
|
||||
STACK_MAX = 879120;
|
||||
|
||||
var TOTAL_STACK = 5242880;
|
||||
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user