  <?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.alsa-project.org/main/index.php?action=history&amp;feed=atom&amp;title=Detailed_changes_v1.1.8_v1.1.9</id>
	<title>Detailed changes v1.1.8 v1.1.9 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.alsa-project.org/main/index.php?action=history&amp;feed=atom&amp;title=Detailed_changes_v1.1.8_v1.1.9"/>
	<link rel="alternate" type="text/html" href="https://www.alsa-project.org/main/index.php?title=Detailed_changes_v1.1.8_v1.1.9&amp;action=history"/>
	<updated>2026-04-30T22:34:05Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.0</generator>
	<entry>
		<id>https://www.alsa-project.org/main/index.php?title=Detailed_changes_v1.1.8_v1.1.9&amp;diff=7292&amp;oldid=prev</id>
		<title>Perex: 1 revision</title>
		<link rel="alternate" type="text/html" href="https://www.alsa-project.org/main/index.php?title=Detailed_changes_v1.1.8_v1.1.9&amp;diff=7292&amp;oldid=prev"/>
		<updated>2019-05-10T09:16:35Z</updated>

		<summary type="html">&lt;p&gt;1 revision&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:16, 10 May 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Perex</name></author>
	</entry>
	<entry>
		<id>https://www.alsa-project.org/main/index.php?title=Detailed_changes_v1.1.8_v1.1.9&amp;diff=7291&amp;oldid=prev</id>
		<title>Perex at 09:16, 10 May 2019</title>
		<link rel="alternate" type="text/html" href="https://www.alsa-project.org/main/index.php?title=Detailed_changes_v1.1.8_v1.1.9&amp;diff=7291&amp;oldid=prev"/>
		<updated>2019-05-10T09:16:35Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
