Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | playlist_list: wait for input stream to become ready | Aaron Griffith | 2010-06-25 | 1 | -0/+22 |
| | | | | Fixes an assertion failure in the input_stream_seek() call. | ||||
* | Make get_remote_uid() work on BSD | Andreas Vögele | 2010-06-19 | 1 | -1/+7 |
| | | | | | | I've attached a patch that will make file URIs work on operating systems that provide the getpeereid() function call to check the user ID of the peer connected to a UNIX domain socket. | ||||
* | client: increase send_buf from 4kB to 16kB | Andrzej Rybczak | 2010-06-19 | 1 | -1/+1 |
| | | | | | | this greatly improves performance of commands that return a lot of data, e.g. search results or recursive content of a directory, while being connected to local mpd via tcp/ip socket. | ||||
* | playlist: check "queued" before calling playlist_update_queued_song() | Max Kellermann | 2010-06-19 | 1 | -1/+1 |
| | | | | Workaround for an assertion failure. | ||||
* | playlist: protect acess to player state in playlist_sync() | Max Kellermann | 2010-06-19 | 1 | -2/+7 |
| | |||||
* | playlist: move checks out of playlist_sync_with_queue() | Max Kellermann | 2010-06-19 | 1 | -20/+21 |
| | | | | | Rename the function to playlist_song_started(), which gets only called if the song has actually started. | ||||
* | player_control: hold mutex in pc_play(), pc_pause() | Max Kellermann | 2010-06-19 | 1 | -9/+42 |
| | | | | Race condition fix. | ||||
* | filter/route: fixed unsigned/signed comparison | Max Kellermann | 2010-06-06 | 1 | -1/+1 |
| | | | | Fixes a clang warning. | ||||
* | output/httpd: add libwrap support | Tim Phipps | 2010-06-06 | 1 | -0/+28 |
| | | | | | | libwrap support is in MPD but only for the control port. This patch adds support for the http port. The code is copied from src/client_new.c | ||||
* | directory_print: print a list of playlist files in "lsinfo" | Max Kellermann | 2010-06-01 | 1 | -0/+61 |
| | | | | Print those files which can be handled by a playlist plugin. | ||||
* | playlist_list: export playlist_suffix_supported() | Max Kellermann | 2010-06-01 | 2 | -1/+10 |
| | |||||
* | playlist_list: playlist_list_open_path() returns input_stream | Max Kellermann | 2010-06-01 | 6 | -16/+39 |
| | | | | | | | Memory leak fix. The input_stream object passed to playlist_list_open_stream_suffix() must be closed by the caller - this however never happens in playlist_list_open_path(), because it does not return it to the caller. | ||||
* | playlist_list: move fallback g_uri_parse_scheme() to glib_compat.h | Max Kellermann | 2010-06-01 | 2 | -14/+16 |
| | |||||
* | playlist: emit IDLE_OPTIONS when resetting single mode | Max Kellermann | 2010-06-01 | 1 | -0/+2 |
| | |||||
* | single mode: at the end of the song, pause on the next song instead of stop | Romain Bignon | 2010-05-31 | 3 | -19/+13 |
| | |||||
* | directory_print: return void | Max Kellermann | 2010-05-31 | 2 | -7/+3 |
| | | | | There is no useful return value here. | ||||
* | fix crash when decoder is NULL | Romain Bignon | 2010-05-31 | 1 | -2/+2 |
| | |||||
* | decoder/mikmod: fix memory leak | Max Kellermann | 2010-05-31 | 1 | -2/+4 |
| | | | | | The return value of Player_LoadTitle() is allocated with malloc(), and must be freed by the caller. | ||||
* | decoder/mikmod: duplicate the path only once | Max Kellermann | 2010-05-31 | 1 | -2/+2 |
| | |||||
* | decoder/mikdmod: moved local variable declarations in tag_dup() | Max Kellermann | 2010-05-31 | 1 | -12/+8 |
| | |||||
* | decoder/wildmidi: moved local variable declarations in tag_dup() | Max Kellermann | 2010-05-31 | 1 | -7/+3 |
| | |||||
* | decoder/gme: replace macro GME_BUF_SIZE | Max Kellermann | 2010-05-31 | 1 | -4/+5 |
| | | | | | Added macros with better names: GME_BUFFER_FRAMES, GME_BUFFER_SAMPLES (the former only used to calculate the latter). | ||||
* | decoder/gme: added constants for sample rate and channels | Max Kellermann | 2010-05-31 | 1 | -6/+12 |
| | | | | Move into enums. | ||||
* | decoder/gme: pass the whole buffer to decoder_data() | Max Kellermann | 2010-05-31 | 1 | -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. | ||||
* | decoder/gme: allocate tag later, fixes memory leak | Max Kellermann | 2010-05-31 | 1 | -1/+1 |
| | | | | Allocate the "tag" object after the file has been opened successfully. | ||||
* | decoder/mp4ff: rename and move local variable | Max Kellermann | 2010-05-31 | 1 | -6/+5 |
| | | | | | Allocate the "tag" object after the file has been checked. That removes one tag_free() call in an error handler. | ||||
* | decoder/mp4ff: merge code into mp4ff_input_stream_open() | Max Kellermann | 2010-05-31 | 1 | -17/+17 |
| | |||||
* | decoder/mp4ff: move mp4ff_callback_t into mp4ff_input_stream | Max Kellermann | 2010-05-31 | 1 | -12/+15 |
| | | | | Allocate only one item on the stack. | ||||
* | decoder/mp4ff: rename mp4_context to mp4ff_input_stream | Max Kellermann | 2010-05-31 | 1 | -9/+9 |
| | |||||
* | decoder/mp4ff: remove duplicate entries in the tag name table | Max Kellermann | 2010-05-31 | 1 | -9/+5 |
| | | | | Reuse the function tag_name_parse_i(). | ||||
* | decoder/mp4ff: moved code to mp4ff_tag_name_parse() | Max Kellermann | 2010-05-31 | 1 | -1/+7 |
| | |||||
* | tag_ape: remove duplicate entries in the tag name table | Max Kellermann | 2010-05-31 | 1 | -13/+5 |
| | | | | Reuse the function tag_name_parse_i(). | ||||
* | tag_ape: move code to tag_ape_name_parse() | Max Kellermann | 2010-05-31 | 1 | -1/+7 |
| | |||||
* | decoder/vorbis: rename local variable "ret" | Max Kellermann | 2010-05-31 | 1 | -6/+5 |
| | |||||
* | decoder/vorbis: implement method stream_tag() | Max Kellermann | 2010-05-31 | 1 | -11/+4 |
| | | | | This allows tags in archive files. | ||||
* | decoder/vorbis: move code to vorbis_open_stream() | Max Kellermann | 2010-05-31 | 1 | -19/+23 |
| | |||||
* | decoder/vorbis: use single global ov_callbacks constant | Max Kellermann | 2010-05-30 | 1 | -6/+9 |
| | | | | Initialize the ov_callbacks struct at compile time. | ||||
* | decoder/vorbis: rename struct vorbis_decoder_data to vorbis_is | Max Kellermann | 2010-05-30 | 1 | -20/+19 |
| | |||||
* | inotify_update: follow symlinks | Max Kellermann | 2010-05-30 | 1 | -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. | ||||
* | inotify_update: fix assertion failure when music dir is deleted | Max Kellermann | 2010-05-30 | 1 | -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. | ||||
* | decoder/mp4ff: support tags "albumartist", "band" | Max Kellermann | 2010-05-30 | 1 | -0/+2 |
| | | | | | I'm not sure if mapping "band" to TAG_PERFORMER is correct, but it might be better than nothing. | ||||
* | decoder/mp4ff: use tag_table.h to parse tag names | Max Kellermann | 2010-05-30 | 1 | -18/+15 |
| | | | | Convert if/else/else/... to a loop. | ||||
* | decoder/mp4ff: rename plugin "mp4" to "mp4ff" | Max Kellermann | 2010-05-30 | 1 | -1/+1 |
| | | | | | The underlying library is named "libmp4ff". To reduce confusion, rename the plugin to a more specific name. | ||||
* | tag_ape: move table lookup to tag_table.h | Max Kellermann | 2010-05-30 | 2 | -9/+52 |
| | | | | Allow code sharing. | ||||
* | tag_ape: support album artist, MusicBrainz tags | Max Kellermann | 2010-05-30 | 1 | -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. | ||||
* | Merge release 0.15.10 from branch 'v0.15.x' | Max Kellermann | 2010-05-30 | 2 | -5/+28 |
|\ | | | | | | | | | | | | | Conflicts: NEWS configure.ac src/input/mms_input_plugin.c | ||||
| * | decoder/mad: fix buffer variable name on !HAVE_ID3TAG | Max Kellermann | 2010-05-30 | 1 | -3/+3 |
| | | |||||
| * | input/mms: initialize the "eof" attribute | Max Kellermann | 2010-05-18 | 1 | -0/+2 |
| | | |||||
| * | input/mms: fix memory leak in error handler | Max Kellermann | 2010-05-18 | 1 | -0/+1 |
| | | |||||
| * | decoder/mad: properly calculate ID3 size without libid3tag | Max Kellermann | 2010-04-13 | 1 | -5/+25 |
| | | | | | | | | | | | | | | | | | | | | Without libid3tag, we were trying to skip the ID3 frame (since 0.15.2). Its length however was not calculated at all, we were just dropping everything from the current input buffer. This lead to the first few seconds of the file being skipped. This patch attempts to calculate the ID3v2 frame size with the formula from: http://www.id3.org/id3v2.4.0-structure 3.1 and 6.2 |