Gstreamer and about-me
By user9149671 on Nov 15, 2005
Yesterday I released GDM2 version 18.104.22.168 on the unstable branch and 22.214.171.124 on the stable branch, making available some new bugfixes that are very useful. You can check out the release notes here:
Unfortunately one of the new fixes caused a build problem on BSD, but this has been corrected in CVS head for those BSD users who want to update their daemon/getvt.c function so it builds. I plan to do another stable release, but first want to wait for more feedback about the 126.96.36.199 release.
Over the past week I've been working on Solaris build issues. Much of last week was spent porting the sunaudiosink and sunaudiomixer plugins to the new GStreamer 0.9 framework. I wanted to get this done before the initial 0.10 release so it would work on Solaris out-of-the-box. I ran into some runtime headaches when I noticed the sinesrc plugin was causing the sunaudiosink to stutter. After some research I discovered that increasing the buffer-time property by a factor of 6 (making the buffer 3ms instead of 0.5ms) fixed this problem. Some investigation is needed to see if this is needed to workaround issues with the SunAudio interface itself, or if there is a more serious problem in the GStreamer framework that this fix hides. For now, the GStreamer team agreed this is a reasonable workaround so the plugin works until the research is done.
Just today I finished working on the gnome-about-me plugin and got it working on Solaris. It makes use of the forkpty() function which is only available on Solaris. I tracked down a version of forkpty() for Solaris in the rootsh project. rootsh is under the GPL license and is hosted on SourceForge, so copying this code into control-center isn't a problem since it is also under the GPL. I had to make some modifications to the function to make it work with gnome-panel, but it seems to be working nicely now.
Now that I have those tasks out of the way, my plans are to spend the rest of the week doing some more work cleaning up the GDM configuration processing. Currently the daemon and all the slave's (gdmlogin, gdmgreeter, etc.) all have their own logic for parsing the gdm.conf file. I want to change this so that only the daemon reads in the config file and the slave's all access the config data via the GET_CONFIG GDM socket command. Having all the configuration parsing in one place will simplify the logic and make it easier to do more interesting things with the configuration (such as adding per-server configuration or system-wide versus machine-specific configuration). It will also clean up a lot of nasty global variables that GDM currently uses to maintain state.