Ok mystery solved. the refinement failing wasn't in pcm_rate with params from pcm_multi but in pcm_hw with pcm_rate params.
The problem was on my side since I forgot to change the sampling rate from 44100 to 48000 on the aloop capture side. Again depending on the order I was initializing the aloop subdevices, this was creating a param mismatch or not.
On Thu, 2013-12-26 at 15:07 -0500, Olivier Langlois wrote:
Concerning the last problem. Here it is 'loop_44100_16' refine sometimes works and sometimes it doesn't. Either something invisible to the param dumps is different or maybe some uninitialized variables adds some randomness to the result:
srefine 'loop_44100_16' (client) ACCESS: MMAP_INTERLEAVED MMAP_NONINTERLEAVED FORMAT: S16_LE S32_LE SUBFORMAT: STD SAMPLE_BITS: ALL FRAME_BITS: ALL CHANNELS: 2 RATE: 192000 PERIOD_TIME: (20 682667) PERIOD_SIZE: [4 131072] PERIOD_BYTES: ALL PERIODS: [2 32] BUFFER_TIME: (41 1365334) BUFFER_SIZE: [8 262144] BUFFER_BYTES: ALL TICK_TIME: ALL srefine 'loop_44100_16' (slave) ACCESS: MMAP_INTERLEAVED MMAP_NONINTERLEAVED MMAP_COMPLEX FORMAT: S16_LE SUBFORMAT: STD SAMPLE_BITS: ALL FRAME_BITS: ALL CHANNELS: 2 RATE: [48000 48001) PERIOD_TIME: (20 682667) PERIOD_SIZE: ALL PERIOD_BYTES: ALL PERIODS: ALL BUFFER_TIME: ALL BUFFER_SIZE: [2 65538) BUFFER_BYTES: ALL TICK_TIME: ALL REFINE called: ACCESS: MMAP_INTERLEAVED MMAP_NONINTERLEAVED MMAP_COMPLEX FORMAT: S16_LE SUBFORMAT: STD SAMPLE_BITS: ALL FRAME_BITS: ALL CHANNELS: 2 RATE: [48000 48001) PERIOD_TIME: (20 682667) PERIOD_SIZE: ALL PERIOD_BYTES: ALL PERIODS: ALL BUFFER_TIME: ALL BUFFER_SIZE: [2 65538) BUFFER_BYTES: ALL TICK_TIME: ALL refine done - result = 0
lano1106@Wailaba2 ~/dev/alsa_debug $ diff refine_success.txt refine_fail.txt 49c49,50
< refine done - result = 0
refine done - result = -22