aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge release 0.15.11 from branch 'v0.15.xMax Kellermann2010-07-192-3/+17
|\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: NEWS configure.ac src/decoder/ffmpeg_decoder_plugin.c src/decoder/mikmod_decoder_plugin.c src/decoder/mp4ff_decoder_plugin.c src/decoder/vorbis_decoder_plugin.c src/directory_print.c src/playlist_control.c src/tag_ape.c
| * mpd version 0.15.11release-0.15.11Avuton Olrich2010-07-142-2/+2
| |
| * decoder/ffmpeg: fix libavformat 0.6 by using av_open_input_stream()Max Kellermann2010-06-302-82/+53
| | | | | | | | | | | | | | | | | | | | | | | | libavformat 0.6 does not pass the original URI pointer to the "open" method, which leads to a crash because MPD was using a dirty hack to pass a pointer to that method. This patch switches to av_open_input_stream() with a custom ByteIOContext class, instead of doing the URI string hack with av_open_input_file(). Loosely based on a patch from Jasper St. Pierre.
| * decoder/ffmpeg: manual format probingMax Kellermann2010-06-301-4/+47
| | | | | | | | | | | | | | | | | | Use the libavformat function av_probe_input_format() to probe the AVInputFormat, instead of letting av_open_input_file() do it implicitly. We will switch to av_open_input_stream() very soon, which does not have the probing code. Loosely based on a patch from Jasper St. Pierre.
| * decoder/ffmpeg: free URI, fix memory leakMax Kellermann2010-06-302-1/+4
| | | | | | | | Free the string allocated by decoder_get_uri().
| * decoder/vorbis: handle uri==NULLMax Kellermann2010-06-302-0/+4
| | | | | | | | This fixes a theoretical crash, which has never occurred in practice.
| * ffmpeg: read more metadata.Anton Khirnov2010-06-302-1/+11
| |
| * decoder/ffmpeg: free AVFormatContext on errorMax Kellermann2010-06-302-0/+5
| | | | | | | | Fix a memory leak in some code paths.
| * configure.ac: check ffmpeg version number with pkg-configMax Kellermann2010-06-301-9/+1
| | | | | | | | | | Replace the check for avcodec_decode_audio2(), assume it's present in libavcodec version 51.
| * pcm_buffer: make the buffer pointer "void"Max Kellermann2010-06-301-1/+1
| |
| * decoder/mp4ff: support tag "album artist"Max Kellermann2010-06-302-1/+2
| | | | | | | | | | We already supported "albumartist", but it seems some folks also use "album artist" (with a space).
| * Make get_remote_uid() work on BSDAndreas Vögele2010-06-303-1/+9
| | | | | | | | | | | | 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.
| * playlist: emit IDLE_OPTIONS when resetting single modeMax Kellermann2010-06-302-0/+4
| |
| * directory_print: return voidMax Kellermann2010-06-302-7/+3
| | | | | | | | There is no useful return value here.
| * decoder/mikmod: fix memory leakMax Kellermann2010-06-302-2/+5
| | | | | | | | | | The return value of Player_LoadTitle() is allocated with malloc(), and must be freed by the caller.
| * decoder/mp4ff: remove duplicate entries in the tag name tableMax Kellermann2010-06-301-9/+5
| | | | | | | | Reuse the function tag_name_parse_i().
| * decoder/mp4ff: moved code to mp4ff_tag_name_parse()Max Kellermann2010-06-301-1/+7
| |
| * tag_ape: remove duplicate entries in the tag name tableMax Kellermann2010-06-301-7/+5
| | | | | | | | Reuse the function tag_name_parse_i().
| * tag: added function tag_name_parse()Max Kellermann2010-06-303-12/+60
| | | | | | | | Convert a string into a tag_type enum.
| * tag_ape: move code to tag_ape_name_parse()Max Kellermann2010-06-301-1/+7
| |
| * decoder/vorbis: use single global ov_callbacks constantMax Kellermann2010-06-301-7/+9
| | | | | | | | Initialize the ov_callbacks struct at compile time.
| * decoder/mp4ff: support tags "albumartist", "band"Max Kellermann2010-06-302-0/+4
| | | | | | | | | | 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 namesMax Kellermann2010-06-301-18/+15
| | | | | | | | Convert if/else/else/... to a loop.
| * tag_ape: move table lookup to tag_table.hMax Kellermann2010-06-303-9/+53
| | | | | | | | Allow code sharing.
| * tag_ape: support album artistMax Kellermann2010-06-302-0/+3
| | | | | | | | | | | | | | | | | | | | I took this tag name from a MusePack sample file I got from a user. It is 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.
| * tag_ape: simplified the apeItems arrayMax Kellermann2010-06-301-22/+12
| | | | | | | | | | Make "enum tag_type" the array index, and convert apeItems to a sparse array.
| * tag_ape: moved code to tag_ape_import_item()Max Kellermann2010-06-301-12/+22
| | | | | | | | Improve code readability.
| * tag_ape: converted apeItems and tagItems to global varsMax Kellermann2010-06-301-20/+20
| | | | | | | | Don't initialize those arrays each time tag_ape_load() is called.
| * Modify version string to post-release version 0.15.11~gitAvuton Olrich2010-05-302-1/+4
| |
* | decoder/ffmpeg: fix libavformat 0.6 by using av_open_input_stream()Max Kellermann2010-07-191-89/+65
| | | | | | | | | | | | | | | | | | | | | | | | libavformat 0.6 does not pass the original URI pointer to the "open" method, which leads to a crash because MPD was using a dirty hack to pass a pointer to that method. This patch switches to av_open_input_stream() with a custom ByteIOContext class, instead of doing the URI string hack with av_open_input_file(). Loosely based on a patch from Jasper St. Pierre.
* | decoder/ffmpeg: manual format probingMax Kellermann2010-07-191-2/+47
| | | | | | | | | | | | | | | | | | Use the libavformat function av_probe_input_format() to probe the AVInputFormat, instead of letting av_open_input_file() do it implicitly. We will switch to av_open_input_stream() very soon, which does not have the probing code. Loosely based on a patch from Jasper St. Pierre.
* | ffmpeg: read the audio stream metadata in addition to globalAnton Khirnov2010-07-121-1/+5
| | | | | | | | in some formats, e.g. vorbis, the metadata is stored per-stream.
* | ffmpeg: factor tag_type <-> ffmpeg tag name maps into a table.Anton Khirnov2010-07-121-21/+32
| |
* | configure.ac: check ffmpeg version number with pkg-configMax Kellermann2010-06-301-9/+1
| | | | | | | | | | Replace the check for avcodec_decode_audio2(), assume it's present in libavcodec version 51.
* | pcm_buffer: make the buffer pointer "void"Max Kellermann2010-06-301-1/+1
| |
* | decoder/mp4ff: support tag "album artist"Max Kellermann2010-06-252-1/+2
| | | | | | | | | | We already supported "albumartist", but it seems some folks also use "album artist" (with a space).
* | playlist_print: use playlist_open_any()Max Kellermann2010-06-251-2/+2
| | | | | | | | | | Allow printing remote playlists with the commands "listplaylist" and "listplaylistinfo".
* | playlist_queue: use playlist_open_any()Max Kellermann2010-06-251-48/+2
| |
* | playlist_any: new library to simplify opening playlist filesMax Kellermann2010-06-253-0/+110
| | | | | | | | | | | | The new function playlist_open_any() combines playlist_mapper_open(), playlist_list_open_uri() and playlist_list_open_stream(), providing an easy API for all of them.
* | playlist_list: probe plugin without MIME attributesMax Kellermann2010-06-251-3/+23
| | | | | | | | | | If the MIME type of a stream contains a semicolon, remove it and the text after it to probe for a playlist plugin.
* | playlist_queue: simplify error handlerMax Kellermann2010-06-251-9/+8
| | | | | | | | Return early on error, save one level of indent.
* | playlist_list: moved input_stream.ready loop to calling functionMax Kellermann2010-06-251-22/+11
| | | | | | | | | | | | Merged both loops into playlist_list_open_stream(). This is needed because playlist_list_open_stream() needs to know the MIME type, which is only known after the stream has become "ready".
* | uri: really count dots in verify_uri_segment()Max Kellermann2010-06-251-1/+4
| | | | | | | | | | | | This buggy implementation failed to allow "..." sequences, because the dot count was always zero. The usefulness of allowing "..." (or more dots) is debatable, but since it's a valid file name, we allow it.
* | update .gitignoreMax Kellermann2010-06-251-0/+2
| |
* | playlist/cue: last track ends at end of fileMax Kellermann2010-06-251-3/+2
| | | | | | | | | | | | | | | | libcue's track_get_length() returns 0 for the last track, because that information is not available in the CUE sheet. This makes MPD quit playing the last track immediately. If we set "song.end_ms=0", MPD will play the track until the end of the song file, which is what we want.
* | test/dump_playlist: print open-ended rangeMax Kellermann2010-06-251-1/+5
| |
* | song_print: simplified start_ms/end_ms checkMax Kellermann2010-06-251-12/+10
| |
* | playlist_list: wait for input stream to become readyAaron Griffith2010-06-251-0/+22
| | | | | | | | Fixes an assertion failure in the input_stream_seek() call.
* | Modify version string to post-release version 0.16~gitAvuton Olrich2010-06-221-1/+1
| |
* | mpd version 0.16~alpha1release-0.16_alpha1Avuton Olrich2010-06-221-1/+1
| |