]> code.delx.au - pulseaudio/commitdiff
alsa: properly convert sample buffer sizes
authorLennart Poettering <lennart@poettering.net>
Thu, 10 Sep 2009 23:21:46 +0000 (01:21 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 10 Sep 2009 23:21:46 +0000 (01:21 +0200)
src/modules/alsa/alsa-util.c

index f934285a2b9201ac97ec8b6f117e2ffa67e6be9b..56d60dfbdb7e974c4321167dfaa89e1ad41b16f2 100644 (file)
@@ -275,11 +275,11 @@ int pa_alsa_set_hw_params(
     }
 
     if (_use_tsched && tsched_size > 0) {
-        _buffer_size = pa_convert_size(tsched_size, ss, &_ss);
+        _buffer_size = (snd_pcm_uframes_t) (((uint64_t) tsched_size * _ss.rate) / ss->rate);
         _period_size = _buffer_size;
     } else {
-        _period_size = pa_convert_size(_period_size, ss, &_ss);
-        _buffer_size = pa_convert_size(_buffer_size, ss, &_ss);
+        _period_size = (snd_pcm_uframes_t) (((uint64_t) _period_size * _ss.rate) / ss->rate);
+        _buffer_size = (snd_pcm_uframes_t) (((uint64_t) _buffer_size * _ss.rate) / ss->rate);
     }
 
     if (_buffer_size > 0 || _period_size > 0) {