Community Goals

The FOMS participants discussed key issues that open media systems are facing in the current environment:

  1. OggIndex
  2. Xiph Process
  3. URI media fragments
  4. Ogg Adaptive Streaming
  5. libsydneyaudio
  6. liboggplay
  7. ROE and resource description for HTML5
  8. Handling Ogg Chaining
  9. HTML5 media accessibility
  10. Ogg ActiveX control
  11. Ogg and mobile
  12. YUV to RGB conversion and scaling for Ogg Theora
  13. GStreamer issues

The following goals were agreed on:

1. OggIndex

Short-term:

  • bump up version number to 3.2 and make the following changes
    • unsigned fields rather than signed
    • add a fishead field with byte offset to first data page
    • add a field for Dirac into Skeleton
  • experiment with storing of difference values rather than absolute byte offsets in the index to save space (similar to the lacing values in Ogg) - which could become version 3.3
  • note that HTML5 video element may receive a prebuffer attribute which can specify no prebuffering in addition to minimal prebuffering of the headers in preparation for playback and full progressive buffering
  • extend oggz-validate with index-validator
  • extend oggz-chop with re-index
  • update the skeleton RFC to include the new index
  • possibly create libskeleton

Long-term:

  • get other projects to support OggIndex, including browsers
  • create a wiki page with a list of all the necessary changes in players and transcoding tools OggIndex-Migration

2. Xiph Process and Tools

Short-term:

  • Validation
    • oggz-validate should report all the errors that ogginfo reports
  • Transcoding
    • add FirefOgg encoding to Tools->Create Oggfile in Firefox menu when FirefOgg is installed to turn it more into a "desktop app"
    • include a function into both, libtheora and libvorbis, to configure your codebooks based on another existing file such that related files can be encoded with the same parameters
  • Bug tracker
    • merge annodex and xiph bug tracking
    • set up a launchpad account & import only active bugs from both
  • Releases
    • make more point releases, preferably after every applied patch to relieve distributions from having to manage patch sets in addition to releases
  • Server move at Xiph
    • Wiki: fix xiph wiki password reset
    • tun off MF III
    • create virtual server for validator after updating validator code
    • move annodex.net and turn off anxen3

Long-term:

  • create a fully automated testsuite for Xiph software, using either buildbot to hudson
  • includes creation of a collection of test files with descriptions of what they test
    • media.xiph.org, which currently only holds files for transcoding tests, could be extended to hold test files for xiph software
    • there might need to be a public and a private collection
    • the description of what the test files are for should be in the scripts

3. URI Media Fragments

IRC Log

Short-term:

  • Separate out the spec into "versions" that are easy to implement
    • version 1 should be focused on only client-side temporal url addressing with URI fragments and should be published soon, since it's simple to implement
    • sort through other temporal fragmentation approaches in version 1.1
  • temporal URI fragments (#t=a,b) should mean "focus attention" and we recommend implementing it such that the fragment is played back, then paused, and a "reload" button will replay this fragment - pressing "play" will continue playback at the play position

Long-term:

  • approach non-temporal fragmentation - in particular tracks sound important
  • Get an implementation into the browsers ( firefox, opera seem keen to support url fragments)

4. Ogg Adaptive Streaming

IRC Log

Short-term:

  • Start a concept for a format that allows switching between different bitrates
  • Hack up a C version of adaptive streaming with simple live stream switching

Long-term:

  • Support HTTP Ogg Adaptive Streaming in Firefox and all browsers
  • implemented for both, live streams and static files

5. libsydneyaudio

Short-term:

  • libsydneyaudio needs to be replaced with a callback-based library and a new API for use in Firefox
  • new library will be created at Xiph under the BSD

Long-term:

  • new library also needs dynamic switching of backend

6. liboggplay

Short-term:

  • current liboggplay doesn't allow separate handling of tracks and synchronising to a specific track - needs redesign

Long-term:

  • develop a more complete example player with liboggplay and package it separately:
    • seeking
    • buffering
    • HTTP reads
    • media fragment URIs
    • chaining support
  • use the example player for the testing framework

7. ROE and resource description for HTML5

Short-term:

  • experiment with ROE and other resource description formats for:
    • cross-site resource description
    • adaptive streaming
    • in-line embed syntax consistency
    • multitrack and accessibility

Long-term:

  • achieve a cross-site standard way of sharing resource descriptions - ROE is a potential format

8. Handling Ogg Chaining

Short-term:

  • use cases of chaining: radio streaming & ad insertion - neither really are a playlist
  • instead we need to regard a Ogg chain as a single video or audio resource and calculate the combined duration - use OggIndex for seeking and duration calculation
    • Note: delta encoded seek points will make it easier to seek
  • patch Firefox with Content-Duration HTTP header patch, including Ogg chain duration
  • publish an RFC on Content-Duration HTTP header

Long-term:

  • roll out chaining support in Firefox
  • oggz-info should provide entire chain duration
  • oggz-info could have a json option so its output can be included in scripts

9. HTML5 media accessibility

Short-term:

  • Specify roles & track relationship in multitrack Ogg files in skeleton, e.g. using a "provides", "conflicts with" type approach and describing roles, language and other attributes
  • experiment more with multitrack files that are either composed within Ogg or through external reference in HTML5
  • suggestion to implement a "save as" function into Firefox which encapsulates all externally referenced tracks into a Ogg file for sharing
  • progress external caption & textual audio description specification in HTML5 standard

Long-term:

  • test synchronising external audio files with a main video file using javascript to learn about synchronisation issues, e.g. for audio descriptions
  • Implement multitrack Ogg track description in skeleton
  • develop an alternative to DFXP that is more attuned to the Web

10. Ogg ActiveX control

Short-term:

  • Design an ActiveX control for IE that ultimately provides the full HTML5 media API support, subtitles, and URI media fragments

Long-term:

  • Implement a first ActiveX control for IE8 that provides basic playback, UI, seeking and basic javascript API support

11. Ogg and mobile

Short-term:

  • Firefox for Android
  • investigate extending the existing Wikipedia app for iPhone with a ogg player

Long-term:

  • all phones support Ogg Theora and Vorbis

12. YUV to RGB conversion and scaling for Ogg Theora

Short-term:

  • make Firefox aware that there will be YUV support in Cairo

Long-term:

  • continue developing optimised colour conversion backends
  • have access to the HW backends on all platforms (incl mobile)

13. GStreamer issues

Short-term:

  • create Ogg Index in Skeleton 3.2 support for gstreamer

Long-term:

  • chaining support in gstreamer