| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
When all plugins have failed, MPD used to fall back to the "mad"
decoder plugin, to handle those radio streams without a Content-Type
response header. This however leads to unexpected results (garbage
being played) when the stream isn't really mp3. Since we care little
about "bad" streams, we shouldn't have hacks which have bad side
effects.
Let's get rid of this hack now! Only try to "mad" plugin if there was
no match at all (Content-Type, path suffix) and no other plugin has
been tried.
|
|
|
|
| |
Manage a linked list of plugins which were already tried.
|
| |
|
|
|
|
| |
Use the correct parameter name.
|
|
|
|
|
| |
Only delete the newline characters (\n and optionally \r). This
allows the database file to store file names with trailing whitespace.
|
|
|
|
|
|
|
|
| |
When enabling the pulse device fails, clear po->mainloop after
pa_threaded_mainloop_free() has finished. This is important for the
assertions.
Two wrong g_free() calls were also removed.
|
| |
|
| |
|
|
|
|
|
| |
More code simplification. Probe all formats, no matter which input
format.
|
|
|
|
|
| |
Remove the debug log messages, because they are duplicate (see
ao_open() in output_thread.c).
|
| |
|
| |
|
| |
|
|
|
|
| |
Easier to reuse the function.
|
|
|
|
|
|
| |
Invoke decoder_initialized() in the libFLAC metadata callback. This
merges code from the FLAC and the OggFLAC decoder plugin into the
common library.
|
| |
|
|
|
|
| |
This feature has been moved to the "flac" playlist plugin.
|
|
|
|
| |
This playlist plugin handles FLAC files with embedded CUE sheets.
|
|
|
|
| |
Make this code is reusable.
|
|
|
|
| |
This function has always been broken, but fortunately nobody used it.
|
|
|
|
| |
Accept absolute paths if they point into the music directory.
|
|
|
|
| |
Preparation for the next patch.
|
|
|
|
| |
Don't limit the "rewind" input plugin to CURL streams.
|
|
|
|
| |
Make it X_decoder_plugin.c.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
The replay_gain_state struct holds the precalculated scale factor,
which is removed from struct replay_gain_info.
|
|
|
|
|
|
| |
This function replaces the replay_gain_info parameter for
decoder_data(). This allows the decoder to announce replay gain
changes, instead of having to pass the same object over and over.
|
| |
|
|
|
|
| |
Don't log "ReplayGain is missing".
|
|
|
|
|
|
|
|
| |
Another quirk fixed: after the last chunk of a song has been played,
the "elapsed_time" variable is set to the chunk's time stamp. When
the client receives the PLAYER idle event and asks MPD for the current
time stamp, MPD will return the last time stamp of the previous song
when it hasn't played the first chunk of the current song yet.
|
|
|
|
|
|
|
|
| |
Major API redesign: don't let the caller allocate the input_stream
object. Let each input plugin allocate its own (derived/extended)
input_stream pointer. The "data" attribute can now be removed, and
all input plugins simply cast the input_stream pointer to their own
structure (with an "struct input_stream base" as the first attribute).
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This patch changes the following decoder plugins to implement
stream_tag() instead of tag_dup():
faad, ffmpeg, mad, modplug, mp4ff, mpcdec, oggflac
This simplifies their code, because they do not need to take care of
opening/closing the stream.
|
|
|
|
|
| |
This is like tag_dup(), but works with an input_stream object instead
of a file path.
|
|
|
|
| |
Minor code simplification.
|
|
|
|
|
|
|
| |
Make the input_stream implementation hold a reference on the
archive_file object. Allow the caller to "close" the archive_file
object immediately, no matter if the open_stream() method has
succeeded or not.
|
| |
|
|
|
|
| |
The archive plugin should decide this.
|
|
|
|
| |
Reduce the number of malloc()/free() calls.
|
|
|
|
| |
Don't use the bz2_archive_file object for the input_stream.
|
|
|
|
| |
Don't use the iso9660_archive_file object for the input_stream.
|
| |
|
|
|
|
| |
Don't use the zzip_archive object for the input_stream.
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
Makefile.am
NEWS
configure.ac
src/input/curl_input_plugin.c
src/input_stream.c
|
| |
| |
| |
| | |
This has been reimplemented in the "rewind" input plugin.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This replaces the rewinding buffer code from the CURL input plugin.
It is more generic, and allows rewinding even when the server sends
Icy-Metadata (which would have been too difficult to implement within
the CURL plugin).
This is a rather complex patch for the stable branch (v0.15.x), but it
fixes a serious problem: the "vorbis" decoder plugin was unable to
play streams with Icy-Metadata, because it couldn't rewind the stream
after detecting the codec (Vorbis vs. FLAC).
|
| |
| |
| |
| |
| | |
Support deprecated MIME types such as "audio/x-ogg". Support new
types such as "audio/flac".
|