All of lore.kernel.org
 help / color / mirror / Atom feed
* Full duplex ALSA-plugin
@ 2012-07-10 14:28 Christian Gruber
  2012-07-10 14:39 ` Jaroslav Kysela
  0 siblings, 1 reply; 3+ messages in thread
From: Christian Gruber @ 2012-07-10 14:28 UTC (permalink / raw)
  To: alsa-devel

I was looking for information on writing an echo cancellation ALSA-plugin. So I studied 
the ALSA-plugin docs and also found several interesting threads in this mailing list. But 
what I found out, was quiet disillusioning.

If I understood the ALSA-plugin concept right, there is no possibility to write a plugin 
working on two streams, a playback and a record stream, simultaneously. One can only write 
a filter plugin, which works either on a playback stream or a record stream but not both. 
And there is no possibility to open a full duplex stream (consisting of playback and 
record) with snd_pcm_open().

Is there a reason, why full duplex streams are not implemented yet? Or is it planned in 
the future to implement this feature?

Regards,
Christian

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

* Re: Full duplex ALSA-plugin
  2012-07-10 14:28 Full duplex ALSA-plugin Christian Gruber
@ 2012-07-10 14:39 ` Jaroslav Kysela
  2012-07-11  7:04   ` Christian Gruber
  0 siblings, 1 reply; 3+ messages in thread
From: Jaroslav Kysela @ 2012-07-10 14:39 UTC (permalink / raw)
  To: Christian Gruber; +Cc: alsa-devel

Date 10.7.2012 16:28, Christian Gruber wrote:
> I was looking for information on writing an echo cancellation ALSA-plugin. So I studied 
> the ALSA-plugin docs and also found several interesting threads in this mailing list. But 
> what I found out, was quiet disillusioning.
> 
> If I understood the ALSA-plugin concept right, there is no possibility to write a plugin 
> working on two streams, a playback and a record stream, simultaneously. One can only write 
> a filter plugin, which works either on a playback stream or a record stream but not both. 
> And there is no possibility to open a full duplex stream (consisting of playback and 
> record) with snd_pcm_open().
> 
> Is there a reason, why full duplex streams are not implemented yet? Or is it planned in 
> the future to implement this feature?

If you want to do some synchronization between two streams, you have to
use own "data sharing" mechanism such as IPC or so..

In other words - implement filters on both playback and capture streams
and implement the required communication between them.

					Jaroslav


-- 
Jaroslav Kysela <perex@perex.cz>
Linux Kernel Sound Maintainer
ALSA Project; Red Hat, Inc.

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

* Re: Full duplex ALSA-plugin
  2012-07-10 14:39 ` Jaroslav Kysela
@ 2012-07-11  7:04   ` Christian Gruber
  0 siblings, 0 replies; 3+ messages in thread
From: Christian Gruber @ 2012-07-11  7:04 UTC (permalink / raw)
  To: Jaroslav Kysela; +Cc: alsa-devel

Am 10.07.2012 16:39, schrieb Jaroslav Kysela:
> Date 10.7.2012 16:28, Christian Gruber wrote:
>> I was looking for information on writing an echo cancellation ALSA-plugin. So I studied
>> the ALSA-plugin docs and also found several interesting threads in this mailing list. But
>> what I found out, was quiet disillusioning.
>>
>> If I understood the ALSA-plugin concept right, there is no possibility to write a plugin
>> working on two streams, a playback and a record stream, simultaneously. One can only write
>> a filter plugin, which works either on a playback stream or a record stream but not both.
>> And there is no possibility to open a full duplex stream (consisting of playback and
>> record) with snd_pcm_open().
>>
>> Is there a reason, why full duplex streams are not implemented yet? Or is it planned in
>> the future to implement this feature?
> If you want to do some synchronization between two streams, you have to
> use own "data sharing" mechanism such as IPC or so..
>
> In other words - implement filters on both playback and capture streams
> and implement the required communication between them.
>
> 					Jaroslav
>
>
Thanks, that's an important hint. I've seen, that such mechanisms are implemented in the 
plugins dmix, dshare and dsnoop for example. Are these plugins useful examples to see how 
it could work? And are the functions in pcm_direct.c necessary to implement my own IPC for 
playback and capture synchronization or are they specific to the three plugins dmix, 
dshare and dsnoop?

Christian

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

end of thread, other threads:[~2012-07-11  7:00 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-10 14:28 Full duplex ALSA-plugin Christian Gruber
2012-07-10 14:39 ` Jaroslav Kysela
2012-07-11  7:04   ` Christian Gruber

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.