Lars Hansen deserves most of the credit for the actual spec -- I'm just doing the memory model. :)
The concurrency/memory model nerds out here would love to see an early draft if at all possible :)
If nothing else, is it going to be weaker than sequential consistency?
The two strengths provided by the model are sequentially consistent atomics and something between the strengths of C++'s non-atomics and relaxed atomics. Races are fully defined, and there is no undefined behavior or undefined values.
I'm happy to discuss things more in a new thread or in private communication and would prefer to not derail this thread about VLC.
Offscrren canvas will let you render in a worker and display with zero copy
Or maybe the H.264 gets handled by the JS side and the web assembly just handles weird formats that are mostly not high def video?
The one thing I like most about VLC is that it always works (so far).
Our plan is up on the wiki too: http://www.archiveteam.org/index.php?title=VLC.js
I've started seeing VLC included on work-orientated desktop builds and the Cone icon sticks out like a sore thumb, and most lay-users have no idea what VLC is so assume it's a system utility (based on the icon).
Maybe a combo of a Video Player icon, with a smaller traffic cone on the side... ?
But so far, it's very distinctive, so it will stay like that, until a better icon is submitted.
What do you think ? :)
It seems just very low-res stuff will be interactively playable if the speed difference remains. Maybe it's enough for the very old stuff, however.
But, we believe we need WebAssembly + Wasm-Threads. Without threads it will be a very difficult task to port VLC: you notably need one thread for input, one for audio output, one for video output, and one for the playlist.
However, threads are supposed to come in an update to WebAssembly. So that will be cool.
Also, VLC is very very heavily modularized, and Wasm will bring modules.
Finally, porting all codecs will be hard (FFmpeg), but VLC has some very simple modules for a few codecs, like theora and mpeg2, so it is easy to start and port one module after another...