So I finally figure out how to write data to a texture (using a buffer as an intermediate step and writing a bunch of GL_POINTS to it). I decide to write a Theora video player that will play onto this texture which you can assign to a material which you can assign to a model. After a bit of searching I find etheora, a library that makes it easy to decode theora video data. Takes a little bit to get the theora libs all compiled and set the proper include and library directories. Ok, scaffolding is all in place, etheora integrated now I just need to compile and run....wait, what's this? My cube is blank. Seems the etheora doesn't like the headers of the .ogg file I'm feeding it. No biggy, I'll grab a reference video off the net. Hmm, it likes these headers but doesn't like the data...wtf? Oh...it hasn't been updated in ages and is expecting a much older version of libtheora...joy.
That's the point I'm at. So I can either fix up the etheora code to use the new API or I can write my own decoder based on the reference implementation. Etheora has some really nice features...I think I'll go that route, but I'm tired so maybe I'll get some sleep and make a fresh start tomorrow.