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)
Hi Brionv,
I am an iOS developer, I pull your source from Github and try to build project but I encounter this error:
Undefined symbols for architecture x86_64:
“_vpx_codec_dec_init_ver”, referenced from:
-[OGVDecoderWebM processBegin] in OGVDecoderWebM.o
“_vpx_codec_decode”, referenced from:
-[OGVDecoderWebM decodeFrame] in OGVDecoderWebM.o
“_vpx_codec_destroy”, referenced from:
-[OGVDecoderWebM dealloc] in OGVDecoderWebM.o
“_vpx_codec_get_frame”, referenced from:
-[OGVDecoderWebM decodeFrame] in OGVDecoderWebM.o
“_vpx_codec_vp8_dx”, referenced from:
-[OGVDecoderWebM processBegin] in OGVDecoderWebM.o
“_vpx_codec_vp9_dx”, referenced from:
-[OGVDecoderWebM processBegin] in OGVDecoderWebM.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I tried to fix but can not. Could you help me?
Thank in advance.
Did you release OGVKit open source? I can not find?
Please help me.
Thank you.