paraslash.git
17 years agohttp_recv: set the eof flag on buffer overruns.
Andre [Wed, 31 May 2006 21:04:14 +0000 (23:04 +0200)]
http_recv: set the eof flag on buffer overruns.

17 years agoFix wng_open error handling.
Andre [Wed, 31 May 2006 21:03:19 +0000 (23:03 +0200)]
Fix wng_open error handling.

if wn->open() failed, undo all work and set the eof flag in the wng.

17 years agoalsa_writer: use non-blocking open mode.
Andre [Wed, 31 May 2006 21:01:08 +0000 (23:01 +0200)]
alsa_writer: use non-blocking open mode.

fixes hangs in para_audiod.

17 years agofix dccp sender/receiver
Andre [Wed, 31 May 2006 02:38:56 +0000 (04:38 +0200)]
fix dccp sender/receiver

the server side broke during the afs header cleanup, the client side
had a fatal pointer bug and missed to set the return value in its
pre_select function.

17 years agofix audiod on/off/sb commands
Andre [Tue, 30 May 2006 01:23:11 +0000 (03:23 +0200)]
fix audiod on/off/sb commands

Unregister all running tasks in all running slots. That's much
cleaner than using the dirty hack with rn->eof we had before.

17 years agomore audiod fixes
Andre [Tue, 30 May 2006 00:49:10 +0000 (02:49 +0200)]
more audiod fixes

introduce output_eof in struct receiver_node to give the receivers
a chance to see if the connected consumer of the receiver data
died in case of an error.

Some eof fixes and cleanups also on the writer side.

We're coming closer.

17 years agoalsa_writer: switch back to buffer_time-based timeout calculation
Andre [Tue, 30 May 2006 00:40:04 +0000 (02:40 +0200)]
alsa_writer: switch back to buffer_time-based timeout calculation

Fixes alsa software mixing

17 years agoaudio: fix handling of sample_rate and channels count.
Andre [Mon, 29 May 2006 23:05:54 +0000 (01:05 +0200)]
audio: fix handling of sample_rate and channels count.

This was utterly broken for both para_write and para_audiod as
the writer didn't have a chance to see the computed value from
the filter/wav header.

Fix it by introducing two new pointers in struct writer_node_group
which point to the corresponding variables in struct
filter/check_wav_task.

Tested with 22KHz mono files.

17 years agowng: fix two critical bugs
Andre [Mon, 29 May 2006 22:56:35 +0000 (00:56 +0200)]
wng: fix two critical bugs

the open functions of the writers in a writer node group
might be interested to know which group they belong to.
Unfortunately, the old code called open before initializing
the "wng" pointer of the writer node.

The second bug triggers for example if invalid receiver options are
given. In this case wng_close() is called with a NULL-argument as
the wng has not been opened yet. The solution is to check for NULL
pointers and return immediately in this case.

17 years agoaacdec: detect buffer overrun and return an errror.
Andre [Mon, 29 May 2006 22:51:32 +0000 (00:51 +0200)]
aacdec: detect buffer overrun and return an errror.

Also, increase the output buffer size and don't try to decode
if the output buffer is already filled at least 60%.

17 years agoMerge branch 'sched'
Andre [Mon, 29 May 2006 02:18:16 +0000 (04:18 +0200)]
Merge branch 'sched'

17 years agocosmetics
Andre [Mon, 29 May 2006 02:13:34 +0000 (04:13 +0200)]
cosmetics

17 years agomore audiod improvements
Andre [Mon, 29 May 2006 02:05:10 +0000 (04:05 +0200)]
more audiod improvements

Make cmd_task and audiod_task local, add more documentation and fix the
eof handling of the ortp receiver.

17 years agoaudiod: remove bogus check_timeouts()
Andre [Mon, 29 May 2006 01:04:53 +0000 (03:04 +0200)]
audiod: remove bogus check_timeouts()

With the new scheduler, audiod doesn't really know any more,
the number of transfered bytes. So kill that code for now.

