aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* tag_{id3,ape}: explicitly open files in binary modeMax Kellermann2010-05-202-2/+2
| | | | Add the flag "b" to fopen(). Windows compatibility.
* input/file, output/{fifo,recorder}: add O_BINARY to open() flagsMax Kellermann2010-05-204-7/+49
| | | | Windows compatibility.
* client: use sprintf() on WIN32Max Kellermann2010-05-191-0/+13
| | | | | | On mingw32, snprintf() expects a 64 bit integer instead of a "long int" for "%li" - this is not consistent with our expectation, so we're using plain sprintf().
* event_pipe: use g_io_channel_read_chars() to drain the pipeMax Kellermann2010-05-191-6/+14
| | | | | | | For some unknown reason, read() blocks on WIN32, even though it was invoked inside the G_IO_IN callback. By switching to GIOChannel functions, this problem is solved, and it works on both Linux and Windows.
* event_pipe: call g_io_channel_win32_new_fd()Max Kellermann2010-05-191-0/+5
| | | | | | On WIN32, use g_io_channel_win32_new_fd() instead of g_io_channel_unix_new(). There doesn't seem to be a practical difference, but it seems more correct.
* update_walk: don't check recursive symlinks on WIN32Max Kellermann2010-05-191-0/+8
| | | | | inode numbers don't work on WIN32, and very few WIN32 users actually use symlinks - seems ok to disable that check.
* crossfade: emulate strtok_r() on WIN32 with a functionMax Kellermann2010-05-181-1/+5
| | | | | Not a CPP macro. This adds the "unused" attribute to "saveptr", which eliminates one gcc warning.
* command: fallback strftime() formats on WIN32Max Kellermann2010-05-182-3/+11
| | | | On WIN32, "%F" and "%T" are not implemented.
* socket_util: fix setsockopt() argument type on WIN32Max Kellermann2010-05-181-1/+7
| | | | | In the winsock headers, the setsockopt() argument is declared as "const char *", not "const void *".
* daemon: include glib.h on WIN32 for g_error()Max Kellermann2010-05-181-0/+1
|
* fd_util: fd_set_cloexec() returns a value on WIN32Max Kellermann2010-05-181-0/+2
| | | | This function is empty on WIN32, but we need to return a value.
* input/ffmpeg: new input plugin using libavformat's "avio" libraryMax Kellermann2010-05-185-0/+217
|
* input/mms: removed empty method buffer()Max Kellermann2010-05-181-8/+0
| | | | | input_stream_buffer() has a check for "buffer==NULL", so we don't need an explicit empty implementation.
* decoder_api: return effective replay gainDaniel Seuthe2010-05-181-1/+1
| | | | | Pay attention to the ReplayGain mode "auto" and the replay_gain_missing_preamp parameter inside of decoder_replay_gain().
* replay_gain_config: added function replay_gain_get_real_mode()Daniel Seuthe2010-05-183-11/+21
|
* output/oss: 24 bit support via OSS4Max Kellermann2010-05-141-0/+34
| | | | Added #ifdefs on the macros AFMT_S24_NE and other OSS4 extensions.
* output/oss: rewrite of the audio format detectionMax Kellermann2010-05-131-301/+324
| | | | | Removed the "supported" / "unsupported" arrays, and auto-detect on every open() call, just like the ALSA output plugin.
* output/oss: use the *_NE macrosMax Kellermann2010-05-131-8/+2
| | | | Removed the macro AFMT_S16_MPD.
* AudioCompress: include stdint.h for int16_t definition.Avuton Olrich2010-05-111-1/+1
| | | | | | In mingw32, int16_t is not defined by sys/types.h, but it is by stdint.h, and it is in the int16_t man page as being defined in stdint.h. Thanks to mithi for help debugging.
* client_new: Send greeting using send() rather than write().Avuton Olrich2010-05-081-1/+7
| | | | This is portable for win32 and fixes client logins there.
* mixramp: Remove maths from pcm_mix when using MixRamp overlaps.Tim Phipps2010-05-082-22/+104
|
* mixramp: Adjust MixRamp threshold to account for ReplayGain.Tim Phipps2010-05-0810-12/+42
|
* log: /dev/null doesn't exist on win32.Avuton Olrich2010-05-081-0/+2
|
* output_thread: call replay gain filter manuallyMax Kellermann2010-05-024-17/+85
| | | | | | Don't add it to the filter chain, because we need to apply replay gain before cross-fading with the next song. Add a second replay_gain filter which is used for the song being faded in (chunk->other).
* player_thread: move cross-fading to output threadMax Kellermann2010-05-028-65/+50
| | | | | Remove cross_fade_apply(), and call pcm_mix() in the output thread, mixing the chunk and chunk->other together.
* chunk: added attribute "other"Max Kellermann2010-05-023-0/+10
| | | | Preparation for cross-fading support in the output thread.
* output_thread: moved code to ao_filter_open(), ao_filter_close()Max Kellermann2010-05-021-7/+19
|
* output_thread: moved filter invocation to ao_filter_chunk()Max Kellermann2010-05-021-16/+52
|
* filter/replay_gain: removed duplicate *dest_size_r assignmentMax Kellermann2010-05-021-1/+0
|
* replay_gain: added mode "auto"Daniel Seuthe2010-04-253-4/+23
|
* Merge branch 'master' of git://github.com/mcfiredrill/mpdMax Kellermann2010-04-202-0/+133
|\
| * Decoder for game music emulation library.Tony Miller2010-04-102-0/+133
| | | | | | | | | | | | | | | | Supports a number of videogame music formats, more info here: http://www.fly.net/~ant/libs/audio.html I wrote this plugin for the latest svn, get it here: http://code.google.com/p/game-music-emu/source/checkout
* | inotify_update: start update when directory is createdMax Kellermann2010-04-131-2/+6
| | | | | | | | | | | | | | This is useful at the maximum depth level, to update newly created directories. It is however questionable if the hard-coded 5 seconds delay is enough to create new directory trees with all of their files, but we might make that delay configurable in the future.
* | inotify: added setting "auto_update_depth"Max Kellermann2010-04-135-8/+34
| | | | | | | | | | Limits the depth of the watched directories. This is useful to keep resource usage down and speed up MPD startup.
* | conf: added function config_get_unsigned()Max Kellermann2010-04-132-0/+21
| |
* | decoder/ffmpeg: fix crash on startup in mpd_ffmpeg_log_callback()Charles Kerr2010-04-111-4/+9
|/ | | | | | | | | What's happening is the `ptr' argument to that function is NULL for me every time. `ptr' is unconditionally dereferenced to generate a log message, and this is where mpd crashes. Attached is a simple patch that tests for NULL and omits the log. With this patch the crash disappeared and mpd went back to working well.
* output/httpd: added name/genre/website configurationJames Pike2010-04-053-5/+25
|
* cue: fix code styleOrivej Desh2010-04-012-10/+9
|
* decoder/ffmpeg: print item name in log callbackMax Kellermann2010-03-281-1/+5
|
* cue: prepend pregap to the beginning of the trackOrivej Desh2010-03-282-4/+22
| | | | | | | | | | | | | | | | | | | | | | | .. rather then append to the end of the previous one Cuebreakpoints from the cuetools package has three modes of operation, and the default is to append pregap (INDEX 00) to the end of the previous track. This is the behavior most compliant to the existing cue files. Here is the patch which fixes the issue. I borrowed bits of implementation from cuebreakpoints. I assumed that the whole audio file must be covered by head-to-head going tracks, which is how hardware CD players probably work. In cue_tag I changed rounding from rounding up to rounding down because the thing in mpd which calculates actual track duration (and current position) rounds it down, and I didn't want to see in my playlist values different from whose in a now-playing progress bar. I've compared the resultant mpd behaviour with "mplayer -ss MM:SS.MS" where the time was supplied by cuebreakpoints and noticed that mplayer started each track a bit earlier then mpd, though this was the same before the patch.
* Merge release 0.15.9 from branch 'v0.15.x'Max Kellermann2010-03-287-23/+65
|\ | | | | | | | | | | | | | | | | Conflicts: NEWS configure.ac src/cue/cue_tag.c src/decoder/mpcdec_decoder_plugin.c src/player_thread.c
| * decoder/mpcdec: fix replay gain formula with v8Aleksei Kaveshnikov2010-03-191-0/+8
| | | | | | | | | | | | | | | | | | | | "When playing musepack files with mpd v0.15.8, rg seems to have no effect. Using sample file below, mpd says 'computing ReplayGain album scale with gain 122.879997, peak 0.549150'. One thing though, if I build mpd against old libmpcdec-1.2.6, rg works as expected: 'computing ReplayGain album scale with gain 16.820000, peak 0.099765'"
| * player_thread: postpone song tags during cross-fadeMax Kellermann2010-03-171-0/+27
| | | | | | | | | | | | | | | | | | Previously, tags of the new song being cross-faded in were sent immediately. That can cause wrong information being displayed, because the "previous" song might send its tag at the end again, overriding the "next" song's tag. This patch saves & merges the tag of the next song, and sends it when cross-fading is finished, and the next song really starts.
| * tag: added function tag_merge_replace()Max Kellermann2010-03-173-21/+26
| | | | | | | | | | Like tag_merge(), but can deal with NULL parameters, and frees both tag objects.
| * decoder/mpcdec: fix negative shift on fixed-point samplesPiotr Gozdur2010-03-171-1/+1
| | | | | | | | | | | | "There is a bug in fixed-point musepack (musepack_src_r435) playback. In floating-point audio is OK but in fixed audio is distorted. I have made a patch for this"
| * playlist: fix single+repeat in random modeMax Kellermann2010-03-071-1/+2
| | | | | | | | | | | | | | With single+repeat enabled, it is expected that MPD repeats the current song over andd over. With random mode also enabled, this didn't work, because the song order was shuffled internally. This patch adds a special check for this case.
| * decoder/mad: fix crash when seeking at end of songMax Kellermann2010-02-271-4/+0
| | | | | | | | | | | | Removed the decoder_command_finished() call at the end of mp3_decode(). This is invalid, because decoder_command_finished() has already been called in mp3_read().
* | Add support for building httpd_output plugin for win32Avuton Olrich2010-03-222-0/+10
| |
* | Define winnt or greater on mingw32 to take advantage of get*info().Avuton Olrich2010-03-212-0/+2
| |
* | strtok() is recursive by default on win32.Avuton Olrich2010-03-211-0/+4
| |