Project : CrossFading and Gapless mixing support in Rhythmbox/GStreamer It's been a long time that the community is waiting for gapeless/crossfading mixing in Rhythmbox and other players based on GStreamer. There has been talks about it in mailing lists, bugzilla and some have even implemented one solution for amarok but it has been removed due to bugs. We need a clean way to support it in all the many players that uses GStreamer as a backend, and I propose to do an implementation of the plugin and to add support in Rhythmbox. I have already been working on a similar plugin for GStreamer 0.6, it was very limited to the purpose of the application we were building and so never got use in other applications. I can take the code and define a clean design (removing all the workarounds that were needed at that time) and then write a new mixing plugin. Deliverables : - GStreamer plugin to handle two-songs gapless mixing with or without cross-fading - a patch to RBPlayer to support the new GStreamer plugin Schedule (timing is based on previous experience but still large enough so that if times allows, more features can be added to the plugin): - May : Get familiar with the new GStreamer design (I used it back in 0.6 era and before then) - June : Define the design based on previous code, and on other implementations + I'll be in exam from june 6th till june 26th, but I can manage this part as I have already done some coding related to the project. - July : Implement the GStreamer plugin in a very generic way, so that it will be easy for other players to support it. + Support for gapless mixing + Support for two-songs crossfading (with user defined overlap timings) + Support for jingles overlapping + Support for play/pause/seeks - August : Add support for the plugin in RBPlayer + extensive testings + Documentation on how to support the plugin + Support for the new GStreamer plugin in RBPlayer + tests for the different use cases - August 21 : Release About me : I'm a computer engineering student in the University of Louvain la Neuve (Belgium) majoring in computer networks. I'm in my 4th year and will complete my master in june 2007. My final year project is to build a decentralized group management service on top of a structured overlay network. I discovered the open source movement in 1998 while I was in Australia as an exchange student. Since then I've had some small contributions to open source projects (efl, wolips, pymusique). Mostly patches. Related to GStreamer, in 2002 a friend and I have build an application that manages the music in a restaurant. The application is based on GStreamer and uses a custom made plugin to do crossfading mixing between two songs (but was very limited to the purpose of that application). It has been running fro more than two years, then the restaurant closed. In a more professional way, I managed a project involving embedded linux, smart card readers, a touch screen, and a custom made device to allow students to print documents in copy shops. It was a good opportunity for me to use open source tools to build a great device used by hundreds of students every day. My role in the project was to manage the different persons involved and to realize the software parts (embedded distribution, GUI, client-server communication - all the code is done in C). My implications in those projects gave me a good knowledge in C, Java and Objective-C. Antoine Perdaens : aperdaens@gmail.com