From: Maik M. <mai...@go...> - 2008-02-10 13:28:00
|
Hello, I'm new here so... "hi!" :-) The current pure Java decoder for Theora is based on jheora, the Theora decoder from the Cortado player applet. That one was ported from the C Theora reference implementation during Theora alpha 3 or 4. While the bitstream specification of Theora was frozen by then the alpha reference decoder only implemented a subset of the Theora specification. This wasn't a grave problem back then because the reference encoder only used a subset of the specification as well. The jheora port inherited this restriction. The ffmpeg VP3/Theora decoder, by the way, features the same limitations. (Hopefully) within this year a mostly rewritten Theora encoder will go mainline, which uses advanced bitstream features which were not implemented in the alpha decoder. Theora beta 1 and onwards thus deploy a completely new decoder, which implements the complete Theora spec (and is faster, too). As Linux distributions deploy this complete decoder most Linux users will be able to play streams produced by the new encoder without headaches. The old alpha decoder codebase is basically abandoned as that codebase wasn't prepared at all to handle the new bitstream features. I don't think it makes sense to try to patch jheora for full spec-compliance. I assume porting http://svn.xiph.org/trunk/theora/lib/dec/ to Java may be the only viable way. Having no C to Java conversion experience I failed miserably at the task to do a port, mostly because the pointer arithmetics just won't translate properly. Any plans on how Fmj will cope with this? Anybody with C to Java conversion experience who could do a quick analysis on how big the porting pain may be? Maik Merten |