  <?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=Changes_v1.2.5.1_v1.2.6</id>
	<title>Changes v1.2.5.1 v1.2.6 - 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=Changes_v1.2.5.1_v1.2.6"/>
	<link rel="alternate" type="text/html" href="https://www.alsa-project.org/main/index.php?title=Changes_v1.2.5.1_v1.2.6&amp;action=history"/>
	<updated>2026-05-01T15:45:03Z</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=Changes_v1.2.5.1_v1.2.6&amp;diff=7426&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=Changes_v1.2.5.1_v1.2.6&amp;diff=7426&amp;oldid=prev"/>
		<updated>2021-12-06T13:07:54Z</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 13:07, 6 December 2021&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=Changes_v1.2.5.1_v1.2.6&amp;diff=7425&amp;oldid=prev</id>
		<title>Perex at 13:07, 6 December 2021</title>
		<link rel="alternate" type="text/html" href="https://www.alsa-project.org/main/index.php?title=Changes_v1.2.5.1_v1.2.6&amp;diff=7425&amp;oldid=prev"/>
		<updated>2021-12-06T13:07:52Z</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 changes v1.2.5.1 v1.2.6]]&lt;br /&gt;
=Changelog between 1.2.5 and 1.2.6 releases=&lt;br /&gt;
==alsa-plugins==&lt;br /&gt;
===Core===&lt;br /&gt;
: Release v1.2.6&lt;br /&gt;
: rate-lav: Convert to libswresample&lt;br /&gt;
===A52 Output plugin===&lt;br /&gt;
: a52: fix NULL pointer dereference in a52_dump()&lt;br /&gt;
: a52: add speaker-test command to the configuration file comment&lt;br /&gt;
: a52: fix the double free for rec-&amp;amp;gt;slave and rec&lt;br /&gt;
: a52: add support for SND_PCM_IOPLUG_FLAG_BOUNDARY_WA&lt;br /&gt;
: a52: fix a52_pointer return value&lt;br /&gt;
: a52: fix memory leak in the close callback&lt;br /&gt;
: a52: fix restricted parameter for swab()&lt;br /&gt;
: a52: fix two signess warnings&lt;br /&gt;
: a52: don't call avcodec_register_all() for 58.91.0 (proved)&lt;br /&gt;
: a52: the packet alloc is suppoted since 58.91.0 (proved)&lt;br /&gt;
: a52: add more info lines to the dump function&lt;br /&gt;
: a52: the dump callback should be void&lt;br /&gt;
: a52: cleanup write_out_pending() function&lt;br /&gt;
: a52: fix possible string overflow and double space&lt;br /&gt;
: a52: implement dump callback to dump the output parameters&lt;br /&gt;
: a52: allow to specify the avcodec&lt;br /&gt;
: a52: Use av_frame_get_buffer() for buffer allocation&lt;br /&gt;
: a52: Correct data transfer in planar mode&lt;br /&gt;
: a52: handle the source sample format correctly&lt;br /&gt;
: a52: limit the number of periods for ioplug from slave PCM&lt;br /&gt;
: a52: don't call avcodec_register_all() on newer libavocdec versions&lt;br /&gt;
: a52: support the new libavcodec encode API&lt;br /&gt;
: a52: propagate errors from do_encode()&lt;br /&gt;
: a52: add some padding bytes to outbuf&lt;br /&gt;
===Documentation===&lt;br /&gt;
: doc: new a52 input formats, global config&lt;br /&gt;
: rate-lav: Convert to libswresample&lt;br /&gt;
===Jack PCM plugin===&lt;br /&gt;
: jack: add -lpthread to Makefile&lt;br /&gt;
: jack: Make the running state tracing code more robust to multi-thread access.&lt;br /&gt;
: jack: trace the running state&lt;br /&gt;
===Rate Converter plugins===&lt;br /&gt;
: rate: Simplify with snd_pcm_channel_area_addr()&lt;br /&gt;
: samplerate: Support multiple formats&lt;br /&gt;
===USB stream plugin===&lt;br /&gt;
: usb_stream: ignore hint section in configuration&lt;br /&gt;
===libavcodec's resampler===&lt;br /&gt;
: rate: Simplify with snd_pcm_channel_area_addr()&lt;br /&gt;
: rate-lav: Support multiple formats&lt;br /&gt;
: rate-lav: Convert to libswresample&lt;br /&gt;
=Changelog between 1.1.6 and 1.2.6 releases=&lt;br /&gt;
==alsa-python==&lt;br /&gt;
===Core===&lt;br /&gt;
: Release v1.2.6&lt;br /&gt;
===pyalsa.alsahcontrol module===&lt;br /&gt;
: Fix PyTuple_SET_ITEM() usage - no return value&lt;br /&gt;
===pyalsa.alsamixer module===&lt;br /&gt;
: Fix PyTuple_SET_ITEM() usage - no return value&lt;br /&gt;
===pyalsa.alsaseq module===&lt;br /&gt;
: alsaseq: fix constant objects in Python 3&lt;br /&gt;
=Changelog between 1.2.5.1 and 1.2.6 releases=&lt;br /&gt;
==alsa-lib==&lt;br /&gt;
===Core===&lt;br /&gt;
: Release v1.2.6&lt;br /&gt;
: conf: add safe_strtoll_base() like safe_strtol_base()&lt;br /&gt;
: conf: introduce safe_strtol_base()&lt;br /&gt;
: configure: bumb version to 1.2.6pre1 (for alsactl/alsa-utils)&lt;br /&gt;
: fix build with --disable-ucm&lt;br /&gt;
===Config API===&lt;br /&gt;
: conf: introduce snd_config_load_string()&lt;br /&gt;
: conf: add possibility to evaluate simple integer math expressions&lt;br /&gt;
===Control API===&lt;br /&gt;
: control: remap - assign right name to the child handle for no-op (2nd case)&lt;br /&gt;
: control: remap - assign right name to the child handle for no-op&lt;br /&gt;
: control: Minor documentation fixes.&lt;br /&gt;
: control: Add documentation for snd_ctl_card_* and friends.&lt;br /&gt;
: control: empty - fix the static build&lt;br /&gt;
===PCM API===&lt;br /&gt;
: pcm: softvol - mark _snd_pcm_parse_control_id as static&lt;br /&gt;
: pcm: partially revert &amp;quot;pcm: softvol - make snd_pcm_parse_control_id private&amp;quot;&lt;br /&gt;
: pcm: multi plugin - adjust appl_ptr on rewind/forward operations&lt;br /&gt;
: pcm: add a note about return values of snd_pcm_state()&lt;br /&gt;
: pcm: rate - fix some gcc warnings&lt;br /&gt;
: pcm: direct plugins - fix bad memory access when channel bindings do not match hw&lt;br /&gt;
: pcm: Move snd_pcm_channel_area_addr() and _step() to public header&lt;br /&gt;
: pcm: direct plugins - fix hw_ptr in the status callback&lt;br /&gt;
: pcm: dmix - use pcm_frame_diff() in snd_pcm_dmix_sync_ptr0()&lt;br /&gt;
: pcm: improve docs for snd_pcm_sw_params_get_avail_min() and snd_pcm_status_get_avail_max()&lt;br /&gt;
: pcm: rate: Improve the support multiple formats&lt;br /&gt;
: pcm: rate: Refactoring temporary buffer allocations&lt;br /&gt;
===RawMidi API===&lt;br /&gt;
: rawmidi: allocate the read buffer in the params call&lt;br /&gt;
: rawmidi: free framing read bufffer when the framing mode becomes inactive&lt;br /&gt;
: rawmidi: add support for SNDRV_RAWMIDI_IOCTL_USER_PVERSION&lt;br /&gt;
: rawmidi: return ENOTSUP when timestamp reads are not supported by plugins&lt;br /&gt;
: rawmidi: allow timestamp reads only for the appropriate read mode&lt;br /&gt;
: rawmidi: doc - fix the framing / read mode section&lt;br /&gt;
: rawmidi: rename enum snd_rawmidi_framing to snd_rawmidi_read_mode&lt;br /&gt;
: rawmidi: define more abstract API for the timestamp reads&lt;br /&gt;
: rawmidi: initialize the reserved space in snd_rawmidi_params_default()&lt;br /&gt;
: rawmidi: Add rawmidi framing API&lt;br /&gt;
===Rawmidi API===&lt;br /&gt;
: rawmidi: rename enum snd_rawmidi_framing to snd_rawmidi_read_mode&lt;br /&gt;
: rawmidi: define more abstract API for the timestamp reads&lt;br /&gt;
: rawmidi: Use the standard types for snd_rawmidi_framing_tstamp_t definition&lt;br /&gt;
: rawmidi: Add rawmidi framing API&lt;br /&gt;
===Topology API===&lt;br /&gt;
: topology: do not call strtol directly&lt;br /&gt;
===Use Case Manager API===&lt;br /&gt;
: ucm: add initial doxygen documenation&lt;br /&gt;
: conf: introduce snd_config_load_string()&lt;br /&gt;
: ucm: add ${eval:EXPR} substitution (Syntax 5)&lt;br /&gt;
: ucm: fix parsing of the internal hexadecimal card identifier (2)&lt;br /&gt;
: ucm: fix parsing of the internal hexadecimal card identifier&lt;br /&gt;
: ucm: fix DeviceModifier parser&lt;br /&gt;
: conf: introduce safe_strtol_base()&lt;br /&gt;
: ucm: suppress the no device (no UCM card) errors on request&lt;br /&gt;
: ucm: substitute the before/after identifiers&lt;br /&gt;
: ucm: fix the parsing of the hexadecimal prefix&lt;br /&gt;
: ucm: avoid zero card instance number&lt;br /&gt;
===/src/Makefile.am===&lt;br /&gt;
: conf: add possibility to evaluate simple integer math expressions&lt;br /&gt;
===Configuration===&lt;br /&gt;
: conf: introduce snd_config_load_string()&lt;br /&gt;
: conf: confeval - fix _to_integer error code&lt;br /&gt;
: conf: improve simple integer math expressions - brackets&lt;br /&gt;
: ucm: add ${eval:EXPR} substitution (Syntax 5)&lt;br /&gt;
: conf: add possibility to evaluate simple integer math expressions&lt;br /&gt;
: conf: add safe_strtoll_base() like safe_strtol_base()&lt;br /&gt;
: conf: introduce safe_strtol_base()&lt;br /&gt;
===Documentation===&lt;br /&gt;
: ucm: add initial doxygen documenation&lt;br /&gt;
===Dynamic Loader helpers===&lt;br /&gt;
: dlmisc.c: Avoid double unlock in snd_dlobj_cache_get0()&lt;br /&gt;
===External PCM Plugin SDK===&lt;br /&gt;
: pcm: partially revert &amp;quot;pcm: softvol - make snd_pcm_parse_control_id private&amp;quot;&lt;br /&gt;
===External Rate Converter Plugin SDK===&lt;br /&gt;
: pcm: rate: Improve the support multiple formats&lt;br /&gt;
===Kernel Headers===&lt;br /&gt;
: rawmidi: add support for SNDRV_RAWMIDI_IOCTL_USER_PVERSION&lt;br /&gt;
: asound.h: fix the __packed use for the out-of-kernel code&lt;br /&gt;
: rawmidi: Add rawmidi framing API&lt;br /&gt;
===Test/Example code===&lt;br /&gt;
: conf: introduce snd_config_load_string()&lt;br /&gt;
: conf: fix test/lsb/config.c&lt;br /&gt;
: conf: improve simple integer math expressions - brackets&lt;br /&gt;
: conf: add possibility to evaluate simple integer math expressions&lt;br /&gt;
: rawmidi: rename enum snd_rawmidi_framing to snd_rawmidi_read_mode&lt;br /&gt;
: rawmidi: define more abstract API for the timestamp reads&lt;br /&gt;
: test: rawmidi: Add test for rawmidi framing API&lt;br /&gt;
==alsa-utils==&lt;br /&gt;
===Core===&lt;br /&gt;
: Release v1.2.6&lt;br /&gt;
===ALSA Control (alsactl)===&lt;br /&gt;
: alsactl: fix the check for additional elements&lt;br /&gt;
: alsactl: suppress no device 'errors' for UCM&lt;br /&gt;
===ALSA RawMidi Utility (amidi)===&lt;br /&gt;
: amidi: remove unused variable&lt;br /&gt;
: amidi: add timestamp option for dump&lt;br /&gt;
===alsa-info.sh===&lt;br /&gt;
: alsa-info.sh: Fix alsa-usbstream.tmp test&lt;br /&gt;
===alsaloop===&lt;br /&gt;
: alsaloop: Support &amp;quot;Playback Pitch 1000000&amp;quot; rate shift&lt;br /&gt;
: alsaloop: Renamed field capt_pitch to ctl_pitch&lt;br /&gt;
: alsaloop: fixed parsing value 'auto' of option 'sync'&lt;br /&gt;
: alsaloop: added option prateshift for PLAYSHIFT ctl elem used in PLAYSHIFT&lt;br /&gt;
: alsaloop: Adding openctl_elem debug log&lt;br /&gt;
: alsaloop: Support &amp;quot;Capture Pitch 1000000&amp;quot; rate shift&lt;br /&gt;
===alsamixer===&lt;br /&gt;
: alsamixer: fix typo in man page (and/of -&amp;amp;gt; and/or)&lt;br /&gt;
: alsamixer: Allow setting the default background color in config&lt;br /&gt;
: alsamixer: Check the availability of mouse&lt;br /&gt;
: Added configuration information to manual page&lt;br /&gt;
===alsatplg (topology)===&lt;br /&gt;
: topology: fix compilation for older alsa-lib&lt;br /&gt;
: topology: change include path&lt;br /&gt;
: topology: pre-processor: Add support for conditional includes&lt;br /&gt;
: topology: Add option to pass pre-processor definitions&lt;br /&gt;
: alsatplg: use standard include/asoundlib.h instead direct headers&lt;br /&gt;
: topology:pre-process-object: merge object config with parent object config&lt;br /&gt;
: pre-process-object: set tlv name if config exists already&lt;br /&gt;
: pre-process-dapm: add data section for kcontrols&lt;br /&gt;
: topology: pre-processor: fix typo in pre_process_config()&lt;br /&gt;
: topology: pre-process-object: dont create if section already exists&lt;br /&gt;
: pre-process-object: skip parent update if parent is NULL&lt;br /&gt;
: pre-process-dapm: fix source and sink for DAPM routes&lt;br /&gt;
: topology: pre-process-object: Add support for pre-process objects with no builder&lt;br /&gt;
: topology: pre-process-dapm: update automatic attributes for buffer&lt;br /&gt;
: topology: pre-process-object: add support for updating automatic attributes&lt;br /&gt;
: alsatplg: do not do NULL check for string arrays&lt;br /&gt;
: alsatplg: fix memory-leak in tplg_construct_object_name()&lt;br /&gt;
===amixer===&lt;br /&gt;
: amixer: print help and add doc for 'sevents' and 'events' commands&lt;br /&gt;
===aplay/arecord===&lt;br /&gt;
: aplay: Fix out-of-bound access in stereo VU meter drawing&lt;br /&gt;
: aplay: Handle upper bound in peak calculations&lt;br /&gt;
: aplay: Don't pass most negative integer to abs() in peak calculations&lt;br /&gt;
: aplay: Handle 16bit sample negative overflow in peak calculations&lt;br /&gt;
: aplay: Fix conversion of unsigned samples in peak calculation&lt;br /&gt;
===aseqnet===&lt;br /&gt;
: aseqnet: add ipv6 support&lt;br /&gt;
: aseqnet: use getaddrinfo() instead obsolete gethostbyname()&lt;br /&gt;
==alsa-ucm-conf==&lt;br /&gt;
===Configuration===&lt;br /&gt;
: HDA: improve support for HDAudio-Gigabyte-ALC1220DualCodecs&lt;br /&gt;
: HDA: improve init.conf (Capture volume, switches)&lt;br /&gt;
: HDA: Fix the DualCodecs condition&lt;br /&gt;
: ucm.conf: turn off support for V2Module and V2Name by default&lt;br /&gt;
: HDA: shuffle order for HiFi-analog.conf include&lt;br /&gt;
: HDA-Intel: rename config directory to HDA&lt;br /&gt;
: sof-soundwire: add to conf.d&lt;br /&gt;
: hda-dsp: move to /Intel/hda-dsp, update conf.d&lt;br /&gt;
: sof-hda-dsp: move to /Intel/sof-hda-dsp, update conf.d&lt;br /&gt;
: SOF: move to /Intel/SOF, update conf.d&lt;br /&gt;
: sof-ehl-rt5660: move to /Intel/sof-ehl-rt5660, update conf.d&lt;br /&gt;
: skylake-rt286: move to /Intel/skylake-rt286, update conf.d&lt;br /&gt;
: kblrt5660: move to /Intel/kblrt5660, update conf.d&lt;br /&gt;
: chtnau8824: move to /Intel/chtnau8824, update conf.d&lt;br /&gt;
: chtrt5650: move to /Intel/chtrt5650, update conf.d&lt;br /&gt;
: chtrt5645: move to /Intel/chtrt5645, update conf.d&lt;br /&gt;
: chtmax98090: move to /Intel/chtmax98090, update conf.d&lt;br /&gt;
: cht-bsw-rt5672: move to /Intel/cht-bsw-rt5672, update conf.d&lt;br /&gt;
: bytcht-es8316: move to /Intel/bytcht-es8316, update conf.d&lt;br /&gt;
: bytcht-cx2072x: move to /Intel/bytcht-cx2072x, update conf.d&lt;br /&gt;
: bytcr-wm5102: move to /Intel/bytcr-wm5102, update conf.d&lt;br /&gt;
: bytcr-rt5651: move to /Intel/bytcr-rt5651, update conf.d&lt;br /&gt;
: bytcr-rt5640: move to /Intel/bytcr-rt5640, update conf.d&lt;br /&gt;
: broxton-rt298: move to /Intel/broxton-rt298, update conf.d&lt;br /&gt;
: broadwell-rt286: move to /Intel/broadwell-rt286, update conf.d&lt;br /&gt;
: bdw-rt5677: move to /Intel/bdw-rt5677, update conf.d&lt;br /&gt;
: HDA-Intel: use conf.d/ move DualCodecs config to separate directory&lt;br /&gt;
: USB-Audio: use conf.d/&lt;br /&gt;
: acp: move linked configuration from modules/ to conf.d/&lt;br /&gt;
: USB-Audio: move Realtek config to separate directory&lt;br /&gt;
: USB-Audio: move Lenovo P620 configs to separate directory&lt;br /&gt;
: USB-Audio: move Gigabyte Aorus configs to separate directory&lt;br /&gt;
: USB-Audio: add GoXLR configuration&lt;br /&gt;
: ucm2: join two front configs of Dell Desktop into one&lt;br /&gt;
: HDA-Intel: AMD ACP - add LED support&lt;br /&gt;
: HDA-Intel: fixes for Headphone+LO variant (Realtek ALC233)&lt;br /&gt;
: USB-Audio: move Dell configs to own subdirectory&lt;br /&gt;
: ucm2: Add UCM support for Dell Desktop&lt;br /&gt;
: ucm2: Add UCM support for rockchip_es8316 on Pinebook Pro&lt;br /&gt;
: bytcr-rt5640: Add support for a second headset input&lt;br /&gt;
: bytcr-rt5640: Add support for a second headphones output&lt;br /&gt;
: bytcr-rt5640: Add support for devices using the DMIC2 input for their internal mic(s)&lt;br /&gt;
: codecs/rt5640: Rename DAPM PIN switches to avoid having 2 Speaker and Headphones switches&lt;br /&gt;
: bytcr-rt5640: Fix 'Headphone Switch' / 'Headset Mic Switch' no longer getting set&lt;br /&gt;
: hda: improve the microphone device allocation&lt;br /&gt;
: sof-soundwire: rt1316 - DAC L and R is replaced by DAC&lt;br /&gt;
: sof-hda-dsp: Set Capture Switch on in the BootSequence&lt;br /&gt;
: sof-ehl-rt5660: Add UCM for Intel sof-ehl-rt5660&lt;br /&gt;
: HDA-Intel: add Boost volume control for Headset Mic&lt;br /&gt;
: Librem 5 Devkit: modernize config&lt;br /&gt;
: Add UCM for Librem 5 Devkit&lt;br /&gt;
===Description===&lt;br /&gt;
: Release v1.2.6&lt;/div&gt;</summary>
		<author><name>Perex</name></author>
	</entry>
</feed>