Can JS Algorithm object finally solve html5 codecs gridlock and move us forward?
bruant.d at gmail.com
Fri Jan 18 14:42:13 PST 2013
Le 18/01/2013 22:51, neuralll a écrit :
> Hi guys
> I am playing with web audio api and mozilla audio api but I got frustrated about so much html5 potential wasted due to infinite codecs deadlock support in browsers holding progress back for so long.
> This even resulted to people writing codecs purely in JS.
> Unfortunately performance is obviously slow and limiting to browsers allowing raw data from js
How slow? I'm not familiar with the performance story here and I wonder
how slow it is, for which sound quality on a modern browser with normal
Do transferables & WebWorkers make the story better? (I don't know how
much these algorithms work in parallel)
What is the slowness due to in current browsers? Is there a known
bottleneck in current browsers implementations?
> And slow mainly because of huffman and imdct.
> But looking at block diagrams of pretty much any widespread codec like theora ogg mpg aac mp4
> it striked me.
> Since they pretty much share the same building blocs. and which themself are not that much patent encumbered.
> So why not just introduce new Algorithm object in JS
> and just register huffman idct imdct filterbank in it. for browsers its easy task they just make visible already heavily hw optimized pretty much 4 or so functions that are already in them
> And then suddenly you can have theora ogg flac acc or pretty much any media decoded in js in all browsers but with speeds approaching those on native hw.
What is the expected performance gains? And I expect numbers as an
answer, hopefully backed by some benchmarks.
> just look at incredible work of talented guys at official.fm and their js codecs even for flac
So... that's a JS codec? I think if they made it work, it's basically an
argument in favor of *not* adding these algorithms to the language.
Reading a bit more about it . Quotes: " With [these JS libraries], it
is possible to play MP3, Apple Lossless, FLAC, and AAC even in browsers
without native support."
courtesy of these APIs and the hard work of browser creators and spec
I'm kind of puzzled. They made it work to a level they find acceptable
with current browser capabilities.
What else do you need?
More information about the es-discuss