- #Javascript emulator typed array 480p#
- #Javascript emulator typed array install#
- #Javascript emulator typed array full#
- #Javascript emulator typed array code#
- #Javascript emulator typed array mac#
and click TenFourFox) and make sure MediaSource is enabled, then visit YouTube. To turn this on, go to our new TenFourFox preference pane (TenFourFox > Preferences. This is at least as good as our AltiVec VP8 performance and as I grind through some of the really heavyweight transforms it should get even better. The 1GHz iMac G4, which I don't technically support for video as it is below the 1.25GHz cutoff, reliably plays 144p and even some easy-to-decode (pillarboxed 4:3, mostly, since it has lots of "nothing" areas) 240p.
#Javascript emulator typed array 480p#
With this initial work the Quad is able to play many 360p streams at decent frame rates in Reduced mode and in Highest Performance mode even some 480p ones. This improves everybody's performance and the mostly minor degradation in quality just isn't bad enough to be worth the CPU time required to clean it up. G3 owners, even though I don't support video on your systems, you get a little boost too because I've also cut out the loopfilter entirely.
#Javascript emulator typed array code#
I'm also not going to attempt any of the encoding-specific routines, so if Google wants this code they'll have to import it themselves.
#Javascript emulator typed array mac#
I'm able to model most of these operations on my old Core 2 Duo Mac mini, so I can do a step-by-step conversion in a relatively straightforward fashion, but it's agonizingly slow going with these bigger ones. Only some of the smaller transforms are converted so far because the big ones are really intimidating. We can collapse a number of shuffles and merges into a single vector permute, and the AltiVec multiply-sum instruction can take an additional constant for use as a bias, allowing us to skip an add step (the SSE2 version must do the multiply-sum and then add the bias rounding constant in separate operations this code occurs quite a bit). Overall, our code really outshines the SSE2 versions I based them on if I do say so myself. It has some of the inverse discrete cosine and one of the inverse Hadamard transforms vectorized, and I also wrote vector code for two of the convolutions but they malfunction on the iMac G4 and it seems faster without them because a lot of these routines work on unaligned data. In addition, this release carries the first pass at AltiVec decoding for VP9. That still doesn't fix it completely and Apollo 18 is still messed up, but it gets the critical track length down to around 10 or 15 seconds on this Quad G5 in Reduced mode and now most non-pathological playlists will work fine. Since machine speed was a factor, I just amped up JavaScript to enter the Baseline JIT very quickly. (The test case here was all the little five or six second Fingertips tracks from They Might Be Giants' Apollo 18, which also happens to be one of my favourite albums, and is kind of wrecked by this problem.) My best guess is that Amazon Music's JavaScript player interface ends up on a different, possibly asynchronous code path in 45 than 38 due to a different browser feature profile, and if the track runs out somehow it doesn't get the end-of-stream event in time. Interestingly, or perhaps frustratingly, although it somewhat improved Amazon Music (by making duration and startup more reliable) the issue with tracks not advancing still persisted for tracks under a certain critical length, which is dependent on machine speed.
#Javascript emulator typed array full#
Space-saving, environmentally responsible computer recycling! Yes, I know I'm full of great ideas.
#Javascript emulator typed array install#
(See, now there's a good use for that Mac mini G4 gathering dust on your shelf: install TenFourFox and set it up for remote screensharing access, and use it as a headless Internet radio - I'm sitting here listening to National Public Radio over Shoutcast in a foxbox as I write this. The new implementation works well with Google Translate, Soundcloud, Shoutcast and most of the other things I tried. Simply by doing that fixed a number of other bugs which were probably related to how we chunked frames, such as Google Translate voice clips getting truncated and problems with some types of MP3 live streams now we use Mozilla's built-in frame parser instead and in this capacity minimp3 acts mostly as a disembodied codec. Here's what's new so far, roughly in order of importance.įirst, minimp3 has been converted to a platform decoder. This blog post will serve as the current "release notes" since we have until November 8 for the next release and I haven't decided everything I'll put in it, so while I continue to do more work I figured I'd give you something to play with.
The TenFourFox 45.5.0 beta (yes, it says it's 45.4.0, I didn't want to rev the version number yet) is now available for testing ( downloads, hashes).