aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2010-01-18input_stream: added attribute "uri"Max Kellermann8-10/+18
2010-01-18input_stream: added function input_stream_deinit()Max Kellermann9-2/+16
All close() implementations must call this method.
2010-01-17decoder_thread: don't fall back to "mad" unless no plugin matchesMax Kellermann1-1/+2
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.
2010-01-17decoder_thread: don't try a plugin twice (MIME type & suffix)Max Kellermann1-10/+56
Manage a linked list of plugins which were already tried.
2010-01-17decoder/ffmpeg: added more MIME typesMax Kellermann1-0/+6
Taken from the ffmpeg sources.
2010-01-17fd_util: include ws2tcpip.h for socklen_tMax Kellermann1-0/+1
2010-01-17fd_util: fixed WIN32 versions of pipe()Max Kellermann1-2/+2
Use the correct parameter name.
2010-01-17text_file: don't strip trailing whitespaceMax Kellermann1-1/+6
Only delete the newline characters (\n and optionally \r). This allows the database file to store file names with trailing whitespace.
2010-01-17output/pulse: clear the "mainloop" attribute on errorMax Kellermann1-2/+3
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.
2010-01-17decoder/ffmpeg: append file name suffix to virtual stream URLMax Kellermann1-4/+28
To allow libavformat to detect the format of the input file, append the suffix of the input file to the URL of the virtual stream. This specifically enables the "shorten" codec, which is supported by libavformat/raw.c, detected only by the suffix.
2010-01-17output/alsa: support packed 24 bit samplesMax Kellermann1-0/+13
2010-01-16audio_format: support packed 24 bit samplesMax Kellermann9-1/+263
2010-01-16output/alsa: probe all sample formats in a loopMax Kellermann1-36/+34
More code simplification. Probe all formats, no matter which input format.
2010-01-16output/alsa: merged code into alsa_output_try_format()Max Kellermann1-51/+71
Remove the debug log messages, because they are duplicate (see ao_open() in output_thread.c).
2010-01-16output/alsa: pass sample_format to get_bitformat()Max Kellermann1-3/+3
2010-01-16output/alsa: moved code to alsa_output_setup_format()Max Kellermann1-72/+80
2010-01-16queue: don't repeat current song in consume modeMax Kellermann1-2/+2
Check consume mode in queue_next_order(), because the current song would be deleted as soon as it's finished; it cannot be played again.
2010-01-16decoder_thread: fix CUE track playbackMax Kellermann1-5/+10
The patch "input/file: don't fall back to parent directory" introduced a regression: when trying to play a CUE track, decoder_run_song() tries to open the file as a stream first, but this fails, because the path is virtual. This patch fixes decoder_run_song() (instead of reverting the previous patch) to accept input_stream_open() failures if the song is a local file. It passes the responsibility to handle non-existing files to the decoder's file_decode() method.
2010-01-06decoder/flac: support streams without STREAMINFO blockMax Kellermann2-1/+52
2010-01-06decoder/flac: pass bits_per_sample to flac_sample_format()Max Kellermann1-3/+3
Easier to reuse the function.
2010-01-06decoder/flac: moved decoder initialization to _flac_common.cMax Kellermann4-51/+23
Invoke decoder_initialized() in the libFLAC metadata callback. This merges code from the FLAC and the OggFLAC decoder plugin into the common library.
2010-01-06decoder/flac: remember audio_format, not stream_infoMax Kellermann4-25/+47
2010-01-06decoder/flac: removed CUE sheet supportMax Kellermann3-359/+1
This feature has been moved to the "flac" playlist plugin.
2010-01-06playlist: added a FLAC playlist pluginMax Kellermann3-0/+199
This playlist plugin handles FLAC files with embedded CUE sheets.
2010-01-06decoder/flac: moved flac_tag_load() to flac_metadata.cMax Kellermann3-53/+56
Make this code is reusable.
2010-01-06tag: fixed memmove() size argument in tag_delete_item()Max Kellermann1-1/+1
This function has always been broken, but fortunately nobody used it.
2010-01-06playlist_queue: convert absolute pathsMax Kellermann1-4/+16
Accept absolute paths if they point into the music directory.
2010-01-06playlist_queue: use the "uri" variable earlierMax Kellermann1-6/+7
Preparation for the next patch.
2010-01-04input/rewind: enable the "rewind" wrapper for all non-seekable streamsMax Kellermann2-15/+2
Don't limit the "rewind" input plugin to CURL streams.
2010-01-04renamed decoder plugin sourcesMax Kellermann15-0/+0
Make it X_decoder_plugin.c.
2010-01-04decoder/mad: fix build error without libid3tagMax Kellermann1-1/+0
2010-01-04replay_gain: moved code to replay_gain_config.cMax Kellermann6-13/+7
2010-01-04replay_gain: moved code to replay_gain_info.cMax Kellermann9-52/+108
2010-01-04replay_gain: refactor API, move code to replay_gain_state.cMax Kellermann7-76/+207
The replay_gain_state struct holds the precalculated scale factor, which is removed from struct replay_gain_info.
2010-01-04decoder_api: added function decoder_replay_gain()Max Kellermann21-92/+99
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.
2010-01-04replay_gain: added function replay_gain_info_dup()Max Kellermann2-0/+12
2010-01-02replay_gain: removed overly verbose debug messageMax Kellermann1-1/+0
Don't log "ReplayGain is missing".
2010-01-02output_all: reset elapsed_time at song borderMax Kellermann3-0/+16
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.
2010-01-02dbUtils: return empty tag value only if no value was foundMax Kellermann1-1/+4
This fixes a regression in the patch "return multiple tag values per song": even when the song has values for the specified tag type, the empty string gets added to the set, because the "return" was removed. This patch adds a flag which remembers whether at least one value was found.
2010-01-01input_stream: return allocated input_stream objectsMax Kellermann21-299/+292
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).
2009-12-31Update copyright notices.Avuton Olrich382-383/+383
2009-12-31decoder: switch a bunch of plugins to stream_tag()Max Kellermann7-110/+45
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.
2009-12-31decoder_plugin: added method stream_tag()Max Kellermann3-1/+49
This is like tag_dup(), but works with an input_stream object instead of a file path.
2009-12-31song_update: use decoder_plugin_tag_dup()Max Kellermann1-1/+1
Minor code simplification.
2009-12-31archive: use reference counting for archive+inputMax Kellermann5-8/+32
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.
2009-12-31refcount: library for reference countingMax Kellermann1-0/+66
2009-12-31input/archive: don't initialize input_stream.readyMax Kellermann4-2/+3
The archive plugin should decide this.
2009-12-31archive/bz2: allocate buffer staticallyMax Kellermann1-7/+3
Reduce the number of malloc()/free() calls.
2009-12-31archive/bz2: added struct bz2_input_streamMax Kellermann1-21/+32
Don't use the bz2_archive_file object for the input_stream.
2009-12-31archive/iso9660: added struct iso9660_input_streamMax Kellermann1-20/+32
Don't use the iso9660_archive_file object for the input_stream.