paraslash.git
14 years agoIntroduce btr_node_description.
Andre Noll [Thu, 14 Jan 2010 03:19:59 +0000 (04:19 +0100)]
Introduce btr_node_description.

As the number of arguments to btr_new_node() grows, the code becomes
hard to read, especially since some callers must set many of the
arguments to NULL.

Using a pointer to a struct has the additional advantage that adding
new parameters does no longer require to touch all callers.

14 years agofile_write: Use para_open() and set the fd to non-blocking mode.
Andre Noll [Thu, 14 Jan 2010 00:19:12 +0000 (01:19 +0100)]
file_write: Use para_open() and set the fd to non-blocking mode.

14 years ago[btr] Fix merge_input_pool().
Andre Noll [Wed, 13 Jan 2010 23:11:46 +0000 (00:11 +0100)]
[btr] Fix merge_input_pool().

This function contained the following bug: wbr, buf1 and sz1 could
be used without being initialized. This was sometimes hitting the
assertion (buf1 && buf2).

Fix this by initializing these variables at the top.

14 years agoSkip btr suffix from {pre,post}_select_btr().
Andre Noll [Wed, 13 Jan 2010 22:39:32 +0000 (23:39 +0100)]
Skip btr suffix from {pre,post}_select_btr().

Everything uses btr now, so there's no need for a suffix any more.
Update the documentation a bit.

14 years agoKill unused writer_node_group code.
Andre Noll [Wed, 13 Jan 2010 22:31:17 +0000 (23:31 +0100)]
Kill unused writer_node_group code.

14 years agofile_write: Use sched_min_delay().
Andre Noll [Wed, 13 Jan 2010 22:17:58 +0000 (23:17 +0100)]
file_write: Use sched_min_delay().

14 years agofile_write: Kill ->fd of struct private_file_write_data.
Andre Noll [Wed, 13 Jan 2010 22:16:01 +0000 (23:16 +0100)]
file_write: Kill ->fd of struct private_file_write_data.

Also, simplify the logic in file_write_post_select_btr() a bit.

14 years agofile_write: Kill non-btr code.
Andre Noll [Wed, 13 Jan 2010 22:08:30 +0000 (23:08 +0100)]
file_write: Kill non-btr code.

Also, don't free the config on close.

14 years agooss fixes and cleanups.
Andre Noll [Wed, 13 Jan 2010 21:40:23 +0000 (22:40 +0100)]
oss fixes and cleanups.

- Kill ->samplerate and ->channels of struct private_oss_write_data.
- Don't invalidate the config on close().
- Simplify oss_pre_select_btr().

14 years agooss: Kill non-btr code.
Andre Noll [Wed, 13 Jan 2010 21:01:55 +0000 (22:01 +0100)]
oss: Kill non-btr code.

14 years agoalsa: Kill non-btr code.
Andre Noll [Wed, 13 Jan 2010 20:57:50 +0000 (21:57 +0100)]
alsa: Kill non-btr code.

14 years agowrite: Kill non-btr mode.
Andre Noll [Wed, 13 Jan 2010 20:46:28 +0000 (21:46 +0100)]
write: Kill non-btr mode.

Yes, this breaks the build on Macs. Sue me.

14 years agoMake writers remove btr node on errors.
Andre Noll [Wed, 13 Jan 2010 20:44:35 +0000 (21:44 +0100)]
Make writers remove btr node on errors.

This is what receivers/filters do as well.

14 years agofilter_common: Use sched_min_delay() helper.
Andre Noll [Wed, 13 Jan 2010 06:40:45 +0000 (07:40 +0100)]
filter_common: Use sched_min_delay() helper.

14 years agoclient.c: Add comment on the supervisor task.
Andre Noll [Wed, 13 Jan 2010 06:39:57 +0000 (07:39 +0100)]
client.c: Add comment on the supervisor task.

14 years agomp3dec: Don't check for bad data delay on errors.
Andre Noll [Wed, 13 Jan 2010 06:37:00 +0000 (07:37 +0100)]
mp3dec: Don't check for bad data delay on errors.