17 years agoaudiod: clean up wng_event_handler()
Andre [Mon, 29 May 2006 00:52:22 +0000 (02:52 +0200)]
audiod: clean up wng_event_handler()

It should only unregister the wng task. closing is done from
close_decoder_if_idle(), an ugly name. Rename this function to
try_to_close_slot().

17 years agofix writer node group eof
Andre [Mon, 29 May 2006 00:27:08 +0000 (02:27 +0200)]
fix writer node group eof

The old code did not set the eof flag at all. This patch fixes the problem
and contains also some loglevel and log message text improvements.

17 years agoaudiod: fix nasty thinko
Andre [Sun, 28 May 2006 23:19:20 +0000 (01:19 +0200)]
audiod: fix nasty thinko

"ret" was used where "writer_num" is correct. This makes the "-w" option
of para_audiod work again. Fix another typo too.

17 years agoMinor random fixes.
Andre [Sun, 28 May 2006 22:05:16 +0000 (00:05 +0200)]
Minor random fixes.

gcc is happy now.

17 years agotypo
Andre [Sun, 28 May 2006 21:30:51 +0000 (23:30 +0200)]
typo

17 years agoaudiod help update.
Andre [Sun, 28 May 2006 21:13:47 +0000 (23:13 +0200)]
audiod help update.

17 years agoalsa_writer: use alsa's buffer time
Andre [Sun, 28 May 2006 21:07:12 +0000 (23:07 +0200)]
alsa_writer: use alsa's buffer time

to compute the time of the next chunk. Also, activate non-blocking mode.

17 years agoFix default filter setup
Andre [Sun, 28 May 2006 20:51:16 +0000 (22:51 +0200)]
Fix default filter setup

The previous patch broke it.

17 years agomore small audiod cleanups.
Andre [Sun, 28 May 2006 20:03:38 +0000 (22:03 +0200)]
more small audiod cleanups.

nothing exciting here.

17 years agoaudiod: get rid of all calls to gettimeofday().
Andre [Sun, 28 May 2006 19:53:57 +0000 (21:53 +0200)]
audiod: get rid of all calls to gettimeofday().

Use a global variable instead that gets updated from within
audio_pre_select() and audiod_post_select().

17 years agoaudiod: split init_stream_io()
Andre [Sun, 28 May 2006 19:35:51 +0000 (21:35 +0200)]
audiod: split init_stream_io()

It consists of three independent parts.

17 years agoOpen the filters from within audiod_pre_select()
Andre [Sun, 28 May 2006 19:12:35 +0000 (21:12 +0200)]
Open the filters from within audiod_pre_select()

17 years agoaudiod: avoid another gettimeofday() call
Andre [Sun, 28 May 2006 19:05:49 +0000 (21:05 +0200)]
audiod: avoid another gettimeofday() call

The sched struct already contains the current time.

17 years agoaudiod: kill close_writer()
Andre [Sun, 28 May 2006 18:59:39 +0000 (20:59 +0200)]
audiod: kill close_writer()

This is better handled by the wng event handler.

17 years agoaudiod: kill some dead code
Andre [Sun, 28 May 2006 18:51:01 +0000 (20:51 +0200)]
audiod: kill some dead code

17 years agointegrate writers into para_audiod
Andre [Sun, 28 May 2006 18:49:05 +0000 (20:49 +0200)]
integrate writers into para_audiod

Seems to work, but might still be full of bugs.

17 years agoannounce upcoming features
Andre [Sun, 28 May 2006 15:42:27 +0000 (17:42 +0200)]
announce upcoming features

17 years agoconfigure.ac: add writer objects to para_audiod.
Andre [Sun, 28 May 2006 05:35:13 +0000 (07:35 +0200)]
configure.ac: add writer objects to para_audiod.

17 years agopara_write: Own commandline parsers for each writer
Andre [Fri, 26 May 2006 14:48:15 +0000 (16:48 +0200)]
para_write: Own commandline parsers for each writer

