- 29 Oct, 2008 13 commits
-
-
Max Kellermann authored
A decoder_flush() invocation was missing in the FLAC plugin, resulting in casual assertion failures due to a wrong assumption about the last chunk's audio format. It's much easier to remove that decoder_flush() function and make the decoder thread call ob_flush().
-
Max Kellermann authored
There are no callers which pass audio_format==NULL, and it shouldn't be allowed.
-
Max Kellermann authored
Request the next song from the playlist (by clearing pc.next_song) only if the player command is empty. If it is not, the player may be clearing the song that has already been queued, leading to an assertion failure.
-
Max Kellermann authored
Call ob_clear() in decoder_command_finished() instead of implementing that call in every decoder plugin.
-
Max Kellermann authored
Remember the seek_where argument and call decoder_command_finished() immediately. This way, the player thread can continue working, and we can receive more commands. This also fixes several issues which resulted in broken frames, leading to erroneos "elapsed" values: frames weren't parsed properly, since the code was checking for command!=NONE.
-
Max Kellermann authored
Previously, the function would only return when a STOP was issued. It makes more sense to consider all possible commands.
-
Max Kellermann authored
Break the large function mp3_read() into smaller pieces.
-
Max Kellermann authored
Break the large function mp3_read() into smaller pieces.
-
Max Kellermann authored
Break the large function mp3_read() into smaller pieces.
-
Max Kellermann authored
Break the large function mp3_read() into smaller pieces.
-
Max Kellermann authored
Break the large function mp3_read() into smaller pieces.
-
Max Kellermann authored
dc_seek() won't send a SEEK command to the decoder thread unless the stream is seekable. No need to do another check; convert that to an assertion.
-
Max Kellermann authored
need_chunks() returns a decoder_command enum. Store its return value as this type.
-
- 28 Oct, 2008 9 commits
-
-
Max Kellermann authored
The function mp3_decode_first_frame() is too large. Move some code to separate smaller functions.
-
Max Kellermann authored
http://xkcd.com/292/
-
Max Kellermann authored
This removes the need for util.h.
-
Max Kellermann authored
Use the C99 bool data type for boolean values.
-
Max Kellermann authored
Renamed all functions and variables. Also removed the mp3DecodeData typedef.
-
Max Kellermann authored
-
Max Kellermann authored
Yet another superfluous buffering layer. input_file was using FILE*, but we're better off with unbuffered I/O using open(), read(), ...
-
Max Kellermann authored
size_t and long aren't 64 bit safe (i.e. files larger than 2 GB on a 32 bit OS). Use off_t instead, which is a 64 bit integer if compiled with large file support.
-
Max Kellermann authored
Remove duplicated code from MPD.
-
- 27 Oct, 2008 2 commits
-
-
Max Kellermann authored
When the decoder failed to start, the function do_play() returned, still having pc.command==PLAY. This is because pc.command was reset only when the decoder started up successfully. Add another player_command_finished() call in the error handler.
-
Max Kellermann authored
Don't attempt to open a HTTP URL as a local file, and don't send a local path to libcurl.
-
- 26 Oct, 2008 16 commits
-
-
Max Kellermann authored
Due to a missing "test", the "xyes" token was interpreted as a command.
-
Max Kellermann authored
Don't compile the sources of disabled output plugins at all.
-
Max Kellermann authored
On some systems, string.h declares basename(). This emits a shadow warning. Change the variable name.
-
Max Kellermann authored
If the server sends the headers "icy-name", "ice-name", "x-audiocast-name", set the stream title.
-
Max Kellermann authored
-
Max Kellermann authored
Replaced the local variable "colon" (which had only temporary meaning) with the variable "value". It is a pointer to the first byte of the header value.
-
Max Kellermann authored
g_free() allows passing the NULL pointer.
-
Max Kellermann authored
For boolean values and success flags, use bool instead of integer (1/0 for true/false, 0/-1 for success/failure).
-
Max Kellermann authored
close() shouldn't fail with read-only streams.
-
Max Kellermann authored
Instead of managing a set of method pointers in each input_stream struct, move these into the new input_plugin struct. Each input_stream has only a pointer to the plugin struct. Pointers to all implementations are kept in the array "input_plugins".
-
Max Kellermann authored
Renamed all functions and variables.
-
Max Kellermann authored
The global constructor is empty, and can be removed.
-
Max Kellermann authored
The methods are only used in inputStream_fileOpen(), and should not be exported.
-
Max Kellermann authored
Everybody should use struct input_stream.
-
Max Kellermann authored
Renamed inputStream.c and inputStream_file.c.
-
Max Kellermann authored
MPD's HTTP client code has always been broken, no matter how effort was put into fixing it. Replace it with libcurl, which is known to be quite stable. This adds a fat library dependency, but only for people who need streaming.
-