All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: Pls don't require exclusive Alsa audio device access, use snd_pcm_dmix_open ()
       [not found] ` <47201223.5050304@googlemail.com>
@ 2007-11-28  9:06   ` thomas schorpp
  2007-11-28  9:17     ` Jaroslav Kysela
  0 siblings, 1 reply; 6+ messages in thread
From: thomas schorpp @ 2007-11-28  9:06 UTC (permalink / raw)
  To: alsa-devel; +Cc: Ekiga-devel-list

thomas schorpp wrote:
> thomas schorpp wrote:
>> since dmix is enabled by libasound2 by default for cards not 
>> supporting h/w mixing.
>>
>> skype can access the audio device using snd_pcm_dmix_open () if other 
>> app has already opened it, ekiga throws error msgboxes.

skype      5089   skype  mem    CHR 116,24       7792 /dev/snd/pcmC0D0c
skype      5089   skype  mem    CHR 116,16       7784 /dev/snd/pcmC0D0p
kio_file   5422 schorpp    0r   CHR    1,3        956 /dev/null
kio_uiser  6025 schorpp    0r   CHR    1,3        956 /dev/null
iceape-bi 30161 schorpp  mem    CHR 116,16       7784 /dev/snd/pcmC0D0p
iceape-bi 30161 schorpp    0r   CHR    1,3        956 /dev/null
iceape-bi 30161 schorpp   66r   CHR 116,33       7473 /dev/snd/timer
iceape-bi 30161 schorpp   67u   CHR 116,16       7784 /dev/snd/pcmC0D0p

>>
>> y
>> tom
>>
> 
> hmm. takeback. future removal warning in alsa lib doc. well for 
> experiments (in ptlib plugin):
> 
> Index: sound_alsa.cxx
> ===================================================================
> --- sound_alsa.cxx      (Revision 18763)
> +++ sound_alsa.cxx      (Arbeitskopie)
> @@ -344,13 +344,15 @@
>     }
>   }
> 
> -  if (snd_pcm_open (&os_handle, real_device_name, stream, 
> SND_PCM_NONBLOCK) < 0) {
> +  if (snd_pcm_open (&os_handle, real_device_name, stream, 
> SND_PCM_NONBLOCK) < 0)
> 
> -    PTRACE (1, "ALSA\tOpen Failed");
> -    return FALSE;
> -  }
> -  else
> -    snd_pcm_nonblock (os_handle, 0);
> +    if (_snd_pcm_dmix_open (&os_handle, real_device_name, snd_config_t* 
> root, snd_config_t* sconf, stream, SND_PCM_NONBLOCK) < 0) {
> +
> +      PTRACE (1, "ALSA\tOpen Failed");
> +      return FALSE;
> +    }
> +    else
> +      snd_pcm_nonblock (os_handle, 0);
> 
>   /* save internal parameters */
>   device = real_device_name;
> 
> i cant find any sample code for the missing params, google is full of 
> alsa user issues ;)
> 
> y
> tom
> 

@alsa devs
any hints?

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Pls don't require exclusive Alsa audio device access, use snd_pcm_dmix_open ()
  2007-11-28  9:06   ` Pls don't require exclusive Alsa audio device access, use snd_pcm_dmix_open () thomas schorpp
@ 2007-11-28  9:17     ` Jaroslav Kysela
  2007-11-28 11:36       ` Colin Guthrie
  0 siblings, 1 reply; 6+ messages in thread
From: Jaroslav Kysela @ 2007-11-28  9:17 UTC (permalink / raw)
  To: thomas schorpp; +Cc: ALSA development, Ekiga-devel-list

On Wed, 28 Nov 2007, thomas schorpp wrote:

