GNOME Bugzilla – Bug 567690
Problems with OSS mixer code
Last modified: 2011-10-29 15:48:11 UTC
I notice that the volume control using the OSSv3 mixer plugin in gst-plugins-good is using the SNDCTL_DSP_PLAYVOL. That's *not* a good thing to do in a mixer application. That ioctl is supposed to adjust the play volume associated with an application. It affects that applications input into the audio mixer. It does *not* adjust the system volume. In OSS 3.x the better solution is to pick on one of the SOUND_MIXER_xxx ioctls -- probably SOUND_MIXER_READ_VOLME (and WRITE of course), _OGAIN, or _PCM (perhaps in that order). In other implementations of OSS, the SNDCTL_SET_PLAYVOL is probably implemented in terms of those other ioctls.
Is this still a problem and could you provide a patch?
Just to give some history. A while back Oracle hired some contractors to write the OSSv4 plugin currently in gst-plugins-good. Garrett d'Amore, who integrated OSSv4 into the Solaris kernel, did some additional work on the OSSv4 plugin later to address some issues. Garrett noticed this issue in the OSSv3 plugin and I filed this bug. Looking at gst-plugins-good 0.10.29 sys/oss/gstossmixer.c and sys/oss/gstossmixertrack.c files, I see this issue has been addressed. There are no SNDCTL_DSP_PLAYVOL references and now SOUND_MIXER_foo ioctl are used. I say its fixed, thanks.