17 years agoconvert para_audiod to the new scheduler.
Andre [Thu, 25 May 2006 21:57:48 +0000 (23:57 +0200)]
convert para_audiod to the new scheduler.

As expected, this was a bit harder. It works, but I'm sure there are
plenty of bugs left. Fortnunately, this doesn't matter much right now,
because the next step will be the integration of the writers into the
para_audiod executable. This will lead to major code simplifications,
so let's defer the bug-hunting until this integration is complete.

17 years agointroduce input_eof and ouput_eof
Andre [Thu, 25 May 2006 13:53:00 +0000 (15:53 +0200)]
introduce input_eof and ouput_eof

para_filter/para_audiod needs this. For example, it is pointless to
convert more audiod data if the writing application is no longer active.

17 years agoconvert para_filter to the new scheduler
Andre [Thu, 25 May 2006 12:49:03 +0000 (14:49 +0200)]
convert para_filter to the new scheduler

This was again straight forward.

17 years agorename struct filter_chain_info to filter_chain
Andre [Wed, 24 May 2006 01:45:28 +0000 (03:45 +0200)]
rename struct filter_chain_info to filter_chain

17 years agoMake para_recv use the new scheduler.
Andre [Wed, 24 May 2006 01:29:27 +0000 (03:29 +0200)]
Make para_recv use the new scheduler.

This was pretty straight-forward, but it broke audiod badly. The plan
is first to convert para_filter, then para_audiod. It this works out well,
para_server will be converted as well.

17 years agoerror.h: kill some unused errors
Andre [Tue, 23 May 2006 22:23:21 +0000 (00:23 +0200)]
error.h: kill some unused errors

17 years agoRename error handler() to event_handler()
Andre [Tue, 23 May 2006 21:49:31 +0000 (23:49 +0200)]
Rename error handler() to event_handler()

17 years agosimplify sched: nuke PRE_EOF_IS_ERROR
Andre [Tue, 23 May 2006 21:45:42 +0000 (23:45 +0200)]
simplify sched: nuke PRE_EOF_IS_ERROR

Much too simple to get it wrong. Instead, treat zero as success and
make all tasks return negative if they wish to have their error handler
called. A subsequent patch will rename error_handler to event_handler.

17 years agocheck_wav: return error on premature end of file.
Andre [Tue, 23 May 2006 18:47:31 +0000 (20:47 +0200)]
check_wav: return error on premature end of file.

17 years agoMake the wng->eof a pointer.
Andre [Tue, 23 May 2006 18:27:23 +0000 (20:27 +0200)]
Make the wng->eof a pointer.

The receiver/stdin_reader already have a corresponding field.

This patch also fixes a bug in the alsa_writer which was introduced
by the previous patch. This bug caused a playback delay of one second.

17 years agofirst version of the universal paraslash scheduler
Andre [Tue, 23 May 2006 17:27:08 +0000 (19:27 +0200)]
first version of the universal paraslash scheduler

17 years agofix serious typo
Andre [Fri, 19 May 2006 12:12:27 +0000 (14:12 +0200)]
fix serious typo

That max should actually be a min..

17 years agoerror.h: new macro SS_NAME
Andre [Thu, 18 May 2006 15:07:43 +0000 (17:07 +0200)]
error.h: new macro SS_NAME

expands to the name of the given subsystem.

17 years agoafs.c: fix documentation of afs_preselect()
Andre [Thu, 18 May 2006 12:42:05 +0000 (14:42 +0200)]
afs.c: fix documentation of afs_preselect()

17 years agomp3_afh.c/ogg_afh.c: fix doxygen file documentation
Andre [Wed, 17 May 2006 20:41:51 +0000 (22:41 +0200)]
mp3_afh.c/ogg_afh.c: fix doxygen file documentation

17 years agorename mp3.c to mp3_afh.c and ogg.c to ogg_afh.c
Andre [Wed, 17 May 2006 19:47:27 +0000 (21:47 +0200)]
rename mp3.c to mp3_afh.c and ogg.c to ogg_afh.c

