Christian Reißmann (design)
+Gerrit Renker <gerrit@erg.abdn.ac.uk> (dccp)
+
Michael Smith <msmith@xiph.org> (vcut)
Cedric Tefft <cedric@earthling.net> (mp3info)
BINARIES = para_server para_client para_gui para_audioc para_recv \
para_filter para_write @extra_binaries@
-all_man_binaries := para_server para_client para_gui para_audioc para_recv \
- para_filter para_write para_fade para_sdl_gui para_audiod
man_binaries := $(filter-out para_dbadm para_slider para_krell.so, $(BINARIES))
man_pages := $(patsubst %, man/man1/%.1, $(man_binaries))
man_pages_html := $(patsubst %, man/html/%.html, $(man_binaries))
gengetopts := $(wildcard *.ggo)
gengetopts_c := $(gengetopts:.ggo=.cmdline.c)
gengetopts_h := $(gengetopts:.ggo=.cmdline.h)
-all_c_files := $(wildcard *.c)
-c_sources := $(filter-out $(gengetopts_c), $(all_c_files))
grutatxt := COPYING NEWS README.mysql CREDITS INSTALL README FEATURES GPL
grutatxt_html := $(grutatxt:=.html)
html_in := $(wildcard web/*.in.html)
- fix a bug in para_filter that caused decoding of aac files
to start only after a few seconds.
- fix osx_writer hangs
+ - simplified dccp code (thanks to Gerrit Renker)
-----------------------------------------
0.2.15 (2007-02-16) "inductive resonance"
s->timeout = min_delay;
continue;
}
- PARA_INFO_LOG("inital delay: %lu ms left\n", tv2ms(&diff));
+ PARA_INFO_LOG("initial delay: %lu ms left\n", tv2ms(&diff));
if (tv_diff(&s->timeout, &diff, NULL) > 0) {
s->timeout = diff;
}
struct mp3header h, h2;
long valid_start = 0;
- while (1) {
- while ((*fpos)++ < numbytes && map[*fpos] != 0xff)
- ;
- if (*fpos >= numbytes)
- return 0;
+ for (; *fpos < numbytes; (*fpos)++) {
+ if (map[*fpos] != 0xff)
+ continue;
valid_start = *fpos;
first_len = get_header(map, numbytes, fpos, &h);
if (first_len <= 0)
return first_len;
}
}
+ return 0;
}
static void mp3_get_id3(unsigned char *map, off_t numbytes, off_t *fpos)
audio_file = open(sl[i], O_RDONLY);
if (audio_file < 0)
continue;
- if (fstat(audio_file, &file_status) == -1) {
+ if (fstat(audio_file, &file_status) == -1 ||
+ !file_status.st_size) {
close(audio_file);
continue;
}