| __TOC__&lt;br /&gt;
|}&lt;br /&gt;
=Detailed changelog between 1.1.8 and 1.1.9 releases=&lt;br /&gt;
=Changelog between 1.1.8 and 1.1.9 releases=&lt;br /&gt;
==alsa-lib==&lt;br /&gt;
===Core===&lt;br /&gt;
: - Release v1.1.9&lt;br /&gt;
:   &lt;br /&gt;
: - add support for GCC's LTO&lt;br /&gt;
: - add snd_strlcpy() and use it everywhere&lt;br /&gt;
:   &lt;br /&gt;
: - ucm: Add ucm files for DB820c board&lt;br /&gt;
:   &lt;br /&gt;
:   DB820c board is based of MSM8996 Qualcomm SoC, which has support for both&lt;br /&gt;
:   Digital and Analog audio. Digital audio is over HDMI and analog is over&lt;br /&gt;
:   WCD9335 codec via SLIMbus.&lt;br /&gt;
:   &lt;br /&gt;
:   Board itself has HDMI port, a 3.5mm audio Jack and an Audio expansion&lt;br /&gt;
:   connector.&lt;br /&gt;
:   This patch adds support for HDMI port and 3.5mm jack.&lt;br /&gt;
:   &lt;br /&gt;
===Control API===&lt;br /&gt;
: - add support for GCC's LTO&lt;br /&gt;
: - Print unsigned ints with %u instead of %i. (snd_ctl_ascii_elem_id_get)&lt;br /&gt;
:   &lt;br /&gt;
: - add snd_strlcpy() and use it everywhere&lt;br /&gt;
:   &lt;br /&gt;
===PCM API===&lt;br /&gt;
: - add support for GCC's LTO&lt;br /&gt;
: - pcm: multi plugin: reset hw/appl pointers in prepare/reset functions&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: multi plugin: detach the hw_ptr and appl_ptr from master_slave&lt;br /&gt;
:   &lt;br /&gt;
:   Unfortunately, the master_slave buffer pointers are not always in sync with&lt;br /&gt;
:   the presented avail value and the higher layers (like write_areas) got&lt;br /&gt;
:   confused. Create own hw_ptr and appl_ptr.&lt;br /&gt;
:   &lt;br /&gt;
:   This commit also tries to fix the hwsync and delay implementation (iterate&lt;br /&gt;
:   through all slaves).&lt;br /&gt;
:   &lt;br /&gt;
:   The multi plugin was designed only for hardware which runs really in sync.&lt;br /&gt;
:   Anyway, users are trying to use this plugin for other purposes.&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: fix wait condition in snd_pcm_write_areas() to avoid return zero&lt;br /&gt;
:   &lt;br /&gt;
:   The hw_ptr might be updated during the snd_pcm_may_wait_for_avail_min() call,&lt;br /&gt;
:   so even if it returns zero (OK), the avail must be updated again.&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: multi plugin - fix wait_for_avail_min&lt;br /&gt;
:   &lt;br /&gt;
:   All slaves should be asked to wait otherwise the write loop might&lt;br /&gt;
:   be interrupted and zero frames might be returned.&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: null: Do not allow a period size of 0&lt;br /&gt;
:   &lt;br /&gt;
:   Some applications do not expect that get_period_size_min() could&lt;br /&gt;
:   return 0. Therefore these applications cannot use the null plugin without&lt;br /&gt;
:   this patch.&lt;br /&gt;
:   Due to there is no use case for having a period size of 0 this patch&lt;br /&gt;
:   disallows a period size of 0 when using the null plugin.&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: rate plugin - fix signess in snd_pcm_rate_avail_update() comparison&lt;br /&gt;
:   &lt;br /&gt;
: - add snd_strlcpy() and use it everywhere&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: add the missing &amp;amp;lt;strings.h&amp;amp;gt; include&lt;br /&gt;
:   &lt;br /&gt;
:   To define the prototype of ffs. See 'man ffs'.&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: dshare: Fix overflow when slave_hw_ptr rolls over boundary&lt;br /&gt;
:   &lt;br /&gt;
:   In snd_pcm_dshare_sync_area() when 'slave_hw_ptr' rolls over&lt;br /&gt;
:   'slave_boundary', the wrong variable is checked ('dshare-&amp;amp;gt;slave_hw_ptr' vs&lt;br /&gt;
:   the local 'slave_hw_ptr'). In some cases, this results in 'slave_hw_ptr'&lt;br /&gt;
:   not rolling over correctly. 'slave_size' and 'size' are then much too&lt;br /&gt;
:   large, and the for loop blocks for several minutes copying samples.&lt;br /&gt;
:   &lt;br /&gt;
:   This was likely only triggered on 32-bit systems, since the PCM boundary&lt;br /&gt;
:   is computed based on LONG_MAX and is much larger on 64-bit systems.&lt;br /&gt;
:   &lt;br /&gt;
:   This same change was made to pcm_dmix in commit&lt;br /&gt;
:   6c7f60f7a982fdba828e4530a9d7aa0aa2b704ae (&amp;quot;Fix boundary overlap”) from&lt;br /&gt;
:   June 2005.&lt;br /&gt;
:   &lt;br /&gt;
: - pcm: Preserve period_event in snd_pcm_hw_sw_params() call&lt;br /&gt;
:   &lt;br /&gt;
:   snd_pcm_hw_sw_params() in pcm_hw.c tries to abuse the reserved bits&lt;br /&gt;
:   for passing period_Event flag.  In this hackish way, we clear the&lt;br /&gt;
:   reserved bits at beginning, and restore before returning.  However,&lt;br /&gt;
:   the code paths that return earlier don't restore the value, hence when&lt;br /&gt;
:   user calls this function twice, it may pass an unexpected value.&lt;br /&gt;
:   &lt;br /&gt;
:   This patch fixes the failure, restoring the value always before&lt;br /&gt;
:   returning from the function.&lt;br /&gt;
:   &lt;br /&gt;
:   Reported-by: Jamey Sharp &amp;amp;lt;jamey@minilop.net&amp;amp;gt;&lt;br /&gt;
===Sequencer API===&lt;br /&gt;
: - add snd_strlcpy() and use it everywhere&lt;br /&gt;
:   &lt;br /&gt;
===Timer API===&lt;br /&gt;
: - add support for GCC's LTO&lt;br /&gt;
===Topology API===&lt;br /&gt;
: - Close topology config file after parsing it.&lt;br /&gt;
:   &lt;br /&gt;
: - add snd_strlcpy() and use it everywhere&lt;br /&gt;
:   &lt;br /&gt;
===Use Case Manager API===&lt;br /&gt;
: - Android: avoid using versionsort&lt;br /&gt;
:   &lt;br /&gt;
:   Android doesn't have versionsort yet.&lt;br /&gt;
:   &lt;br /&gt;
===/include/Makefile.am===&lt;br /&gt;
: - Drop -I$includedir/alsa from alsa.pc&lt;br /&gt;
:   &lt;br /&gt;
:   We used to put the additional include path $includedir/alsa in&lt;br /&gt;
:   pkgconfig just because some applications have included asoundlib.h&lt;br /&gt;
:   like&lt;br /&gt;
:   #include &amp;amp;lt;asoundlib.h&amp;amp;gt;&lt;br /&gt;
:   although the canonical form should be&lt;br /&gt;
:   #include &amp;amp;lt;alsa/asoundlib.h&amp;amp;gt;&lt;br /&gt;
:   &lt;br /&gt;
:   However, adding this include path is significantly dangerous due to&lt;br /&gt;
:   possible conflicts of file names like version.h.  It's already the&lt;br /&gt;
:   reason to discourage people using alsa.pc for the packages.&lt;br /&gt;
:   &lt;br /&gt;
:   In this patch, the additional include path from alsa.pc is dropped&lt;br /&gt;
:   finally.  At the same time, as a rescue plan for the programs&lt;br /&gt;
:   including via &amp;amp;lt;asoundlib.h&amp;amp;gt;, a stub header file is provided in&lt;br /&gt;
:   include/sound/asoundlib.h.  It just includes alsa/asoundlib.h with a&lt;br /&gt;
:   warning to suggest for replacing with alsa/asoundlib.h.&lt;br /&gt;
:   Actually this is the same file as we install into sys/asoundlib.h, so&lt;br /&gt;
:   the whole changes are very minimal here.&lt;br /&gt;
:   &lt;br /&gt;
===ALSA Lisp===&lt;br /&gt;
: - alisp: add the missing include&lt;br /&gt;
:   &lt;br /&gt;
:   Commit d4e08c5e865 changed to use internal versioned functions.&lt;br /&gt;
:   However, the header is not included. It generates the errors:&lt;br /&gt;
:   &lt;br /&gt;
:   In file included from external/alsa-lib/src/alisp/alisp.c:3038:&lt;br /&gt;
:   external/alsa-lib/src/alisp/alisp_snd.c:583:64: error: implicit declaration of function '__snd_ctl_elem_info_get_dimension' is invalid in C99 [-Werror,-Wimplicit-function-declaration]&lt;br /&gt;
:   p2 = add_cons2(instance, p2, idx &amp;amp;gt; 0, new_integer(instance, INTERNAL(snd_ctl_elem_info_get_dimension)(&amp;amp;info, idx)));&lt;br /&gt;
:   ^&lt;br /&gt;
:   external/alsa-lib/include/alsa-symbols.h:30:24: note: expanded from macro 'INTERNAL'&lt;br /&gt;
:   #define INTERNAL(Name) INTERNAL_CONCAT2_2(__, Name)&lt;br /&gt;
:   ^&lt;br /&gt;
:   external/alsa-lib/include/alsa-symbols.h:29:39: note: expanded from macro 'INTERNAL_CONCAT2_2'&lt;br /&gt;
:   #define INTERNAL_CONCAT2_2(Pre, Post) Pre##Post&lt;br /&gt;
:   ^&lt;br /&gt;
:   &amp;amp;lt;scratch space&amp;amp;gt;:396:1: note: expanded from here&lt;br /&gt;
:   __snd_ctl_elem_info_get_dimension&lt;br /&gt;
:   ^&lt;br /&gt;
:   external/alsa-lib/src/alisp/alisp_snd.c:583:64: note: did you mean '__snd_ctl_elem_info_get_dimensions'?&lt;br /&gt;
:   external/alsa-lib/include/alsa-symbols.h:30:24: note: expanded from macro 'INTERNAL'&lt;br /&gt;
:   #define INTERNAL(Name) INTERNAL_CONCAT2_2(__, Name)&lt;br /&gt;
:   ^&lt;br /&gt;
:   external/alsa-lib/include/alsa-symbols.h:29:39: note: expanded from macro 'INTERNAL_CONCAT2_2'&lt;br /&gt;
:   #define INTERNAL_CONCAT2_2(Pre, Post) Pre##Post&lt;br /&gt;
:   ^&lt;br /&gt;
:   &amp;amp;lt;scratch space&amp;amp;gt;:396:1: note: expanded from here&lt;br /&gt;
:   __snd_ctl_elem_info_get_dimension&lt;br /&gt;
:   ^&lt;br /&gt;
:   external/alsa-lib/src/alisp/alisp_snd.c:578:8: note: '__snd_ctl_elem_info_get_dimensions' declared here&lt;br /&gt;
:   err = INTERNAL(snd_ctl_elem_info_get_dimensions)(&amp;amp;info);&lt;br /&gt;
:   ^&lt;br /&gt;
:   external/alsa-lib/include/alsa-symbols.h:30:24: note: expanded from macro 'INTERNAL'&lt;br /&gt;
:   #define INTERNAL(Name) INTERNAL_CONCAT2_2(__, Name)&lt;br /&gt;
:   ^&lt;br /&gt;
:   external/alsa-lib/include/alsa-symbols.h:29:39: note: expanded from macro 'INTERNAL_CONCAT2_2'&lt;br /&gt;
:   #define INTERNAL_CONCAT2_2(Pre, Post) Pre##Post&lt;br /&gt;
:   ^&lt;br /&gt;
:   &amp;amp;lt;scratch space&amp;amp;gt;:395:1: note: expanded from here&lt;br /&gt;
:   __snd_ctl_elem_info_get_dimensions&lt;br /&gt;
:   ^&lt;br /&gt;
:   2 errors generated.&lt;br /&gt;
:   &lt;br /&gt;
:   Fixes: d4e08c5e865 (&amp;quot;control: Proper reference of internal versioned functions&amp;quot;)&lt;br /&gt;
===Configuration===&lt;br /&gt;
: - Android: avoid using versionsort&lt;br /&gt;
:   &lt;br /&gt;
:   Android doesn't have versionsort yet.&lt;br /&gt;
:   &lt;br /&gt;
: - conf: pcm dmix - add CHANNELS argument&lt;br /&gt;
:   &lt;br /&gt;
:   It seems that some audio devices do use only mono audio for some&lt;br /&gt;
:   applications (RPi).&lt;br /&gt;
:   &lt;br /&gt;
: - ucm: bytcr/PlatformEnableSeq.conf update some comments&lt;br /&gt;
:   &lt;br /&gt;
:   Commit f91cc3c7d6b7 (&amp;quot;Update chtrt5645 ucm variants to use&lt;br /&gt;
:   bytcr/PlatformEnableSeq.conf component&amp;quot;) updated the&lt;br /&gt;
:   following 2 comments:&lt;br /&gt;
:   &lt;br /&gt;
:   # codec0_out settings (used if SSP2 is connected to aif1)&lt;br /&gt;
:   # modem_out settings (used if SSP0 is connected to aif2)&lt;br /&gt;
:   &lt;br /&gt;
:   Specifically it added the &amp;quot; to aif1&amp;quot; resp. &amp;quot; to aif2&amp;quot; part of the comments.&lt;br /&gt;
:   &lt;br /&gt;
:   This is not correct, AIF1 / AIF2 are something which is present on&lt;br /&gt;
:   Realtek codecs only, and either one can be used indepedent of&lt;br /&gt;
:   SSP0 or SSP2 being used (the comments in the chtrt5645 UCM profile&lt;br /&gt;
:   before this change were wrong / outdated).&lt;br /&gt;
:   &lt;br /&gt;
:   Besides there not being any relationship between SSP0 or SSP2 being&lt;br /&gt;
:   used, bytcr/PlatformEnableSeq.conf is also used with other codecs,&lt;br /&gt;
:   e.g. the ESS8316 codec where this is not applicable at all.&lt;br /&gt;
:   &lt;br /&gt;
:   Therefor this commit removes the &amp;quot; to aif?&amp;quot; part of the comments again&lt;br /&gt;
:   to avoid confusing people reading this in the future.&lt;br /&gt;
:   &lt;br /&gt;
: - ucm: Add ucm files for DB820c board&lt;br /&gt;
:   &lt;br /&gt;
:   DB820c board is based of MSM8996 Qualcomm SoC, which has support for both&lt;br /&gt;
:   Digital and Analog audio. Digital audio is over HDMI and analog is over&lt;br /&gt;
:   WCD9335 codec via SLIMbus.&lt;br /&gt;
:   &lt;br /&gt;
:   Board itself has HDMI port, a 3.5mm audio Jack and an Audio expansion&lt;br /&gt;
:   connector.&lt;br /&gt;
:   This patch adds support for HDMI port and 3.5mm jack.&lt;br /&gt;
:   &lt;br /&gt;
: - Revert &amp;quot;conf/ucm: Add a UCM profile for Dell WD19 Dock USB-audio&amp;quot;&lt;br /&gt;
:   &lt;br /&gt;
:   This reverts commit d8013619c942dd996c32337a9ade429bfaf455ee.&lt;br /&gt;
:   &lt;br /&gt;
:   The USB driver defines identical profile as for WD15.&lt;br /&gt;
:   &lt;br /&gt;
: - conf/ucm: Add a UCM profile for Dell WD19 Dock USB-audio&lt;br /&gt;
:   &lt;br /&gt;
:   USB-audio device on Dell WD19 docking station provides two individual&lt;br /&gt;
:   output PCM streams, one for headphone Jack and another for speaker out&lt;br /&gt;
:   Jack. A UCM profile gives the proper roles for these.&lt;br /&gt;
:   &lt;br /&gt;
===Dynamic Loader helpers===&lt;br /&gt;
: - add support for GCC's LTO&lt;br /&gt;
===Error handler===&lt;br /&gt;
: - add snd_strlcpy() and use it everywhere&lt;br /&gt;
:   &lt;br /&gt;
===Test/Example code===&lt;br /&gt;
: - Printf unsigned longs with %lu instead of %ld (playmidi1.c)&lt;br /&gt;
:   &lt;br /&gt;
: - Printf unsigned ints with %u instead of %i (pcm.c)&lt;br /&gt;
:   &lt;br /&gt;
: - Printf unsigned long longs with %llu (mixtest.c)&lt;br /&gt;
:   &lt;br /&gt;
: - Printf unsigned longs with %lu instead of %li (midifile.c)&lt;br /&gt;
:   &lt;br /&gt;
: - Printf unsigned long with %lu instead of %li (latency.c)&lt;br /&gt;
:   &lt;br /&gt;
: - test/latency: use frame bytes correctly in writebuf()&lt;br /&gt;
:   &lt;br /&gt;
:   Reported-by: Alessandro Lapini &amp;amp;lt;alessandro.lapini@gmail.com&amp;amp;gt;&lt;br /&gt;
===Utils===&lt;br /&gt;
: - Drop -I$includedir/alsa from alsa.pc&lt;br /&gt;
:   &lt;br /&gt;
:   We used to put the additional include path $includedir/alsa in&lt;br /&gt;
:   pkgconfig just because some applications have included asoundlib.h&lt;br /&gt;
:   like&lt;br /&gt;
:   #include &amp;amp;lt;asoundlib.h&amp;amp;gt;&lt;br /&gt;
:   although the canonical form should be&lt;br /&gt;
:   #include &amp;amp;lt;alsa/asoundlib.h&amp;amp;gt;&lt;br /&gt;
:   &lt;br /&gt;
:   However, adding this include path is significantly dangerous due to&lt;br /&gt;
:   possible conflicts of file names like version.h.  It's already the&lt;br /&gt;
:   reason to discourage people using alsa.pc for the packages.&lt;br /&gt;
:   &lt;br /&gt;
:   In this patch, the additional include path from alsa.pc is dropped&lt;br /&gt;
:   finally.  At the same time, as a rescue plan for the programs&lt;br /&gt;
:   including via &amp;amp;lt;asoundlib.h&amp;amp;gt;, a stub header file is provided in&lt;br /&gt;
:   include/sound/asoundlib.h.  It just includes alsa/asoundlib.h with a&lt;br /&gt;
:   warning to suggest for replacing with alsa/asoundlib.h.&lt;br /&gt;
:   Actually this is the same file as we install into sys/asoundlib.h, so&lt;br /&gt;
:   the whole changes are very minimal here.&lt;br /&gt;
:   &lt;br /&gt;
==alsa-utils==&lt;br /&gt;
===Core===&lt;br /&gt;
: - Release v1.1.9&lt;br /&gt;
:   &lt;br /&gt;
: - axfer: add an entry of axfer to README&lt;br /&gt;
:   &lt;br /&gt;
:   Axfer has beed added as a rework of aplay with robust design to&lt;br /&gt;
:   support recent features of Linux sound subsystem.&lt;br /&gt;
:   &lt;br /&gt;
:   This commit adds an entry to README.&lt;br /&gt;
:   &lt;br /&gt;
===ALSA Control (alsactl)===&lt;br /&gt;
: - alsactl: monitor - remove dead code in run_dispatcher() (coverity)&lt;br /&gt;
:   &lt;br /&gt;
: - alsactl: simple coverity fix&lt;br /&gt;
:   &lt;br /&gt;
===Audio Transfer utility===&lt;br /&gt;
: - axfer/test: fix uninitialized warning&lt;br /&gt;
:   &lt;br /&gt;
:   This commit fixes uninitialized return value from a call of test_mux() and&lt;br /&gt;
:   text_demux() to suppress warnings below:&lt;br /&gt;
:   &lt;br /&gt;
:   $ make check&lt;br /&gt;
:   ...&lt;br /&gt;
:   gcc -DHAVE_CONFIG_H -I. -I../../include     -O2 -Wall -pipe -g -MT mapper-test.o -MD -MP -MF .deps/mapper-test.Tpo -c -o mapper-test.o mapper-test.c&lt;br /&gt;
:   mapper-test.c: In function ‘test_mapper’:&lt;br /&gt;
:   mapper-test.c:241:9: warning: ‘err’ may be used uninitialized in this function [-Wmaybe-uninitialized]&lt;br /&gt;
:   return err;&lt;br /&gt;
:   ^~~&lt;br /&gt;
:   mapper-test.c:231:5: warning: ‘err’ may be used uninitialized in this function [-Wmaybe-uninitialized]&lt;br /&gt;
:   if (err &amp;amp;lt; 0)&lt;br /&gt;
:   ^&lt;br /&gt;
:   &lt;br /&gt;
:   Fixes: 39d1ab8a0cb4: ('axfer: add a unit test for mapper interface')&lt;br /&gt;
: - axfer/test: fix uninitialized warning&lt;br /&gt;
:   &lt;br /&gt;
:   This commit fixes uninitialized return value from a call of test_vector()&lt;br /&gt;
:   to suppress a warning below.&lt;br /&gt;
:   &lt;br /&gt;
:   gcc -DHAVE_CONFIG_H -I. -I../../include     -O2 -Wall -pipe -g -MT mapper-test.o -MD -MP -MF .deps/mapper-test.Tpo -c -o mapper-test.o mapper-test.c&lt;br /&gt;
:   mapper-test.c: In function ‘test_vector’:&lt;br /&gt;
:   mapper-test.c:293:6: warning: ‘err’ may be used uninitialized in this function [-Wmaybe-uninitialized]&lt;br /&gt;
:   int err;&lt;br /&gt;
:   ^~~&lt;br /&gt;
:   &lt;br /&gt;
:   Fixes: 39d1ab8a0cb4: ('axfer: add a unit test for mapper interface')&lt;br /&gt;
: - axfer: Declare global variables as 'extern' in header&lt;br /&gt;
:   &lt;br /&gt;
:   This avoids multiple definitions of the same global variable (one in&lt;br /&gt;
:   each file that includes this header), and fixes a linking error when&lt;br /&gt;
:   compiled with -fno-common.&lt;br /&gt;
:   &lt;br /&gt;
:   Fixes: 96110793b3e5 (&amp;quot;axfer: add support for a container of raw data&amp;quot;)&lt;br /&gt;
:   &lt;br /&gt;
:   Reviewed-by: Takashi Sakamoto &amp;amp;lt;o-takashi@sakamocchi.jp&amp;amp;gt;&lt;br /&gt;
: - axfer: Fix creation of v1.2 headers on big-endian systems&lt;br /&gt;
:   &lt;br /&gt;
:   struct block_v120_format defines these members as uint8_t. On&lt;br /&gt;
:   little-endian systems, no swapping is done, and the generated block&lt;br /&gt;
:   header is fine. However, on big-endian machines, the value is swapped to&lt;br /&gt;
:   the high byte and then truncated by the assignment, causing both&lt;br /&gt;
:   bits_per_sample and samples_per_frame to be zero.&lt;br /&gt;
:   &lt;br /&gt;
:   This fixes an assertion failure in container-test when later&lt;br /&gt;
:   parsing the header [&amp;quot;assert(*samples_per_frame &amp;amp;gt; 0);&amp;quot; in&lt;br /&gt;
:   container_context_pre_process()].&lt;br /&gt;
:   &lt;br /&gt;
:   Fixes: 4ab7510f3a18: (&amp;quot;axfer: add support for a container of Creative Tech. voice format&amp;quot;)&lt;br /&gt;
:   &lt;br /&gt;
:   Reviewed-by: Takashi Sakamoto &amp;amp;lt;o-takashi@sakamocchi.jp&amp;amp;gt;&lt;br /&gt;
: - xfer: fix possible minor memory leak in xfer_options_parse_args() (coverity)&lt;br /&gt;
:   &lt;br /&gt;
: - axfer: return back unsigned avail variable, do proper retype in xfer-libasound-irq-mmap.c&lt;br /&gt;
:   &lt;br /&gt;
: - axfer: coverity fixes&lt;br /&gt;
:   &lt;br /&gt;
:   - container-voc.c - out of array access&lt;br /&gt;
:   - container-voc.c - handle correctly eof&lt;br /&gt;
:   - frame_cache.c - correct memory allocation&lt;br /&gt;
:   - container.c - byte_count might be used uninitialized&lt;br /&gt;
:   - xfer-libasound-irq-mmap.c - fix avail signess&lt;br /&gt;
:   - xfer-options.c - fix potential 32-bit wrap for duration&lt;br /&gt;
:   &lt;br /&gt;
: - axfer: add missing header file of unit test to distribution&lt;br /&gt;
:   &lt;br /&gt;
:   The file 'axfer/test/generator.h' is missing in distribution and brings&lt;br /&gt;
:   FTBFS for unit tests of axfer.&lt;br /&gt;
:   &lt;br /&gt;
:   This commit fixes to add it.&lt;br /&gt;
:   &lt;br /&gt;
:   Reported-by: Elimar Riesebieter &amp;amp;lt;riesebie@lxtec.de&amp;amp;gt;&lt;br /&gt;
:   Fixes: b878df1ff0b0: ('axfer: add unit test for container interface')&lt;br /&gt;
:   Fixes: 39d1ab8a0cb4: ('axfer: add a unit test for mapper interface')&lt;br /&gt;
: - axfer: allow to be compiled with glibc-2.11 or former&lt;br /&gt;
:   &lt;br /&gt;
:   The program, axfer, was developed in userspace with glibc-2.28. This&lt;br /&gt;
:   userspace is mostly compliant to POSIX:2008 and some additional macros&lt;br /&gt;
:   for poll event are officially available. The glibc supports them as a&lt;br /&gt;
:   default since its v2.12 release. It will be failed to be compiled with&lt;br /&gt;
:   old glibc or the other libraries for C standard APIs.&lt;br /&gt;
:   &lt;br /&gt;
:   One of the purpose of axfer is an better alternative of aplay. In a&lt;br /&gt;
:   point of the purpose, it's preferable to be compiled with the old&lt;br /&gt;
:   libraries.&lt;br /&gt;
:   &lt;br /&gt;
:   This commit adds conditional macros to be compiled with libraries for&lt;br /&gt;
:   old compliance level of POSIX.&lt;br /&gt;
:   &lt;br /&gt;
:   Reported-by: Jay Foster &amp;amp;lt;jay@systech.com&amp;amp;gt;&lt;br /&gt;
:   Fixes: fce16d9279b6 ('axfer: add an implementation of waiter for select(2)')&lt;br /&gt;
: - axfer: correct invalid usage of escape of itaric text&lt;br /&gt;
:   &lt;br /&gt;
:   A dot sign is valid for a prefix of instruction.&lt;br /&gt;
:   &lt;br /&gt;
: - axfer: supplement value of options for the manual of transfer subcommand&lt;br /&gt;
:   &lt;br /&gt;
:   This commit supplements value of options for the manual of transfer&lt;br /&gt;
:   subcommand.&lt;br /&gt;
:   &lt;br /&gt;
: - axfer: correct message to notice that help text is implemented&lt;br /&gt;
:   &lt;br /&gt;
:   Now help message is available to give help option to command line.&lt;br /&gt;
:   &lt;br /&gt;
: - axfer: correct description about snoop mode of libffado&lt;br /&gt;
:   &lt;br /&gt;
:   The libffado library can listen to isochronous channels to which unit on&lt;br /&gt;
:   IEEE 1394 bus transfers packets as long as the unit allows software to&lt;br /&gt;
:   read the channel from its register.&lt;br /&gt;
:   &lt;br /&gt;
:   This commit corrects description about snoop mode.&lt;br /&gt;
:   &lt;br /&gt;
: - axfer: fulfill section for backward compatibitity for chmap option&lt;br /&gt;
:   &lt;br /&gt;
:   At present, axfer losts backward compatibility to aplay in a point of&lt;br /&gt;
:   'chmap' option.&lt;br /&gt;
:   &lt;br /&gt;
:   This commit filfills a section to describe lose of backward compatibility&lt;br /&gt;
:   of chmap option.&lt;br /&gt;
:   &lt;br /&gt;
: - axfer: add a section about unit test&lt;br /&gt;
:   &lt;br /&gt;
:   Two unit tests are available to check internal implementation of axfer.&lt;br /&gt;
:   They perform file I/O for many times and take much time to finish.&lt;br /&gt;
:   &lt;br /&gt;
:   This commit adds a section about it.&lt;br /&gt;
:   &lt;br /&gt;
===alsa-info.sh===&lt;br /&gt;
: - alsa-info.sh: cleanups&lt;br /&gt;
:   &lt;br /&gt;
:   - fix awk arguments&lt;br /&gt;
:   - backticks/gravemarks removal&lt;br /&gt;
:   - some cosmetic and indentation changes&lt;br /&gt;
:   - add REQUIRES to check the basic tools&lt;br /&gt;
:   &lt;br /&gt;
===alsaloop===&lt;br /&gt;
: - alsaloop: remove unused assignment warning (coverity)&lt;br /&gt;
:   &lt;br /&gt;
===alsamixer===&lt;br /&gt;
: - alsamixer: define _GNU_SOURCE to get exp10&lt;br /&gt;
:   &lt;br /&gt;
:   Fixes Master, Headphones and Speaker stuck at -8 percentage after&lt;br /&gt;
:   building with Clang 7.0.1 and getting warned about implicit declaration&lt;br /&gt;
:   of exp10, which is behind _GNU_SOURCE as a non-standard feature. Thanks&lt;br /&gt;
:   Takashi Iwai for the CFLAGS suggestion on the mailing list. GCC build is&lt;br /&gt;
:   not affected, so not adding a compiler check to the configure script.&lt;br /&gt;
:   &lt;br /&gt;
:   uClibc-ng has got exp10 since 1.0.12, so the fallback macro is no longer&lt;br /&gt;
:   needed. However, alsa-utils relies on gettext so might need further&lt;br /&gt;
:   patches to actually work on uClibc systems.&lt;br /&gt;
:   &lt;br /&gt;
===amixer===&lt;br /&gt;
: - amixer: define _GNU_SOURCE to get exp10&lt;br /&gt;
:   &lt;br /&gt;
:   Get rid of a warning about implicit declaration of exp10, which is&lt;br /&gt;
:   behind _GNU_SOURCE as a non-standard feature. The same problem was fixed&lt;br /&gt;
:   for alsamixer in commit 116488e5f2f1b897084bd151381ee254e1cc177d.&lt;br /&gt;
:   &lt;br /&gt;
===aplay/arecord===&lt;br /&gt;
: - aplay: check the return value for snd_pcm_sw_params_current() (coverity)&lt;br /&gt;
:   &lt;br /&gt;
: - aplay: fix the multiple open file descriptors for the raw capture&lt;br /&gt;
:   &lt;br /&gt;
===aplaymidi/arecordmidi===&lt;br /&gt;
: - arecordmidi: simple coverity fix&lt;br /&gt;
:   &lt;br /&gt;
: - seq: arecordmidi: Add num-events option&lt;br /&gt;
:   &lt;br /&gt;
:   Add a command line option to automatically exit after recording a fixed&lt;br /&gt;
:   number of MIDI events. This allows a program using arecordmidi to expect&lt;br /&gt;
:   a MIDI file to be written automatically when the specified number of&lt;br /&gt;
:   events have been received, instead of having to send a SIGINT or SIGTERM&lt;br /&gt;
:   programmatically.&lt;br /&gt;
:   &lt;br /&gt;
:   It also avoids the need to have the arecordmidi process running in the&lt;br /&gt;
:   background, and then constantly stat the output file to check if any&lt;br /&gt;
:   bytes have been written to it (this makes for less predictable and&lt;br /&gt;
:   longer-running tests).&lt;br /&gt;
:   &lt;br /&gt;
:   This functionality finds use in Chrome OS functional testing, since&lt;br /&gt;
:   having to send SIGTERM/SIGINT programmatically and then wait for the&lt;br /&gt;
:   output file adds unpredictability and delay to the tests.&lt;br /&gt;
:   &lt;br /&gt;
:   The addition of this command-line option should (hopefully) not break&lt;br /&gt;
:   any existing usage.&lt;br /&gt;
:   &lt;br /&gt;
==alsa-plugins==&lt;br /&gt;
===Core===&lt;br /&gt;
: - Release v1.1.9&lt;br /&gt;
:   &lt;br /&gt;
: - configure: Fix unexpanded ALSA_DATA_DIR&lt;br /&gt;
:   &lt;br /&gt;
:   When no --with-alsadatadir is given, configure scripts takes&lt;br /&gt;
:   $datadir/alsa as the default location, while it's expanded to&lt;br /&gt;
:   $prefix/data/alsa.  Although ALSA_DATA_DIR is set via&lt;br /&gt;
:   AC_DEFINE_UNQUOTED(), this expands only $alsadatadir itself and not&lt;br /&gt;
:   about the $prefix in the content.  For resolving this, we need to do&lt;br /&gt;
:   eval twice.&lt;br /&gt;
:   &lt;br /&gt;
: - configure: use $sysconfdir instead of /etc&lt;br /&gt;
:   &lt;br /&gt;
:   Use $sysconfdir as prefix for ALSA_LCONF_DIR by default. Otherwise install&lt;br /&gt;
:   fails on non-FHS distros.&lt;br /&gt;
:   &lt;br /&gt;
===Alsa support for Maemo SDK (n770)===&lt;br /&gt;
: - maemo: Fix a few crashing bugs&lt;br /&gt;
:   &lt;br /&gt;
:   maemo plugin has two crashes I was able to see in a valgrind log from&lt;br /&gt;
:   another user:&lt;br /&gt;
:   &lt;br /&gt;
:   * maximum write size was calculated in words (16bit), but checked against&lt;br /&gt;
:   byte-size length. This causes memcpy later to overflow the buffer&lt;br /&gt;
:   (normally by up to 12KB).&lt;br /&gt;
:   * remove a double free (by marking free'd data with NULL)&lt;br /&gt;
:   &lt;br /&gt;
:   * mmap returns MMAP_FAILED on error, not NULL&lt;br /&gt;
:   &lt;br /&gt;
:   I suspect that this plugin/driver might have other issues aswell, since I&lt;br /&gt;
:   am unable to find any logic for checking DSP buffer status, and no&lt;br /&gt;
:   implementation for odelay reporting.&lt;br /&gt;
:   &lt;br /&gt;
===Documentation===&lt;br /&gt;
: - doc: Add forgotten aaf.txt to EXTRA_DIST&lt;br /&gt;
:   &lt;br /&gt;
===Jack PCM plugin===&lt;br /&gt;
: - jack: use correct port names in 50-jack.conf&lt;br /&gt;
:   &lt;br /&gt;
:   Change port names in 50-jack.conf from &amp;quot;alsa_pcm&amp;quot; to &amp;quot;system&amp;quot;.&lt;br /&gt;
:   &lt;br /&gt;
:   JACK1 v0.125.0 still provides alsa_pcm:playback_* and alsa_pcm:capture_*&lt;br /&gt;
:   port names, but only as aliases:&lt;br /&gt;
:   $ jack_lsp -A&lt;br /&gt;
:   system:capture_1&lt;br /&gt;
:   alsa_pcm:capture_1&lt;br /&gt;
:   system:capture_2&lt;br /&gt;
:   alsa_pcm:capture_2&lt;br /&gt;
:   system:playback_1&lt;br /&gt;
:   alsa_pcm:playback_1&lt;br /&gt;
:   system:playback_2&lt;br /&gt;
:   alsa_pcm:playback_2&lt;br /&gt;
:   &lt;br /&gt;
:   JACK2 v1.9.12 doesn't support alsa_pcm:playback_* and alsa_pcm:capture_*&lt;br /&gt;
:   aliases anymore, so 50-jack.conf will fail for JACK2 users:&lt;br /&gt;
:   $ jack_lsp -A&lt;br /&gt;
:   system:capture_1&lt;br /&gt;
:   alsa_pcm:hw:0:out1&lt;br /&gt;
:   system:capture_2&lt;br /&gt;
:   alsa_pcm:hw:0:out2&lt;br /&gt;
:   system:playback_1&lt;br /&gt;
:   alsa_pcm:hw:0:in1&lt;br /&gt;
:   system:playback_2&lt;br /&gt;
:   alsa_pcm:hw:0:in2&lt;br /&gt;
:   &lt;br /&gt;
:   As you see in both cases system:playback_* and system:capture_* are&lt;br /&gt;
:   correct port names.&lt;br /&gt;
:   &lt;br /&gt;
: - jack: Support to connect multiple JACK ports with same ALSA channel&lt;br /&gt;
:   &lt;br /&gt;
:   The following example will connect ALSA channel 0 to JACK port&lt;br /&gt;
:   &amp;quot;system:playback_1&amp;quot; and &amp;quot;system:playback_3&amp;quot; and ALSA channel 1 to JACK&lt;br /&gt;
:   port &amp;quot;system:playback_2&amp;quot; and &amp;quot;system:playback_4&amp;quot;:&lt;br /&gt;
:   &lt;br /&gt;
:   pcm.jack {&lt;br /&gt;
:   type jack&lt;br /&gt;
:   playback_ports {&lt;br /&gt;
:   0 [ system:playback_1 system:playback_3 ]&lt;br /&gt;
:   1 [ system:playback_2 system:playback_4 ]&lt;br /&gt;
:   }&lt;br /&gt;
:   }&lt;br /&gt;
:   &lt;br /&gt;
:   The old syntax with only one port for one channel is still supported:&lt;br /&gt;
:   playback_ports {&lt;br /&gt;
:   0 system:playback_1&lt;br /&gt;
:   1 system:playback_2&lt;br /&gt;
:   }&lt;br /&gt;
:   &lt;br /&gt;
:   Without this patch an additional JACK client has to be used to&lt;br /&gt;
:   automatically connect the second JACK port but this could take some&lt;br /&gt;
:   time. Therefore it misses for example the first audio period on the&lt;br /&gt;
:   second port.&lt;br /&gt;
:   &lt;br /&gt;
: - jack: Refactoring: Lower indentation&lt;br /&gt;
:   &lt;br /&gt;
:   to full fill 80 character limit of next commit.&lt;br /&gt;
:   &lt;br /&gt;
: - jack: Removing snd_pcm_jack_format_t as it is not used&lt;br /&gt;
:   &lt;br /&gt;
: - jack: Replacing jack-&amp;amp;gt;channels with jack-&amp;amp;gt;num_ports&lt;br /&gt;
:   &lt;br /&gt;
:   As jack-&amp;amp;gt;num_ports and jack-&amp;amp;gt;channels hold the same values,&lt;br /&gt;
:   jack-&amp;amp;gt;channels is redundant and hence removed.&lt;br /&gt;
:   &lt;br /&gt;
:   Sanity check is added in prepare, to check if io-&amp;amp;gt;Channels is&lt;br /&gt;
:   same as jack-&amp;amp;gt;num_ports.&lt;br /&gt;
:   &lt;br /&gt;
: - jack: Moving jack_deactivate() to snd_pcm_jack_hw_free() to speedup the XRUN Recovery&lt;br /&gt;
:   &lt;br /&gt;
:   Removed snd_pcm_jack_stop() from snd_pcm_jack_prepare(),as on XRUN we do&lt;br /&gt;
:   not need to reconnect or reconfigure anything.&lt;br /&gt;
:   &lt;br /&gt;
: - jack: Move jack_activate() and jack_connect() to snd_pcm_jack_prepare()&lt;br /&gt;
:   &lt;br /&gt;
:   Since the processing of jack_activate() and jack_connect() take a while&lt;br /&gt;
:   longer, snd_pcm_jack_start() was blocked.&lt;br /&gt;
:   Consider a usecase of reading the data from capture device and&lt;br /&gt;
:   writing to a playback device, since the capture device is&lt;br /&gt;
:   already started and the starting of playback device is blocked,&lt;br /&gt;
:   it leads to XRUNs for capture device.&lt;br /&gt;
:   Therefore these calls are moved to snd_pcm_jack_prepare(),&lt;br /&gt;
:   So that the capture and playback devices can be prepared in advance so&lt;br /&gt;
:   that starting of the device doesn't take too long.&lt;br /&gt;
:&lt;/div&gt;</summary>
		<author><name>Perex</name></author>
	</entry>
</feed>