<feed xmlns='http://www.w3.org/2005/Atom'>
<title>paraslash/prebuffer_filter.c, branch master</title>
<subtitle>paraslash - network audio streaming tools</subtitle>
<id>https://git.tue.mpg.de/cgit/paraslash/atom?h=master</id>
<link rel='self' href='https://git.tue.mpg.de/cgit/paraslash/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/'/>
<updated>2026-03-17T22:45:43Z</updated>
<entry>
<title>Switch to SPDX identifiers.</title>
<updated>2026-03-17T22:45:43Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2026-03-15T14:57:29Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=ea0cecf96e08c489fdcc94d046019f4ce46f58e2'/>
<id>urn:sha1:ea0cecf96e08c489fdcc94d046019f4ce46f58e2</id>
<content type='text'>
Generated with

	sed -i 's|Copyright.*Andre Noll.*|SPDX-License-Identifier: GPL-2.0 */|g' *.c *.h

followed by manually tweaking the result a bit. No license change intended.
</content>
</entry>
<entry>
<title>doxygen: Hide user_data variables.</title>
<updated>2025-10-08T18:58:23Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2025-06-16T22:26:15Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=9a8ad2ce61b0e7c1fed85c565096c46a0be5989e'/>
<id>urn:sha1:9a8ad2ce61b0e7c1fed85c565096c46a0be5989e</id>
<content type='text'>
These just clutter the generated documentation, particularly the list of
global variables.
</content>
</entry>
<entry>
<title>Include regex.h from para.h.</title>
<updated>2025-05-19T17:35:58Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2025-05-18T20:05:45Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=67388cd4fae0cfd1674aada937f4f4d2faeeee1f'/>
<id>urn:sha1:67388cd4fae0cfd1674aada937f4f4d2faeeee1f</id>
<content type='text'>
Every .c file includes it anyway.
</content>
</entry>
<entry>
<title>Merge topic branch t/overflow into master</title>
<updated>2022-10-03T16:01:20Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2022-10-03T15:59:56Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=563b56a493d6a2bdcdebafadd907954dbe1de8a8'/>
<id>urn:sha1:563b56a493d6a2bdcdebafadd907954dbe1de8a8</id>
<content type='text'>
This series implements a new memory allocation API which checks
for overflows. The first part of the series just renames the main
allocation functions. Later patches in the series implement allocators
which take two size_t arguments (like calloc(3)) and check whether the
multiplication overflows by employing the __builtin_mul_overflow()
primitive supported by gcc and clang. This requires us to bump the
lowest supported gcc and clang version.

* refs/heads/t/overflow:
  build: Compile with -ftrapv.
  string: Introduce arr_zalloc().
  string: Introduce arr_alloc().
  string: Introduce arr_realloc() and check for integer overflow.
  string: Rename para_calloc() -&gt; zalloc().
  string: Rename para_malloc() -&gt; alloc().
  string: Overhaul para_strdup().
</content>
</entry>
<entry>
<title>Rename -&gt;{pre,post}_select methods to -&gt;{pre,post}_monitor.</title>
<updated>2022-08-25T13:37:26Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2021-10-10T16:10:09Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=e3a7e12639c34fd86d48a072beb48add8c498d09'/>
<id>urn:sha1:e3a7e12639c34fd86d48a072beb48add8c498d09</id>
<content type='text'>
The word "monitor" is neutral and continues to be correct after the
switch from select(2) to poll(2).

Pure rename, nothing to see here.
</content>
</entry>
<entry>
<title>string: Rename para_calloc() -&gt; zalloc().</title>
<updated>2022-07-29T17:22:09Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2021-11-09T17:41:17Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=26a032fffa6c6e6f092ed3d14c2b5f08e5c736d6'/>
<id>urn:sha1:26a032fffa6c6e6f092ed3d14c2b5f08e5c736d6</id>
<content type='text'>
Reword the documentation a bit since the function has never been a
wrapper for calloc(3). No code changes.
</content>
</entry>
<entry>
<title>prebuffer: Remove buffer tree node on errors.</title>
<updated>2021-04-12T13:16:52Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2021-04-05T18:29:28Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=8c13bf36f418e8476c268d376e79491fcb48a0f2'/>
<id>urn:sha1:8c13bf36f418e8476c268d376e79491fcb48a0f2</id>
<content type='text'>
When the -&gt;post_select method of a filter returns negative, it *must*
remove its buffer tree node as well. The prebuffer missed to do that,
which results in a stale reference to the buffer tree which keeps
the audiod slot busy. When no more slots are free, audiod hangs or
exits with a "no more free slots" message. This patch avoids this.
</content>
</entry>
<entry>
<title>prebuffer: Bail out on bufffer tree errors.</title>
<updated>2021-01-01T15:05:56Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2021-01-01T15:05:56Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=23913cbbfc98f6c7454ffb7b849df2d0b5b67c29'/>
<id>urn:sha1:23913cbbfc98f6c7454ffb7b849df2d0b5b67c29</id>
<content type='text'>
Without this, the prebuffer filter might stay active forever, occupying
a slot of para_audiod until no more slots are available. This was
observed with the udp receiver.
</content>
</entry>
<entry>
<title>Avoid audiod hangs when prebuffer filter is active.</title>
<updated>2020-06-17T16:36:17Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2020-06-11T13:28:49Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=1eeb434d731702fd5c0c85c62bf6d18dd3463d8a'/>
<id>urn:sha1:1eeb434d731702fd5c0c85c62bf6d18dd3463d8a</id>
<content type='text'>
This filter misses to honor task notifications. As a result of this
omission, when CTRL+C is pressed while audiod is running in foreground
mode and the prebuffer filter is active, the audiod process hangs.

The fix is obvious.
</content>
</entry>
<entry>
<title>Shorten copyright notice.</title>
<updated>2017-09-22T14:35:22Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2017-09-10T12:15:50Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=d31995b3074bb19aa4da66ce5c4774ca9ed101a1'/>
<id>urn:sha1:d31995b3074bb19aa4da66ce5c4774ca9ed101a1</id>
<content type='text'>
The GPLv2 line does not add any additional information, so drop
it. This leaves a single line of legalese text for most files, which
is about the amount of screen real estate it deserves.

This patch was created with the following script (plus some manual
fixups):

	awk '{
		if (NR &lt;= 5) {
			gs = gensub(/.*Copyright.* ([0-9]+).*Andre Noll.*/, "\\1", "g")
			if (gs != $0)
				year = gs
			next
		}
		if (NR == 6 &amp;&amp; year != "")
			printf("/* Copyright (C) %s Andre Noll &lt;maan@tuebingen.mpg.de&gt;, see file COPYING. */\n", year)
		print
	}'
</content>
</entry>
</feed>
