[PATCH] pcm: dmix: fix access to sum-buffer in non-interleaved mixing mode
Hi All,
When dmix uses non-interleaved mixing mode the offset and step width to sum_buffer was calculated by using the dmix channels instead of the slave channels. This leads to audio distortions due to frame corruption. Issue happens while doing channel wise mixing of src and destination buffers.
Attached the patch to fix the offset and step width calculation based on slave channels for sum buffer. So mixed data will be saved in respective channels of sum buffer.
Steps to reproduce the issue: With below configuratio, Do aplay on both device in parallel for audio distortion
pcm.dmix_2_channels { type dmix ipc_key 5678293 ipc_perm 0660 ipc_gid audio bindings [0 1]
slave { pcm "hardware" channels 2 periods 4 period_time 40000 } }
pcm.dmix_1_channels { type dmix ipc_key 5678293 ipc_perm 0660 ipc_gid audio bindings [0]
slave { pcm "hardware" channels 1 periods 4 period_time 40000 } }
pcm.hardware { type hw card 0 channels 2 rate 48000 format S16_LE }
Best regards
Palaniswamy Vijay
On Wed, 12 Aug 2020 08:18:25 +0200, Vijay Palaniswamy (RBEI/ECF3) wrote:
Hi All,
When dmix uses non-interleaved mixing mode the offset and step width to sum_buffer was calculated by using the dmix channels instead of the slave channels. This leads to audio distortions due to frame corruption.
Issue happens while doing channel wise mixing of src and destination buffers.
Attached the patch to fix the offset and step width calculation based on slave channels for sum buffer. So mixed data will be saved in respective channels of sum buffer.
Steps to reproduce the issue:
With below configuratio, Do aplay on both device in parallel for audio distortion
pcm.dmix_2_channels {
type dmix ipc_key 5678293 ipc_perm 0660 ipc_gid audio bindings [0 1] slave { pcm "hardware" channels 2 periods 4 period_time 40000 }
}
pcm.dmix_1_channels {
type dmix ipc_key 5678293 ipc_perm 0660 ipc_gid audio bindings [0] slave { pcm "hardware" channels 1 periods 4 period_time 40000 }
}
pcm.hardware {
type hw card 0 channels 2 rate 48000 format S16_LE
}
Best regards
Palaniswamy Vijay
Applied now. Thanks.
Takashi
participants (2)
-
Takashi Iwai
-
Vijay Palaniswamy (RBEI/ECF3)