.3'/>
summaryrefslogtreecommitdiff
path: root/stdin.c (unfollow)
Commit message (Collapse)Author
2009-11-18Rename mdcdt.c and mdcdt.h.Andre Noll
libvorbis also has an mdct_init(), but our own one gets used. This makes the oggdec filter behave real funny. This patch makes the oggdec filter work again.
2009-11-18Various wma fixes.Andre Noll
2009-11-18Add a few more people to CREDITS.Andre Noll
2009-11-18Set channels and samplerate of the filter chainAndre Noll
2009-11-18First draft of the wma decoder.Andre Noll
Understands only v1, but is easy to crash.
2009-11-18fecdec: Defer decoding until the next group after the first _usable_ fec ↵Andre Noll
group starts. Commit faeabd31b4bea5c097acff4738a0626e3c84f1d9 (fecdec: Defer decoding until the first slice of the second group arrives.) changed the fec decoder such that it does not start to write the decoded output ASAP but waits until the next group starts. This is generally a good idea, but the patch missed the fact that the first complete group might be unusable in case of streams that carry an audio file header (currently only ogg vorbis). Fix this flaw by setting the completion status to GCS_FIRST_GROUP_COMPLETE only if we received a complete group that is also usable.
2009-11-13http/dccp: Do not send the audio file header twice.Andre Noll
If the http/dccp client connects before stream start and the stream starts at the beginning of the audio file (the common case), we do not need to send the audio file header as it is contained in chunk zero. However, the current code fails to set sender_client->sent_header to a non-zero value in this case. This causes the header to be sent twice. The ogg vorbis decoder is quite forgiving in that respect, which is probably why this bug went unnoticed for so long. This patch gets it right.
2009-11-10new codename, reset version to gitAndre Noll
2009-11-10the paraslash-0.4.0 release tarballAndre Noll
2009-11-10paraslash 0.4.0v0.4.0Andre Noll
2009-11-07alsa: Avoid using 0 as a NULL pointer.Andre Noll
Found by sparse.
2009-11-07fecdec_filter: Avoid potentially expensive pointer subtraction.Andre Noll
Found by sparse.
2009-11-07Make some blob functions static.Andre Noll
2009-11-06Replace assertion for invalid audio formats by a runtime check.Andre Noll
In case one switches back and forth between different versions of para_server that support different audio formats, it may happen that the aft table contains entries for audio formats that are not supported by the version currently running. ATM, this causes para_server to die immediately because of the assertion in audio_format_name. Replace the assertion by a less draconian run time check that returns the string "???" if the number for an unknown audio file format is being looked up.
2009-11-06server: Fix assignment of afs_pid.Andre Noll
glibc-2.11 revealed the following bug in init_afs(): The assignment mmd->afs_pid = fork(); results in undefined behaviour because fork() returns twice and mmd->afs_pid lives in a shared memory area. Depending on whether the child runs first, this results in mmd->afs_pid being either zero or the pid of the afs child process. mmd->afs_pid being zero seems to happen always with glibc-2.11 and has rather strange consequences: First, it causes para_server attempt to kill process 0 instead of the afs process on exit. This fails because para_server never runs as root. However, it may result in dirty osl tables as the afs process might access mmd after the shared memory area containing mmd has already been destroyed. Second, para_server fails to notice the death of the afs process, which is really bad and may cause tons of error messages being written to the log. Fix this bug by temporarily storing the afs pid in a local variable and setting mmd->afs_pid only in the server (parent) process.
2009-11-05wng: Avoid buffer underruns due to filter chain output buffer constraints.Andre Noll
Using ogg vorbis streams together with the oss writer hits the following nasty bug: In case the filter chain can provide more data than what fits into its output buffer, it converts the maximal amount possible to completely fill its output buffer. However, the time to play this data might be less than than the time until the next data packet arrives from the upper layers, especially when using ogg vorbis streams and FEC. Since the filter chain task has no pre_select function, the convert function(s) of its filter nodes only get the chance to convert more data until the next select call returns, which might already be too late. This patch fixes the bug by teaching the pre_select function of the writer node group to remember whether something was written during the previous call to wng_post_select(). In this case we force a minimal timeout for select, i.e. the next call to select() will return immediately and the convert functions of the filter node are called again, hopefully converting more data for the writer node group.
2009-11-05oss_post_select(): Kill unused attribute for the struct sched parameter.Andre Noll
This parameter _is_ used.
2009-11-05oss_pre_select(): Fix check for empty infput buffer.Andre Noll
We must take into account the number of bytes already written, and we can not write less than a single frame.
2009-10-24vss: Fix computation of extra slices.Andre Noll
On stream start we check in setup_next_fec_group() whether the FEC parameters requested by the client are sufficient for the current audio file. We want each FEC group contain at least one non-header slice. Since header slices can not contain any non-header data, the number of required slices is given by the number of slices needed for the header plus the number of slices needed for the largest chunk of the audio file. The current code gets this wrong because it computes the number of slices needed for the header plus the largest chunk, which may be strictly less than what is actually needed. IOW, the inequality num_slices(header + chunk) <= num_slices(header) + num_slices(chunk) may be strict. This bug could trigger the assertion assert(g->num_chunks) further down in setup_next_fec_group(). This patch fixes this bug and also changes a log message in udp_init_session() which always printed the requested FEC parameters, not considering extra slices.
2009-10-22populate_user_list(): Use correct buffer size.Andre Noll
"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.
2009-10-22daemon: Avoid using MAXLINE.Andre Noll
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.
2009-10-22drop_privileges_or_die(): Check return value of setuid().Andre Noll
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.
2009-10-22fecdec: Fix decoding of the audio file header.Andre Noll
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.
2009-10-16Fix error message in case of missing sys/soundcard.h.Andre Noll
The error message still printed linux/soundcard.h which might confuse non-linux users.
2009-10-16Fix compilation on MacOS.Andre Noll
osx_write.c needs to include regex.h.
2009-10-07Makefile.in: Introduce quiet mode and use it by default.Andre Noll
Verbose mode can be chosen via "make V=1".
2009-10-06Add *_command_list.c to .gitignore.Andre Noll
2009-10-06Add GIT-VERSION-FILE to .gitignore.Andre Noll
2009-10-06Use para_malloc() instead of malloc() everywhere.Andre Noll
2009-10-06ogg: retry ov_open_callbacks() also on OV_EBADHEADER errors.Andre Noll
2009-10-04Put the git version into all executables.Andre Noll
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.
2009-10-01.gitignore: Ignore the objects directory.Andre Noll