From: Adam Tla/lka <atlka@pg.gda.pl>
To: Jaroslav Kysela <perex@suse.cz>
Cc: alsa-devel@alsa-project.org
Subject: Re: Re: [Alsa-user] AD1985 full-duplex(?)
Date: Tue, 7 Sep 2004 12:34:08 +0200 [thread overview]
Message-ID: <20040907103408.GB4584@sunrise.pg.gda.pl> (raw)
In-Reply-To: <Pine.LNX.4.58.0409071050020.1723@linux.local>
On Tue, Sep 07, 2004 at 11:05:05AM +0200, Jaroslav Kysela wrote:
> On Mon, 6 Sep 2004, Adam Tla/lka wrote:
> There is always a drift between system and card's timing.
ALSA appl/hw_ptr calculated position is also not exact ;-).
If I know system time and card hw_ptr it is enough to calculate desired
position and correct time drift.
> The appl_ptr is not moved in mmap_begin. The mmap_begin function only
> returns the actual position to ring buffer based on appl_ptr.
That's right. I do mmap_begin to obtain appl offset in ALSA buffer
and mmap_commit to move the appl pointer so we have no buffer
underrun and appl offset is equal to hw offset (approximately).
Now I can update the ALSA buffer from OSS buffer.
> We need the intelligent mmap transport for additional functionality
> (conversions, resampling etc.). I think it's the proper way and nobody
> (except OSS emulation) has the useability problem. You can still move
> backwards (although it is problematic when you have a mixing on the path).
As I wrote before I use dmix plugin and of course there is a route
plugin on the path so moving backwards not works. I want to mix OSS apps
with ALSA apps so everything could be played simultaniously.
Using ALSA hw:0,0 device for OSS emulation doesn't make any sense for me.
Talking about proper using mmaped mode in games, samplers and other apps
which can generate sound at any time (not exactly - precision is about
1 to several app frames) which of them could you show here?
As I know xmms mmaped mode is broken and I just don't know an app
which uses this mode with success.
I just need a good example.
Also some widely used programs have problems using native ALSA approach.
For example mplayer plays sound a bit too late (in dmix case) which
could be easily observed ("Bruce Almighty"). What is interesting playing
the same data with aoss and OSS calls we have proper A/V sync.
Mplayer's A/V status line shows perfect sync in both cases.
It's mplayers case but shows us that maybe we need a good manual
describing proper use of ALSA api. Not only what particular parameter
means but also how properly set them and how to recover from errors.
With good examples of course ;-).
> err < 0 -> error code
> err == 0 -> no action (appl_ptr was unchanged in case when you're already
> behind hw_ptr)
OK, but in case of delay < 0 if I then do err = snd_pcm_forward(pcm, -delay)
I will get err < 0 (probably from rate plugin). So what should I do to recover
from this situaction?
> > Also what is the meaning of snd_pcm_available > alsa.buffer_size?
> You're too late, so you need to fill (or better skip via forward) some
> more samples to synchronize appl_ptr.
Forward generates an error, so how to calculate correct appl_ptr
now and recover from error?
Regards
--
Adam Tla/lka mailto:atlka@pg.gda.pl ^v^ ^v^ ^v^
System & Network Administration Group ~~~~~~
Computer Center, Gdansk University of Technology, Poland
PGP public key: finger atlka@sunrise.pg.gda.pl
-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click
next prev parent reply other threads:[~2004-09-07 10:34 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-08-31 8:52 Re: [Alsa-user] AD1985 full-duplex(?) Peter Zubaj
2004-08-31 9:39 ` Jaroslav Kysela
2004-09-06 20:45 ` Adam Tla/lka
2004-09-07 9:05 ` Jaroslav Kysela
2004-09-07 10:34 ` Adam Tla/lka [this message]
2004-09-07 13:23 ` Paul Davis
2004-09-07 13:40 ` Jaroslav Kysela
2004-09-08 17:15 ` Adam Tla/lka
[not found] ` <20040909122253.GE4584@sunrise.pg.gda.pl>
[not found] ` <Pine.LNX.4.58.0409091728420.4150@server.perex-int.cz>
2004-09-10 6:46 ` Adam Tla/lka
2004-09-09 5:52 ` Adam Tla/lka
2004-09-09 12:59 ` Paul Davis
2004-09-09 13:28 ` Adam Tla/lka
2004-09-09 15:14 ` Jaroslav Kysela
2004-09-10 7:16 ` Adam Tla/lka
2004-09-10 11:44 ` Paul Davis
2004-09-10 19:04 ` Adam Tla/lka
2004-09-13 13:05 ` Paul Davis
2004-09-13 17:24 ` Adam Tla/lka
2004-09-26 22:21 ` Adam Tlałka
2004-09-27 3:00 ` Paul Davis
2004-09-27 6:38 ` Adam Tlałka
2004-09-27 12:43 ` Jaroslav Kysela
2004-09-28 5:11 ` Adam Tlałka
2004-09-28 14:47 ` Paul Davis
2004-09-29 5:51 ` Adam Tlałka
2004-09-27 20:14 ` Paul Davis
2004-09-28 6:10 ` Adam Tlałka
[not found] <200409281113.i8SBDo5U021462@localhost.localdomain>
2004-09-28 13:22 ` Adam Tlałka
2004-09-28 14:48 ` Jaroslav Kysela
2004-09-28 14:57 ` Paul Davis
2004-09-28 15:21 ` Takashi Iwai
2004-09-29 6:15 ` Adam Tlałka
[not found] <Pine.HPX.4.33n.0408181538550.24798-100000@studcom.urz.uni-halle.de>
[not found] ` <1092842830.13603.3.camel@localhost.localdomain>
[not found] ` <20040818181350.2b38e875@mango.fruits.de>
2004-08-18 17:37 ` Jaroslav Kysela
2004-08-18 18:15 ` Florian Schmidt
2004-08-19 8:58 ` Jaroslav Kysela
2004-08-19 9:46 ` Takashi Iwai
2004-08-19 10:28 ` Jaroslav Kysela
2004-08-23 11:36 ` Adam Tlałka
2004-08-23 11:54 ` Jaroslav Kysela
2004-08-23 12:34 ` Adam Tlałka
2004-08-23 14:39 ` Jaroslav Kysela
2004-08-24 6:01 ` Adam Tla/lka
2004-08-23 15:30 ` Takashi Iwai
2004-08-28 19:10 ` Adam Tlałka
2004-08-29 9:54 ` Jaroslav Kysela
2004-08-29 18:35 ` Adam Tlałka
2004-08-31 8:09 ` Jaroslav Kysela
2004-08-19 9:48 ` Florian Schmidt
2004-08-20 10:58 ` Jaroslav Kysela
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=20040907103408.GB4584@sunrise.pg.gda.pl \
--to=atlka@pg.gda.pl \
--cc=alsa-devel@alsa-project.org \
--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 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.