| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Replace all direct music_pipe struct accesses with wrapper functions.
The compiled machine code is the same, but this way, we can change
struct internals more easily.
|
|
|
|
| |
Eliminate the deprecated utils.h memory allocation functions.
|
|
|
|
|
|
|
| |
.. and rename dc.audioFormat to dc.in_audio_format. The music pipe
does not need to know the audio format, and its former "audioFormat"
property indicated the format of the most recently added chunk, which
might be confusing when you are reading the oldest chunks.
|
|
|
|
| |
Don't make tail_chunk() calculate the frame size again.
|
|
|
|
| |
Rename all functions to the new prefix.
|
|
|
|
| |
.. 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.
|
|
|
|
| |
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.
|