17 years agosplit afs.h
Andre [Wed, 17 May 2006 19:38:52 +0000 (21:38 +0200)]
split afs.h

move the audio format handler stuff to the new afh.h header file
which isn't included by any of the senders.

17 years agomajor afs cleanup
Andre [Wed, 17 May 2006 19:22:59 +0000 (21:22 +0200)]
major afs cleanup

This patch  makes afs.c the only user of the audio format handler
arry afl[] in order to completely separate audio format handling from
audio file sending.

This is achieved by providing the new helper functions afs_get_header()
and afs_chunk_time(). audio file senders may call these functions
without knowledge of struct audio_format. This allows to get rid of
the "af" parameter for the pre_select and post_select functions of
struct sender.

Related to this cleanup is the removal of match_audio_file_name() from db.c
which also depended on afl[]. This function was essentially identical to
afs.c's guess_audio_format(), so make the latter public and use it from
within db.c.

17 years agoaac audio format handler: fix end of file timeout
Andre [Wed, 17 May 2006 19:00:26 +0000 (21:00 +0200)]
aac audio format handler: fix end of file timeout

20 x chunk_time is plenty, but lets be conservative here.

17 years agofix audiod command line option handling.
Andre [Wed, 17 May 2006 15:39:31 +0000 (17:39 +0200)]
fix audiod command line option handling.

The previous patch broke this.

17 years agoupdate grab_client_new() documentation
Andre [Wed, 17 May 2006 13:57:58 +0000 (15:57 +0200)]
update grab_client_new() documentation

17 years agograb: use grab_client_cmdline_parser_string()
Andre [Tue, 16 May 2006 19:38:04 +0000 (21:38 +0200)]
grab: use grab_client_cmdline_parser_string()

No more need to use split_args().

17 years agoMake aac work with any bitrate.
Andre [Tue, 16 May 2006 16:38:18 +0000 (18:38 +0200)]
Make aac work with any bitrate.

By replacing the hardcoded 23ms timeout by a timeout
computed from the audio spec config.

17 years agoafs.c: Fix 'initialization from incompatible pointer type warning'
Andre [Sun, 14 May 2006 02:04:01 +0000 (04:04 +0200)]
afs.c: Fix 'initialization from incompatible pointer type warning'

These were missed by the previous patch.

17 years agostruct audio_format_handler: use proper pointer type for the init function
Andre [Sun, 14 May 2006 01:48:07 +0000 (03:48 +0200)]
struct audio_format_handler: use proper pointer type for the init function

17 years agoweb/download text update
Andre [Sun, 14 May 2006 00:42:56 +0000 (02:42 +0200)]
web/download text update

17 years agoimproved info status items for the playlist selector
Andre [Sat, 13 May 2006 23:45:21 +0000 (01:45 +0200)]
improved info status items for the playlist selector

With this patch, the three "dbinfo" status items contain the current
dir, the number of entries in the playlist, and the previous/next
entry in the list.

17 years agoimproved info text for the random selector.
Andre [Sat, 13 May 2006 22:06:02 +0000 (00:06 +0200)]
improved info text for the random selector.

It now reports random_dir, the dir of the current audio file and
the number of audio files found in random_dir.

17 years agorandom/mysql selector: make it find m4a files
Andre [Sat, 13 May 2006 21:18:44 +0000 (23:18 +0200)]
random/mysql selector: make it find m4a files

This is achieved by adding an array of typical suffixes
for the audio format to struct audio_format_handler.

17 years agoRename struct audio format to audio_format_handler
Andre [Sat, 13 May 2006 20:46:34 +0000 (22:46 +0200)]
Rename struct audio format to audio_format_handler

17 years agofix audiod decoder flags for aac
Andre [Sat, 13 May 2006 20:26:55 +0000 (22:26 +0200)]
fix audiod decoder flags for aac

Do not try to encode the audio format in a single digit. Just use

0: off
1: receiver activated
2: writer started
3: receiver activated and writer is running

regardless of the audio format.

17 years agofix init message of the playlist selector.
Andre [Sat, 13 May 2006 20:20:54 +0000 (22:20 +0200)]
fix init message of the playlist selector.

