In addition to my in-browser ogv.js media player, I’ve got an OgvKit framework in progress for native iPhone and iPad apps, which I hope to integrate into Wikipedia’s new iOS app somewhere down the line. I took a little Independence Day holiday time and made a bunch of improvements from where I last left it a few months ago:
(If the video is sideways, sorry — it’s still “processing” as of this writing.)
- Color conversion is OpenGL ES-accelerated, cutting CPU usage in half when playing video.
- Audio output actually works, more or less in sync.
- Framework now packaged as a Cocoa Touch Static Library project
Shiny new A7-based 64-bit devices play 480p and even 720p happily (iPhone 5S, iPad Air) but still struggle with some 1080p originals. My oldest devices like an iPhone 3Gs and iPod Touch 4th-gen can’t go higher than 160p or so at present — still significantly faster than the JavaScript ogv.js version which can’t handle video on those devices at all.
Future work for another weekend:
- It turns out the xiph.org git mirrors of theora etc are not being maintained; will switch fetching of library source to SVN.
- Improved controls, seeking, fullscreen
- Cache downloaded data on disk instead of RAM!
- Move more of the player code from the demo into the library so it can be reused…
- Test standalone packaging of the library so it can be dropped in to other projects easily
- Try to get assembly in libtheora to build, and/or replace the ARM assembly code with C SIMD intrinsics
- Find and test on an armv7s device (iPhone 5, 5C or iPad 4th-generation)