14 years agomp3dec does not need --buffer_tree.
Andre Noll [Wed, 13 Jan 2010 06:35:38 +0000 (07:35 +0100)]
mp3dec does not need --buffer_tree.

14 years agostdin: Avoid overrun errors.
Andre Noll [Wed, 13 Jan 2010 06:33:50 +0000 (07:33 +0100)]
stdin: Avoid overrun errors.

Request a timeout of 100ms if the buffer pool is full rather
than returning an error.

14 years agoalsa: Ignore errors from the btr query.
Andre Noll [Wed, 13 Jan 2010 06:16:32 +0000 (07:16 +0100)]
alsa: Ignore errors from the btr query.

Just use default values in case samplerate and channels can not
be obtained from parent nodes of the buffer tree.

14 years agoconfigure.ac: para_client needs time.o.
Andre Noll [Wed, 13 Jan 2010 06:14:50 +0000 (07:14 +0100)]
configure.ac: para_client needs time.o.

14 years agoalsa: Always write as much as possible.
Andre Noll [Wed, 13 Jan 2010 03:58:54 +0000 (04:58 +0100)]
alsa: Always write as much as possible.

No need to play games with snd_pcm_avail_update().

14 years agoalsa: Increase timeout on eof to 20ms.
Andre Noll [Wed, 13 Jan 2010 03:58:19 +0000 (04:58 +0100)]
alsa: Increase timeout on eof to 20ms.

14 years agoKill fields buf, loaded and output_error of struct receiver node.
Andre Noll [Wed, 13 Jan 2010 01:54:02 +0000 (02:54 +0100)]
Kill fields buf, loaded and output_error of struct receiver node.

14 years agoudp_recv: Kill non-btr code.
Andre Noll [Wed, 13 Jan 2010 01:39:46 +0000 (02:39 +0100)]
udp_recv: Kill non-btr code.

14 years agodccp_recv: Kill non-btr code.
Andre Noll [Wed, 13 Jan 2010 01:34:31 +0000 (02:34 +0100)]
dccp_recv: Kill non-btr code.

14 years agohttp_recv: Kill non-btr code.
Andre Noll [Wed, 13 Jan 2010 01:30:02 +0000 (02:30 +0100)]
http_recv: Kill non-btr code.

14 years agorecv: Use buffer tree API unconditionally.
Andre Noll [Wed, 13 Jan 2010 01:22:55 +0000 (02:22 +0100)]
recv: Use buffer tree API unconditionally.

This allows to kill the -B option.

14 years agoAdd btr support for the dccp receiver.
Andre Noll [Wed, 13 Jan 2010 01:17:30 +0000 (02:17 +0100)]
Add btr support for the dccp receiver.

14 years agoRemove ->shutdown of struct receiver.
Andre Noll [Tue, 12 Jan 2010 23:33:47 +0000 (00:33 +0100)]
Remove ->shutdown of struct receiver.

All three shutdown functions are stubs.

14 years agoaudiod: Make mode switching (on, off, sb) work again.
Andre Noll [Tue, 12 Jan 2010 23:23:54 +0000 (00:23 +0100)]
audiod: Make mode switching (on, off, sb) work again.

It is not sufficient to set the task status to an error value. We
also have to remove the btr node from the buffer tree.

14 years agofilter.h: Kill some unused fields of struct filter_node.
Andre Noll [Tue, 12 Jan 2010 07:14:19 +0000 (08:14 +0100)]
filter.h: Kill some unused fields of struct filter_node.

14 years agofilter: Remove allocation of filter buffers.
Andre Noll [Tue, 12 Jan 2010 07:12:44 +0000 (08:12 +0100)]
filter: Remove allocation of filter buffers.

fn->buf is not used any more.

14 years agofecdec: Kill some dead code.
Andre Noll [Tue, 12 Jan 2010 06:52:02 +0000 (07:52 +0100)]
fecdec: Kill some dead code.

fn->btrn is never NULL.

14 years agoKill unused filter_node->fc.
Andre Noll [Tue, 12 Jan 2010 06:30:59 +0000 (07:30 +0100)]
Kill unused filter_node->fc.

