Reinier Zwitserloot
2005-Jun-10 20:38 UTC
[Theora] Seeking through Theora+Vorbis ogg file..
Here's the problem: I've rewritten large parts of the output code of cortado 0.1.0 with the following aims: 1. output to something SWT-like instead of AWT. 2. Speed it up a bit. In the rewrites I haven't restricted myself to java 1.1; the fact that it uses SWT all by itself makes it useless for applets anyway. The speedup worked very nicely; it's almost twice as fast as vanilla cortado 0.1.0. I noticed there's a 0.1.2 out with what looks like some serious speedups - but most of those are in the output layer which I already rewrote, and I've already checked - merging my changes with the 0.1.0 -> 0.1.2 seems horrible. So, two questions: 1. Does cortado 0.1.2 do anything in regards to seeking? I know cortado isn't really made for seeking (as it's intended audience is as a backend to a streaming server), and, assuming for a moment that the answer is no: 2. How hard would it be to code seek support into cortado, or native (not using any libraries) theora+vorbis (in an ogg stream) players? I freely confess I have very very little knowledge of how theora and vorbis work. The rewrite work I did was all in code past the point where the decoder delivers what amounts to raw video data, and I didn't mess with the audio system at all. alternative question: Is there any vanilla java (any version) theora + vorbis decoder out there that does support seeking? For those interested: I did manage to refit my modified cortado with a feature that resets most buffers and allows you to start playing an entirely different stream without creating entirely new objects (which wouldn't even work right; there's a number of static methods and fields in play). Unfortunately it only works half the time, and unfortunately, just setting cortado's clock more than a few seconds away from start means the whole system goes haywire, probably because cortado then tries to unpack all frames as fast as it can until it hits the clock, instead of just warping forward to an appropriate keyframe and taking it from there. -- ------------------- "Ubi non accusator, ibi non judex." -- Reinier Zwitserloot