<feed xmlns='http://www.w3.org/2005/Atom'>
<title>paraslash/write_common.c, branch v0.3</title>
<subtitle>paraslash - network audio streaming tools</subtitle>
<id>https://git.tue.mpg.de/cgit/paraslash/atom?h=v0.3</id>
<link rel='self' href='https://git.tue.mpg.de/cgit/paraslash/atom?h=v0.3'/>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/'/>
<updated>2009-11-05T21:42:52Z</updated>
<entry>
<title>wng: Avoid buffer underruns due to filter chain output buffer constraints.</title>
<updated>2009-11-05T21:42:52Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2009-11-05T21:42:52Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=2ce63f32adf9c47d6ed9604f3cd090229409df05'/>
<id>urn:sha1:2ce63f32adf9c47d6ed9604f3cd090229409df05</id>
<content type='text'>
Using ogg vorbis streams together with the oss writer hits the following nasty bug:
In case the filter chain can provide more data than what fits into its output buffer,
it converts the maximal amount possible to completely fill its output buffer. However, the
time to play this data might be less than than the time until the next data packet arrives
from the upper layers, especially when using ogg vorbis streams and FEC.

Since the filter chain task has no pre_select function,  the convert function(s) of its filter
nodes only get the chance to convert more data until the next select call returns, which
might already be too late.

This patch fixes the bug by teaching the pre_select function of the writer node group
to  remember whether something was written during the previous call  to wng_post_select().
In this case we force a minimal timeout for select, i.e. the next call to select() will return
immediately and the convert functions of the filter node are called again, hopefully converting
more data for the writer node group.
</content>
</entry>
<entry>
<title>struct writer_node: Store the number of the writer rather than a pointer.</title>
<updated>2009-05-14T06:34:06Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2009-05-14T06:34:06Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=09bf3971a58fd1044c145b25429c4886966c7d2a'/>
<id>urn:sha1:09bf3971a58fd1044c145b25429c4886966c7d2a</id>
<content type='text'>
This makes it easier to get the name of the writer from the writer_node
struct.
</content>
</entry>
<entry>
<title>Add some missing source code documentation.</title>
<updated>2009-05-10T18:41:11Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2009-05-10T18:41:11Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=f8f6605a4f02a15378a36618dbfacfc862fc6192'/>
<id>urn:sha1:f8f6605a4f02a15378a36618dbfacfc862fc6192</id>
<content type='text'>
</content>
</entry>
<entry>
<title>audiod: Properly handle wng open failures.</title>
<updated>2009-05-10T12:11:38Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2009-05-10T12:11:38Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=f87868b3147b189b6d4ee4e44817f092bd1c2895'/>
<id>urn:sha1:f87868b3147b189b6d4ee4e44817f092bd1c2895</id>
<content type='text'>
If opening the writer node group fails, no task is being registered to the
scheduler although a task structure is allocated. This makes audiod think
everything is fine until the output buffer of the receiver or a filter is
filled up which may take several seconds.

Fix this flaw by setting the error field of the wng to -E_TASK_UNREGISTERED.
This causes audiod to close the receiver node and the filter chain and to
clear the affected slot.
</content>
</entry>
<entry>
<title>Allow writers that have no pre_select functions.</title>
<updated>2009-05-08T19:49:30Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2009-05-08T19:49:30Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=fe37582752e4f874f03f303a0548db115e9542ee'/>
<id>urn:sha1:fe37582752e4f874f03f303a0548db115e9542ee</id>
<content type='text'>
Also, fix the pointer being printed in a debug message of the scheduler.
</content>
</entry>
<entry>
<title>Use only a single buffer pointer for filters/receivers.</title>
<updated>2009-05-02T09:46:46Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2009-05-02T09:46:46Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=0855a5fcdbebabacebee968939cf00bf3161cfaf'/>
<id>urn:sha1:0855a5fcdbebabacebee968939cf00bf3161cfaf</id>
<content type='text'>
This allows filters to change the output buffer size on the fly.
</content>
</entry>
<entry>
<title>write: Get rid of wn-&gt;chunk_bytes and wng-&gt;max_chunk_bytes.</title>
<updated>2009-03-15T16:14:50Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2009-03-15T16:14:50Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=4213f76d961629c7996c9d8c95171197f963e2f4'/>
<id>urn:sha1:4213f76d961629c7996c9d8c95171197f963e2f4</id>
<content type='text'>
These are not used anyway. Make all writers return 1 on success.
</content>
</entry>
<entry>
<title>Fix config file handling for audiod and clean up init functions.</title>
<updated>2009-01-26T22:27:50Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2009-01-26T22:27:50Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=56955f95584f51709320262f7d2e0ea79301d346'/>
<id>urn:sha1:56955f95584f51709320262f7d2e0ea79301d346</id>
<content type='text'>
As noted by Gerrit Renker, audiod refused to start if the --config_file
option was not given and the default config file does not exist.

Fix this bug and rename some of the init functions to make the naming
more consistent.
</content>
</entry>
<entry>
<title>Change year of copyright from 2008 to 2009.</title>
<updated>2009-01-10T00:53:18Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2009-01-10T00:53:18Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=6bdac07456cb5872f824028912d1049883a9c21f'/>
<id>urn:sha1:6bdac07456cb5872f824028912d1049883a9c21f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make functions for printing recv/filter/write help public.</title>
<updated>2008-12-07T10:16:43Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2008-12-07T10:16:43Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=5b4b082e7c37b46d5fa1729dff6496da8840085f'/>
<id>urn:sha1:5b4b082e7c37b46d5fa1729dff6496da8840085f</id>
<content type='text'>
So that these functions can also be used by audiod.
</content>
</entry>
</feed>