14 years agofilter/audiod: Be nice to filters without close method.
Andre Noll [Tue, 12 Jan 2010 06:25:40 +0000 (07:25 +0100)]
filter/audiod: Be nice to filters without close method.

14 years agoKill unused struct filter_chain.
Andre Noll [Tue, 12 Jan 2010 06:17:43 +0000 (07:17 +0100)]
Kill unused struct filter_chain.

14 years agoMore oggdec cleanups.
Andre Noll [Tue, 12 Jan 2010 06:12:58 +0000 (07:12 +0100)]
More oggdec cleanups.

14 years agoKill unused struct filter_callbacks.
Andre Noll [Tue, 12 Jan 2010 06:05:00 +0000 (07:05 +0100)]
Kill unused struct filter_callbacks.

Stream grabbing doesn't work with callbacks any more.

14 years agoKill global close_filters().
Andre Noll [Tue, 12 Jan 2010 06:03:18 +0000 (07:03 +0100)]
Kill global close_filters().

This allows to skip the leading underscore from audiod's
_close_filters().

14 years agoKill filter->convert.
Andre Noll [Tue, 12 Jan 2010 05:55:44 +0000 (06:55 +0100)]
Kill filter->convert.

Its last user was filter_postselect().

14 years agoKill unused filter_post_select().
Andre Noll [Tue, 12 Jan 2010 05:54:53 +0000 (06:54 +0100)]
Kill unused filter_post_select().

14 years agomp3dec: Kill non-btr code.
Andre Noll [Tue, 12 Jan 2010 05:43:48 +0000 (06:43 +0100)]
mp3dec: Kill non-btr code.

14 years agoaacdec: Kill non-btr code.
Andre Noll [Tue, 12 Jan 2010 05:37:13 +0000 (06:37 +0100)]
aacdec: Kill non-btr code.

14 years agooggdec: Kill non-btr code.
Andre Noll [Tue, 12 Jan 2010 05:31:44 +0000 (06:31 +0100)]
oggdec: Kill non-btr code.

14 years agoprebuffer: Use new sched helper functions.
Andre Noll [Tue, 12 Jan 2010 05:26:49 +0000 (06:26 +0100)]
prebuffer: Use new sched helper functions.

14 years agoPrebuffer: Kill non-btr code.
Andre Noll [Tue, 12 Jan 2010 05:25:52 +0000 (06:25 +0100)]
Prebuffer: Kill non-btr code.

14 years agowmadec: Kill non-btr code.
Andre Noll [Tue, 12 Jan 2010 03:36:37 +0000 (04:36 +0100)]
wmadec: Kill non-btr code.

14 years agoFecdec: Kill non-btr code.
Andre Noll [Tue, 12 Jan 2010 03:33:23 +0000 (04:33 +0100)]
Fecdec: Kill non-btr code.

14 years agofilter: Print meaningful error message if no filter options are given.
Andre Noll [Tue, 12 Jan 2010 03:28:02 +0000 (04:28 +0100)]
filter: Print meaningful error message if no filter options are given.

14 years agoamp: Kill non-btr code.
Andre Noll [Tue, 12 Jan 2010 03:11:09 +0000 (04:11 +0100)]
amp: Kill non-btr code.

14 years agowav_filter: Kill non-btr code.
Andre Noll [Tue, 12 Jan 2010 01:11:22 +0000 (02:11 +0100)]
wav_filter: Kill non-btr code.

14 years agocompress: Kill non-btr code.
Andre Noll [Tue, 12 Jan 2010 01:03:53 +0000 (02:03 +0100)]
compress: Kill non-btr code.

14 years agofilter: Remove non-btr code.
Andre Noll [Tue, 12 Jan 2010 00:47:47 +0000 (01:47 +0100)]
filter: Remove non-btr code.

This paves the street for further filter cleanups which will finally
result in the removal of struct filter_chain.

