diff options
| -rw-r--r-- | ChangeLog | 9 | ||||
| -rw-r--r-- | sys/sunaudio/gstsunaudiosrc.c | 8 | 
2 files changed, 14 insertions, 3 deletions
@@ -1,3 +1,12 @@ +2006-12-08  Jan Schmidt  <thaytan@mad.scientist.com> + +	* 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 <jerry.tan at sun dot com> +	Fixes: #349015 +  2006-12-07  Wim Taymans  <wim@fluendo.com>  	* gst/smpte/gstmask.h: 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 <string.h>  #include <unistd.h>  #include <stropts.h> +#include <sys/mixer.h>  #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));  | 
