[Xiph-dev] What's the status of Xiph codecs support in the Helix project?

Aaron Colwell acolwell at real.com
Mon Oct 8 13:06:20 EDT 2007


Comments inline

Ivo Emanuel Gonçalves wrote:
> Hello lists,
> 
> Personally, I have not yet had an opportunity to test the different
> components in the Helix project.  As such, most of what I know comes
> from Wikipedia.
> 
> In Wikipedia, it is stated that the Helix DNA Client supports Vorbis
> and Theora, but apparently, not Speex.  Is it this true?  

This is true.

 > How hard
> would it be to port an implementation of Speex to the Helix Client?

Not that hard.

> Is anyone working in it?
Not at the moment. I'm essentially the maintainer of the Xiph related 
code and haven't had the time lately to add speex support. At a minimum
I'm hoping to do a new release with the Theora Beta 1 decoder in the 
next week or so.

 > What about Ogg Skeleton, which is now a
> requirement for Theora videos served under the video/ogg media type?
> 
Has this been formally made a requirement yet? It seems like this is 
still being hashed out on the xiph lists. I have yet to comment on the
proposal because I haven't completely groked the whole thread yet. For
now Skeleton is not supported.

> In Wikipedia, it is stated that the Helix DNA Server only supports
> streaming of MP3 and Real Media formats.  Why??  
Because streaming of Ogg has not been implemented yet.

 > The Ogg format was
> created mostly for streaming.
Ogg was created mostly for _HTTP_ streaming. The Helix server is 
traditional RTSP streaming server.

 >That means that streaming Vorbis and
> Theora is (in theory) an easy process to implement for developers.
Not true. Since Ogg allows arbitrary chaining of streams, implementing 
something that handles all of the various cases is quite difficult. 
Ogg's ability to chain segments together that have different numbers of 
streams in them are particularly taxing on the Helix Media Engine 
implementation.

> Then there's also streaming through RTP.  Vorbis, Speex, and Theora
> may be streamed through RTP.
Implementing this has been on my list of things to do. This is 
non-trivial especially if I want to properly handle chained streams.

> 
> With the Helix software becoming part of the XO laptop (the OLPC
> project) it is highly important that free formats work properly in
> Helix, but that doesn't seem to be the case right now.

Since you haven't even used the Helix code I find it difficult to accept
your criticism that it isn't working properly. The code works great for 
the codecs and modes of playback that I have implemented. My primary 
focus was to get the most robust local playback of Theora & Vorbis files 
that I could. Making the ogg file format plugin work with the Helix 
Server and supporting Speex were secondary goals. I plan on adding 
Speex, and RTP delivery when I get a chance.

Since there isn't a compliance document for ogg support and no specified 
minimal codec support, I think it is a stretch to say that Helix doesn't 
support free formats properly. Ogg is woefully under specified 
especially in the chained and multi-stream cases. Having a document that 
   strictly outlines how to handle funky chained files (ie. audio-only, 
followed by audio/video, followed by a segment with 2 video streams) as 
well as files with say 2 audio tracks or 2 video streams would be of 
great help and would provide a way for all of the implementations out 
there to converge on a single interpretation.

This has been a side project of mine for several years. I haven't spent 
much time on it lately because I have gotten little to no feedback on it 
  . I've pretty much interpreted that as any of several things; users 
are happy with the current code, they don't care about this work, or 
they are unhappy but don't post anything to the list so I can fix it. In 
all of these cases there isn't much incentive to work on the code since 
there is no outside feedback. Also since there really isn't a minimum 
bar for claiming compliance, spec compliance isn't a motivator either.

Aaron

> 
> -Ivo
> 
> _______________________________________________
> Xiph-dev mailing list
> Xiph-dev at helixcommunity.org
> http://lists.helixcommunity.org/mailman/listinfo/xiph-dev



More information about the Devel mailing list