paraslash.git
10 years agoMerge branch 'maint'
Andre Noll [Thu, 22 Oct 2009 20:51:09 +0000 (22:51 +0200)]
Merge branch 'maint'

10 years agopopulate_user_list(): Use correct buffer size.
Andre Noll [Thu, 22 Oct 2009 20:50:58 +0000 (22:50 +0200)]
populate_user_list(): Use correct buffer size.

"line" is defined as a 255 byte buffer. Use sizeof(line) rather than MAXLINE in the call
to para_fgets().

This is not a real bug though as MAXLINE happens to be 255 as well.

10 years agodaemon: Avoid using MAXLINE.
Andre Noll [Thu, 22 Oct 2009 20:47:19 +0000 (22:47 +0200)]
daemon: Avoid using MAXLINE.

MAXLINE is kind of depricated. Just use a 100 byte buffer and make the scope of the
buffer more local. Also, kill the pointless initialization to an empty string.

10 years agodrop_privileges_or_die(): Check return value of setuid().
Andre Noll [Thu, 22 Oct 2009 20:42:36 +0000 (22:42 +0200)]
drop_privileges_or_die(): Check return value of setuid().

The call to setuid() may fail, e.g. because it brings the process over its RLIMIT_NPROC
resource limit. So print an error message and exit in this case.

10 years agoMerge branch 'maint'
Andre Noll [Thu, 22 Oct 2009 17:24:44 +0000 (19:24 +0200)]
Merge branch 'maint'

10 years agofecdec: Fix decoding of the audio file header.
Andre Noll [Thu, 22 Oct 2009 17:21:10 +0000 (19:21 +0200)]
fecdec: Fix decoding of the audio file header.

The handling of the audio file header in the fecdec code is currently
broken: We output all decoded header slices although the last slice
might only be partially used.

This patch introduces the new fec_group_usability value
"FEC_GROUP_USABLE_WITH_HEADER" which gets used when streaming starts in
the middle of the file. In this case, after the group has been decoded,
we make sure that only h.audio_header_size many bytes are being written
to the output buffer. We then proceed to write the output corresponding
to the data slices as in the FEC_GROUP_USABLE_SKIP_HEADER case.

In paraslash-0.3. only ogg vorbis uses audio file headers, and the
ogg code is quite forgiving and successfully resyncs the stream,
which is why this bug was never noticed. However, the wma decoder of
paraslash-0.4 fails badly due to the garbage that is written after
the header.

10 years agoMerge branch 'maint'
Andre Noll [Fri, 16 Oct 2009 13:36:15 +0000 (15:36 +0200)]
Merge branch 'maint'

10 years agoFix error message in case of missing sys/soundcard.h.
Andre Noll [Fri, 16 Oct 2009 13:35:00 +0000 (15:35 +0200)]
Fix error message in case of missing sys/soundcard.h.

The error message still printed linux/soundcard.h which might
confuse non-linux users.

10 years agoFix compilation on MacOS.
Andre Noll [Fri, 16 Oct 2009 13:34:19 +0000 (15:34 +0200)]
Fix compilation on MacOS.

osx_write.c needs to include regex.h.

10 years agoMakefile.in: Introduce quiet mode and use it by default.
Andre Noll [Wed, 7 Oct 2009 01:15:56 +0000 (03:15 +0200)]
Makefile.in: Introduce quiet mode and use it by default.

Verbose mode can be chosen via "make V=1".

10 years agoMerge branch 'maint'
Andre Noll [Tue, 6 Oct 2009 21:16:27 +0000 (23:16 +0200)]
Merge branch 'maint'

10 years agoAdd *_command_list.c to .gitignore.
Andre Noll [Tue, 6 Oct 2009 21:16:11 +0000 (23:16 +0200)]
Add *_command_list.c to .gitignore.

10 years agoAdd GIT-VERSION-FILE to .gitignore.
Andre Noll [Tue, 6 Oct 2009 21:13:52 +0000 (23:13 +0200)]
Add GIT-VERSION-FILE to .gitignore.