14 years agoaudiod.h: Remove unused slot_info->fc.
Andre Noll [Tue, 12 Jan 2010 00:43:30 +0000 (01:43 +0100)]
audiod.h: Remove unused slot_info->fc.

14 years agovss: Fix offset handling.
Andre Noll [Tue, 12 Jan 2010 00:10:36 +0000 (01:10 +0100)]
vss: Fix offset handling.

Commit fb6d93240 (vss: Update offset directly when setting the REPOS
flag.) was buggy. On pause/restart we miss to update mmd->offset,
hence the status items which are sent to the stat clients like audiod
did not contain the correct offset value either which messes up
the time string that audiod sends to its clients (para_gui).

We need to set the new offset both on repos requests and on restart,
do introduce a small helper function for this purpose.

14 years agoaudiod: Fix a bug in try_to_close_slot() for default config.
Andre Noll [Tue, 12 Jan 2010 00:01:34 +0000 (01:01 +0100)]
audiod: Fix a bug in try_to_close_slot() for default config.

If the default writer is used because no --writer option was given,
a->num_writers is zero although we have one (the default) writer.
Handle this case correctly to avoid starting the receiver too early.

14 years agoaudiod: Don't open the receiver too early.
Andre Noll [Mon, 11 Jan 2010 23:59:16 +0000 (00:59 +0100)]
audiod: Don't open the receiver too early.

Also use sched_request_timeout() instead of setting the timeout
directly.

14 years agoaudiod _close_filters(): Don't segfault if fn is NULL.
Andre Noll [Mon, 11 Jan 2010 23:57:24 +0000 (00:57 +0100)]
audiod _close_filters(): Don't segfault if fn is NULL.

14 years agoaudiod: Make writer_cleanup() accept NULL pointer argument.
Andre Noll [Mon, 11 Jan 2010 23:55:59 +0000 (00:55 +0100)]
audiod: Make writer_cleanup() accept NULL pointer argument.

14 years agoaudiod: Fix time string.
Andre Noll [Mon, 11 Jan 2010 01:51:08 +0000 (02:51 +0100)]
audiod: Fix time string.

Copy the data which is relevant for generating the string at writer
node start time, i.e. when the writer produced its first output.

14 years agoaudiod: Timing fixes.
Andre Noll [Mon, 11 Jan 2010 00:06:39 +0000 (01:06 +0100)]
audiod: Timing fixes.

14 years agoudp_recv: Loglevel adjustments.
Andre Noll [Mon, 11 Jan 2010 00:03:58 +0000 (01:03 +0100)]
udp_recv: Loglevel adjustments.

14 years agosched: Add some helper functions.
Andre Noll [Mon, 11 Jan 2010 00:03:11 +0000 (01:03 +0100)]
sched: Add some helper functions.

14 years ago[btr] Export btr_pool_size().
Andre Noll [Sun, 10 Jan 2010 18:53:22 +0000 (19:53 +0100)]
[btr] Export btr_pool_size().

14 years agograb: Implement -n option to specify the name of the btrn.
Andre Noll [Sun, 10 Jan 2010 18:52:19 +0000 (19:52 +0100)]
grab: Implement -n option to specify the name of the btrn.

14 years agoAdd E_STDIN_OVERRUN error code.
Andre Noll [Sun, 10 Jan 2010 18:50:56 +0000 (19:50 +0100)]
Add E_STDIN_OVERRUN error code.

14 years agostdout: Try to write as much as possible in one go.
Andre Noll [Sun, 10 Jan 2010 18:49:58 +0000 (19:49 +0100)]
stdout: Try to write as much as possible in one go.

14 years agostdin: Use buffer pools.
Andre Noll [Sun, 10 Jan 2010 17:40:40 +0000 (18:40 +0100)]
stdin: Use buffer pools.

This introduces a memory leak to be fixed in a subsequent patch (the
buffer pool can not be freed in post_select() because there might
still be references to its area).

14 years ago[btr]: Avoid large memcpy()s when creating the wrap buffers.
Andre Noll [Sun, 10 Jan 2010 17:22:49 +0000 (18:22 +0100)]
[btr]: Avoid large memcpy()s when creating the wrap buffers.