The prefix "dbinfo1:" was missing.

17 years agoadd a close function for the aac audio format handler.
Andre [Sat, 13 May 2006 20:01:36 +0000 (22:01 +0200)]
add a close function for the aac audio format handler.

Without this, we're leaking one fd per audio file...

17 years agoKill duplicate para_fread()
Andre [Sat, 13 May 2006 19:55:51 +0000 (21:55 +0200)]
Kill duplicate para_fread()

This was contained in aac_afh.c as well as in mp3.c. Move it
to fd.c and add documentation.

17 years agodocumentation update
Andre [Sat, 13 May 2006 19:38:39 +0000 (21:38 +0200)]
documentation update

mention aac and clarify the audiod section in INSTALL

17 years agoMinor aac cleanup
Andre [Sat, 13 May 2006 17:19:28 +0000 (19:19 +0200)]
Minor aac cleanup

Use size_t and ssize_t rather than a mixture of several other types.
This also makes gcc on Darwin STFU.

17 years agoaac afh: do not send the huge audio file header
Andre [Sat, 13 May 2006 16:37:45 +0000 (18:37 +0200)]
aac afh: do not send the huge audio file header

17 years agoaac: error cleanup
Andre [Sat, 13 May 2006 05:09:52 +0000 (07:09 +0200)]
aac: error cleanup

put each aac-related error message to its proper subsystem

17 years agoaac: add GPL headers to all files
Andre [Sat, 13 May 2006 04:35:34 +0000 (06:35 +0200)]
aac: add GPL headers to all files

and some other minor cleanups.

17 years agoaac: move aac_find_stsz from aac_common.c to to aac_afh.c
Andre [Sat, 13 May 2006 04:20:17 +0000 (06:20 +0200)]
aac: move aac_find_stsz from aac_common.c to to aac_afh.c

It is only used there.

17 years agoaac: make find_stco() return the first offset
Andre [Sat, 13 May 2006 04:07:22 +0000 (06:07 +0200)]
aac: make find_stco() return the first offset

rather than the number of offsets which is rather uninteresting.
Also, rename this function to aac_find_entry() and return the
correct number of frames to para_server.

17 years agoSome more aacdec cleanups
Andre [Sat, 13 May 2006 03:35:14 +0000 (05:35 +0200)]
Some more aacdec cleanups

rename the "decoder" field to "handle" as it is of type NeAACDecHandle.
Fix some typos in comments and make two more variables local.

17 years agoaacdec: Rename some functions
Andre [Sat, 13 May 2006 03:23:31 +0000 (05:23 +0200)]
aacdec: Rename some functions

17 years agoaacdec: "consumed" is only used in mp4dec()
Andre [Sat, 13 May 2006 03:21:56 +0000 (05:21 +0200)]
aacdec: "consumed" is only used in mp4dec()

Remove it from struct private_aacdec_data.

17 years agoaacdec: inbuf and inbuf_len are only used in mp3dec()
Andre [Sat, 13 May 2006 03:14:45 +0000 (05:14 +0200)]
aacdec: inbuf and inbuf_len are only used in mp3dec()

No need to keep them around in the private_data struct.

17 years agoaacdec: no need to read the offset table.
Andre [Sat, 13 May 2006 03:03:48 +0000 (05:03 +0200)]
aacdec: no need to read the offset table.

We only need the first entry.

17 years agoFirst version of the aac audio format handler that kinda works.
Andre [Sat, 13 May 2006 02:38:26 +0000 (04:38 +0200)]
First version of the aac audio format handler that kinda works.

ATM, only 2 channels, 44100Hz is supported. Still needs more work.
This also fixes two bugs in the error path of aacdec, where positive
values are returned due to a missing "-".

17 years agoFirst draft of the aac audio format handler
Andre [Fri, 12 May 2006 18:38:45 +0000 (20:38 +0200)]
First draft of the aac audio format handler

Not working yet. aacdec still works.

