Although I’m still working on the infamous envelopes job, yesterday I tried to use the day as much as I could to work a bit on xine-lib.
Thanks to Matt Messier and Darren Salt, the newbuild branch has been merged into 1.2 series, so I decided to go along with my plan and started moving all the contributed code and the internal copies of the libraries.
This required quite a bit of fiddling with dependencies, rules and other not-so-nice stuff, but at last now we have the
contrib/ directory that contains all the code that is not directly under xine team control.
It’s also nice to see that the size of the contributed code is 21MB while the size of xine itself (together with libmpeg2 actually) is just 14MB.
My work was not limited to this actually, but also consisted in a bit of reordering of some plugins: for instance the NSF plugin is now both demuxer and decoder, rather than having a plugin on its own for the decoder, and the demuxer inside the plugin for audio formats. I also moved the modplug demuxer on its own plugin, this way it’s possible to avoid loading libmodplug (which has a few nasty C++ constructors that calculates the samples to use), and should allow binary distributions like Debian and Ubuntu to make libmodplug support optional by just packaging the plugin on its own; before they had to either enable it for everyone (leaving the cpu waste because of the samples calculation even for people who care nothing about mod files) or disable it entirely (disallowing people from playing modules); not every distribution is as flexible as Gentoo, you know 🙂
Considering that every plugin present in xine will take some time to load, and some parse time, I’m sincerely considering the idea of doing more grouping, but rather than the usual “audio group” and “games group” that was present already in xine, I’m gonna do a few mixins, in the
combined/ directory, like there was already for libFLAC support, like I added for WavPack and as of yesterday for NSF. Things like DVB input and DVB subtitles should go together, as well as input and demuxer for RTP/RTSP, as they are but a single piece.
I’ll also see to complete the audio conversion branch so that it can be merged into 1.2 series soon, and then I’ll move along taking care of something else. Oh and I need to test that thing with non-encrypted ISO9660 DVDs and the new libdvdnav, before merging that one too; dang how many things do I have to take care of, uh?
A possibly bad news is that I might have found a job, that will probably consume most of my time as opensource developer, just when I got back; but it’s no good to actually develop all day without being able to take some relaxing moments watching a nice TV series or such, so I do need a better job than attaching labels and sealing envelopes 😛