14 years agoMajor grab_client cleanups.
Andre Noll [Sun, 10 Jan 2010 04:07:59 +0000 (05:07 +0100)]
Major grab_client cleanups.

- Move struct declarations from grab_client.h to grab_client.c.

- Kill init_grabbing(). We can do this at compile time.

- Rename some functions and improve documentation.

14 years agoFix stream grabbing.
Andre Noll [Sun, 10 Jan 2010 03:30:45 +0000 (04:30 +0100)]
Fix stream grabbing.

The new code uses a buffer tree node which is inserted into an existing
buffer tree if possible, or put to the inactive list.

The grab command now takes the name of an existing parent node. The new
grab client node will be inserted as a child of this parent node.

14 years agobtr_node_status(): Do not segfault if btrn is NULL.
Andre Noll [Sun, 10 Jan 2010 03:25:16 +0000 (04:25 +0100)]
btr_node_status(): Do not segfault if btrn is NULL.

14 years agoMinor logging and documentation updates.
Andre Noll [Sat, 9 Jan 2010 21:34:22 +0000 (22:34 +0100)]
Minor logging and documentation updates.

14 years agoAdd btr pool support to the fecdec filter.
Andre Noll [Sat, 9 Jan 2010 21:25:17 +0000 (22:25 +0100)]
Add btr pool support to the fecdec filter.

The consumers of the output of fecdec are typically the decoders
which have requirements on the minimal amount of data available
in one chunk. Using a buffer pool minimizes the number of memcpy()
operations needed during btr_merge when the current buffer is too small.

To fit the needs of fecdec, a new function btr_copy() is introduced
which copies a data buffer into the btr pool area and generates
btr buffers and references. btr_add_output_pool() had to be adjusted
a bit and all callers have been changed to match.

The patch also adds a new field "name" to the buffer_pool structure.
This makes the log output more readable.

14 years agoudp_recv: Use buffer pool API.
Andre Noll [Sat, 9 Jan 2010 17:41:07 +0000 (18:41 +0100)]
udp_recv: Use buffer pool API.

Although fecdec, the filter receiving the output of the udp receiver,
does not strictly benefit from this change, using buffer pools in
receivers has the advantage that we don't need to guess the input
buffer size or call realloc() after the receive to shrink the buffer.

14 years agoImplement buffer tree pool support.
Andre Noll [Sat, 9 Jan 2010 01:28:15 +0000 (02:28 +0100)]
Implement buffer tree pool support.

Using a buffer pool avoids quite some uses of memcpy() and memmove().
This patch also switches over the http receiver to use buffer pools.

14 years agoaudiod: Kill noisy debug message.
Andre Noll [Sat, 9 Jan 2010 01:24:02 +0000 (02:24 +0100)]
audiod: Kill noisy debug message.

14 years agomp3dec: Improve error message.
Andre Noll [Sat, 9 Jan 2010 00:31:38 +0000 (01:31 +0100)]
mp3dec: Improve error message.

14 years agooggdec fixes.
Andre Noll [Sat, 9 Jan 2010 00:31:16 +0000 (01:31 +0100)]
oggdec fixes.

If opening the stream fails because the segment available is too small,
we must not consume this data, which is what cb_read_btr() does
unconditionally.

Make it store the number of consumed bytes in pod->converted and consume
from ogg_init() and ogg_post_select() instead.

14 years agoamp filter fixes.
Andre Noll [Fri, 8 Jan 2010 19:06:05 +0000 (20:06 +0100)]
amp filter fixes.

- Avoid double free.
- Print correct amplification value in log message.

14 years agoSwitch audiod over to the buffer tree API.
Andre Noll [Wed, 6 Jan 2010 23:48:47 +0000 (00:48 +0100)]
Switch audiod over to the buffer tree API.

Still a bit rough and there are too many btr merges.

14 years agovss: Update offset directly when setting the REPOS flag.
Andre Noll [Wed, 6 Jan 2010 23:45:25 +0000 (00:45 +0100)]
vss: Update offset directly when setting the REPOS flag.

