| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
It's not valid to use the buffer's data without ensuring that the
buffer contains enough data.
|
|
|
|
| |
"aac" -> "faad"
|
| |
|
|
|
|
| |
The function is unused, since we added the pcm_buffer library.
|
|
|
|
|
|
| |
When I implemented the pcm_buffer library, I forgot to set the new
buffer size. This caused a new allocation in each pcm_buffer_get(),
fortunately no memory was leaked.
|
|
|
|
|
| |
Fixed the log domains of the renamed decoders. Added G_LOG_DOMAIN
macros in decoders which don't have one already.
|
|
|
|
| |
This plugin is based on "libmpcdec".
|
|
|
|
| |
This plugin is based on "libmp4ff".
|
| |
|
|
|
|
| |
Renamed functions and variables.
|
|
|
|
|
| |
The element fileOffset is only written, but never read. It can be
removed safely.
|
|
|
|
| |
This plugin uses libvorbis.
|
|
|
|
| |
A decoder plugin should be named after the library which is used.
|
|
|
|
| |
A decoder plugin should be named after the library which is used.
|
|
|
|
| |
If an output plugin requires config.h, it should include it directly.
|
|
|
|
|
| |
Don't include conf.h in mixer_api.h. Use a forward struct declaration
instead.
|
|
|
|
|
| |
Don't include output_api.h in output_internal.h. This change requires
adding missing includes in several sources.
|
|
|
|
|
| |
The method control() is too complicated, and overengineered. Replace
it with two trivial functions: get_volume() and set_volume().
|
|
|
|
|
| |
The output plugin shouldn't know any specifics of the mixer API. Make
it return the mixer object, and let the caller deal with it.
|
|
|
|
|
| |
Similar to the decoder plugin API: added wrapper functions to increase
code readability.
|
|
|
|
|
| |
Initialization and deinitialization first, then tag functions, then
play/cancel/pause.
|
|
|
|
|
| |
If we move the plugin struct to a separate header, we don't have to
include the big fat output_api.h everywhere.
|
|
|
|
|
| |
Now that the output_command enum isn't exposed to output plugins
anymore, we can hide its definition within output_internal.h.
|
|
|
|
| |
Renamed variables.
|
|
|
|
|
| |
Don't call WildMidi_Init() if the configuration file does not exist.
Don't let libwildmidi clutter stderr with its warning message.
|
| |
|
| |
|
|
|
|
|
| |
The "decoder" configuration block may contain the configuration of one
decoder plugin.
|
|
|
|
| |
Preparing for per-plugin configuration sections in mpd.conf.
|
|
|
|
| |
Minimize header dependencies, again.
|
|
|
|
|
| |
Increase code readability, always use the wrapper functions instead of
calling the plugin method pointers directly.
|
|
|
|
|
|
| |
The decoder_plugin struct is used by both the MPD core and the decoder
plugin implementations. Move it to a shared header file, to minimize
header dependencies.
|
|
|
|
|
| |
If no "user" is configured, return from daemonize_set_user(). Save
one level of indent.
|
|
|
|
|
|
| |
If mpd.conf specifies a user, and MPD is invoked by exactly this user,
ignore the "user" setting. Don't bother to look up its groups and
don't attempt to change uid, it won't work anyway.
|
| |
|
|
|
|
| |
Print details on why the fork() fails.
|
|
|
|
|
| |
Moved the code which detaches from the parent process/session to a
separate function.
|
| |
|
|
|
|
| |
This command shuffles a range of songs.
|
|
|
|
|
|
| |
Use delete_directory() for removing sub directories instead of
dirvec_clear(). This ensures that all memory occupied by
subdirectories of deleted directories is freed.
|
|
|
|
|
|
|
| |
When a directory is deleted, MPD deleted only the directory from the
database; it did not bother to walk the full tree to free all memory
and to remove deleted songs from the playlist. Replace a
dirvec_delete() with delete_directory().
|
|
|
|
|
| |
Pass the input_stream object to decoder_data(). Without it, the MPD
core does not see stream tags.
|
|
|
|
|
|
| |
When you change the filesystem charset, discard the old database file
and create a new one. The old database file will most likely contain
stale or invalid information.
|
|
|
|
| |
Use WildMidi_SampledSeek() for seeking in a MIDI file.
|
|
|
|
|
| |
The _WM_Info struct provides all we need, it is obtained by
WildMidi_GetInfo().
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are a few problems left in this plugin:
- fluidsynth decodes in real time, while MPD prefers to buffer as
quickly as possible; as a workaround, this plugin uses a timer
object to synchronize with real-time playback
- I don't know yet how fluidsynth tells me when the song has ended
- the "soundfont" configuration setting is not yet documented, and it
will likely change soon (in favor of a per-decoder configuration
block)
|
| |
|
|
|
|
|
| |
By accident, I committed a debug flag, which disallowed the decoder
thread to play files locally. Undo this hunk.
|
|
|
|
|
| |
The ffmpeg library supports the "True Audio Codec". The entry in
ffmpeg_suffixes was missing.
|