Fixing the WMV issues that I talked about earlier turned out to be remarkably simple.
- The early-EOS turned out to be a small data-feeding bug in Totem’s plugin itself, where we would sometimes write on a full buffer, which returns -EAGAIN. Mozilla has some convenience functions to make sure this works OK.
- The lag-on-start was, as expected, a lagging audio stream. Using some quick math in the audiosink, I was able to workaround it. Not perfect, but it works.
- Time slider works.
Seeking still doesn’t work, but I don’t think that’s possible if we operate on direct stdin. I haven’t found mozilla “input seeking” or “page reloading with offset” functions in their API…
The end-user effect of all this is that with some of my latest patches (see Bugzilla), you can now play WMV and Quicktime movies in your browser. Although untested, MPEG should be similar to WMV and thus work as well. Note that A/V sync is not perfect in WMV9 webstreams, I’ll need to have a better look at that. Next, I may work on something like (WAVE/MP3) audio files, which are sometimes used as background music on websites, or otherwise as audio newsstreams (on-demand).