10 years agoMerge branch 'maint'
Andre Noll [Tue, 6 Oct 2009 20:01:59 +0000 (22:01 +0200)]
Merge branch 'maint'

10 years agoUse para_malloc() instead of malloc() everywhere.
Andre Noll [Tue, 6 Oct 2009 20:00:55 +0000 (22:00 +0200)]
Use para_malloc() instead of malloc() everywhere.

10 years agoMerge branch 'maint'
Andre Noll [Tue, 6 Oct 2009 17:31:41 +0000 (19:31 +0200)]
Merge branch 'maint'

10 years agoogg: retry ov_open_callbacks() also on OV_EBADHEADER errors.
Andre Noll [Tue, 6 Oct 2009 17:31:17 +0000 (19:31 +0200)]
ogg: retry ov_open_callbacks() also on OV_EBADHEADER errors.

10 years agoPut the git version into all executables.
Andre Noll [Sun, 4 Oct 2009 13:57:33 +0000 (15:57 +0200)]
Put the git version into all executables.

This patch changes the -V output of all executables to print also
the git version which was used to make the executable. The idea and
the GIT-VERSION_GEN script was taken from git.git.

It also adds a VERSION file to the generated tarball. If this file
exists, its content is used as the version info rather than calling
git to obtain this info. This way, even if paraslash is built from
a tarball, the executables still contain the git version the tarball
was generated from.

11 years ago.gitignore: Ignore the objects directory.
Andre Noll [Thu, 1 Oct 2009 01:05:27 +0000 (03:05 +0200)]
.gitignore: Ignore the objects directory.

11 years agoAdd the depend.sh script.
Andre Noll [Thu, 1 Oct 2009 00:08:20 +0000 (02:08 +0200)]
Add the depend.sh script.

Oops, this should already have been included two commits ago..

11 years agoIntroduce clean2 target.
Andre Noll [Thu, 1 Oct 2009 00:07:16 +0000 (02:07 +0200)]
Introduce clean2 target.

This makes the clean target remove objects and binaries only. The new
clean2 target removes in addition the man dir and the object dir
(hence all .d files) completely.

11 years agoSwitch to one dependency file per C file.
Andre Noll [Thu, 1 Oct 2009 00:04:40 +0000 (02:04 +0200)]
Switch to one dependency file per C file.

This prevents to rebuild the full Makefile.deps every time. It also
tracks the dependencies for the cmdline.c files correctly.

11 years agoUse separate directory for objects.
Andre Noll [Wed, 30 Sep 2009 19:27:43 +0000 (21:27 +0200)]
Use separate directory for objects.

11 years agoStore gengetopt commandline files in a separate dir.
Andre Noll [Wed, 30 Sep 2009 13:47:14 +0000 (15:47 +0200)]
Store gengetopt commandline files in a separate dir.

Quite a bit of churn but it's hopefully worth the trouble.

11 years agoMerge commit 'meins/master'
Andre Noll [Mon, 28 Sep 2009 15:44:06 +0000 (17:44 +0200)]
Merge commit 'meins/master'

11 years agoUpdate overview.sk to paraslash-0.4.
Andre Noll [Mon, 28 Sep 2009 12:42:13 +0000 (14:42 +0200)]
Update overview.sk to paraslash-0.4.

11 years agoThe new paraslash-0.4 logo.
Andre Noll [Mon, 28 Sep 2009 12:25:28 +0000 (14:25 +0200)]
The new paraslash-0.4 logo.

11 years agoRemove "pics" from the directory list to be removed from the tarball.
Andre Noll [Mon, 28 Sep 2009 12:19:36 +0000 (14:19 +0200)]
Remove "pics" from the directory list to be removed from the tarball.

It no longer exists.

11 years agoReset version to "git".
Andre Noll [Mon, 28 Sep 2009 12:12:51 +0000 (14:12 +0200)]
Reset version to "git".

