aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2010-03-21Define winnt or greater on mingw32 to take advantage of get*info().Avuton Olrich2-0/+2
2010-03-21strtok() is recursive by default on win32.Avuton Olrich1-0/+4
2010-03-21Add support for MixRamp tagsTim Phipps18-19/+423
Adds mixrampdb and mixrampdelay commands. Reads MIXRAP_START and MIXRAMP_END tags from FLAC files and overlaps instead of crossfading.
2010-03-17AudioCompress: explicitly include stdint.hMax Kellermann1-0/+1
For int16_t.
2010-03-17decoder_api: use the correct format to calculate elapsed timeMax Kellermann1-1/+1
When decoder->timestamp is calculated, the PCM data is already converted to out_audio_format; using in_audio_format may cause funny speedups/slowdowns.
2010-03-12command: allow "update" with slash or empty pathMax Kellermann1-1/+4
When handle_update() was modified to use uri_safe_local(), suddently "mpc update ''" and "mpc update '/'" stopped working, because both are not a "safe" local URI. This patch adds a special case for these, to retain backwards compatibility.
2010-03-10output: added option "always_on" for radio stationsMax Kellermann7-2/+61
Did you ever accidently click "stop" while feeding a radio station? This option sets the output device to "pause" to disable the "close" method. It falls back to "pause" then, which is specific to the plugin. Some plugins implement it by feeding silence.
2010-03-10output/jack: drain the ring buffers during pauseMax Kellermann1-0/+7
If we're not doing this, and a new song is played after pause ends, then you will hear the rest of the previous song.
2010-03-10output/jack: synchronize all channelsMax Kellermann1-9/+26
Always use the same number of samples from each channel's ring buffer. This ensures that all channels are kept in sync.
2010-03-07decoder/ffmpeg: fix indentationMax Kellermann1-6/+6
2010-02-27decoder/ffmpeg: implement the libavutil log callbackMax Kellermann1-0/+31
Pass everything to the GLib logging library. No direct stderr access.
2010-02-27decoder/ffmpeg: don't close the AVFormatContext after open failureMax Kellermann1-1/+0
The pointer is invalid if av_open_input_file() fails.
2010-02-27command: "update" checks if the path is malformedMax Kellermann1-2/+16
This is a very basic check, which only ensures that the path does not begin with a slash, doesn't have double slashes and the special names "." and ".." are forbidden.
2010-02-27uri: allow leading dots, but explicitly exclude "." and ".."Max Kellermann1-1/+4
Dots at the beginning of an URI segment are ok, as long as the special names "." and ".." are not used.
2010-02-27update: log start/finish of the update threadMax Kellermann1-1/+11
2010-02-17replay_gain: optionally use hardware mixer to apply replay gainMax Kellermann4-6/+88
Add an option for each audio output which enables the use of the hardware mixer, instead of the software volume code. This is hardware specific, and assumes linear volume control. This is not the case for hardware mixers which were tested, making this patch somewhat useless, but we will use it to experiment with the settings, to find a good solution.
2010-02-17replay_gain: fall back to track gain if album gain is unavailableMax Kellermann3-2/+18
2010-02-17replay_gain: reimplement as a filter pluginMax Kellermann14-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-17replay_gain_info: allocate the struct staticallyMax Kellermann10-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-17replay_gain_info: use INFINITY to mark undefined valuesMax Kellermann2-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-15replay_gain_state: moved code to replay_gain_tuple_scale()Max Kellermann3-19/+21
Moved (and renamed) the function calc_replay_gain_scale() to replay_gain_info.c.
2010-02-15replay_gain: added function defined()Max Kellermann2-12/+18
This function determines whether replay gain data is available.
2010-02-15filter/volume: assign dest_size_r early, eliminate oneMax Kellermann1-4/+3
2010-02-08command: "listplaylist" dumps playlist filesMax Kellermann3-0/+54
Same for "listplaylistinfo".
2010-02-08playlist_queue: moved code to playlist_mapper.cMax Kellermann3-70/+137
2010-02-08playlist_queue: moved check_translate_song() to playlist_song.cMax Kellermann3-118/+172
2010-02-08song_print: song_print() returns voidMax Kellermann3-10/+12
The only "return" statement always returns 0.
2010-02-02ffmpeg: read more metadata.Anton Khirnov1-1/+12
2010-01-28decoder/flac: fix replay gain (short-circuiting "or")Tim Phipps1-8/+13
2010-01-20client: optionally use libwrapDavide Camurri1-0/+30
2010-01-20decoder/wavpack: fixed WVC URIMax Kellermann1-4/+5
Pass the current URI to wavpack_open_wvc().
2010-01-18decoder/ffmpeg: call decoder_timestamp() once per packetMax Kellermann1-5/+5
2010-01-18decoder/ffmpeg: merged ffmpeg_helper() into ffmpeg_decode()Max Kellermann1-116/+67
2010-01-18decoder/ffmpeg: optimized the stream_tag() methodMax Kellermann1-25/+27
Don't use the function ffmpeg_helper(), don't initialize the codec.
2010-01-18decoder/ffmpeg: free AVFormatContext on errorMax Kellermann1-0/+4
Fix a memory leak in some code paths.
2010-01-18decoder_api: removed function decoder_get_uri()Max Kellermann5-44/+11
Use input_stream.uri.
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).