From 6c58a6baea08b449fec5909d7421c744ab0e65fd Mon Sep 17 00:00:00 2001 From: Jerry Tan Date: Fri, 8 Dec 2006 14:32:51 +0000 Subject: sys/sunaudio/gstsunaudiosrc.c: Apply patch to open the mixer control and set the MULTIPLE_OPEN ioctl. On solaris, the... Original commit message from CVS: * sys/sunaudio/gstsunaudiosrc.c: (gst_sunaudiosrc_open): Apply patch to open the mixer control and set the MULTIPLE_OPEN ioctl. On solaris, the mixer device doesn't need opening non-blocking - it can be opened by multiple processes by default, but needs the ioctl for multiple opens within 1 process. Patch by: Jerry Tan Fixes: #349015 --- sys/sunaudio/gstsunaudiosrc.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'sys/sunaudio') diff --git a/sys/sunaudio/gstsunaudiosrc.c b/sys/sunaudio/gstsunaudiosrc.c index ffad1372..0993ed97 100644 --- a/sys/sunaudio/gstsunaudiosrc.c +++ b/sys/sunaudio/gstsunaudiosrc.c @@ -46,6 +46,7 @@ #include #include #include +#include #include "gstsunaudiosrc.h" @@ -241,11 +242,12 @@ static gboolean gst_sunaudiosrc_open (GstAudioSrc * asrc) { GstSunAudioSrc *sunaudiosrc = GST_SUNAUDIO_SRC (asrc); - int fd, ret; + int fd, ret, err; - fd = open (sunaudiosrc->device, O_RDWR | O_NONBLOCK); + fd = open (sunaudiosrc->device, O_RDONLY); + err = ioctl (fd, AUDIO_MIXER_MULTIPLE_OPEN); - if (fd == -1) { + if (fd == -1 || err == -1) { GST_ELEMENT_ERROR (sunaudiosrc, RESOURCE, OPEN_READ, (NULL), ("can't open connection to Sun Audio device %s", sunaudiosrc->device)); -- cgit