Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: James Courtier-Dutton <James@superbug.demon.co.uk>
To: Jaroslav Kysela <perex@suse.cz>
Cc: Alsa-devel@lists.sourceforge.net
Subject: Re: status pointer's problem with dmix.
Date: Thu, 18 Sep 2003 13:48:11 +0100	[thread overview]
Message-ID: <3F69A98B.5020106@superbug.demon.co.uk> (raw)
In-Reply-To: <Pine.LNX.4.53.0309181144020.5983@pnote.perex-int.cz>

Jaroslav Kysela wrote:
> On Wed, 17 Sep 2003, James Courtier-Dutton wrote:
> 
> 
>>Output from sending stereo sound to the "dmix" device.
>>bash-2.05b# cat status
>>state: RUNNING
>>trigger_time: 1063822024.640173000
>>tstamp      : 1063822060.456968000
>>delay       : -1719463
>>avail       : 1731463
>>avail_max   : 1731463
>>-----
>>hw_ptr      : 1719463
>>appl_ptr    : 0
>>bash-2.05b#
>>
>>Output from sending stereo sound to the "front" device.
>>bash-2.05b# cat status
>>state: RUNNING
>>trigger_time: 1063823309.038609000
>>tstamp      : 1063823320.869677000
>>delay       : 14161
>>avail       : 2223
>>avail_max   : 3586
>>-----
>>hw_ptr      : 567983
>>appl_ptr    : 582144
>>
>>As you can see, the "front" device acts correctly, with all the pointers
>>acting as they should.
>>But with "dmix", all the pointers are wrong.
>>This is particularly problematic for me, as I need a properly
>>functioning "delay" value for my application.
>>
>>This is using alsa from 2.6test5 kernel.
> 
> 
> This is absolutely ok. The device is running in no-xrun mode, because
> multi-applications have access to it. The dmix plugin has own hw_ptr and
> appl_ptr for each instance and mangles the information from kernel to
> correct values to follow the ALSA API.
> 
> What is your problem? The resolution of the dmix plugin is always one
> period (to make things faster), but it's not a problem to add the slow
> calls.
> 
> 						Jaroslav
> 
> -----
> Jaroslav Kysela <perex@suse.cz>
> Linux Kernel Sound Maintainer
> ALSA Project, SuSE Labs
> 
> 

The problem is that my application relies on a correct "delay" value, so 
that it can use it to keep sound/video in sync.

An example of more status output while playing a .wav file with aplay -D 
dmix. Each "cat status" is typed in quickly after each other.

bash-2.05b# cat status
state: RUNNING
trigger_time: 1063888806.325296000
tstamp      : 1063888809.954270000
delay       : -174225
avail       : 186225
avail_max   : 186225
-----
hw_ptr      : 174225
appl_ptr    : 0
bash-2.05b# cat status
state: RUNNING
trigger_time: 1063888806.325296000
tstamp      : 1063888810.491712000
delay       : -200026
avail       : 212026
avail_max   : 212026
-----
hw_ptr      : 200026
appl_ptr    : 0
bash-2.05b# cat status
state: RUNNING
trigger_time: 1063888806.325296000
tstamp      : 1063888811.036897000
delay       : -226198
avail       : 238198
avail_max   : 238198
-----
hw_ptr      : 226198
appl_ptr    : 0

As you can see, the sound is being played, and comes out of the 
speakers, and there are no xruns, because if there were I would hear them.
For the "dmix" device.
As the buffer size is 12000, avail/avail_max should never reach a value 
 > buffer_size.
delay should never reach a size > buffer_size (12000).

My guess is that delay = appl_ptr - hw_ptr, and thus the reason for it 
being negative.

Cheers
James



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf

  reply	other threads:[~2003-09-18 12:48 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-09-17 18:33 status pointer's problem with dmix James Courtier-Dutton
2003-09-17 18:52 ` Takashi Iwai
2003-09-17 19:01   ` James Courtier-Dutton
2003-09-17 19:10     ` Takashi Iwai
2003-09-17 20:46       ` James Courtier-Dutton
2003-09-18  8:28         ` Takashi Iwai
2003-09-19  2:17   ` AthlonRob
2003-09-20 11:07     ` Clemens Ladisch
2003-09-21 11:43       ` Jaroslav Kysela
2003-09-21 17:06       ` AthlonRob
2003-09-27 21:13         ` AthlonRob
2003-09-18  9:50 ` Jaroslav Kysela
2003-09-18 12:48   ` James Courtier-Dutton [this message]
2003-09-18 13:03     ` Jaroslav Kysela
2003-09-18 16:20       ` James Courtier-Dutton
2003-09-18 17:28         ` Jaroslav Kysela
2003-09-18 14:10     ` Paul Davis
2003-09-18 15:02       ` 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=3F69A98B.5020106@superbug.demon.co.uk \
    --to=james@superbug.demon.co.uk \
    --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