| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
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.
|
|
|
|
| |
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.
|
|
|
|
|
| |
ffmpeg_tag() did not initialize base.decoder, which made valgrind
unhappy, and can lead to a egmentation fault.
|
|
|
|
|
|
| |
Depending on MPD's umask, the file permissions of the unix socket were
too restrictive, and many clients were not able to connect. Do a
chmod(0666) on the socket, to allow everybody to connect.
|
|
|
|
|
| |
Commit d692e9 broke configurations without explicit server or sink
configuration. Check for getBlockParam()==NULL.
|
|
|
|
|
|
| |
Similar to libmad, libmpcdec provides samples with higher quality than
16 bit. Send 24 bit samples to MPD, which allows MPD to apply
dithering just in case the output devices are only 16 bit capable.
|
|
|
|
| |
Don't hard-code the "16 bits" or "2 bytes" in multiple locations.
|
|
|
|
|
| |
The name "s16" implies 16 bit integers. To make the code more
generic, rename it to "dest".
|