Skip to content
Brion Vibber edited this page Mar 6, 2014 · 1 revision
  1. Device specs
  • SoC: Apple A5X
  • CPU ISA: armv7
  • CPU cores: 2
  • OS: iOS 7.0.2
  • Browser: Safari
  1. Browser features
  • Uint8ClampedArray: yes
  • Uint32Array view on top of CanvasImageData buffer: yes
  • Web audio: yes (but must start audio from a user input event)
  • WebGL: no
  • Workers: yes (test me)
  • Transferable: yes (test me)
  1. Status

Currently video performance is too slow on all of my 32-bit iOS test devices including the iPad 3 — it’s more promising on the [64-bit iPhone 5s](https://github.com/brion/ogv.js/wiki/iPhone-5s)

For pure audio files we’re getting pretty good output now, but may want to tune the buffer sizes to balance soothness and sync.

Since everything runs on the UI thread right now, we’re maxing out one of 2 available CPU cores for video.

Since WebGL is not available on iOS without jailbreaking, we have to keep doing colorspace conversion and drawing on the CPU.

Moving decoding to a Worker should split some of the work between the two available CPU cores; that might be enough to get 160p videos playing smooth enough, but maybe not. It’s right on the edge.

  1. Testing

CPU usage can be measured by firing up Instruments from Xcode and reattaching it to the Safari process. Need to confirm this works smoothly and can report per-core info.

Safari web contents can be debugged remotely via Safari on a Mac; but like on OS X opening the debugger seems to disable the JIT and really slows down execution.

Clone this wiki locally