Commit Graph

166 Commits

Author SHA1 Message Date
Ingvar Stepanyan
9420dba3bc Parallel OxiPNG improvements
- Refactor to work around Chromium's issue with postMessage queuing. https://bugs.chromium.org/p/chromium/issues/detail?id=1075645
 - Convert codec code to TypeScript.
 - Make separate parallel and non-parallel builds.
 - Switch to nightly Rust for OxiPNG to allow parallel builds (but also reuse it for regular builds to avoid installing two toolchains).
2020-10-07 20:42:48 +01:00
Ingvar Stepanyan
0747d2c419 Rework fallback for postMessage issue
Now initialise all workers with module+memory separately, and then instead of using postMessage to send thread pointers, push them into a crossbeam-deque on the Rust side.

Rayon already depends on crossbeam-dequeue, so we're not even adding another dependency, and this model allows us to push "tasks" (thread pointers) on the main thread and pop them on worker threads in arbitrary order without sacrificing correctness.
2020-10-07 20:42:48 +01:00
Ingvar Stepanyan
4c658b79ef OxiPNG + threads PoC 2020-10-07 20:42:48 +01:00
Ingvar Stepanyan
685558847f Multithread AVIF PoC 2020-10-07 20:42:48 +01:00
Trevor Manz
63ac34a662 Promisify emscripten modules & fix webp examples (#817) 2020-09-30 00:05:59 +01:00
Jake Archibald
e14790f0b9 Ensure node_modules is created 2020-09-16 10:24:20 +01:00
Velu S Gautam
dfee848a39 Update example.html (#827)
rawImage is a Uint8ClampedArray and doesn't have width and height property.
2020-09-16 07:42:32 +01:00
Jake Archibald
a437afdf2b Update AVIF build to produce shipped wasm (#823)
* argh

* It works!

* Silly me

* Changes following feedback
2020-09-15 11:08:20 +01:00
Jake Archibald
9d81a9cd57 Merge branch 'dev' into avif-options 2020-08-26 12:39:40 +01:00
Jake Archibald
95570c8b3c Revert "Merge pull request #800 from GoogleChromeLabs/mozjpeg_dec"
This reverts commit 5715fb7b1b, reversing
changes made to 2c923e5239.
2020-08-26 12:28:06 +01:00
Jake Archibald
fd5c557065 Cheeky smaller wasms 2020-08-26 11:09:15 +01:00
Jake Archibald
549e1fc50a Use bt709 if not lossless so colour is correct 2020-08-25 14:12:26 +01:00
Jake Archibald
e316b0d667 Use identity coefficients for true lossless 2020-08-25 13:39:01 +01:00
Jake Archibald
8f2dcb5f48 Options mostly working 2020-08-25 13:11:10 +01:00
Surma
cd33a2f759 Fine. Count the lines. 2020-08-24 14:21:35 +01:00
Surma
ee561bb00e Allow more than one scanline at a time 2020-08-24 14:03:44 +01:00
Surma
75275a5596 Update codecs/mozjpeg/dec/mozjpeg_dec.cpp
Co-authored-by: Ingvar Stepanyan <rreverser@google.com>
2020-08-24 14:00:38 +01:00
Surma
8cd811cafd Review 2020-08-24 12:43:12 +01:00
Surma
4e090ea2f8 Remove unnecessary includes 2020-08-21 16:43:36 +01:00
Surma
c23d1091e7 Implement decoder 2020-08-21 16:31:04 +01:00
Surma
d4f8b7f38b Add LICENSES to codecs 2020-08-21 13:44:36 +01:00
Surma
fe52c9b307 Fix Makefile 2020-08-11 18:49:07 +01:00
Surma
3745a3fff1 Revert "Enable address sanitizer"
This reverts commit d89e846896.
2020-08-11 18:41:42 +01:00
Surma
d89e846896 Enable address sanitizer 2020-08-11 18:41:09 +01:00
Ingvar Stepanyan
db6dea846a AVIF Makefile improvements 2020-08-05 15:56:36 +01:00
Ingvar Stepanyan
8036579a3c RawImage -> ImageData; report errors with null 2020-08-05 15:10:33 +01:00
Ingvar Stepanyan
0807fa4b9a Remove obsolete free_result refs 2020-08-05 14:40:15 +01:00
Surma
0218d0aac5 Avoid leaks during encoding 2020-08-05 14:40:04 +01:00
Surma
cfba6e7bd5 Disable examples 2020-08-05 14:39:58 +01:00
Surma
c6015e2e8d Don't copy dem pixels 2020-08-05 14:39:54 +01:00
Surma
94a2a7b32f Free pixels 2020-08-05 14:39:50 +01:00
Surma
03f33847a3 Code review 2020-08-05 14:39:46 +01:00
Surma
563b558204 Remove free() method 2020-08-05 14:39:41 +01:00
Surma
3c92f2d531 Download sources as tar.gz 2020-08-05 14:39:35 +01:00
Surma
f5ab9a9a59 Remove CFLAGS and improve git folder targets 2020-08-05 14:39:30 +01:00
Surma
7893660679 Fix alpha channel in encoder 2020-08-05 14:39:26 +01:00
Surma
15dac42a7f Remove stray files 2020-08-05 14:39:21 +01:00
Surma
53298a23ad Remove package.json and move git to Makefile 2020-08-05 14:39:14 +01:00
Surma
7ffa45ba86 Update libavif and libaom 2020-08-05 14:39:07 +01:00
Surma
ee99cf6e0b Move to makefile for AVIF 2020-08-05 14:39:01 +01:00
Ingvar Stepanyan
2edb8cbd7e Upgrade AVIF decoding code
- Update to newer APIs.
 - Avoid manual pixel-by-pixel copy in favour of decoding directly to desired format & bit depth.
 - Avoid use-after-free by cloning the Uint8Array Wasm memory view into a JS-owned Uint8Array right away.
2020-08-05 14:38:56 +01:00
Ingvar Stepanyan
0ac3d17969 Move AOM cloning to napa 2020-08-05 14:38:51 +01:00
Ingvar Stepanyan
1baa823d77 Upgrade libavif 2020-08-05 14:38:48 +01:00
Ingvar Stepanyan
368ad9505e Use make -j in AVIF 2020-08-05 14:38:42 +01:00
Ingvar Stepanyan
08c267a98b Add LTO to AVIF 2020-08-05 14:38:37 +01:00
Ingvar Stepanyan
0c3ef3fdf5 Migrate AVIF to Emscripten upstream 2020-08-05 14:38:33 +01:00
Surma
17dcc9c7d4 Update AVIF encoder README 2020-08-05 14:38:31 +01:00
Surma
ac9a7767d2 Expose some options for AVIF 2020-08-05 14:38:29 +01:00
Surma
c29006d593 Add AVIF encoder without options 2020-08-05 14:38:26 +01:00
Surma
e1ab43b76f Add AVIF encoder 2020-08-05 14:38:23 +01:00