SEARCH  

NEWS

2010.10.06:11:36:28
Najpopularniejsze domeny dla Twojej firmy w nazwa.pl (reklama)
Myślisz o zdobyciu zagranicznych rynków? Chcesz mieć adresy WWW w najbardziej rozpoznawalnych domenach? A może chciałbyś zabezpieczyć swoją markę przed wykorzystaniem jej przez kogoś innego? Powinieneś więc rozważyć rejestrację firmowych adresów WWW zawierających najpopularniejsze rozszerzenia używane na świecie.

 

messageID:556860007620
author:Clemens Ladisch
title:Re crash with assertion
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
Index