Hmm, well, without audio, I do not believe TheoraAudioDriver::getAudioStreamWriteable should ever be called... Seems, like the solution is not to check for 0, but to prevent that audio stuff from being called. The lib is a little dependent on audio as of now (definately a bug), which I planned to fix in the next video plugin.. Just, havn't had any time to work on a new plugin (which would fix many issues). If you find the root of the problem (why audio stuff is getting called at all with no audio), I would love a patch.
As for your other problem..hmm. 15 Fps without even loadiung any clips? wierd. How is the Ogre Cegui Gui Demo running? That would definately cause some sync issues with FPS that low. Also, your video of 640x480 is a little large. Remember that textures are scaled up by powers of two.. so, it becomes 1024x512. I would try to keep it down to a minimum of 512x512 (after scaling). Also, theora itself can be a little slow at decoding large videos.. It is not a heavily optimised codec like XVid.. And probably never will be, which is one reason I am looking for an alternative codec for my next lib. I would use XVid, if it were not GPL and also threatened by patents etc.