11 years agoMove images and screenshots into the web directory.
Andre Noll [Mon, 28 Sep 2009 12:10:27 +0000 (14:10 +0200)]
Move images and screenshots into the web directory.

11 years agoRemove default.jpg.
Andre Noll [Mon, 28 Sep 2009 11:38:11 +0000 (13:38 +0200)]
Remove default.jpg.

It is unused since paraslash-0.3.0.

11 years agoMerge branch 'master' into next
Andre Noll [Thu, 24 Sep 2009 12:26:45 +0000 (14:26 +0200)]
Merge branch 'master' into next

Conflicts:

NEWS

11 years agoreset version to git
Andre Noll [Thu, 24 Sep 2009 12:25:58 +0000 (14:25 +0200)]
reset version to git

11 years agoMerge branch 'master' into next
Andre Noll [Mon, 21 Sep 2009 20:19:02 +0000 (22:19 +0200)]
Merge branch 'master' into next

Conflicts:
NEWS

11 years agothe paraslash-0.3.5 release tarball
Andre Noll [Mon, 21 Sep 2009 10:52:54 +0000 (12:52 +0200)]
the paraslash-0.3.5 release tarball

11 years agoparaslash 0.3.5 v0.3.5
Andre Noll [Mon, 21 Sep 2009 10:48:04 +0000 (12:48 +0200)]
paraslash 0.3.5

11 years agoMerge commit 'meins/master'
Andre Noll [Mon, 21 Sep 2009 07:37:06 +0000 (09:37 +0200)]
Merge commit 'meins/master'

11 years agoMerge commit 'meins/next' into next
Andre Noll [Mon, 21 Sep 2009 07:36:57 +0000 (09:36 +0200)]
Merge commit 'meins/next' into next

11 years agogui: Make album/comment layout look nicer.
Andre Noll [Sun, 20 Sep 2009 13:08:42 +0000 (15:08 +0200)]
gui: Make album/comment layout look nicer.

11 years agoMerge branch 'master' into next
Andre Noll [Sat, 19 Sep 2009 10:11:12 +0000 (12:11 +0200)]
Merge branch 'master' into next

Conflicts:
ogg_afh.c

11 years agoNEWS update.
Andre Noll [Sat, 19 Sep 2009 08:47:08 +0000 (10:47 +0200)]
NEWS update.

11 years agooggdec filter improvements.
Andre Noll [Sat, 19 Sep 2009 08:38:25 +0000 (10:38 +0200)]
oggdec filter improvements.

Try to open the ogg vorbis callbacks as soon as possible rather
than waiting until the input buffer reaches the given initial buffer
size. If that fails, try again later when more data is available but
fail if the input buffer size is larger than the initial buffer size
and we can still not open the ov callbacks.

Also, if a hole was detected, likely because we started streaming
in the middle of the file, add an additional delay to avoid buffer
underruns.

11 years agoComplete re-write of the ogg vorbis audio format handler.
Andre Noll [Sat, 19 Sep 2009 08:26:04 +0000 (10:26 +0200)]
Complete re-write of the ogg vorbis audio format handler.

The new code is quite a bit smaller, performes much better and chooses
a chunk time dependent on the average ogg page size rather than using
a hardcoded chunk time of 250ms.

11 years agofecdec: Defer decoding until the first slice of the second group arrives.
Andre Noll [Sat, 19 Sep 2009 08:21:48 +0000 (10:21 +0200)]
fecdec: Defer decoding until the first slice of the second group arrives.

Otherwise, this could lead to buffer underruns in the decoding application
in case slices are missed. So introdce group_completion_status which tracks
whether we already have received the first group sucessfully and are waiting
for the first slice of the next group.

11 years agoafh: Fix memory leak.
Andre Noll [Sat, 19 Sep 2009 08:18:14 +0000 (10:18 +0200)]
afh: Fix memory leak.