This way, the new offset is used during the next announce period.

14 years agosched.h: Explicitely mention size of task status buffer.
Andre Noll [Wed, 6 Jan 2010 23:42:10 +0000 (00:42 +0100)]
sched.h: Explicitely mention size of task status buffer.

14 years agosched: Update "now" also after post_select.
Andre Noll [Wed, 6 Jan 2010 23:40:57 +0000 (00:40 +0100)]
sched: Update "now" also after post_select.

14 years agooggdec: Move init into a separate function.
Andre Noll [Wed, 6 Jan 2010 23:35:55 +0000 (00:35 +0100)]
oggdec: Move init into a separate function.

14 years agoaacdec: Reset "consumed" at each iteration.
Andre Noll [Wed, 6 Jan 2010 23:25:14 +0000 (00:25 +0100)]
aacdec: Reset "consumed" at each iteration.

14 years agobtr support for the fecdec filter.
Andre Noll [Tue, 5 Jan 2010 22:08:36 +0000 (23:08 +0100)]
btr support for the fecdec filter.

14 years agoFix a bug in the compress filter in case of odd buffer sizes.
Andre Noll [Tue, 5 Jan 2010 22:07:29 +0000 (23:07 +0100)]
Fix a bug in the compress filter in case of odd buffer sizes.

14 years agofilter: Fix a memory leak in non-btr mode.
Andre Noll [Tue, 5 Jan 2010 22:06:45 +0000 (23:06 +0100)]
filter: Fix a memory leak in non-btr mode.

14 years agostdin: Always set t->error correctly.
Andre Noll [Tue, 5 Jan 2010 22:05:58 +0000 (23:05 +0100)]
stdin: Always set t->error correctly.

14 years agobtr support for the UDP receiver.
Andre Noll [Tue, 5 Jan 2010 19:38:39 +0000 (20:38 +0100)]
btr support for the UDP receiver.

14 years agoIntroduce generic_recv_pre_select().
Andre Noll [Tue, 5 Jan 2010 18:39:33 +0000 (19:39 +0100)]
Introduce generic_recv_pre_select().

14 years agorecv improvements.
Andre Noll [Tue, 5 Jan 2010 18:20:54 +0000 (19:20 +0100)]
recv improvements.

- Fix some memory leaks.
- kill http_recv's -B option.
- Move btr node creation to recv.c.

14 years ago[btr] Add the node type parameter to btr_node_status().
Andre Noll [Tue, 5 Jan 2010 18:04:04 +0000 (19:04 +0100)]
[btr] Add the node type parameter to btr_node_status().

This allows to have a single function which can be called from
both the pre_select and the post_select methods of all receivers/
filters/writers and from the stdin and stdout tasks.

14 years agobtr support for the oss writer.
Andre Noll [Tue, 5 Jan 2010 05:09:32 +0000 (06:09 +0100)]
btr support for the oss writer.

14 years agopara_write: Make loglevel work again.
Andre Noll [Tue, 5 Jan 2010 05:06:27 +0000 (06:06 +0100)]
para_write: Make loglevel work again.

Also kill some useless log messagess and fix a memory leak.

14 years agofile writer pre_select() fixes.
Andre Noll [Tue, 5 Jan 2010 05:05:33 +0000 (06:05 +0100)]
file writer pre_select() fixes.

14 years agoalsa: Use new get_btr_* functions.
Andre Noll [Tue, 5 Jan 2010 05:05:11 +0000 (06:05 +0100)]
alsa: Use new get_btr_* functions.

14 years agoAdd get_btr_samplerate() and get_btr_channels().
Andre Noll [Tue, 5 Jan 2010 05:04:04 +0000 (06:04 +0100)]
Add get_btr_samplerate() and get_btr_channels().

These are needed by more than one writer.

14 years agowmadec: Reset converted on each iteration.
Andre Noll [Tue, 5 Jan 2010 02:51:20 +0000 (03:51 +0100)]
wmadec: Reset converted on each iteration.

wmadec does not work at all in btr mode without this fix.