[alsa-devel] [PATCH 2/2] Improve hw_params documentation
Andrew Eikum
aeikum at codeweavers.com
Wed Nov 16 22:31:35 CET 2011
On Wed, Nov 16, 2011 at 10:20:07PM +0100, Clemens Ladisch wrote:
> Andrew Eikum wrote:
> > +++ b/include/pcm.h
> > @@ -44,8 +44,20 @@ extern "C" {
> >
> > /** PCM generic info container */
> > typedef struct _snd_pcm_info snd_pcm_info_t;
> > -/** PCM hardware configuration space container */
> > +
> > +/** PCM hardware configuration space container
> > + *
> > + * snd_pcm_hw_params_t is an opaque structure which contains a set of possible
> > + * PCM hardware configurations. For example, a given instance might include a
> > + * range of buffer sizes, a range of period sizes, and a set of several sample
> > + * formats. Some subset of all possible combinations these sets may be valid,
> > + * but not necessarily any combination will be valid.
> > + *
> > + * No validation is done by the various snd_pcm_hw_params_set* functions.
>
> These functions do validate the value that the application is trying to set
> and adjust all other dependent limits.
>
I didn't find that to be the case in my testing, at least between
periods, period_size, and buffer_size. I've attached a test program
here. It sets periods to 10, period_size to 1024, and buffer_size_max
to be the same as the return from get_buffer_size_min (in my case,
80). The first call to fail is snd_pcm_hw_params(). If what you said
is true, I would expect the set_buffer_size_max() call to fail.
$ gcc -I /usr/include/alsa -lasound -o alsa_period_count alsa_period_count.c
$ ./alsa_period_count
min_buffer_frames: 80
set max buffer size: 80
snd_pcm_hw_params: -12
$
Andrew
-------------- next part --------------
A non-text attachment was scrubbed...
Name: alsa_period_count.c
Type: text/x-csrc
Size: 3306 bytes
Desc: not available
Url : http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20111116/61b9f96b/attachment.c
More information about the Alsa-devel
mailing list