Recently I've been working again on Video Player; see the
blog announcing Video Player if you're wondering what I mean (the summary: its Codeine 2.0). It's codebase is nice and small so it's pretty easy to make some progress. First thing I did was remove the remaining dependencies on KDE 3 Support and Qt 3 Support. I can't really say its
fully ported yet, but its certainly no longer using any deprecated APIs. Thanks to some help from Matt Rogers of Kopete fame, it also no longer crashes on exit. In fact it has no known crashes, an important milestone with any software, though a state that's usually short-lived.
Phonon in KDE 4.0 will not have APIs for subtitle or multiple audio streams (like on DVDs and .mkv files). So Matthias Kretz added a property to the Phonon Xine backend to give direct access to xine_stream_t, an important data structure in Xine. I was able to use this property to add subtitle support for Video Player. Currently it doesn't have any way of knowing when a new subtitle is available (for instance on a DVD, the title screen may have no subtitles, but then they are available when you start playing the movie), and it just asks Xine every 5 seconds. Hopefully I can find some solution for this, perhaps from the Phonon Xine engine or directly from Xine.
This all means Video Player will have a direct dependency on Xine and the Phonon Xine engine until at least KDE 4.1 (though it could probably work with other engines, just without subtitle or multiple audio streams).
Last night I coded back in Codeine's fade-out on exit. And when I have more time (I have a Stat final tomorrow) I plan on fixing up all the other little features that make Codeine great, mostly involving keeping state.
I actually do have an idea for a less generic but still simple name for Video Player, but I'll keep it private until I buy the domain.