IOS: Difference between revisions

From XiphWiki
Jump to navigation Jump to search
(+JavaScript see also link)
Line 11: Line 11:


== OS integration ==
== OS integration ==
=== Native codecs ===
<span style="color:red; font-weight:bold">NO</span>


iOS's native media framework is [https://developer.apple.com/av-foundation/ AVFoundation], which unfortunately is not extensible with codec or file type plugins. :(
iOS's native media framework is [https://developer.apple.com/av-foundation/ AVFoundation], which unfortunately is not extensible with codec or file type plugins. :(


It should be possible for an Obj-C wrapper library to use the same audio and video buffer types for input/output as AVFoundation does, however, which will make it easier to hook them up together for transcoding or live encoding from the camera.
It should be possible for an Obj-C wrapper library to use the same audio and video buffer types for input/output as AVFoundation does, however, which will make it easier to hook them up together for transcoding or live encoding from the camera.
=== File type handler ===
<span style="color:green; font-weight:bold">YES</span>
It is possible for an app that plays Ogg media to register its file types with the system, allowing other apps that may download files (Safari, Mail, Dropbox, etc) to prompt to open them in the player.
I have implemented an early test of this in OgvKit demo player; it works but, for instance Safari will download the entire file and '''then''' hand it off to the player, so you cannot play during the download.
=== URL handler ===
<span style="color:orange; font-weight:bold">YES, BUT</span>
It is possible for an app that plays Ogg media to register a URL handler, which would allow other apps or web content to launch the player. A remote URL could be included as a parameter on that URL, allowing apps or web content to hand off something to download-and-play progressively.
Unfortunately you can't do something like register for 'http[s]://*/*.ogv' -- you can only register a scheme such as 'x-ogvkit-player'. So you can't accept arbitrary HTTP or HTTPS links; the calling app or web content needs to know your app-specific URL scheme.


== Related projects ==
== Related projects ==

Revision as of 04:45, 9 November 2013

At least libogg, libvorbis, and libtheora build and run on iOS without modification in their current incarnations.

Building

Experimental work in progress script to build the libraries to .framework bundles that can be easily linked to in an Xcode project: https://github.com/brion/OgvKit

Notes

  • libtheora
    • Must pass --disable-asm, as the asm code doesn't build for iOS (yet?) errs

OS integration

Native codecs

NO

iOS's native media framework is AVFoundation, which unfortunately is not extensible with codec or file type plugins. :(

It should be possible for an Obj-C wrapper library to use the same audio and video buffer types for input/output as AVFoundation does, however, which will make it easier to hook them up together for transcoding or live encoding from the camera.

File type handler

YES

It is possible for an app that plays Ogg media to register its file types with the system, allowing other apps that may download files (Safari, Mail, Dropbox, etc) to prompt to open them in the player.

I have implemented an early test of this in OgvKit demo player; it works but, for instance Safari will download the entire file and then hand it off to the player, so you cannot play during the download.

URL handler

YES, BUT

It is possible for an app that plays Ogg media to register a URL handler, which would allow other apps or web content to launch the player. A remote URL could be included as a parameter on that URL, allowing apps or web content to hand off something to download-and-play progressively.

Unfortunately you can't do something like register for 'http[s]://*/*.ogv' -- you can only register a scheme such as 'x-ogvkit-player'. So you can't accept arbitrary HTTP or HTTPS links; the calling app or web content needs to know your app-specific URL scheme.

Related projects