> > +    if (_snd_pcm_dmix_open (&os_handle, real_device_name, snd_config_t* 
> > root, snd_config_t* sconf, stream, SND_PCM_NONBLOCK) < 0) {

Uff. It's really wrong. What you're trying to do? Simply use 'default' 
device name for snd_pcm_open() which should have defined dmix access if 
required. And don't forget to allow specify (force) ALSA device name to 
users if someone wants a special setup.

						Jaroslav

-----
Jaroslav Kysela <perex@perex.cz>
Linux Kernel Sound Maintainer
ALSA Project

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Pls don't require exclusive Alsa audio device access, use snd_pcm_dmix_open ()
  2007-11-28  9:17     ` Jaroslav Kysela
@ 2007-11-28 11:36       ` Colin Guthrie
  2007-11-28 16:01         ` [Ekiga-devel-list] " thomas schorpp
  0 siblings, 1 reply; 6+ messages in thread
From: Colin Guthrie @ 2007-11-28 11:36 UTC (permalink / raw)
  To: ekiga-devel-list; +Cc: alsa-devel

Jaroslav Kysela wrote:
> On Wed, 28 Nov 2007, thomas schorpp wrote:
> 
>>> +    if (_snd_pcm_dmix_open (&os_handle, real_device_name, snd_config_t* 
>>> root, snd_config_t* sconf, stream, SND_PCM_NONBLOCK) < 0) {
> 
> Uff. It's really wrong. What you're trying to do? Simply use 'default' 
> device name for snd_pcm_open() which should have defined dmix access if 
> required. And don't forget to allow specify (force) ALSA device name to 
> users if someone wants a special setup.

+1 Dmix should not be enforced... this can be handled at a lower
level.... e.g. with dmix configured in alsa config or by using
pulseaudio instead of dmix (my preferred solution so I can switch from
my internal speakers to my usb headset should I plug it in mid-call).

Col.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Ekiga-devel-list] Pls don't require exclusive Alsa audio device access, use snd_pcm_dmix_open ()
  2007-11-28 11:36       ` Colin Guthrie
@ 2007-11-28 16:01         ` thomas schorpp
  2007-11-28 16:22           ` Takashi Iwai
  0 siblings, 1 reply; 6+ messages in thread
From: thomas schorpp @ 2007-11-28 16:01 UTC (permalink / raw)
  To: Ekiga development mailing list; +Cc: alsa-devel

Colin Guthrie wrote:
> Jaroslav Kysela wrote:
>> On Wed, 28 Nov 2007, thomas schorpp wrote:
>>
>>>> +    if (_snd_pcm_dmix_open (&os_handle, real_device_name, snd_config_t* 
>>>> root, snd_config_t* sconf, stream, SND_PCM_NONBLOCK) < 0) {
>> Uff. It's really wrong. What you're trying to do? Simply use 'default' 
>> device name for snd_pcm_open() which should have defined dmix access if 
>> required. And don't forget to allow specify (force) ALSA device name to 
>> users if someone wants a special setup.

well, this is only draft code ;) ekiga uses the openh323.org ptlib alsa plugin 
and this thing blocks all other apps device access or gets blocked if another 
app like iceape is already on the device, twinkle has the same issue and this 
gets really on my nerves, cause i need to restart iceape to get the device free 
for telephony again, always :[

skype uses snd_pcm_dmix_open() (seen it in a bugtrace) and has no such problems.

i cant hardcode the devicename since it is selected and passed down by ekiga, 
the original code does:

-  if (snd_pcm_open (&os_handle, real_device_name, stream, SND_PCM_NONBLOCK) < 0) 

so i must define the dmix access in ekiga, it seems not be defined implicitely?

> 
> +1 Dmix should not be enforced... this can be handled at a lower
> level.... e.g. with dmix configured in alsa config or by using
> pulseaudio instead of dmix (my preferred solution so I can switch from
> my internal speakers to my usb headset should I plug it in mid-call).
> 
> Col.

alsa docs say dmix config files are no longer neccessary?

maybe the old (2.6.18 kernel) driver for this device has more bugs than not 
reinitializing mixer setting after acpi resume:
00:1f.5 Multimedia audio controller: Intel Corporation 82801CA/CAM AC'97 Audio Controller (rev 01)
        Subsystem: IBM ThinkPad T23 (2647-4MG) or A30/A30p (2652/2653)

snd_intel8x0           30332  1
snd_ac97_codec         83104  1 snd_intel8x0
snd_ac97_bus            2400  1 snd_ac97_codec
snd_pcm_oss            38368  0
snd_mixer_oss          15200  1 snd_pcm_oss
snd_pcm                68676  3 snd_intel8x0,snd_ac97_codec,snd_pcm_oss
snd_timer              20996  1 snd_pcm
snd                    47012  8 snd_intel8x0,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer
soundcore               9248  1 snd
snd_page_alloc          9640  2 snd_intel8x0,snd_pcm

ii  libasound2          1.0.15-2            ALSA library

cat: /proc/asound/I82801CAICH3: Is a directory
cat: /proc/asound/card0: Is a directory
 0 [I82801CAICH3   ]: ICH - Intel 82801CA-ICH3
                      Intel 82801CA-ICH3 with CS4299 at 0x1c00, irq 5
  0: [ 0]   : control
 16: [ 0- 0]: digital audio playback
 24: [ 0- 0]: digital audio capture
 25: [ 0- 1]: digital audio capture
 33:        : timer
 0 snd_intel8x0
cat: /proc/asound/oss: Is a directory
00-01: Intel ICH - MIC ADC : Intel 82801CA-ICH3 - MIC ADC : capture 1
00-00: Intel ICH : Intel 82801CA-ICH3 : playback 1 : capture 1
cat: /proc/asound/seq: Is a directory
G0: system timer : 4000.000us (10000000 ticks)
P0-0-0: PCM playback 0-0-0 : SLAVE
P0-0-1: PCM capture 0-0-1 : SLAVE
P0-1-1: PCM capture 0-1-1 : SLAVE
Advanced Linux Sound Architecture Driver Version 1.0.12rc1 (Thu Jun 22 13:55:50 2006 UTC).

i will try the recent kernel maybe this solves things...

thx
tom

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Ekiga-devel-list] Pls don't require exclusive Alsa audio device access, use snd_pcm_dmix_open ()
  2007-11-28 16:01         ` [Ekiga-devel-list] " thomas schorpp
@ 2007-11-28 16:22           ` Takashi Iwai
  2007-11-28 18:16             ` thomas schorpp
  0 siblings, 1 reply; 6+ messages in thread
From: Takashi Iwai @ 2007-11-28 16:22 UTC (permalink / raw)
  To: thomas.schorpp; +Cc: alsa-devel, Ekiga development mailing list

At Wed, 28 Nov 2007 17:01:47 +0100,
thomas schorpp wrote:
> 
> > +1 Dmix should not be enforced... this can be handled at a lower
> > level.... e.g. with dmix configured in alsa config or by using
> > pulseaudio instead of dmix (my preferred solution so I can switch from
> > my internal speakers to my usb headset should I plug it in mid-call).
> > 
> > Col.
> 
> alsa docs say dmix config files are no longer neccessary?

The behavior depends on the name string passed to snd_pcm_open().
If you open the PCM with "default", the alsa-lib takes an approriate
configuration for multi-playback and automatic conversions.  But, if
app opens with other strings like "hw" or "plughw", then it means
that it's an exclusive access.  dmix cannot be involved with that.


Takashi

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Ekiga-devel-list] Pls don't require exclusive Alsa audio device access, use snd_pcm_dmix_open ()
  2007-11-28 16:22           ` Takashi Iwai
@ 2007-11-28 18:16             ` thomas schorpp
  0 siblings, 0 replies; 6+ messages in thread
From: thomas schorpp @ 2007-11-28 18:16 UTC (permalink / raw)
  To: Ekiga development mailing list, alsa-devel; +Cc: michel

Takashi Iwai wrote:
> At Wed, 28 Nov 2007 17:01:47 +0100,
> thomas schorpp wrote:
>>> +1 Dmix should not be enforced... this can be handled at a lower
>>> level.... e.g. with dmix configured in alsa config or by using
>>> pulseaudio instead of dmix (my preferred solution so I can switch from
>>> my internal speakers to my usb headset should I plug it in mid-call).
>>>
>>> Col.
>> alsa docs say dmix config files are no longer neccessary?
> 
> The behavior depends on the name string passed to snd_pcm_open().
> If you open the PCM with "default", the alsa-lib takes an approriate
> configuration for multi-playback and automatic conversions.  But, if
> app opens with other strings like "hw" or "plughw", then it means
> that it's an exclusive access.  dmix cannot be involved with that.
> 
> 
> Takashi
> 

thx guys. using the "default" device in ekiga audio device config solved it :)

skype     5218   skype  mem    CHR 116,24       8292 /dev/snd/pcmC0D0c
skype     5218   skype  mem    CHR 116,16       8284 /dev/snd/pcmC0D0p
iceape-bi 5277 schorpp    0r   CHR    1,3       1107 /dev/null
ekiga     5411 schorpp  mem    CHR 116,16       8284 /dev/snd/pcmC0D0p
ekiga     5411 schorpp  mem    CHR 116,24       8292 /dev/snd/pcmC0D0c
ekiga     5411 schorpp    0r   CHR    1,3       1107 /dev/null
ekiga     5411 schorpp   63r   CHR 116,33       7972 /dev/snd/timer
ekiga     5411 schorpp   64u   CHR 116,24       8292 /dev/snd/pcmC0D0c
ekiga     5411 schorpp   67r   CHR 116,33       7972 /dev/snd/timer
ekiga     5411 schorpp   68u   CHR 116,16       8284 /dev/snd/pcmC0D0p

many thx, Takashi. ALSA rocks!

BTW:

http://www.xs4all.nl/~mfnboer/twinkle/manual.html#sys_audio

"NOTE:The ALSA default device should only be used for the ring tone and/or speaker. It is not recommended to use the ALSA default device for the microphone as it gives poor quality."

this is not the case. fine here.

http://www.xs4all.nl/~mfnboer/twinkle/faq.html#alsa_no_sound

"There can be many reasons why you do not get sound. With ALSA, a common problem is the lack of a proper /etc/asound.conf file. Here is a copy of my asound.conf."

twinkle guys should update their docs.

y
tom

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2007-11-28 18:16 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <471FE2A7.9080309@googlemail.com>
     [not found] ` <47201223.5050304@googlemail.com>
2007-11-28  9:06   ` Pls don't require exclusive Alsa audio device access, use snd_pcm_dmix_open () thomas schorpp
2007-11-28  9:17     ` Jaroslav Kysela
2007-11-28 11:36       ` Colin Guthrie
2007-11-28 16:01         ` [Ekiga-devel-list] " thomas schorpp
2007-11-28 16:22           ` Takashi Iwai
2007-11-28 18:16             ` thomas schorpp

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.