vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Thu Mar 19 
23:51:21 2015 +0200| [4aeccbd7667c65bd278111a26c2aab088bc60a20] | committer: 
Rémi Denis-Courmont

ALSA: request large enough buffers first (refs #10422)

With the current input clock and decoder buffering code, getting large
buffers is essential. So favor that over having short audio periods.
(Ideally the audio period should probably be an half or a third of the
PTS delay, rather than hard-coded to 40 ms, but that is a separate
issue).

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=4aeccbd7667c65bd278111a26c2aab088bc60a20
---

 modules/audio_output/alsa.c |   21 ++-------------------
 1 file changed, 2 insertions(+), 19 deletions(-)

diff --git a/modules/audio_output/alsa.c b/modules/audio_output/alsa.c
index fd40d85..229d1881 100644
--- a/modules/audio_output/alsa.c
+++ b/modules/audio_output/alsa.c
@@ -495,15 +495,6 @@ static int Start (audio_output_t *aout, 
audio_sample_format_t *restrict fmt)
     }
     sys->rate = fmt->i_rate;
 
-#if 1 /* work-around for period-long latency outputs (e.g. PulseAudio): */
-    param = AOUT_MIN_PREPARE_TIME;
-    val = snd_pcm_hw_params_set_period_time_near (pcm, hw, &param, NULL);
-    if (val)
-    {
-        msg_Err (aout, "cannot set period: %s", snd_strerror (val));
-        goto error;
-    }
-#endif
     /* Set buffer size */
     param = AOUT_MAX_ADVANCE_TIME;
     val = snd_pcm_hw_params_set_buffer_time_near (pcm, hw, &param, NULL);
@@ -512,22 +503,14 @@ static int Start (audio_output_t *aout, 
audio_sample_format_t *restrict fmt)
         msg_Err (aout, "cannot set buffer duration: %s", snd_strerror (val));
         goto error;
     }
-#if 0
-    val = snd_pcm_hw_params_get_buffer_time (hw, &param, NULL);
-    if (val)
-    {
-        msg_Warn (aout, "cannot get buffer time: %s", snd_strerror(val));
-        param = AOUT_MIN_PREPARE_TIME;
-    }
-    else
-        param /= 2;
+
+    param = AOUT_MIN_PREPARE_TIME;
     val = snd_pcm_hw_params_set_period_time_near (pcm, hw, &param, NULL);
     if (val)
     {
         msg_Err (aout, "cannot set period: %s", snd_strerror (val));
         goto error;
     }
-#endif
 
     /* Commit hardware parameters */
     val = snd_pcm_hw_params (pcm, hw);

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to