From: Jaroslaw Sobierski <fycio@gucio.com>
To: abramo.bagnara@libero.it
Cc: perex@suse.cz, alsa-devel@lists.sourceforge.net
Subject: Re: Re: dmix plugin
Date: Mon, 17 Feb 2003 05:12:43 -0800 [thread overview]
Message-ID: <1045487563.3e50dfcb26321@webmail3.namezero.com> (raw)
Abramo Bagnara wrote:
>If we'd need to use an intermediate buffer and a mixing thread, the dmix
>approach lose our interest.
>
>A solution might be to have a shared parallel sw ring buffer where to
>store the exact value:
>
> xadd(sw, *src);
> do {
> v = *sw;
> if (v > 0x7fff)
> s = 0x7fff;
> else if (v < -0x8000)
> s = -0x8000;
> else
> s = v;
> *hw = v;
> } while (unlikely(v != *sw));
>
>This should solve also the atomicity update.
Very true, and it is consistent with what
Jaroslav Kysela wrote:
> My point was that all processes operates simultaneously and independently.
> So if one process updates area in the "sum" ring buffer, then it MUST
> transfer changed area (with saturation) to the DMA buffer. So there is no
> "once saturation" as you think. Anyway, the current implementation uses
> also saturation for all clients (processes) so the only drawback is the
> additional access to the "sum" ring buffer memory area.
So it seems like a good compromise to solve all our problems :-).
Still, don't we already *have* a feeding thread for the sound card? I mean
it doesn't just grab the memory buffer all by itself whenever it wants?
Excuse my ignorance on this topic I'm only just starting with ALSA, and I
did not have the time yet to go through the entire source code ;-).
I remember when I was writing a driver for an mpeg2 decoder card that I
had to create 2 threads, one for feeding video and one for audio. The
FIFO level was checked either by polling or via interrupt handlers but
I still had control over what and when is transferred. I could let the
card pull the data via DMA using bus mastering but I still new what
and from where will be sent...
Does the problem lie in the fact that it is actually a plugin and has
no control of the transfer? Maybe it would be worth considering a callback
for the plugin from the main alsa module to infrom it that a new piece
of the DMA buffer must be "prepared" whatever that could mean for a
particular plugin. Anyway, just a thought.
--------------
Fycio (J.Sobierski)
fycio@gucio.com
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
next reply other threads:[~2003-02-17 13:12 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-02-17 13:12 Jaroslaw Sobierski [this message]
2003-02-17 13:22 ` Re: dmix plugin Jaroslav Kysela
2003-02-17 18:15 ` Paul Davis
2003-02-18 22:36 ` Abramo Bagnara
2003-02-17 13:24 ` Jaroslav Kysela
-- strict thread matches above, loose matches on Subject: below --
2003-02-17 22:28 Jaroslaw Sobierski
2003-02-17 16:18 Jaroslaw Sobierski
2003-02-17 15:32 Jaroslaw Sobierski
2003-02-17 19:45 ` Jaroslav Kysela
2003-02-17 20:44 ` tomasz motylewski
2003-02-17 20:59 ` Jaroslav Kysela
2003-02-18 10:00 ` Abramo Bagnara
2003-02-18 12:52 ` Jaroslav Kysela
2003-02-18 13:10 ` Jaroslaw Sobierski
2003-02-18 13:19 ` Jaroslav Kysela
2003-02-18 14:51 ` Paul Davis
2003-02-18 16:51 ` Jaroslav Kysela
2003-02-18 21:07 ` Jaroslav Kysela
2003-02-19 10:20 ` Abramo Bagnara
2003-02-19 11:01 ` Jaroslav Kysela
2003-02-19 11:17 ` Abramo Bagnara
2003-02-19 13:49 ` Abramo Bagnara
2003-02-19 15:45 ` Jaroslaw Sobierski
2003-02-19 20:39 ` Abramo Bagnara
2003-02-19 18:34 ` Jaroslav Kysela
2003-02-19 21:24 ` Jaroslav Kysela
2003-02-20 8:28 ` Abramo Bagnara
2003-02-20 8:30 ` Jaroslaw Sobierski
2003-02-20 8:48 ` Abramo Bagnara
2003-02-20 8:53 ` Abramo Bagnara
2003-02-20 16:49 ` Jaroslav Kysela
2003-02-20 17:57 ` Abramo Bagnara
2003-02-20 18:26 ` Paul Davis
2003-02-20 22:14 ` Abramo Bagnara
2003-02-20 19:55 ` Jaroslav Kysela
2003-02-20 21:19 ` tomasz motylewski
2003-02-20 21:27 ` Jaroslav Kysela
2003-02-21 10:25 ` Abramo Bagnara
2003-02-21 14:08 ` Jaroslaw Sobierski
2003-02-19 10:33 ` Jaroslaw Sobierski
2003-02-19 11:08 ` Jaroslav Kysela
2003-02-17 11:18 Jaroslaw Sobierski
2003-02-17 11:53 ` Jaroslav Kysela
2003-02-17 10:04 Jaroslaw Sobierski
2003-02-17 10:15 ` Jaroslav Kysela
2003-02-17 12:15 ` Abramo Bagnara
2003-02-17 13:12 ` Jaroslav Kysela
2003-02-17 13:29 ` Abramo Bagnara
2003-02-17 15:00 ` Jaroslav Kysela
2003-02-17 15:21 ` Abramo Bagnara
2003-02-17 10:32 ` tomasz motylewski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1045487563.3e50dfcb26321@webmail3.namezero.com \
--to=fycio@gucio.com \
--cc=abramo.bagnara@libero.it \
--cc=alsa-devel@lists.sourceforge.net \
--cc=perex@suse.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox