aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2010-05-31decoder/mikmod: fix memory leakMax Kellermann1-2/+4
The return value of Player_LoadTitle() is allocated with malloc(), and must be freed by the caller.
2010-05-31decoder/mikmod: duplicate the path only onceMax Kellermann1-2/+2
2010-05-31decoder/mikdmod: moved local variable declarations in tag_dup()Max Kellermann1-12/+8
2010-05-31decoder/wildmidi: moved local variable declarations in tag_dup()Max Kellermann1-7/+3
2010-05-31decoder/gme: replace macro GME_BUF_SIZEMax Kellermann1-4/+5
Added macros with better names: GME_BUFFER_FRAMES, GME_BUFFER_SAMPLES (the former only used to calculate the latter).
2010-05-31decoder/gme: added constants for sample rate and channelsMax Kellermann1-6/+12
Move into enums.
2010-05-31decoder/gme: pass the whole buffer to decoder_data()Max Kellermann1-2/+2
Pass sizeof(buf) to decoder_data(), not the number of samples (which is half the size). At the same time, pass GME_BUF_SIZE to gme_play() - libgme really wants to get the number of samples, not the number of stereo frames. Previously, this plugin had been using only the first half of the buffer.
2010-05-31decoder/gme: allocate tag later, fixes memory leakMax Kellermann1-1/+1
Allocate the "tag" object after the file has been opened successfully.
2010-05-31decoder/mp4ff: rename and move local variableMax Kellermann1-6/+5
Allocate the "tag" object after the file has been checked. That removes one tag_free() call in an error handler.
2010-05-31decoder/mp4ff: merge code into mp4ff_input_stream_open()Max Kellermann1-17/+17
2010-05-31decoder/mp4ff: move mp4ff_callback_t into mp4ff_input_streamMax Kellermann1-12/+15
Allocate only one item on the stack.
2010-05-31decoder/mp4ff: rename mp4_context to mp4ff_input_streamMax Kellermann1-9/+9
2010-05-31decoder/mp4ff: remove duplicate entries in the tag name tableMax Kellermann1-9/+5
Reuse the function tag_name_parse_i().
2010-05-31decoder/mp4ff: moved code to mp4ff_tag_name_parse()Max Kellermann1-1/+7
2010-05-31tag_ape: remove duplicate entries in the tag name tableMax Kellermann1-13/+5
Reuse the function tag_name_parse_i().
2010-05-31tag_ape: move code to tag_ape_name_parse()Max Kellermann1-1/+7
2010-05-31decoder/vorbis: rename local variable "ret"Max Kellermann1-6/+5
2010-05-31decoder/vorbis: implement method stream_tag()Max Kellermann1-11/+4
This allows tags in archive files.
2010-05-31decoder/vorbis: move code to vorbis_open_stream()Max Kellermann1-19/+23
2010-05-30decoder/vorbis: use single global ov_callbacks constantMax Kellermann1-6/+9
Initialize the ov_callbacks struct at compile time.
2010-05-30decoder/vorbis: rename struct vorbis_decoder_data to vorbis_isMax Kellermann1-20/+19
2010-05-30inotify_update: follow symlinksMax Kellermann1-2/+1
This is probably unsafe, and doesn't protect against symlink loops, but we will eventually add this when we bring update*.c and inotify*.c closer together.
2010-05-30inotify_update: fix assertion failure when music dir is deletedMax Kellermann1-1/+7
This shouldn't really happen, but insane users might delete/rename the music directory while MPD runs. What was even more insane was that MPD crashed due to this. This is a workaround - there is currently nothing useful we can do in this case; except maybe poll for the music directory to reappear, but that's too much trouble for a user error.
2010-05-30decoder/mp4ff: support tags "albumartist", "band"Max Kellermann1-0/+2
I'm not sure if mapping "band" to TAG_PERFORMER is correct, but it might be better than nothing.
2010-05-30decoder/mp4ff: use tag_table.h to parse tag namesMax Kellermann1-18/+15
Convert if/else/else/... to a loop.
2010-05-30decoder/mp4ff: rename plugin "mp4" to "mp4ff"Max Kellermann1-1/+1
The underlying library is named "libmp4ff". To reduce confusion, rename the plugin to a more specific name.
2010-05-30tag_ape: move table lookup to tag_table.hMax Kellermann2-9/+52
Allow code sharing.
2010-05-30tag_ape: support album artist, MusicBrainz tagsMax Kellermann1-1/+8
I took these tag names from a MusePack sample file I got from a user. These are not documented in the APE specification: http://wiki.hydrogenaudio.org/index.php?title=APE_key People seem to be using undocumented extensions to the specification anyway, and the best we can do is attempt to support them.
2010-05-30decoder/mad: fix buffer variable name on !HAVE_ID3TAGMax Kellermann1-3/+3
2010-05-30filter/replay_gain: added option "replaygain_limit"Daniel Seuthe8-14/+26
2010-05-20cmdline: Add default config paths for win32.Avuton Olrich1-1/+38
2010-05-20output/win32: new output plugin for Windows WaveMax Kellermann2-0/+300
2010-05-20pcm_buffer: 8 kB alignment instead of 64 kBMax Kellermann1-2/+2
Reduce the overhead. Most buffers used by MPD are around 2 to 4 kB. 8 kB seems large enough to keep heap fragmentation low. Additionally, this patch fixes an off-by-one error in the alignment formula.
2010-05-20tag_{id3,ape}: explicitly open files in binary modeMax Kellermann2-2/+2
Add the flag "b" to fopen(). Windows compatibility.
2010-05-20input/file, output/{fifo,recorder}: add O_BINARY to open() flagsMax Kellermann4-7/+49
Windows compatibility.
2010-05-19client: use sprintf() on WIN32Max Kellermann1-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().
2010-05-19event_pipe: use g_io_channel_read_chars() to drain the pipeMax Kellermann1-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.
2010-05-19event_pipe: call g_io_channel_win32_new_fd()Max Kellermann1-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.
2010-05-19update_walk: don't check recursive symlinks on WIN32Max Kellermann1-0/+8
inode numbers don't work on WIN32, and very few WIN32 users actually use symlinks - seems ok to disable that check.
2010-05-18crossfade: emulate strtok_r() on WIN32 with a functionMax Kellermann1-1/+5
Not a CPP macro. This adds the "unused" attribute to "saveptr", which eliminates one gcc warning.
2010-05-18command: fallback strftime() formats on WIN32Max Kellermann2-3/+11
On WIN32, "%F" and "%T" are not implemented.
2010-05-18socket_util: fix setsockopt() argument type on WIN32Max Kellermann1-1/+7
In the winsock headers, the setsockopt() argument is declared as "const char *", not "const void *".
2010-05-18daemon: include glib.h on WIN32 for g_error()Max Kellermann1-0/+1
2010-05-18fd_util: fd_set_cloexec() returns a value on WIN32Max Kellermann1-0/+2
This function is empty on WIN32, but we need to return a value.
2010-05-18input/ffmpeg: new input plugin using libavformat's "avio" libraryMax Kellermann5-0/+217
2010-05-18input/mms: removed empty method buffer()Max Kellermann1-8/+0
input_stream_buffer() has a check for "buffer==NULL", so we don't need an explicit empty implementation.
2010-05-18input/mms: initialize the "eof" attributeMax Kellermann1-0/+2
2010-05-18input/mms: fix memory leak in error handlerMax Kellermann1-0/+1
2010-05-18decoder_api: return effective replay gainDaniel Seuthe1-1/+1
Pay attention to the ReplayGain mode "auto" and the replay_gain_missing_preamp parameter inside of decoder_replay_gain().
2010-05-18replay_gain_config: added function replay_gain_get_real_mode()Daniel Seuthe3-11/+21