Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
2010-02-17 | replay_gain: reimplement as a filter plugin | Max Kellermann | 14 | -159/+289 | |
Apply the replay gain in the output thread. This means a new setting will be active instantly, without going through the whole music pipe. And we might have different replay gain settings for each audio output device. | |||||
2010-02-17 | replay_gain_info: allocate the struct statically | Max Kellermann | 10 | -133/+71 | |
Don't allocate each replay_gain_info object on the heap. Those objects who held a pointer now store a full replay_gain_info object. This reduces the number of allocations and heap fragmentation. | |||||
2010-02-17 | replay_gain_info: use INFINITY to mark undefined values | Max Kellermann | 2 | -3/+3 | |
The previous patch not only moved code, it also changed the check. Negative gain values seem to be valid after all, there just was the "magic" value 0.0 which means "not available". This patch changes the "magic" value to "INFINITY", and uses the C99 function isinf() to check. It might have been a better idea to use "NAN", but the "NAN" macro is a GNU extension. | |||||
2010-02-15 | replay_gain_state: moved code to replay_gain_tuple_scale() | Max Kellermann | 3 | -19/+21 | |
Moved (and renamed) the function calc_replay_gain_scale() to replay_gain_info.c. | |||||
2010-02-15 | replay_gain: added function defined() | Max Kellermann | 2 | -12/+18 | |
This function determines whether replay gain data is available. | |||||
2010-02-15 | filter/volume: assign dest_size_r early, eliminate one | Max Kellermann | 1 | -4/+3 | |
2010-02-08 | command: "listplaylist" dumps playlist files | Max Kellermann | 3 | -0/+54 | |
Same for "listplaylistinfo". | |||||
2010-02-08 | playlist_queue: moved code to playlist_mapper.c | Max Kellermann | 3 | -70/+137 | |
2010-02-08 | playlist_queue: moved check_translate_song() to playlist_song.c | Max Kellermann | 3 | -118/+172 | |
2010-02-08 | song_print: song_print() returns void | Max Kellermann | 3 | -10/+12 | |
The only "return" statement always returns 0. | |||||
2010-02-02 | ffmpeg: read more metadata. | Anton Khirnov | 1 | -1/+12 | |
2010-01-28 | decoder/flac: fix replay gain (short-circuiting "or") | Tim Phipps | 1 | -8/+13 | |
2010-01-20 | client: optionally use libwrap | Davide Camurri | 1 | -0/+30 | |
2010-01-20 | decoder/wavpack: fixed WVC URI | Max Kellermann | 1 | -4/+5 | |
Pass the current URI to wavpack_open_wvc(). | |||||
2010-01-18 | decoder/ffmpeg: call decoder_timestamp() once per packet | Max Kellermann | 1 | -5/+5 | |
2010-01-18 | decoder/ffmpeg: merged ffmpeg_helper() into ffmpeg_decode() | Max Kellermann | 1 | -116/+67 | |
2010-01-18 | decoder/ffmpeg: optimized the stream_tag() method | Max Kellermann | 1 | -25/+27 | |
Don't use the function ffmpeg_helper(), don't initialize the codec. | |||||
2010-01-18 | decoder/ffmpeg: free AVFormatContext on error | Max Kellermann | 1 | -0/+4 | |
Fix a memory leak in some code paths. | |||||
2010-01-18 | decoder_api: removed function decoder_get_uri() | Max Kellermann | 5 | -44/+11 | |
Use input_stream.uri. | |||||
2010-01-18 | input_stream: added attribute "uri" | Max Kellermann | 8 | -10/+18 | |
2010-01-18 | input_stream: added function input_stream_deinit() | Max Kellermann | 9 | -2/+16 | |
All close() implementations must call this method. | |||||
2010-01-17 | decoder_thread: don't fall back to "mad" unless no plugin matches | Max Kellermann | 1 | -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-17 | decoder_thread: don't try a plugin twice (MIME type & suffix) | Max Kellermann | 1 | -10/+56 | |
Manage a linked list of plugins which were already tried. | |||||
2010-01-17 | decoder/ffmpeg: added more MIME types | Max Kellermann | 1 | -0/+6 | |
Taken from the ffmpeg sources. | |||||
2010-01-17 | fd_util: include ws2tcpip.h for socklen_t | Max Kellermann | 1 | -0/+1 | |
2010-01-17 | fd_util: fixed WIN32 versions of pipe() | Max Kellermann | 1 | -2/+2 | |
Use the correct parameter name. | |||||
2010-01-17 | text_file: don't strip trailing whitespace | Max Kellermann | 1 | -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-17 | output/pulse: clear the "mainloop" attribute on error | Max Kellermann | 1 | -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-17 | decoder/ffmpeg: append file name suffix to virtual stream URL | Max Kellermann | 1 | -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-17 | output/alsa: support packed 24 bit samples | Max Kellermann | 1 | -0/+13 | |
2010-01-16 | audio_format: support packed 24 bit samples | Max Kellermann | 9 | -1/+263 | |
2010-01-16 | output/alsa: probe all sample formats in a loop | Max Kellermann | 1 | -36/+34 | |
More code simplification. Probe all formats, no matter which input format. | |||||
2010-01-16 | output/alsa: merged code into alsa_output_try_format() | Max Kellermann | 1 | -51/+71 | |
Remove the debug log messages, because they are duplicate (see ao_open() in output_thread.c). | |||||
2010-01-16 | output/alsa: pass sample_format to get_bitformat() | Max Kellermann | 1 | -3/+3 | |
2010-01-16 | output/alsa: moved code to alsa_output_setup_format() | Max Kellermann | 1 | -72/+80 | |
2010-01-16 | queue: don't repeat current song in consume mode | Max Kellermann | 1 | -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-16 | decoder_thread: fix CUE track playback | Max Kellermann | 1 | -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-06 | decoder/flac: support streams without STREAMINFO block | Max Kellermann | 2 | -1/+52 | |
2010-01-06 | decoder/flac: pass bits_per_sample to flac_sample_format() | Max Kellermann | 1 | -3/+3 | |
Easier to reuse the function. | |||||
2010-01-06 | decoder/flac: moved decoder initialization to _flac_common.c | Max Kellermann | 4 | -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-06 | decoder/flac: remember audio_format, not stream_info | Max Kellermann | 4 | -25/+47 | |
2010-01-06 | decoder/flac: removed CUE sheet support | Max Kellermann | 3 | -359/+1 | |
This feature has been moved to the "flac" playlist plugin. | |||||
2010-01-06 | playlist: added a FLAC playlist plugin | Max Kellermann | 3 | -0/+199 | |
This playlist plugin handles FLAC files with embedded CUE sheets. | |||||
2010-01-06 | decoder/flac: moved flac_tag_load() to flac_metadata.c | Max Kellermann | 3 | -53/+56 | |
Make this code is reusable. | |||||
2010-01-06 | tag: fixed memmove() size argument in tag_delete_item() | Max Kellermann | 1 | -1/+1 | |
This function has always been broken, but fortunately nobody used it. | |||||
2010-01-06 | playlist_queue: convert absolute paths | Max Kellermann | 1 | -4/+16 | |
Accept absolute paths if they point into the music directory. | |||||
2010-01-06 | playlist_queue: use the "uri" variable earlier | Max Kellermann | 1 | -6/+7 | |
Preparation for the next patch. | |||||
2010-01-04 | input/rewind: enable the "rewind" wrapper for all non-seekable streams | Max Kellermann | 2 | -15/+2 | |
Don't limit the "rewind" input plugin to CURL streams. | |||||
2010-01-04 | renamed decoder plugin sources | Max Kellermann | 15 | -0/+0 | |
Make it X_decoder_plugin.c. | |||||
2010-01-04 | decoder/mad: fix build error without libid3tag | Max Kellermann | 1 | -1/+0 | |