17 years agoMerge branch 'master' into aac
Andre [Fri, 12 May 2006 15:00:10 +0000 (17:00 +0200)]
Merge branch 'master' into aac

Conflicts:

Makefile.in

Makefile.in looks fine. WTF is git complaining about?

17 years agonew codename, reset version to git
Andre [Fri, 12 May 2006 14:31:58 +0000 (16:31 +0200)]
new codename, reset version to git

17 years agothe paraslash-0.2.12 release tarball
Andre [Fri, 12 May 2006 14:28:42 +0000 (16:28 +0200)]
the paraslash-0.2.12 release tarball

17 years agoparaslash 0.2.12 v0.2.12
Andre [Fri, 12 May 2006 14:26:34 +0000 (16:26 +0200)]
paraslash 0.2.12

17 years agoTypo
Andre [Thu, 11 May 2006 17:33:43 +0000 (19:33 +0200)]
Typo

17 years agoMerge branch 'master' into aac
Andre [Wed, 10 May 2006 23:08:50 +0000 (01:08 +0200)]
Merge branch 'master' into aac

Conflicts:

configure.ac

configure.ac looks fine. Why the hell is git complaining?
nothing to commit

17 years agoconfigure.ac: Fix mysql configuration
Andre [Wed, 10 May 2006 23:03:48 +0000 (01:03 +0200)]
configure.ac: Fix mysql configuration

The --enable_mysql_libs option had two cut-and-paste bugs.

17 years agoadd configure options for libfaad
Andre [Wed, 10 May 2006 22:59:19 +0000 (00:59 +0200)]
add configure options for libfaad

This patch also fixes two issues in the mysql part of configure.ac.

17 years agoignore zero bit when checking for frame start
Andre [Wed, 10 May 2006 17:19:12 +0000 (19:19 +0200)]
ignore zero bit when checking for frame start

17 years agoMerge branch 'master' into aac
Andre [Tue, 9 May 2006 22:41:24 +0000 (00:41 +0200)]
Merge branch 'master' into aac

17 years agoaacdec: Do not try to feed invalid buffers to libfaad
Andre [Tue, 9 May 2006 22:41:15 +0000 (00:41 +0200)]
aacdec: Do not try to feed invalid buffers to libfaad

Valid entry points start with 0x21, so look for the next 0x21
and skip everything in between.

17 years agocosmetics
Andre [Tue, 9 May 2006 17:26:47 +0000 (19:26 +0200)]
cosmetics

17 years agocheck barriers also in afs_send_chunk()
Andre [Tue, 9 May 2006 17:25:12 +0000 (19:25 +0200)]
check barriers also in afs_send_chunk()

As this function is called even if the select timeout didn't expire,
we'll have to check the eof_barrier and the data_send barrier also
early in afs_send_chunk() and return if there's time left.

17 years agoortp_send: Fix EOF packet sending
Andre [Tue, 9 May 2006 16:18:44 +0000 (18:18 +0200)]
ortp_send: Fix EOF packet sending

17 years agoMerge branch 'master' into aac
Andre [Mon, 8 May 2006 22:29:33 +0000 (00:29 +0200)]
Merge branch 'master' into aac

17 years agoserver: call afs_send_chunk() even if no timeout occured.
Andre [Mon, 8 May 2006 22:23:17 +0000 (00:23 +0200)]
server: call afs_send_chunk() even if no timeout occured.

afs_send_chunk() checks the current time anyway.

17 years agoortp_send: kill useless gettimeofday()
Andre [Sat, 6 May 2006 22:49:11 +0000 (00:49 +0200)]
ortp_send: kill useless gettimeofday()

17 years agoMerge branch 'master' into aac
Andre [Sat, 6 May 2006 18:25:07 +0000 (20:25 +0200)]
Merge branch 'master' into aac

17 years agofix error log message
Andre [Sat, 6 May 2006 15:24:16 +0000 (17:24 +0200)]
fix error log message

Also, make recv_buffer() write a zero even if the underlying recv_bin_buffer()
failed.