| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
.. and rename ob_chunk to struct music_chunk.
|
|
|
|
|
|
|
| |
No CamelCase in the file name. The output_buffer struct is going to
be renamed to music_pipe. There are so many buffer levels in MPD, and
calling this one "output buffer" is wrong, because it's not the last
buffer before the music reaches the output devices.
|
|
|
|
|
|
| |
Commit 1a4a3e1f moved decoders into a static array, but failed to
enable those plugins who did not have an init() method at all.
This patch corrects the "enabled" check.
|
|
|
|
|
| |
The strings were constant, but the pointers weren't. C syntax is
somewhat tricky..
|
|
|
|
|
| |
All decoder_plugin structs are initialized at compile time, and must
never change.
|
|
|
|
|
| |
Currently, there is no way to dynamically load decoder plugins, thus
we don't need a dynamic list to manage them.
|
|
|
|
|
| |
The decoder_plugin structs must never change. Don't work with
non-const pointers.
|
|
|
|
| |
Eliminating the deprecated linked list library.
|
|
|
|
| |
Don't use the deprecated functions from utils.h.
|
|
|
|
| |
Eliminate code already provided by GLib.
|
|
|
|
|
| |
Return NULL instead of the input value if there is nothing to fix.
This way, the caller doesn't have to use the xfree() hack.
|
|
|
|
|
| |
Make the pointers "device" and "name" non-const, so we don't need the
xfree() hack. The default value is expressed as NULL.
|
|
|
|
|
| |
We don't need to sanitize the path, because the mapper already checks
for malformed paths.
|
|
|
|
|
|
| |
Make map_directory_child_fs() refuse the names "." and "..". This is
currently the interface where an attacker may inject a manipulated
path (through the "update" command).
|
|
|
|
|
| |
Nearly all mapper functions can fail and will then return NULL. Add
checks to all callers.
|
|
|
|
|
| |
Added the function map_spl_utf8_to_fs() which replaces
utf8_to_fs_playlist_path().
|
|
|
|
|
| |
g_error() is fatal by default. Use g_warning() for non-fatal
initialization errors.
|
|
|
|
| |
http://xkcd.com/292/
|
|
|
|
|
| |
If nobody sent a command, the player isn't waiting for the decoder.
Don't wake it up.
|
|
|
|
| |
The player should always be woken up when the decoder quits.
|
|
|
|
|
| |
Eliminate one goto in decodeStart() by moving some cleanup to
decoder_task().
|
|
|
|
|
| |
switch looks much nicer than if/elseif/... and gcc generates nice
warnings when a new command is added to the enum.
|
| |
|
| |
|
|
|
|
| |
Return bool instead of int.
|
|
|
|
| |
Removed duplicated code.
|
|
|
|
| |
optional
|
|
|
|
| |
protocol if not exist in config
|
| |
|
|
|
|
| |
g_error_free() was missing in case g_convert() failed.
|
|
|
|
|
| |
directory_free() should free all of its children (subdirectories and
songs). This way, db_finish() properly frees all allocated memory.
|
|
|
|
|
|
|
| |
"LOG_H" is a macro which is also used by ffmpeg/log.h. This is
ffmpeg's fault, because short macros should be reserved for
applications, but since it's always a good idea to choose prefixed
macro names, even for applications, we are going to do that in MPD.
|
|
|
|
|
| |
After a partial write, chances are vanishing that another write() will
succeed. Don't try immediately.
|
|
|
|
|
| |
The "simple singly-linked-list" library has been replaced with GLib's
GList and GQueue.
|
|
|
|
| |
Another custom data structore converted to GLib.
|
|
|
|
| |
Replace a custom data structure with a GLib one.
|
|
|
|
|
|
| |
The list cache aims to save memory allocations, and complicates the
code a bit. We should rather use GLib slices later, which are easy to
use.
|
|
|
|
|
|
| |
The source _ogg_common.c does not need any symbols from
_flac_common.h, but including it leads to compiler errors when libflac
isn't available.
|
|
|
|
|
| |
Again, I forgot to adapt oggflac to the new API (struct input_stream,
bool return values).
|
|
|
|
|
| |
decoder_data() uses wait times to let the input stream continue its
transfer.
|
|
|
|
|
| |
decoder_data() always returns the current command. If we use this, we
can save a lot of decoder_get_command() calls.
|
|
|
|
| |
Converted the runtime check to an assertion.
|
|
|
|
| |
Remove one indent level.
|
|
|
|
|
| |
Move code from ffmpeg_decode_internal() to make it smaller and more
readable.
|
|
|
|
|
| |
The decoder API provides the function decoder_seek_error() to report
seek errors. Use this function instead of logging the error.
|
|
|
|
|
| |
The function mpdurl_read() is too complicated, and uses the wrong data
types.
|
|
|
|
|
| |
tag objects must be freed with tag_free() to ensure that all resources
are freed.
|
|
|
|
|
| |
The function ffmpeg_tag() already has the variable base.tag, which can
be used for this.
|
|
|
|
|
| |
ffmpeg_try_decode() did not interpret ffmpeg_helper()'s return value
properly; migrate everything to bool to make it consistent.
|
|
|
|
| |
We don't need those anymore, they just fill the log.
|