aboutsummaryrefslogtreecommitdiffstats
path: root/NEWS (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* | Merge branch 'v0.16.x'Max Kellermann2011-10-081-0/+2
|\|
| * output/openal: auto-fallback to mono if channel count is unsupportedMax Kellermann2011-10-081-0/+2
| | | | | | | | .. instead of failing playback completely.
* | playlist_song: allow references to songs outside the musicdirMax Kellermann2011-10-061-0/+2
| | | | | | | | | | | | When we have an absolute path that's not inside the music directory, allow loading it anyway, if we're in "secure" mode (i.e. the client is connected via UNIX socket).
* | Merge branch 'v0.16.x'Max Kellermann2011-10-061-0/+7
|\| | | | | | | | | | | | | | | Conflicts: configure.ac src/player_control.c src/player_thread.c src/playlist_song.c
| * playlist_song: fix absolute path support in playlistsJesús Bravo Álvarez2011-10-061-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Right now, a playlist with absolute pathnames can only add songs that are in the same the directory of the playlist or under it. If uri is an absolute pathname and base_uri is set, playlist_check_translate_song() will check that base_uri is a prefix of uri, excluding every other song in the music directory outside base_uri. I think in this case base_uri should be completely ignored (and made NULL) and uri should just be checked against music root directory.
| * player_thread: add flag "output_open", fixes assertion failureMax Kellermann2011-10-061-0/+1
| | | | | | | | | | | | | | Previously, the condition "defined(play_audio_format)" was used to see if an output device has been opened, but if the device had failed on startup, an assertion failure could occur. This patch adds a separate flag.
| * player_control: auto-start playback when seeking is requestedMax Kellermann2011-10-061-0/+1
| | | | | | | | | | Now that the player thread can handle SEEK commands while not (yet) playing, we can remove the "pc.state" check from pc_seek().
| * player_thread: handle SEEK while not playingMax Kellermann2011-10-061-0/+3
| |
| * Install systemd service file if systemd is availableMiklos Vajna2011-09-301-0/+1
| |
* | decoder/dsdiff: new decoder pluginMax Kellermann2011-10-041-0/+1
| | | | | | | | | | Doesn't seem to work yet, getting just noise from a test file. Seeking isn't implemented yet.
* | Add support for streaming to a DLNA clientSteven Blackburn2011-09-301-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Naim Uniti does not appear to support icecast-style streaming of FLAC music but does support the codec from a DLNA server. This change looks for "transferMode.dlna.org: Streaming" in the HTTP request header and responds with something the Uniti (and hopefully other DLNA clients) accepts. The only difference in the DLNA streaming mode is the reponse header and that icecast metadata is disabled. If a client request indicates both modes are supported, the DLNA mode is preferred (as the Uniti says it supports both but then rejects a FLAC ICY stream). Note: This change may be specific to Naim equipment (the only device it was tested on). E.g. the hardcoding of Content-Length which works but is not a logically correct value. The change should be backwards-compatible, so only those clients requesting a DLNA stream will see any difference.
* | Merge branch 'v0.16.x'Max Kellermann2011-09-221-0/+1
|\| | | | | | | | | Conflicts: src/player_thread.c
| * decoder_api: emulate SEEK command for initial seek to CUE trackMax Kellermann2011-09-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | When playing a CUE track, the player thread waited for the decoder to become ready, and then sent a SEEK command to the beginning of the CUE track. If that is near the start of the song file, and the track is short enough, the decoder could have finished decoding already at that point, and seeking fails. This commit makes this initial seek more robust: instead of letting the player thread deal with the difficult timings, let the decoder API emulate a SEEK command, and return it to the decoder plugin, as soon as the plugin finishes its initialization.
* | server_socket: use resolve_host_port() instead of getaddrinfo()Max Kellermann2011-09-201-0/+1
| | | | | | | | Allow port specification in "bind_to_address" settings.
* | Merge branch 'v0.16.x'Max Kellermann2011-09-201-1/+5
|\|
| * fd_util: add function close_socket()Max Kellermann2011-09-201-0/+1
| | | | | | | | Wrap close(), use closesocket() on WIN32/WinSock.
| * configure.ac: add option --enable-solaris-outputMax Kellermann2011-09-191-0/+1
| | | | | | | | | | Allow enabling the plugin explicitly without running Solaris, to test the build.
| * configure.ac: fix solaris result displayMax Kellermann2011-09-191-1/+3
| | | | | | | | Wrong variable name.
* | input_stream: non-blocking I/OMax Kellermann2011-09-161-0/+1
| | | | | | | | | | | | | | | | | | Add GMutex, GCond attributes which will be used by callers to conditionally wait on the stream. Remove the (now-useless) plugin method buffer(), wait on GCond instead. Lock the input_stream before each method call. Do the same with the playlist plugins.
* | Merge branch 'v0.16.x'Max Kellermann2011-09-161-0/+1
|\|
| * configure.ac: disable assertions in the non-debugging buildMax Kellermann2011-09-161-0/+1
| | | | | | | | Add -DNDEBUG to AM_CPPFLAGS.
* | Merge branch 'v0.16.x'Max Kellermann2011-09-151-0/+9
|\| | | | | | | | | | | Conflicts: NEWS configure.ac
| * decoder/ffmpeg: don't require key frame for seekingMax Kellermann2011-09-151-0/+1
| | | | | | | | Use flag AV_TIME_BASE.
| * decoder/ffmpeg: higher precision timestampsMax Kellermann2011-09-151-0/+2
| |
| * input/rewind: copy the MIME type only onceMax Kellermann2011-09-151-0/+2
| | | | | | | | Reduce heap usage by reducing the number of malloc() / free() calls.
| * pcm_format: fix 32-to-24 bit conversion (the "silence" bug)Max Kellermann2011-09-081-0/+1
| | | | | | | | | | | | D'oh, we were reading 16 bit integers instead of 32 bit integers! That caused silence when trying to play a 32 bit input file on a 24 bit sound card (e.g. USB sound chips with 24 bit packed samples).
| * Modify version string to post-release version 0.16.5~gitAvuton Olrich2011-09-011-0/+3
| |
* | Merge commit 'release-0.16.4'Max Kellermann2011-09-021-1/+1
|\| | | | | | | | | | | Conflicts: NEWS configure.ac
| * mpd version 0.16.4release-0.16.4Avuton Olrich2011-09-011-1/+1
| |
* | decoder/oggflac: delete this obsolete pluginMax Kellermann2011-09-011-0/+1
| | | | | | | | | | libOggFLAC has been deprecated for 5 years now, and we havn't been testing it for a long time. Let's delete it.
* | Merge branch 'v0.16.x'Max Kellermann2011-09-011-0/+5
|\| | | | | | | | | | | Conflicts: configure.ac src/output_control.c
| * output/osx: don't drain the buffer when closingMax Kellermann2011-09-011-0/+1
| | | | | | | | Eliminate an unnecessary source of deadlocks.
| * configure.ac: auto-detect libmad without pkg-configMax Kellermann2011-09-011-0/+1
| | | | | | | | | | The pkg-config file was added by the Debian package maintainers, and unfortunately, the rest of the world doesn't have it.
| * configure.ac: use MPD_AUTO_PKG to detect avahiMax Kellermann2011-09-011-0/+1
| | | | | | | | | | | | Don't abort the configure script when avahi could not be auto-detected. It previously did, because there was no custom "fail" action for PKG_CHECK_MODULES.
| * output_thread: reimplement CANCEL synchronizationMax Kellermann2011-09-011-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The output thread could hang indefinitely after finishing CANCEL, because it could have missed the signal while the output was not unlocked in ao_command_finished(). This patch removes the wait() call after CANCEL, and adds the flag "allow_play" instead. While this flag is set, playback is skipped. With this flag, there will not be any excess wait() call after the pipe has been cleared. This patch fixes a bug that causes mpd to discontinue playback after seeking, due to the race condition described above.
| * input/curl: implement a hard-coded timeout of 10 secondsMax Kellermann2011-08-261-0/+1
| | | | | | | | | | Be sure to stop the operation at some point when the server isn't responding.
* | input/soup: new input plugin based on libsoupMax Kellermann2011-08-241-0/+1
| | | | | | | | | | | | | | | | To demonstrate the new I/O thread. libsoup is well-integrated into the GLib main loop, which made this plugin pretty easy to write. As a side effect, we have to initialize the I/O thread in all debug programs that use the input API.
* | Merge branch 'v0.16.x'Max Kellermann2011-08-241-0/+5
|\|
| * output/pulse: fix deadlock when the stream was suspendedMax Kellermann2011-08-231-0/+1
| | | | | | | | | | Check if the stream is suspended; wake up the main loop when it becomes suspended.
| * pulse/output: fix deadlock when resuming the streamMax Kellermann2011-08-231-0/+1
| | | | | | | | Unlock the mainloop in all code paths.
| * input/curl: limit the receive buffer sizeMax Kellermann2011-08-231-0/+2
| |
| * output/httpd: don't warn on client disconnectMax Kellermann2011-08-231-0/+1
| | | | | | | | | | | | This warning should only be logged when we really received something. When the client disconnects, G_IO_IN is triggered, and the read returns G_IO_STATUS_EOF.
* | Merge branch 'v0.16.x'Max Kellermann2011-07-201-0/+7
|\| | | | | | | | | | | Conflicts: src/player_thread.c src/playlist_control.c
| * encoder_plugin: add method pre_tag()Max Kellermann2011-07-201-0/+2
| | | | | | | | | | | | | | In the "vorbis" plugin, this is a copy of the old flush() method, while flush() gets a lot of code remove, it just sets the "flush" flag and nothing else. It doesn't start a new stream now, which should fix a few problems in some players.
| * update_walk: apply follow_inside_symlinks to absolute symlinksMax Kellermann2011-07-201-0/+1
| |
| * wavpack: obey all decoder commands, stop at CUE track borderMax Kellermann2011-07-201-0/+1
| | | | | | | | It used to ignore the decoder_data() return value.
| * playlist_control: don't resume playback when seeking to another song while ↵Max Kellermann2011-07-201-0/+1
| | | | | | | | | | | | | | paused Use a shortcut in playlist_seek_song(), don't call playlist_play_order() because that would reset the "paused" state.
| * output/alsa: fix SIGFPE when alsa announces a period size of 0Max Kellermann2011-07-201-0/+2
| |
* | Merge branch 'v0.16.x'Max Kellermann2011-07-191-1/+8
|\| | | | | | | | | | | Conflicts: NEWS configure.ac
| * NEWS: fix memory leaksMax Kellermann2011-07-181-1/+2
| |