Community Goals
The FOMS participants discussed key issues that open media systems are facing in the current environment:
- OggIndex
- Xiph Process
- URI media fragments
- Ogg Adaptive Streaming
- libsydneyaudio
- liboggplay
- ROE and resource description for HTML5
- Handling Ogg Chaining
- HTML5 media accessibility
- Ogg ActiveX control
- Ogg and mobile
- YUV to RGB conversion and scaling for Ogg Theora
- 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
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
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