The Advanced Linux Sound Architecture (ALSA) - library
Find a file
Alan Young 5b035bfa4a pcm: rate: fix drain of partial period at end of buffer
In the case that:
* the buffer size is not an integer multiple of the period size, and
* drain must flush a partial period located before the end of the buffer
  but without a full period available, where
* these conditions may pertain to the source or slave pcm buffer, and
* because rate conversion is always done on a full period,
it is necessary to check that both a full source period is available
before source pcm buffer wrap and a full slave period is available
before slave pcm buffer wrap in order to use the simple, single-commit
implementation in snd_pcm_rate_commit_area().

The alternative fix would be to change snd_pcm_rate_write_areas1() to
take size and slave_size parameters. This would be more disruptive to
the code base, tricky to get right, and is unnecessary given that
snd_pcm_mmap_commit() only commits the partial period of actually valid
converted samples.

Fixes: 3047f8fa5a ("Fix possible problems of playback drain with rate plugin")
Signed-off-by: Alan Young <consult.awy@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2022-03-08 10:37:30 +01:00
.github/workflows github actions: ubuntu - fix the non-interactive build 2020-06-02 13:16:55 +02:00
alsalisp Change FSF address (Franklin Street) 2017-11-14 14:29:26 +01:00
aserver Use __func__ instead of __FUNCTION__ 2019-06-12 08:52:07 +02:00
doc ucm: add initial doxygen documenation 2021-12-01 10:33:44 +01:00
include conf: fix the export of safe_strto* functions from libasound 2022-01-01 19:26:48 +01:00
m4 Update the attributes.m4 macro file from xine 2020-01-03 19:13:13 +01:00
modules snd_dlopen: implement the relocatable version for glibc 2020-06-04 19:09:58 +02:00
src pcm: rate: fix drain of partial period at end of buffer 2022-03-08 10:37:30 +01:00
test conf: introduce snd_config_load_string() 2021-12-01 10:18:58 +01:00
utils utils/alsa.m4: another quick fix for the brackets 2021-04-14 08:08:43 +02:00
.gitignore initial version of .travis.yml file 2018-10-24 16:07:58 +02:00
.travis.yml initial version of .travis.yml file 2018-10-24 16:07:58 +02:00
acinclude.m4 fixed for the recent autoconf. 2004-01-26 15:52:17 +00:00
ChangeLog * update to libtool 1.3.3 1999-07-22 12:18:42 +00:00
configure.ac Release v1.2.6.1 2021-12-09 14:17:59 +01:00
COPYING Change FSF address (Franklin Street) 2017-11-14 14:29:26 +01:00
gitcompile add support for GCC's LTO 2019-04-09 12:44:14 +02:00
INSTALL pcm: Add thread-safety to PCM API 2016-07-11 15:25:30 +02:00
Makefile.am Makefile: Add README.md to EXTRA_DIST 2020-12-10 10:37:13 +01:00
MEMORY-LEAK Initial version 2003-02-04 14:56:07 +00:00
NOTES Change assert condition in error message handler 2007-10-24 12:53:08 +02:00
README.md README: add patch submission instructions 2020-08-16 09:36:01 +02:00
TODO Added snd_config_load_override(). 2002-01-09 21:28:15 +00:00

alsa-lib

Advanced Linux Sound Architecture (ALSA) project

Build alsa-lib

The alsa-lib is a library to interface with ALSA in the Linux kernel and virtual devices using a plugin system.

The up-to-date reference generated from sources can be accessed here:

http://www.alsa-project.org/alsa-doc/alsa-lib/

You may give a look for more information about the ALSA project to URL http://www.alsa-project.org.

Submitting patches

The preferred way to submit patches is by sending them by email to the alsa-devel mailing list. Sending mail to the list requires subscription, subscribe here: https://mailman.alsa-project.org/mailman/listinfo/alsa-devel

Add Takashi Iwai <tiwai@suse.de> and/or Jaroslav Kysela <perex@perex.cz> to Cc so that your patch won't be missed.

Patches are also accepted as GitHub pull requests.