[pulseaudio-commits] src/modules

Tanu Kaskinen tanuk at kemper.freedesktop.org
Mon Mar 24 01:23:47 PDT 2014


 src/modules/alsa/alsa-util.c |    1 +
 1 file changed, 1 insertion(+)

New commits:
commit 3c73e2130fd65e147c487b0b84c1a8b6a8afa04c
Author: Peter Ujfalusi <peter.ujfalusi at ti.com>
Date:   Fri Mar 21 09:18:40 2014 +0200

    alsa-util: Reset hwparams_copy before the second try of buffer setup
    
    hwparams_copy needs to be reset (as it is also reset for the third and
    fourth try) before the second try.
    
    If the reset is not done and the first try fails:
    D: [lt-pulseaudio] alsa-util.c: Maximum hw buffer size is 743 ms
    I: [lt-pulseaudio] alsa-util.c: snd_pcm_hw_params_set_buffer_size_near() failed: Invalid argument
    I: [lt-pulseaudio] alsa-util.c: snd_pcm_hw_params_set_period_size_near() failed: Invalid argument
    I: [lt-pulseaudio] alsa-util.c: snd_pcm_hw_params_set_buffer_size_near() failed: Invalid argument
    D: [lt-pulseaudio] alsa-util.c: Set only period size (to 1102 samples).
    
    We have three failures and finally the fourth (only period size) succeed.
    
    With this patch:
    D: [lt-pulseaudio] alsa-util.c: Maximum hw buffer size is 743 ms
    I: [lt-pulseaudio] alsa-util.c: snd_pcm_hw_params_set_buffer_size_near() failed: Invalid argument
    D: [lt-pulseaudio] alsa-util.c: Set period size first (to 1102 samples), buffer size second (to 4408 samples).
    
    We only fail with the first try, the second (period followed by buffer) is
    fine.
    
    Signed-off-by: Peter Ujfalusi <peter.ujfalusi at ti.com>

diff --git a/src/modules/alsa/alsa-util.c b/src/modules/alsa/alsa-util.c
index dca1f2e..1ce2e16 100644
--- a/src/modules/alsa/alsa-util.c
+++ b/src/modules/alsa/alsa-util.c
@@ -327,6 +327,7 @@ int pa_alsa_set_hw_params(
                 goto success;
             }
 
+            snd_pcm_hw_params_copy(hwparams_copy, hwparams);
             /* Second try: set period size first, followed by buffer size */
             if (set_period_size(pcm_handle, hwparams_copy, _period_size) >= 0 &&
                 set_buffer_size(pcm_handle, hwparams_copy, _buffer_size) >= 0 &&



More information about the pulseaudio-commits mailing list