11 years agostdin: Increase input buffer size.
Andre Noll [Sat, 19 Sep 2009 08:16:23 +0000 (10:16 +0200)]
stdin: Increase input buffer size.

16K was a bit small for the ogg_decode filter.

11 years agotv_scale(): Avoid integer overflow.
Andre Noll [Sat, 19 Sep 2009 08:11:19 +0000 (10:11 +0200)]
tv_scale(): Avoid integer overflow.

Just use an uint64_t and compute everything in microseconds which even
simplifies the code a bit.

11 years agovss: Honor header chunk when computing FEC group start.
Andre Noll [Sat, 19 Sep 2009 08:08:59 +0000 (10:08 +0200)]
vss: Honor header chunk when computing FEC group start.

The first chunk of an ogg vorbis file is the audio file header
which should not be included in the calculation of the FEC
group timing.

11 years agoMerge branch 'master' into next
Andre Noll [Mon, 14 Sep 2009 08:09:38 +0000 (10:09 +0200)]
Merge branch 'master' into next

11 years agoMerge commit 'meins/master'
Andre Noll [Mon, 14 Sep 2009 08:08:57 +0000 (10:08 +0200)]
Merge commit 'meins/master'

11 years agoMinor documentation fixes.
Andre Noll [Mon, 14 Sep 2009 08:08:38 +0000 (10:08 +0200)]
Minor documentation fixes.

11 years agoFEC timing improvements.
Andre Noll [Sat, 12 Sep 2009 16:16:56 +0000 (18:16 +0200)]
FEC timing improvements.

Currently we compute the time of a FEC group as the number of
containing chunks times the chunk time. The time between sending
two slices therefore depends only on the number of chunks the group
contains. Groups containing many slices are sent with larger delays
than groups containing few slices.

This approach is not optimal for the following reason: Consider a group
containing only few slices which is followed by a group containing
many slices. This happens frequently at the end of VBR MP3 files which
contain some seconds of silence or applause at the end because this
last part is often encoded at a lower bitrate than the preceding part.

In this scenario buffer underruns in the receiving application can
easily occur if the previous FEC group has been decoded and completely
fed to the writer before enough slices of the next group have arrived
to decode the second group.

This patch changes the timing of FEC groups such that all but the
first group use the duration of the _previous_ group as the basis
for the timing.

11 years agovss_send(): Fix EOF-check for FEC clients.
Andre Noll [Sat, 12 Sep 2009 16:13:36 +0000 (18:13 +0200)]
vss_send(): Fix EOF-check for FEC clients.

If the last chunk has been sent to all http/dccp clients we have
to wait until the last FEC group has been sent before setting the
NEXT flag that causes all senders to shut down its clients. The old
code tested if a slice was sent to any FEC  client during vss_send()
and set the NEXT flag if nothing was sent.

However, this is not sufficient as there may be still slices available
which have to be sent at some future time. This patch teaches
vss_send() to detect this condition. It also renames the boolean
variable sent_something to fec_active, which is more to the point.

11 years agoconfigure: Add link to osl homepage.
Andre Noll [Sat, 12 Sep 2009 16:06:08 +0000 (18:06 +0200)]
configure: Add link to osl homepage.

11 years agoMerge branch 'master' into next
Andre Noll [Sun, 6 Sep 2009 20:23:58 +0000 (22:23 +0200)]
Merge branch 'master' into next

11 years agomood: Do not handle events if no mood is active.
Andre Noll [Sun, 6 Sep 2009 20:23:45 +0000 (22:23 +0200)]
mood: Do not handle events if no mood is active.

In case a file is being removed with "para_client rm" while in playlist mode,
the following assertion triggers:

mood.c:521: del_afs_statistics: Assertion `n' failed.

This happens because the file is contained in the score table but statistics are not enabled.
Fix it by ignoring events if cuurent_mood is NULL.

11 years agofilter: Register the filter chain as the last task.
Andre Noll [Sun, 6 Sep 2009 20:19:31 +0000 (22:19 +0200)]
filter: Register the filter chain as the last task.

Without this patch, the command

para_filter -f mp3dec < foo.mp3 > /dev/null

would take several minutes because the stdin buffer is usually full and the stdout buffer empty
which causes select() to be called with empty fd sets, resulting in a one second timeout.

11 years agoRefuse to load unprotected private keys.
Andre Noll [Sat, 5 Sep 2009 11:56:20 +0000 (13:56 +0200)]
Refuse to load unprotected private keys.

When loading a private key owned by the same user that accesses the key, check
the permissions of the key file. Error out if mode & 077 is non-zero.

11 years agoUse RSA key blinding to protect against timing attacks.
Andre Noll [Sat, 5 Sep 2009 11:16:53 +0000 (13:16 +0200)]
Use RSA key blinding to protect against timing attacks.

Not that it matters much, but it doesn't hurt either.

11 years agoMerge commit 'meins/next' into next
Andre Noll [Fri, 4 Sep 2009 08:39:09 +0000 (10:39 +0200)]
Merge commit 'meins/next' into next

11 years agoMerge branch 'master' into next
Andre Noll [Fri, 4 Sep 2009 08:38:34 +0000 (10:38 +0200)]
Merge branch 'master' into next

11 years agoFix check for short rsa keys.
Andre Noll [Fri, 4 Sep 2009 07:23:05 +0000 (09:23 +0200)]
Fix check for short rsa keys.

And add a comment that explains the magic constant 41.

11 years agoMerge branch 'master' into next
Andre Noll [Thu, 3 Sep 2009 16:49:31 +0000 (18:49 +0200)]
Merge branch 'master' into next

11 years agofade: Avoid a gcc warning.
Andre Noll [Wed, 2 Sep 2009 11:59:54 +0000 (13:59 +0200)]
fade: Avoid a gcc warning.

The following warning is harmless and gcc is just being stupid:

fade.c: In function 'main':
fade.c:111: warning: 'val' may be used uninitialized in this function
fade.c:111: note: 'val' was declared here

11 years agoMerge branch 'master' into next
Andre Noll [Mon, 31 Aug 2009 19:37:03 +0000 (21:37 +0200)]
Merge branch 'master' into next

Conflicts:
aft.c
command.c

11 years agoKill the quick hack that changed timing for the first fec goup.
Andre Noll [Mon, 31 Aug 2009 19:26:54 +0000 (21:26 +0200)]
Kill the quick hack that changed timing for the first fec goup.

This did never really work.

11 years agomp3dec: Improve bad main_data_begin pointer error handling.
Andre Noll [Mon, 31 Aug 2009 19:17:21 +0000 (21:17 +0200)]
mp3dec: Improve bad main_data_begin pointer error handling.

These errors from mad_frame_decode() are non-fatal and happen if the
stream is started at the middle of the file, e.g. when para_audiod
is started while para_server is already streaming.

If libmad encounters such an error it throws away the first (and
probably the second) frame which messes up the timing in udp/fec mode,
causing an audible buffer underrun after the remaining frames of the
first fec group have been decoded and fed to the writer.

This patch makes the mp3dec filter keep track of bad main_data_begin
pointer errors that happen at the start of the stream. In this case
decoding is deferred until more data has arrived or 60ms have passed.

11 years agocom_stat(): Be more anal in checking command line options.
Andre Noll [Sun, 30 Aug 2009 12:26:32 +0000 (14:26 +0200)]
com_stat(): Be more anal in checking command line options.

Also check the number of arguments and use para_atoi32 to convert
the argument into an int.

11 years agoFix off-by-one bug in fixup_info_string().
Andre Noll [Sun, 30 Aug 2009 11:20:14 +0000 (13:20 +0200)]
Fix off-by-one bug in fixup_info_string().

This caused the chunk time not being properly displayed due to a
missing newline in the status output.

11 years agoMerge branch 'master' into next
Andre Noll [Sat, 29 Aug 2009 20:29:17 +0000 (22:29 +0200)]
Merge branch 'master' into next

11 years agoNEWS update.
Andre Noll [Sat, 29 Aug 2009 20:28:41 +0000 (22:28 +0200)]
NEWS update.

11 years agoAlsa timing improvements.
Andre Noll [Sat, 29 Aug 2009 20:17:55 +0000 (22:17 +0200)]
Alsa timing improvements.

This moves the computation of the select timeout from
alsa_write_post_select() to alsa_write_pre_select(). The code now
computes when the next buffer underrun would occur and uses that
value to set the timeout for the next select call. This decreases
the number of writes to the alsa handle and therefore also the CPU
usage of para_write/para_audiod.

11 years agoMerge remote branch 'fml/next' into next
Andre Noll [Tue, 25 Aug 2009 17:17:43 +0000 (19:17 +0200)]
Merge remote branch 'fml/next' into next

11 years agoNEWS update.
Andre Noll [Sun, 23 Aug 2009 12:26:05 +0000 (14:26 +0200)]
NEWS update.

11 years agoFix syntax in documentation of the touch command.
Andre Noll [Sun, 23 Aug 2009 12:25:42 +0000 (14:25 +0200)]
Fix syntax in documentation of the touch command.

11 years agoMerge branch 'master' into next
Andre Noll [Fri, 21 Aug 2009 19:30:36 +0000 (21:30 +0200)]
Merge branch 'master' into next

11 years agodaemon: Don't set the umask to zero.
Andre Noll [Fri, 21 Aug 2009 19:30:23 +0000 (21:30 +0200)]
daemon: Don't set the umask to zero.

Clearing umask creates more problems that it solves.

11 years agoFix two typos in daemon.c.
Andre Noll [Fri, 21 Aug 2009 19:08:29 +0000 (21:08 +0200)]
Fix two typos in daemon.c.

11 years agogui: Fix a bug in align_str().
Andre Noll [Fri, 21 Aug 2009 19:05:36 +0000 (21:05 +0200)]
gui: Fix a bug in align_str().

This bug was introduced in 01117585. It messes up the display and can lead to a
segfault.

11 years agopara.css: Remove superflous '#' chars.
Andre Noll [Fri, 21 Aug 2009 15:56:36 +0000 (17:56 +0200)]
para.css: Remove superflous '#' chars.

11 years agoMerge commit 'meins/master'
Andre Noll [Mon, 3 Aug 2009 14:00:31 +0000 (16:00 +0200)]
Merge commit 'meins/master'

11 years agoMerge branch 'master' into next
Andre Noll [Sun, 2 Aug 2009 13:31:16 +0000 (15:31 +0200)]
Merge branch 'master' into next

11 years ago[filter]: Do filter conversion during post_select.
Andre Noll [Sun, 2 Aug 2009 13:29:47 +0000 (15:29 +0200)]
[filter]: Do filter conversion during post_select.

This is more natural and allows to get rid of the hack that
forced a minimal timout in case something was converted.

11 years agoMerge branch 'master' into next
Andre Noll [Sat, 1 Aug 2009 20:06:49 +0000 (22:06 +0200)]
Merge branch 'master' into next

11 years ago[gui]: Use the new -p option for the default stat command.
Andre Noll [Sat, 1 Aug 2009 19:48:02 +0000 (21:48 +0200)]
[gui]: Use the new -p option for the default stat command.

11 years agoRevamp para_fade.
Andre Noll [Sat, 25 Jul 2009 18:07:19 +0000 (20:07 +0200)]
Revamp para_fade.

- Rename options
- Improve documentation
- Make --mode an enum option
- Cleanup ggo file indentation

11 years agoPrint an error message if the filter config file contains invalid options.
Andre Noll [Sat, 25 Jul 2009 16:29:06 +0000 (18:29 +0200)]
Print an error message if the filter config file contains invalid options.

11 years agoMerge branch 'master' into next
Andre Noll [Sat, 25 Jul 2009 13:52:09 +0000 (15:52 +0200)]
Merge branch 'master' into next

11 years agoTeach para_fade to accept a mixer channel to fade.
Andre Noll [Sat, 25 Jul 2009 13:51:48 +0000 (15:51 +0200)]
Teach para_fade to accept a mixer channel to fade.

This allows to fade not only the volume channel but all other channels that are
supported by oss.

11 years agoMake some functions/variables static.
Andre Noll [Tue, 21 Jul 2009 23:43:25 +0000 (01:43 +0200)]
Make some functions/variables static.

Found by sparse.

11 years agoMove blob table macros from afs.h to blob.c.
Andre Noll [Tue, 21 Jul 2009 23:42:18 +0000 (01:42 +0200)]
Move blob table macros from afs.h to blob.c.

They are only used there.

11 years agoRename LIST_HEAD to INITIALIZED_LIST_HEAD.
Andre Noll [Tue, 21 Jul 2009 15:56:02 +0000 (17:56 +0200)]
Rename LIST_HEAD to INITIALIZED_LIST_HEAD.

This fixes the following warning on NetBSD:

In file included from udp_send.c:25:
list.h:37:1: warning: "LIST_HEAD" redefined
In file included from /usr/include/net/if.h:84,
 from udp_send.c:14:
/usr/include/sys/queue.h:88:1: warning: this is the location of the previous definition

11 years agoMerge branch 'master' into next
Andre Noll [Mon, 20 Jul 2009 16:54:49 +0000 (18:54 +0200)]
Merge branch 'master' into next

11 years agoKill unused para_reap_children().
Andre Noll [Mon, 20 Jul 2009 16:54:15 +0000 (18:54 +0200)]
Kill unused para_reap_children().

Found by cppcheck.

11 years agoconfigure.ac: Fix --with-osl-libs option.
Andre Noll [Mon, 20 Jul 2009 16:49:25 +0000 (18:49 +0200)]
configure.ac: Fix --with-osl-libs option.

Quite a few typos in there..

11 years agoFix a gcc warning on 64 bit systems.
Andre Noll [Mon, 20 Jul 2009 09:33:58 +0000 (11:33 +0200)]
Fix a gcc warning on 64 bit systems.

client_common.c:175: warning: format '%d' expects type 'int', but argument 4 has type 'size_t'

11 years agoMerge commit 'meins/next' into next
Andre Noll [Mon, 20 Jul 2009 09:31:32 +0000 (11:31 +0200)]
Merge commit 'meins/next' into next

11 years agoAdd num_played mood method.
Andre Noll [Sun, 19 Jul 2009 16:47:23 +0000 (18:47 +0200)]
Add num_played mood method.

11 years agoRemove the likely/unlikely macros.
Andre Noll [Sun, 19 Jul 2009 16:09:27 +0000 (18:09 +0200)]
Remove the likely/unlikely macros.

These also slow down the compress filter, its only user, by about 10%.

11 years agoMicro optimizations for the amp filter.
Andre Noll [Sun, 19 Jul 2009 15:56:22 +0000 (17:56 +0200)]
Micro optimizations for the amp filter.

Use memcpy in the special case amp==0 (no amplification) and optimize the code in
the performance-critical loop. Intrestingly, using the likely()/unlikely() macros made the
code slower.

Results (three runs on identical input data on a 32bit x86 machine under Linux, gcc-4.4.0):

old with --amp 3:
        0m0.776s 0m0.790s 0m0.812s, avg: 792
new with --amp 3:
        0m0.456s 0m0.492s 0m0.477s, avg: 475
speedup: 1.67

old with --amp 0:
        0m0.791s 0m0.808s 0m0.810s, avg: 803
new with --amp 0:
        0m0.100s 0m0.103s 0m0.094s, avg: 99
speedup: 8.1