This minor patch fixes the type of the sframes variable in
snd_pcm_plugin_forward(). With this fix we need to cast less and the
code is less confusing.
Signed-off-by: Lennart Poettering <lennart@poettering.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The clamping of the input parameter in snd_pcm_rewind()/_forward() is
in the wrong direction.
Signed-off-by: Lennart Poettering <lennart@poettering.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
When the resolution is set to 2, a boolean control is created as a
mute switch instead of a volume control.
Also, fixed the possible zero-division error.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The i386 and x86-64 dmix may cause segfaults when 3-bytes formats are used
due to btsl asm code, which may overcome the buffer end-boundary.
The patch changes btsl to btsw so that it doesn't happen.
ALSA bug#3341:
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3341
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The plug plugin has a long-standing problem that it can handle only
slaves that support mmap because of format/rate/access conversions
(these corresponding plugins work only with mmap).
This patch adds the support of automatic mmap->rw conversion via
mmap_emul plugin.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The check in snd_pcm_mmap_emul_refine() is bogus and buggy.
Since the changed access type is took back at snd_pcm_mmap_emul_refine
again, it has to check the availability of mmap at each time.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Two trivial compile warning fixes:
- Add a missing return to snd_pcm_hw_clear_timer_queue()
- params->info is no long but int
The second one might have hit already on 64bit machine, but alas,
no one didn't notice it.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
When ifile option is used for the file plugin, it ignores the slave PCM
and just feeds the input data.
This patch changes the behavior a bit - it uses the slave PCM as the
timing source (just read and throw data away) so that the input data
can be read in the right sample rate.
Addeed a new option "truncate" to indicate the behavior of creating
the output file. When it's true (the default), the file is overwritten
and truncated at creation. When false, the plugin tries to open a
unique file with a number suffix.
The global behavior of "file" and "tee" PCMs is defined via
defaults.pcm.file_truncate option. You can overwrite it in ~/.asoundrc.
There was a change in alsa-lib 1.0.16 which looks like it was designed to
make dmix skip samples in the case of underruns, but it causes the first
sample to be skipped since dmix->slave_hw_ptr == dmix->slave_appl_ptr.
The following patch fixes this and fixes a small typo in the comment.
From: Mike Gorse <mgorse@mgorse.dhs.org>
The direct plugins have the automatic format-detection feature but it
wasn't enabled properly in the interface. Now you can pass the format
"unchanged" to make the plugin detect a proper format.
This will change the default format of some drivers, such as, HD-audio.
In the case of the sum buffer being uninitialized, the source sample
must be negated not only when writing to the sum but also when writing
to the destination.
The rounding done when converting to smaller sample widths fails for
saturated positive samples; in this case, the sample value overflows and
becomes negative. We are better off without rounding, even if we then
have quantization noise (of at most half the resolution of the least
significant bit).
ALSA bug#3360; Debian #437827; GNOME #436192; LP #116990; Mandriva #33908
Rename the local functions to snd1_* so that they won't be exported
out of alsa-lib.
Some functions are still kept because aserver requires them. Sigh.