Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | player_thread: move code to player_open_output() | Max Kellermann | 2011-10-06 | 1 | -22/+37 |
| | | | | | Common function that manages "player" attributes after audio_output_all_open() has returned. | ||||
* | output_control: remove unused prototype _close_locked() | Max Kellermann | 2011-10-06 | 1 | -3/+0 |
| | |||||
* | player_control: auto-start playback when seeking is requested | Max Kellermann | 2011-10-06 | 2 | -3/+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 playing | Max Kellermann | 2011-10-06 | 2 | -2/+13 |
| | |||||
* | decoder_api: call _prepare_initial_seek() in decoder_tag() | Max Kellermann | 2011-10-06 | 1 | -1/+1 |
| | | | | | This checks both conditions: pending and running. Fixes yet another assertion failure! | ||||
* | decoder_api: move code to _prepare_initial_seek() | Max Kellermann | 2011-10-06 | 1 | -7/+31 |
| | | | | .. and add a few code comments. | ||||
* | decoder_control: add attributes start_ms, end_ms | Max Kellermann | 2011-10-05 | 5 | -6/+31 |
| | | | | | Don't read song.start_ms and song.end_ms, let the player thread manage this logic instead. | ||||
* | decoder_api: don't copy tag to pipe during initial seek | Max Kellermann | 2011-10-05 | 1 | -3/+8 |
| | | | | Fixes one more assertion failure. | ||||
* | decoder_api: clear initial_seek_running on error | Max Kellermann | 2011-10-04 | 1 | -1/+3 |
| | | | | Fixes possible assertion failure. | ||||
* | Install systemd service file if systemd is available | Miklos Vajna | 2011-09-30 | 4 | -0/+27 |
| | |||||
* | decoder_api: emulate SEEK command for initial seek to CUE track | Max Kellermann | 2011-09-22 | 5 | -16/+74 |
| | | | | | | | | | | | | | 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. | ||||
* | decoder_internal.h: more API documentation | Max Kellermann | 2011-09-22 | 1 | -0/+5 |
| | |||||
* | utils: uri.h: fix a typo: "schema" | Jonathan Neuschäfer | 2011-09-21 | 1 | -1/+1 |
| | |||||
* | configure.ac: fix --enable-id3 help string | Max Kellermann | 2011-09-20 | 1 | -1/+1 |
| | |||||
* | fd_util: add function close_socket() | Max Kellermann | 2011-09-20 | 7 | -8/+26 |
| | | | | Wrap close(), use closesocket() on WIN32/WinSock. | ||||
* | fd_util: check HAVE_INOTIFY_INIT in header | Max Kellermann | 2011-09-20 | 1 | -0/+4 |
| | | | | Don't provide the prototype if inotify_init() was not detected. | ||||
* | fd_util: include check.h, verify config.h was included | Max Kellermann | 2011-09-20 | 1 | -0/+2 |
| | |||||
* | glib_socket.h: wrap g_io_channel_*_new() calls portably | Max Kellermann | 2011-09-20 | 6 | -16/+49 |
| | | | | | The server_socket library (used by the httpd output plugin) didn't check for WIN32, that's fixed now. | ||||
* | configure.ac: add option --enable-solaris-output | Max Kellermann | 2011-09-19 | 3 | -4/+34 |
| | | | | | Allow enabling the plugin explicitly without running Solaris, to test the build. | ||||
* | configure.ac: fix solaris result display | Max Kellermann | 2011-09-19 | 2 | -2/+4 |
| | | | | Wrong variable name. | ||||
* | decoder/audiofile: include stdio header for SEEK_* defines | Tim Harder | 2011-09-17 | 1 | -0/+1 |
| | | | | The stdio header is no longer pulled in by af_vfs.h in audiofile-0.3.0. | ||||
* | output/pulse: improve locking | Max Kellermann | 2011-09-17 | 1 | -11/+11 |
| | | | | | Always lock the main loop when operating on PULSE objects. Document this. | ||||
* | configure.ac: disable assertions in the non-debugging build | Max Kellermann | 2011-09-16 | 2 | -4/+4 |
| | | | | Add -DNDEBUG to AM_CPPFLAGS. | ||||
* | input/curl, output/pulse: fix "unused local variable" warnings | Max Kellermann | 2011-09-16 | 2 | -2/+3 |
| | |||||
* | configure.ac: enable -Werror for C++ | Max Kellermann | 2011-09-16 | 1 | -0/+1 |
| | |||||
* | configure.ac: pass AM_CXXFLAGS, AM_CPPFLAGS to Makefile.am | Max Kellermann | 2011-09-16 | 2 | -1/+3 |
| | |||||
* | decoder/ffmpeg: flush the codec after seeking | Max Kellermann | 2011-09-15 | 1 | -1/+3 |
| | | | | | Let the codec start with fresh buffers. This should fix the remaining seeking issues. | ||||
* | decoder/ffmpeg: explicitly specify the current stream for seeking | Max Kellermann | 2011-09-15 | 1 | -2/+11 |
| | | | | | Use AVStream.time_base to convert the decoder_seek_where() value, and pass the current stream number to av_seek_frame(). | ||||
* | decoder/ffmpeg: don't require key frame for seeking | Max Kellermann | 2011-09-15 | 2 | -1/+3 |
| | | | | Use flag AV_TIME_BASE. | ||||
* | decoder/ffmpeg: higher precision timestamps | Max Kellermann | 2011-09-15 | 2 | -1/+4 |
| | |||||
* | decoder/ffmpeg: move formula to time_from_ffmpeg() | Max Kellermann | 2011-09-15 | 1 | -2/+10 |
| | |||||
* | decoder/ffmpeg: add local variable "av_stream" | Max Kellermann | 2011-09-15 | 1 | -3/+4 |
| | | | | Code simplification. | ||||
* | input/rewind: copy the MIME type only once | Max Kellermann | 2011-09-15 | 2 | -1/+5 |
| | | | | Reduce heap usage by reducing the number of malloc() / free() calls. | ||||
* | .gitignore: add doxygen.conf | Max Kellermann | 2011-09-09 | 1 | -0/+1 |
| | |||||
* | pcm_format: fix 32-to-24 bit conversion (the "silence" bug) | Max Kellermann | 2011-09-08 | 2 | -2/+3 |
| | | | | | | 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~git | Avuton Olrich | 2011-09-01 | 2 | -1/+4 |
| | |||||
* | mpd version 0.16.4release-0.16.4 | Avuton Olrich | 2011-09-01 | 2 | -2/+2 |
| | |||||
* | configure.ac: fail if Vorbis was enabled explicitly, but not found | Max Kellermann | 2011-09-01 | 1 | -25/+18 |
| | | | | .. and a minor tweak for libFLAC+libogg detection. | ||||
* | configure.ac: fail if FLAC was enabled explicitly, but not found | Max Kellermann | 2011-09-01 | 1 | -6/+8 |
| | |||||
* | output/osx: don't drain the buffer when closing | Max Kellermann | 2011-09-01 | 2 | -6/+1 |
| | | | | Eliminate an unnecessary source of deadlocks. | ||||
* | output/osx: signal the GCond while mutex is locked | Max Kellermann | 2011-09-01 | 1 | -1/+1 |
| | |||||
* | configure.ac: auto-detect libmad without pkg-config | Max Kellermann | 2011-09-01 | 2 | -1/+3 |
| | | | | | The pkg-config file was added by the Debian package maintainers, and unfortunately, the rest of the world doesn't have it. | ||||
* | configure.ac: fail if libid3tag was enabled explicitly, but not found | Max Kellermann | 2011-09-01 | 2 | -10/+20 |
| | | | | | Add M4 function MPD_AUTO_PKG_LIB for pkg-config with AC_CHECK_LIB fallback. | ||||
* | configure.ac: use MPD_AUTO_PKG to detect avahi | Max Kellermann | 2011-09-01 | 2 | -14/+18 |
| | | | | | | 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. | ||||
* | Makefile.am: use AVAHI_CFLAGS, AVAHI_LIBS | Max Kellermann | 2011-09-01 | 2 | -2/+3 |
| | | | | Don't add those to MPD_CFLAGS / MPD_LIBS. | ||||
* | output_all: move _lock_signal() to output_control.c | Max Kellermann | 2011-09-01 | 3 | -21/+23 |
| | | | | Better name, better documentation. | ||||
* | output_thread: reimplement CANCEL synchronization | Max Kellermann | 2011-09-01 | 7 | -14/+35 |
| | | | | | | | | | | | | | | 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. | ||||
* | output/pulse: reset callbacks before closing stream/context | Max Kellermann | 2011-08-31 | 1 | -0/+10 |
| | | | | | Fixes assertion failure when a stream callback is invoked too late after a format change. | ||||
* | output/pulse: add function _delete_stream() | Max Kellermann | 2011-08-31 | 1 | -5/+16 |
| | | | | Merge common code. | ||||
* | output/pulse: use _delete_context() | Max Kellermann | 2011-08-31 | 1 | -16/+15 |
| | | | | Eliminate duplicate code. |