From 9b621eeac4d55c4e881f093be5b163ca07d01b63 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 11 Sep 2003 11:23:58 +0000 Subject: [PATCH] - fixed the order of period and buffer size setting. firstly period then buffer size. this will avoid the problem of rounding. --- aplay/aplay.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/aplay/aplay.c b/aplay/aplay.c index a569b1f..ca3a1d7 100644 --- a/aplay/aplay.c +++ b/aplay/aplay.c @@ -848,16 +848,8 @@ static void set_params(void) } } rate = hwparams.rate; - if (buffer_time == 0 && buffer_frames > 0) { - err = snd_pcm_hw_params_set_buffer_size_near(handle, params, - &buffer_frames); - } else { - if (buffer_time == 0) - buffer_time = 500000; - err = snd_pcm_hw_params_set_buffer_time_near(handle, params, - &buffer_time, 0); - } - assert(err >= 0); + if (buffer_time == 0 && buffer_frames == 0) + buffer_time = 500000; if (period_time == 0 && period_frames == 0) { if (buffer_time > 0) period_time = buffer_time / 4; @@ -871,6 +863,14 @@ static void set_params(void) err = snd_pcm_hw_params_set_period_size_near(handle, params, &period_frames, 0); assert(err >= 0); + if (buffer_time > 0) { + err = snd_pcm_hw_params_set_buffer_time_near(handle, params, + &buffer_time, 0); + } else { + err = snd_pcm_hw_params_set_buffer_size_near(handle, params, + &buffer_frames); + } + assert(err >= 0); err = snd_pcm_hw_params(handle, params); if (err < 0) { error("Unable to install hw params:"); -- 2.47.1