[alsa-devel] buffer_size return by snd_pcm_hw_params_get_buffer_size_max

Raymond Yau superquad.vortex2 at gmail.com
Mon Apr 4 05:54:45 CEST 2011


it seem that the value return by snd_pcm_hw_params_get_buffer_size_max()
depend on /proc/asound/Intel/pcm0p/sub0/prealloc

Is it a bug in alsa-lib or snd-hda-intel driver

refer to pulseaudio/src/modules/alsa/alsa-util.c

       if ((ret = snd_pcm_hw_params_get_buffer_size_max(hwparams,
&max_frames)) < 0)
            pa_log_warn("snd_pcm_hw_params_get_buffer_size_max() failed:
%s", pa_alsa_strerror(ret));
        else
            pa_log_debug("Maximum hw buffer size is %lu ms", (long unsigned)
(max_frames * PA_MSEC_PER_SEC / _ss.rate));



cat /proc/asound/Intel/pcm0p/sub0/prealloc
64

D: alsa-util.c: Checking for superset analog-stereo (front:%f)
D: alsa-util.c: Trying front:1 with SND_PCM_NO_AUTO_FORMAT ...
D: alsa-util.c: Managed to open front:1
I: alsa-util.c: Trying to disable ALSA period wakeups, using timers only
D: alsa-util.c: Maximum hw buffer size is 371 ms
D: alsa-util.c: Set buffer size first (to 88200 samples), period size second
(to 88200 samples).
I: alsa-util.c: ALSA period wakeups disabled
I: alsa-source.c: Successfully opened device front:1.
I: alsa-source.c: Selected mapping 'Analog Stereo' (analog-stereo).
I: alsa-source.c: Successfully enabled mmap() mode.
I: alsa-source.c: Successfully enabled timer-based scheduling mode.


echo 32768 > /proc/asound/Intel/pcm0p/sub0/prealloc


D: alsa-util.c: Checking for superset analog-stereo (front:%f)
D: alsa-util.c: Trying front:1 with SND_PCM_NO_AUTO_FORMAT ...
D: alsa-util.c: Managed to open front:1
I: alsa-util.c: Trying to disable ALSA period wakeups, using timers only
D: alsa-util.c: Maximum hw buffer size is 190217 ms
D: alsa-util.c: Set buffer size first (to 88200 samples), period size second
(to 88200 samples).
I: alsa-util.c: ALSA period wakeups disabled
I: alsa-sink.c: Successfully opened device front:1.
I: alsa-sink.c: Selected mapping 'Analog Stereo' (analog-stereo).
I: alsa-sink.c: Successfully enabled mmap() mode.
I: alsa-sink.c: Successfully enabled timer-based scheduling mode.


More information about the Alsa-devel mailing list