

MPEG1 Video Decoder in JavaScript - phoboslab
http://phoboslab.org/log/2013/05/mpeg1-video-decoder-in-javascript

======
adlpz
I have to say that, while I haven't looked into the details, this is quite
impressive. It runs really smooth on my not-so-great desktop. A good sign that
Javascript is no longer the great bottleneck it used to be.

~~~
phoboslab
Decoding is pretty fast - which surprised me as well.

The main performance hog is not the decoding, but the conversion of the
decoded YUV image to RGB for the canvas element. I believe this step could
also be done on the GPU with WebGL.

------
bsenftner
Yet another indicator of how powerful modern CPUs and modern javascript has
become. Yet when I see projects like this, I think about how everyone's video
cards & chips already have hardware video decoding. Why are we not given
access to those APIs? This seems fundamental, yet never a peep about them. I
want access to my own friggen hardware. And it's about time video decoding got
standardized, isn't it? Why, other than media publishers being afraid of it,
do we not have access to these APIs?

~~~
wmf
This has been discussed extensively. Different systems have different codecs
installed, so having the browser pass through to OS/hardware codecs leads to
non-interoperability (the same problem as with EME). Also, Mozilla and Google
were trying for a while to strong-arm the world into adopting VP8 by denying
access to other codecs, but that didn't pan out.

~~~
anonymfus
MP3 would be standard codec for audio if the only concern was
interoperability. It was officially motivated by non-encouraging of usage of
patented formats.

------
mistercow
This is really cool. It seems to me that what browsers really need in order to
unlock huge amount of potential in high performance graphics is an API for
hardware accelerated DSP operations like FFT.

~~~
beatgammit
Do you means something like WebCL[1]? It's not stardized, and caniuse.com
hasn't even heard of it, but it's definitely on the horizon. Wikipedia[2] says
there are already some implementations.

[1] - <http://www.khronos.org/webcl/>

[2] - <http://en.wikipedia.org/wiki/WebCL>

