|
2010/9/9 IOhannes m zmoelnig <zmoelnig@xxxxxx
On 2010-09-09 03:30, Raymond Yau wrote:
rel="nofollow" www.alsa-project.org/alsa-doc/alsa-lib/group___p_c_m___h_w___params.htm www.alsa-project.org/alsa-doc/alsa-lib/group___p_c_m___h_w___params.htm
l
what is the minimum rate returned by snd_pcm_hw_params_get_rate_min()
when
using hw:0,0 ?
for hw:0,0 it is 48000, direction=0
for plughw:0,0 i get 4000(sic!), direction=0
Are there any reason which you need to use snd_pcm_hw_params_set_rate_min()
instead of snd_pcm_hw_params_set_rate_near() ?
set_rate_min( 44100) only restrict a configuration space with a minimum rate
and this is not sufficient for alsa-lib to refine the parameters of
snd_pcm_hw_params() to unique value when the device is plughw and your sound
card only support 48000Hz and 96000Hz
Yes, I can reprodued the assertion with a patched intel8x0 driver inside
virtualbox
since there is no error when using the emulated ac97 controller and codec
which support 8000Hz<- 48000Hz
There is no error when change to use set_rate_near instead of set_rate_min
To debug , you will need to enable RULES_DEBUG In pcm_params.c
add snd_pcm_dump() after snd_pcm_hw_params in your program
export LIBASOUND_DEBUG=1
and post the output of your program
ok, i tried that.
theres of course the little problem with havind snd_pcm_dump() after
snd_pcm_hw_params(), since the latter crashes...
so i added it before i start configuring the device as well. heres the
pseudocode:
<snip
open(PLAYBACK);
dump();
nonblock(1); get_rate(); set_rate(44100); set_period(64);
dump();
close();
open(CAPTURE);
dump();
nonblock(1); get_rate(); set_rate(44100); set_period(64); /* CRASH */
dump();
close();
</snip
i prefixed all the printout of my application with "JMZ", so you can
easily filter it out.
fgmasdr
IOhannes
schange plughw:0,0 (slave)
ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT: S16_LE
SUBFORMAT: STD
SAMPLE_BITS: 16
FRAME_BITS: [32 128]
CHANNELS: [2 8]
RATE: [48000 96000]
PERIOD_TIME: (20 341334)
PERIOD_SIZE: [2 16384]
PERIOD_BYTES: [32 131072]
PERIODS: [1 1024]
BUFFER_TIME: (20 341334)
BUFFER_SIZE: [2 16384]
BUFFER_BYTES: [32 65536]
TICK_TIME: ALL
ALSA ERROR hw_params: set (RATE)
value = 44100 : Invalid argument
ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT: S16_LE
SUBFORMAT: STD
SAMPLE_BITS: 16
FRAME_BITS: [32 128]
CHANNELS: [2 8]
RATE: [48000 96000]
PERIOD_TIME: (20 341334)
PERIOD_SIZE: [2 16384]
PERIOD_BYTES: [32 131072]
PERIODS: [1 1024]
BUFFER_TIME: (20 341334)
BUFFER_SIZE: [2 16384]
BUFFER_BYTES: [32 65536]
TICK_TIME: ALL
ALSA ERROR hw_params: set (RATE)
value = 88200 : Invalid argument
ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT: S16_LE
SUBFORMAT: STD
SAMPLE_BITS: 16
FRAME_BITS: [32 128]
CHANNELS: [2 8]
RATE: [48000 96000]
PERIOD_TIME: (20 341334)
PERIOD_SIZE: [2 16384]
PERIOD_BYTES: [32 131072]
PERIODS: [1 1024]
BUFFER_TIME: (20 341334)
BUFFER_SIZE: [2 16384]
BUFFER_BYTES: [32 65536]
TICK_TIME: ALL
srefine plughw:0,0 (client)
ACCESS: MMAP_INTERLEAVED
FORMAT: S8
SUBFORMAT: STD
SAMPLE_BITS: 8
FRAME_BITS: 8
CHANNELS: 1
RATE: [44100 44100]
PERIOD_TIME: (83 1452)
PERIOD_SIZE: 64
PERIOD_BYTES: 64
PERIODS: (0 4113)
BUFFER_TIME: (3 5968186)
BUFFER_SIZE: [3 263197]
BUFFER_BYTES: [3 263197]
TICK_TIME: ALL
srefine plughw:0,0 (slave)
ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT: S16_LE
SUBFORMAT: STD
SAMPLE_BITS: 16
FRAME_BITS: 32
CHANNELS: 2
RATE: 48000
PERIOD_TIME: (166 1452)
PERIOD_SIZE: [8 16384]
PERIOD_BYTES: [32 65536]
PERIODS: [1 1024]
BUFFER_TIME: (166 341334)
BUFFER_SIZE: [8 16384]
BUFFER_BYTES: [32 65536]
TICK_TIME: ALL
cchange plughw:0,0
The assertion occur becacuse RATE=44100 - NONE
Rule 5 (0xb7773aa0): FRAME_BITS=8 - 8 BUFFER_BYTES=[3 263197]
BUFFER_SIZE=[7 15052]
Rule 7 (0xb7773aa0): RATE=44100 - NONE PERIOD_SIZE=64 PERIOD_TIME=(166
1438)
alsatest: interval_inline.h:52: snd_interval_single: Assertion
`!snd_interval_empty(i) failed.
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
rel="nofollow" mailman.alsa-project.org/mailman/listinfo/alsa-devel mailman.alsa-project.org/mailman/listinfo/alsa-devel
|