The program uses snd_pcm_format_width() wrongly to calculate the sample
size. It must be snd_pcm_format_physical_width() instead.
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>
int64_t and long long isn't strictly identical, and thus gcc gives us
a heartful warning. Suppress the warning by a pointer cast.
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>
"./configure" options for selecting ALSA configuration (default
/usr/share/alsa) and plugin (/usr/lib/alsa-lib) directories introduced
by alsa-hg/alsa-lib changeset 2284 cause problems with cross-compilation
and packaging - there is no way to redefine them in runtime, during
installation phase.
This patch adds a level of indirection between constants and their
usage - alsaconfigdir for ALSA_CONFIG_DIR and alsaplugindir for
ALSA_PLUGIN_DIR - which can be redefined during "make install" stage.
Signed-off-by: Pawel MOLL <pawel.moll@st.com>
Added definition for byte 4 of SPDIF channel status, according to
second edition of IEC 60958-3 (consumer) spec.
Signed-off-by: Pawel MOLL <pawel.moll@st.com>
The patch from bug#3799
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3799
The "doc" target in doc/Makefile.am assumes the build directory and
the source directory are the same and fails if they differ ... this is
because the doxygen.cfg contains relative paths (such as ../) that
only work when building in the source tree
The attached patch against hg replaces all relative paths with
@top_srcdir@ and changes doxygen.cfg to a generated file so that
configure replaces @top_srcdir@ with the appropriate configure-time
path.
Assuming people like being able to do `make -f Makefile.am doc` on
an unconfigured and having it work, i added a small `test&&sed`
that'll generate an appropriate default doxygen.cfg for them.
When only SND_PCM_OLD_HW_PARAMS_API is defined but no
SND_PCM_OLD_SW_PARAMS_API, the declerations of some obsoleted functions
conflict. Although the apps should define both at the same time, it's
not good to break. Fixed the ifdef now.
control.h has function declarations with hwdep or rawmidi types
that aren't included when built without the corresponding supports.
Add ifdef appropriately to fix this.