Andre Noll [Sun, 30 Nov 2008 23:26:57 +0000 (00:26 +0100)]
Include portable_io.h only when needed.
Andre Noll [Sun, 30 Nov 2008 23:21:16 +0000 (00:21 +0100)]
wav_filter: Use the functions from portable_io.h for writing the wav header.
Andre Noll [Sun, 30 Nov 2008 22:11:45 +0000 (23:11 +0100)]
Rename filter_chain.c to filter_common.c.
Andre Noll [Sun, 30 Nov 2008 20:45:38 +0000 (21:45 +0100)]
Rename filter source files.
Some filters already had the _filter postfix, others had not. Rename
the latter just to be consistent.
Andre Noll [Sun, 30 Nov 2008 20:15:29 +0000 (21:15 +0100)]
Merge branch 'master' into next
Andre Noll [Sun, 30 Nov 2008 20:15:15 +0000 (21:15 +0100)]
Create list of supported filters via autoconf.
This allows to get rid of some CPP cruft in filter.h.
Andre Noll [Sun, 30 Nov 2008 17:30:00 +0000 (18:30 +0100)]
configure.ac: Remove unused variable filter_filters.
Andre Noll [Sun, 30 Nov 2008 17:26:17 +0000 (18:26 +0100)]
configure.ac: Remove amp_filter from set of executables.
It is not an executable.
Andre Noll [Sun, 30 Nov 2008 16:41:50 +0000 (17:41 +0100)]
Make filter config parsers return int.
This way, we can distinguish between syntax errors and invalid config
values (failed sanity checks).
Andre Noll [Sun, 30 Nov 2008 14:24:58 +0000 (15:24 +0100)]
oggdec_filter.ggo: Add more documentation.
Andre Noll [Sun, 30 Nov 2008 14:23:46 +0000 (15:23 +0100)]
oggdec_parse_config(): Add some sanity checks.
Andre Noll [Sun, 30 Nov 2008 14:13:35 +0000 (15:13 +0100)]
wav: Only create wav header if there is output available.
Due to recent changes to filter_chain.c, the convert functions of all
activated filters are called even if there is no output availabe since
the ogg vorbis decoder needs this.
However, this change broke the wav filter: wav_convert() is now called
even if the previous filter (e.g. oggdec) has not yet determined the
format of the input stream.
This caused the wav filter to write out an invalid wav header with 0
channels. Fix it by not doing anything unless wav_convert() gets called
with non-empty input.
Andre Noll [Sun, 30 Nov 2008 00:18:01 +0000 (01:18 +0100)]
para_server: Reformat help text of the --afs_database_dir option.
This caused help2man to create a badly formated man page.
Andre Noll [Sat, 29 Nov 2008 21:45:45 +0000 (22:45 +0100)]
Add -Wmissing-noreturn to compiler flags.
And mark all exit functions of gui.c with __noreturn.
Andre Noll [Sat, 29 Nov 2008 21:20:47 +0000 (22:20 +0100)]
Fix -Wdeclaration-after-statement warnings.
This option is new in gcc-4, so do not activate it by default.
Andre Noll [Sat, 29 Nov 2008 20:26:53 +0000 (21:26 +0100)]
Implement aac meta info support.
Andre Noll [Sat, 29 Nov 2008 13:34:22 +0000 (14:34 +0100)]
Avoid "no connection to para_server" message is server is stopped.
Andre Noll [Fri, 28 Nov 2008 23:58:03 +0000 (00:58 +0100)]
filter: Call the convert function even if the input buffer is empty.
At least the ogg vorbis decoder might still produce output in this
case.
Andre Noll [Fri, 28 Nov 2008 23:05:29 +0000 (00:05 +0100)]
error.h cleanups.
Andre Noll [Fri, 28 Nov 2008 21:29:43 +0000 (22:29 +0100)]
Merge commit 'fml/master'
Andre Noll [Fri, 28 Nov 2008 21:29:14 +0000 (22:29 +0100)]
afh_common.c: Add missing source code documentation.
Document afh_get_chunk() and make_taginfo().
Andre Noll [Fri, 28 Nov 2008 21:04:54 +0000 (22:04 +0100)]
write.h: Cosmetics.
Andre Noll [Fri, 28 Nov 2008 20:56:29 +0000 (21:56 +0100)]
oggdec: Keep decoding on imput EOF.
This bug causes the last chunk of the input not written out under
certain circumstances.
Andre Noll [Fri, 28 Nov 2008 20:02:26 +0000 (21:02 +0100)]
afh.c: Skip emtpy chunks.
Andre Noll [Fri, 28 Nov 2008 12:38:13 +0000 (13:38 +0100)]
Fix a gcc warning in alsa_open() on x86_64.
alsa_write.c:136: warning: format '%d' expects type 'int', but argument 4 has type 'size_t'
Andre Noll [Fri, 28 Nov 2008 12:07:08 +0000 (13:07 +0100)]
Get rid of a gcc warning on recent Ubuntu systems.
fchdir() is marked with warn_unused_result which produces a
warning in the error path of para_opendir(). However, we really
want to ignore the return value in this particular case, so introduce
a rather ugly fix to avoid the warning.
Andre Noll [Fri, 28 Nov 2008 12:04:30 +0000 (13:04 +0100)]
Check return value of write() in generic_signal_handler().
Abort if we could not write the signal number to the pipe (which
should never happen).
Andre Noll [Tue, 25 Nov 2008 23:33:55 +0000 (00:33 +0100)]
para_write: Fix --bufsize.
The given value means kilobytes, rather than bytes. Add checks
for invalid values of the buffer size.
Andre Noll [Tue, 25 Nov 2008 23:28:45 +0000 (00:28 +0100)]
alsa: Log info about the number of bytes per frame.
Andre Noll [Tue, 25 Nov 2008 23:27:55 +0000 (00:27 +0100)]
alsa: Improve chunk timings.
And get rid of magic constants.
Andre Noll [Tue, 25 Nov 2008 20:34:57 +0000 (21:34 +0100)]
para_write: Fix --initial-delay.
Andre Noll [Tue, 25 Nov 2008 17:22:03 +0000 (18:22 +0100)]
REQUIREMENTS: Fix dead link to faad lib.
Andre Noll [Sat, 22 Nov 2008 22:24:38 +0000 (23:24 +0100)]
README.afs: Minor improvments and clarifications.
Andre Noll [Sat, 22 Nov 2008 21:36:48 +0000 (22:36 +0100)]
write_common.h: Kill an unused function declaration.
Andre Noll [Sat, 22 Nov 2008 21:36:22 +0000 (22:36 +0100)]
Minor documentation improvements.
Andre Noll [Sat, 22 Nov 2008 20:37:34 +0000 (21:37 +0100)]
Better error diagnostics for the mp3 decoder.
Andre Noll [Sat, 22 Nov 2008 16:49:39 +0000 (17:49 +0100)]
http_recv: Fix reading of the HTTP OK message pattern.
This bug leads to sound artefacts at the beginning of the
stream caused by calling recv_pattern() with a buffer size
larger than the HTTP OK message.
It may thus happen that the buffer used by recv_pattern() contains
not only the HTTP OK message but also the beginning of the stream.
Since that buffer is discarded by recv_pattern(), the first few
bytes of the stream are lost if this happens.
Fix it by passing the exact length of the HTTP OK message to
recv_pattern().
Andre Noll [Sat, 22 Nov 2008 16:38:16 +0000 (17:38 +0100)]
Fix an off-by-one bug in recv_pattern().
The current code in recv_pattern() allocates a buffer of size
bufsize + 1 and calls recv_buffer() with bufsize as the size
parameter. However, recv_buffer() reserves the last byte of the
buffer for storing the terminating NULL byte, so that at most
bufsize - 1 characters are read.
Fix it by passing bufsize + 1 (the real size of the buffer)
to recv_buffer().
Andre Noll [Sun, 16 Nov 2008 19:20:56 +0000 (20:20 +0100)]
gui: Add the amplification value to output.
Andre Noll [Sun, 16 Nov 2008 00:22:45 +0000 (01:22 +0100)]
No need to check the return value of para_strdup().
Andre Noll [Sat, 15 Nov 2008 22:38:45 +0000 (23:38 +0100)]
REQUIREMENTS: Add the name of the debian package for faad.
Andre Noll [Sat, 15 Nov 2008 22:37:54 +0000 (23:37 +0100)]
REQUIREMENTS: Mention that libid3tag0-dev should be installed for id3v2.
It's not enought to install only libid3tag0 as we need the header files
too.
Andre Noll [Sat, 15 Nov 2008 22:35:36 +0000 (23:35 +0100)]
Fix a use-without init buf in recv.c.
We need to init not only the receiver task but also the stdout task structure.
Andre Noll [Sat, 15 Nov 2008 19:26:06 +0000 (20:26 +0100)]
Fix the osx writer on little endian machines.
We have to use kLinearPCMFormatFlagIsBigEndian only of we're on a little endian
(intel) system.
Andre Noll [Thu, 13 Nov 2008 19:55:51 +0000 (20:55 +0100)]
call_callback(): Fix a shm leak in afs.c.
We forgot to detach the shm area passed from the child which results in
"no space left" messages if many audio files are added and the number
of shared memory areas exceeds 4096.
Andre Noll [Thu, 13 Nov 2008 19:14:56 +0000 (20:14 +0100)]
add_one_audio_file(): Fix an fd leak.
This bug bites if one tries to add more than 1024 new files with a single add
command.
Andre Noll [Thu, 13 Nov 2008 18:38:50 +0000 (19:38 +0100)]
guess_audio_format(): Return proper error code.
This could cause para_server to return bogus messages back to
the client, including messages containing the string "(null)".
Andre Noll [Tue, 28 Oct 2008 10:19:22 +0000 (11:19 +0100)]
INSTALL: Add comment that /var/paraslash should be writable.
Thanks to Johannes Wörner for pointing this out.
Andre Noll [Wed, 22 Oct 2008 09:28:15 +0000 (11:28 +0200)]
exec.c: Open /dev/null r/w.
Just to prevent external programs from getting confused when they write
to fd 1 or 2.
Andre Noll [Sun, 12 Oct 2008 22:03:46 +0000 (00:03 +0200)]
mp3_afh.c: Fix compilation on Mac OS 10.5.
uint is not defined on newer Mac OS X.
Andre Noll [Sun, 12 Oct 2008 22:02:35 +0000 (00:02 +0200)]
stdin: Abort if the consumer terminates.
The bug in the wav filter which was fixed in the previous patch
could cause para_filter to hang because the stdin task would not
care whether the filter task has terminated.
Fix it by introducing an output_error pointer.
Andre Noll [Sun, 12 Oct 2008 21:56:25 +0000 (23:56 +0200)]
Fix the wav filter for Mac OS 10.5.
We have to initialize fn->loaded.
Andre Noll [Fri, 10 Oct 2008 16:47:47 +0000 (18:47 +0200)]
REQUIREMENTS update.
Mention that the libmad development package is called libmad0-dev and
reformat the section on id3 tags so that grutatext indents it nicely.
Andre Noll [Tue, 30 Sep 2008 20:23:18 +0000 (22:23 +0200)]
Implement better error diagnostics for para_client.
In case the config file contains errors, the old code caused
para_client to exit without printing an error message.
We need print_errors == 0 in client_open() because this function
is also used by para_audiod which might not have a controlling
terminal. So use gengetopt's --no-handle-error option that instructs
the command line parser not to exit on errors. This wy we can use
PARA_ERROR_LOG() to log an appropriate error message.
Andre Noll [Tue, 30 Sep 2008 18:58:23 +0000 (20:58 +0200)]
amp_filter.c: Fix filename in doxygen comment.
Andre Noll [Tue, 30 Sep 2008 18:57:46 +0000 (20:57 +0200)]
Makefile.in: Do not use depricated git-archive.
Andre Noll [Mon, 29 Sep 2008 09:14:42 +0000 (11:14 +0200)]
Merge commit 'meins/master'
Andre Noll [Mon, 29 Sep 2008 09:09:59 +0000 (11:09 +0200)]
Fix com_init.
Dooh. The init command always produces output, so we have to pass a pointer
to send_result() as the result handler and the fd to send data to.
Thanks to Johannes Wörner for pointing out this rather embarrassing bug.
Andre Noll [Sun, 28 Sep 2008 10:51:41 +0000 (12:51 +0200)]
aft.c: Clear more status items in stop mode.
Andre Noll [Sun, 28 Sep 2008 10:50:48 +0000 (12:50 +0200)]
vss: Fix com_jmp() and com_ff().
We must not clear the VSS_REPOS flag in vss_send_chunk() as this
might cause the reposition request being ignored.
Andre Noll [Fri, 25 Jul 2008 16:31:12 +0000 (18:31 +0200)]
Clear all fields in stop mode where it makes sense.
Andre Noll [Sat, 19 Jul 2008 15:24:52 +0000 (17:24 +0200)]
Merge commit 'meins/master'
Andre Noll [Sat, 12 Jul 2008 10:53:39 +0000 (12:53 +0200)]
NEWS update.
Andre Noll [Sat, 12 Jul 2008 10:40:36 +0000 (12:40 +0200)]
Fix a bug in para_write.
With the old code, the command "para_write < /dev/null" would
segfault because the wng_close() is called although the writer
node group was never opened. Fix this bug by introducing a new
field in struct writer_node_group that tracks whether wng_open()
was called.
Andre Noll [Sat, 12 Jul 2008 10:22:54 +0000 (12:22 +0200)]
Add the new amp filter.
Move the amplification code from compress.c to amp_filter.c
Andre Noll [Fri, 11 Jul 2008 15:08:51 +0000 (17:08 +0200)]
Merge commit 'meins/master'
Andre Noll [Thu, 10 Jul 2008 07:19:14 +0000 (09:19 +0200)]
fade: Fix default modes.
Andre Noll [Mon, 7 Jul 2008 08:53:31 +0000 (10:53 +0200)]
Merge commit 'meins/master'
Andre Noll [Sun, 6 Jul 2008 22:23:36 +0000 (00:23 +0200)]
score_update(): Don't return an error if file is not admissible.
This function is called whenever the afs_info struct changed,
for example if the user executed a touch command. Simply
ignore the request to update the score in case the file is not
contained in the score table.
Andre Noll [Sun, 6 Jul 2008 22:19:40 +0000 (00:19 +0200)]
Print more info in case an afs event handler failed.
Andre Noll [Sun, 6 Jul 2008 21:45:26 +0000 (23:45 +0200)]
Fix another bug in com_touch().
Only set the amp value if the -a option was given.
Andre Noll [Sun, 6 Jul 2008 18:52:13 +0000 (20:52 +0200)]
compress filter: Fix parsing of the amplification string.
We need to consider the prefix as well.
Andre Noll [Sun, 6 Jul 2008 18:51:04 +0000 (20:51 +0200)]
Fix com_touch.
The check whether no options were given was busted.
Andre Noll [Sun, 6 Jul 2008 18:26:45 +0000 (20:26 +0200)]
NEWS update.
Andre Noll [Sun, 6 Jul 2008 18:26:30 +0000 (20:26 +0200)]
Add more documentation about the amplification value.
Andre Noll [Sun, 6 Jul 2008 18:26:12 +0000 (20:26 +0200)]
compress.c: Activate pre-amplification.
Use the amplification value announced by para_server to
pre-amplify the stream.
Andre Noll [Sun, 6 Jul 2008 18:24:52 +0000 (20:24 +0200)]
Initialize stat_item_values[].
Just to be sure..
Andre Noll [Sun, 6 Jul 2008 17:34:08 +0000 (19:34 +0200)]
audiod: Make stat_task static.
The only reason it wasn't static was that audiod_command.c
could use it. However, audiod_command.c only needs
stat_item_values[] and several other fields that were only
used in get_time_string().
So move stat_item_values[] out of struct status task so that
audiod_command.c can use it, and move get_time_string() from
audio_command.c to audiod.c.
Andre Noll [Sun, 6 Jul 2008 17:27:31 +0000 (19:27 +0200)]
Teach the touch command about amplification.
Andre Noll [Sun, 6 Jul 2008 17:26:50 +0000 (19:26 +0200)]
Teach the ls command to print the amplification value.
Andre Noll [Sun, 6 Jul 2008 17:25:40 +0000 (19:25 +0200)]
Use an unused byte in struct afs_info to store the amplification value.
Andre Noll [Sun, 6 Jul 2008 17:23:27 +0000 (19:23 +0200)]
Introduce new status item: amplify.
Andre Noll [Mon, 30 Jun 2008 08:16:04 +0000 (10:16 +0200)]
Merge commit 'meins/master'
Andre Noll [Sun, 29 Jun 2008 20:35:29 +0000 (22:35 +0200)]
configure.ac: Print whether libid3tag was found.
Andre Noll [Sun, 29 Jun 2008 20:34:57 +0000 (22:34 +0200)]
REQUIREMENTS: Add a note about libid3tag.
Andre Noll [Sun, 29 Jun 2008 19:03:27 +0000 (21:03 +0200)]
Implement ogg vorbis comment parsing.
Andre Noll [Sun, 29 Jun 2008 19:02:36 +0000 (21:02 +0200)]
Move make_taginfo() from mp3_afh.c to afh_common.c.
This way, also the ogg vorbis code can use it.
Andre Noll [Sun, 29 Jun 2008 16:04:15 +0000 (18:04 +0200)]
mp3: Add support for id3 version 2 tags.
Andre Noll [Sun, 29 Jun 2008 13:06:48 +0000 (15:06 +0200)]
Keep the audio file open when mmapping.
libid3tag needs an open fd. So call () with a
non-NULL pointer which results in the file still being open
after mmap_full_file() returns. Pass the file descriptor
to compute_afhi() and to get_file_info() so that libid3tag
can use it.
Andre Noll [Sun, 29 Jun 2008 12:58:12 +0000 (14:58 +0200)]
Link para_server and para_afh against libid3tag if available.
Andre Noll [Sun, 29 Jun 2008 12:39:00 +0000 (14:39 +0200)]
Make mp3_get_file_info() static.
Andre Noll [Sun, 29 Jun 2008 12:38:02 +0000 (14:38 +0200)]
Reorder functions in mp3_afh.c.
Andre Noll [Sun, 29 Jun 2008 12:35:59 +0000 (14:35 +0200)]
Get rid of struct id3tag and struct mp3info.
As a preparation for dealing with id3v2 tags.
Andre Noll [Sat, 28 Jun 2008 16:43:22 +0000 (18:43 +0200)]
mp3_read_info(): Kill fl_avg.
The average frame length is computed but not used anywhere.
Andre Noll [Sat, 28 Jun 2008 16:32:46 +0000 (18:32 +0200)]
Kill struct mp3info->header.
Andre Noll [Sat, 28 Jun 2008 16:25:07 +0000 (18:25 +0200)]
Make mp3_seek_next_header() more readable.
It fills in a mp3header structure. So use a function parameter
instead of a global variable.
Andre Noll [Sat, 28 Jun 2008 16:18:53 +0000 (18:18 +0200)]
Simplify mp3_seek_next_header().
Andre Noll [Sat, 28 Jun 2008 11:35:20 +0000 (13:35 +0200)]
Allocate afh_info->info_string dynamically.
Andre Noll [Wed, 25 Jun 2008 16:39:37 +0000 (18:39 +0200)]
Merge commit 'meins/master'
Andre Noll [Sun, 22 Jun 2008 01:53:00 +0000 (03:53 +0200)]
mp3_afh.c: Simplify mp3_get_id3().
No need to pass the fpos pointer here.