Page MenuHomePhabricator

Package OGVKit for CocoaPods (iOS Ogg Vorbis/Theora playback library)
Closed, DeclinedPublic


Brion has written an iOS library for playing Ogg Vorbis/Theora media files based on the ogv.js JavaScript project. To be easily usable in Wikimedia's official or unofficial iOS app(s), this needs to be packaged up for CocoaPods so we can easily drop it in the project. Some initial steps have been done but it still needs some fixes and to be published.

(Note an alternative is using MobileVLCKit but we've had trouble getting a build that's reliable and small enough yet. Recommend using OGVKit for the near-term.)


  • clean up the user-exposed interface a bit
  • make sure pause/continue work!
  • [optionally: get seeking working with update of internals from ogv.js]
  • publish to CocoaPods repo

Event Timeline

brion claimed this task.
brion raised the priority of this task from to Low.
brion updated the task description. (Show Details)
brion added a subscriber: brion.

I'm making really good progress on OGVKit the last couple weeks (including WebM playback which is higher-quality than Ogg Theora for videos); hope to have it in a state ready to test integration in the app by the end of the month.

Still need to tweak seeking into place and replace in-memory buffering with on-storage buffering.

I did some fixes today to switch to the dynamic framework mode in CocoaPods, which is needed to integrate with an app that uses Swift frameworks. Should be able to start patching Wikipedia-iOS new branch to experiment with video, and will be able to finalize an updated release based on that experience. :D

Bump -- am doing cleanup on OGVKit this month, with an eye towards prepping it for CocoaPods deployment and patching into the iOS app. Note we no longer need Ogg support as badly since we're now shipping patent-free MP3 audio, but will still need the WebM support for videos.

@LGoto, @brion: Can you please associate at least one active project with this task (via the Add Action...Change Project Tags dropdown)? This will allow others to get notified and see this task when looking at the corresponding project workboard. Thanks.

@brion: No replies from anyone within two weeks. Feel free to change the assigned project tags here (via the Add Action...Change Project Tags dropdown) by adding an active project tag. See previous comment.

This task has been assigned to the same task owner for more than two years. Resetting task assignee due to inactivity, to decrease task cookie-licking and to get a slightly more realistic overview of plans. Please feel free to assign this task to yourself again if you still realistically work or plan to work on this task - it would be welcome!

For tips how to manage individual work in Phabricator (noisy notifications, lists of task, etc.), see for available options.
(For the records, two emails were sent to assignee addresses before resetting assignees. See T228575 for more info and for potential feedback. Thanks!)

I'm closing this one out as I'm retiring the incomplete but mostly working OGVKit in favor of recommending MobileVLCKit. It's more mature and better supported, and these days has better build tools than when I started.