aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* decoder/flac: use pcm_buffer instead of fixed bufferMax Kellermann2009-11-102-39/+31
| | | | | | This is a great simplification for flac_common_write(), because we can convert and submit all of the buffer in one turn. No more partial buffers with complicated formulas.
* decoder/flac: added function flac_data_deinit()Max Kellermann2009-11-104-17/+26
| | | | Clean up tag and replay_gain_info there.
* configure.ac: require GLib 2.12Max Kellermann2009-11-109-1/+43
| | | | | | Drop the required GLib version from 2.16 to 2.12, because many current systems still don't have GLib 2.16. This requires several new compatibility functions in glib_compat.h.
* Merge branch 'v0.15.x'Max Kellermann2009-11-101-0/+4
|\ | | | | | | | | | | Conflicts: src/input/lastfm_input_plugin.c src/song_save.c
| * sticker: added fallback for sqlite3_prepare_v2()Max Kellermann2009-11-101-0/+4
| | | | | | | | This function was not present in SQLite < 3.4.
| * input/lastfm: fixed variable name in GLib<2.16 code pathMax Kellermann2009-11-101-1/+1
| | | | | | | | Should be "lastfm_user", not "lastfm_username".
| * song_save: increased maximum line length to 32 kBMax Kellermann2009-11-011-3/+7
| | | | | | | | | | | | | | The line buffer had a fixed size of 5 kB, and was allocated on the stack. This was too small for some users. As a hotfix, we're increasing the buffer size to 32 kB now, allocated on the heap. In MPD 0.16, we'll switch to dynamic allocation.
* | moved GLib compatibility code to glib_compat.hMax Kellermann2009-11-102-10/+44
| |
* | decoder/flac: pass void pointer to flac_convert()Max Kellermann2009-11-101-5/+5
| | | | | | | | | | That function diverts into various bit formats; it doesn't need a typed pointer.
* | decoder/flac: pass audio_format.bits to flac_convert()Max Kellermann2009-11-101-11/+8
| | | | | | | | | | Don't use audio_format_sample_size() for identifying the sample format.
* | fd_util: removed creat_cloexec()Max Kellermann2009-11-109-39/+13
| | | | | | | | Add a "mode" argument to open_cloexec() instead.
* | fd_util: added function pipe_cloexec()Max Kellermann2009-11-102-2/+31
| | | | | | | | Same as pipe_cloexec_nonblock(), but doesn't set non-blocking mode.
* | decoder_list: fix decoder_plugin_from_mime_type()Max Kellermann2009-11-091-1/+1
| | | | | | | | | | Copy'n'paste error: call decoder_plugin_supports_mime_type() instead of decoder_plugin_supports_suffix().
* | output/alsa: fill period buffer with silence before drainingMax Kellermann2009-11-091-3/+47
| | | | | | | | | | | | | | | | | | ALSA passes full period buffers to the hardware. If an application doesn't finish writing a period, libasound will nonetheless send the partial buffer (with undefined trailing data). This causes noise at the end of playback. This patch attempts to track the current position within the period buffer, and generates silence at the end, before calling snd_pcm_drain().
* | player_thread: drain audio outputs at the end of the playlistMax Kellermann2009-11-091-1/+5
| | | | | | | | | | | | | | | | When there's no queued song, and the current one has finished playing, first make sure that the hardware outputs have really finished playing the last chunk: call the drain() method in all audio outputs. Without this patch, MPD stopped playback shortly before the ALSA sound card had finished playing.
* | output_thread: added command DRAINMax Kellermann2009-11-096-0/+47
| | | | | | | | | | This command manually drains the hardware buffer. This is useful when the player thread want to make sure that everything has been played.
* | player_control: removed the "volatile" attributeMax Kellermann2009-11-091-2/+2
| | | | | | | | | | Our use of the "volatile" keyword was wrong from the start, and now that we have proper locking, we can safely remove all of them.
* | fd_util: added missing NONBLOCK fallback for socket()Max Kellermann2009-11-081-1/+3
| |
* | fd_util: relicense under BSD 2-clauseMax Kellermann2009-11-082-22/+40
| | | | | | | | | | We'll copy this code to libmpdclient, and that's easier if its license is BSD.
* | utils: removed function set_nonblocking()Max Kellermann2009-11-082-32/+0
| | | | | | | | It's not used anymore, its features have been moved to fd_util.c.
* | fd_util: added O_NONBLOCK functionsMax Kellermann2009-11-086-26/+55
| | | | | | | | | | Changed the wrappers for pipe(), socket(), accept(). On WIN32, this does not work for pipe().
* | fd_util: fixed typo in API documentationMax Kellermann2009-11-081-6/+6
| |
* | encoder/null: removed empty close() methodMax Kellermann2009-11-081-6/+0
| | | | | | | | That's an optional method.
* | encoder/null: removed unused audio_format attributeMax Kellermann2009-11-081-5/+2
| |
* | fd_util: added API documentationMax Kellermann2009-11-081-0/+24
| |
* | fd_util: unexport fd_set_cloexec()Max Kellermann2009-11-082-4/+1
| | | | | | | | This function is used only internally.
* | inotify: set close-on-exec flagMax Kellermann2009-11-073-1/+31
| | | | | | | | Added wrapper for inotify_init1() to fd_util.c.
* | set the close-on-exec flag on all file descriptorsMax Kellermann2009-11-0714-23/+259
| | | | | | | | | | | | | | | | | | | | | | Added the "fd_util" library, which attempts to use the new thread-safe Linux system calls pipe2(), accept4() and the options O_CLOEXEC, SOCK_CLOEXEC. Without these, it falls back to FD_CLOEXEC, which is not thread safe. This is particularly important for the "pipe" output plugin (and others, such as JACK/PulseAudio), because we were heavily leaking file descriptors to child processes.
* | decoder_thread: close input fileMax Kellermann2009-11-071-3/+10
| | | | | | | | | | An input_stream_close() call was missing after today's code reorganization.
* | log: redirect stdout/stderr to /dev/null if syslog is usedMax Kellermann2009-11-071-1/+4
| | | | | | | | | | Don't hold a file descriptor on root's tty when syslog is used for logging.
* | output/jack: added option "server_name"Max Kellermann2009-11-071-1/+8
| |
* | output_all: automatically attempt to re-enable failed outputsMax Kellermann2009-11-071-0/+1
| | | | | | | | | | | | | | When an output's enable() method has failed, and playback starts, retry to enable it. Without this, the user may be confused, because he sees the device is "enabled" but cannot use it, and currently there is no error message in the log.
* | output/httpd: moved code to httpd_output_bind()Max Kellermann2009-11-071-28/+48
| |
* | exclude: use GPatternSpec instead of fnmatch()Max Kellermann2009-11-071-5/+5
| | | | | | | | GLib's version of fnmatch() is more portable.
* | added missing source file decoder_print.cMax Kellermann2009-11-072-0/+81
| |
* | database: I/O error handling in db_save()Max Kellermann2009-11-073-19/+16
| | | | | | | | Check ferror() instead of the fprintf() return value.
* | update_walk: log new container filesMax Kellermann2009-11-071-1/+4
| |
* | command: added command "decoders"Max Kellermann2009-11-071-0/+10
| | | | | | | | | | This command prints a list of decoder plugins and their suffixes / MIME types.
* | decoder_list: moved print_all_decoders() to cmdline.cMax Kellermann2009-11-073-28/+27
| | | | | | | | | | | | Export the decoder_plugins array. The function decoder_plugin_print_all_decoders() it is UI specific and should not live in this backend library.
* | decoder_thread: check for STOP before calling the pluginMax Kellermann2009-11-071-0/+6
| | | | | | | | | | Before calling the plugin's decode method, we should ensure that we didn't receive a STOP command during initialization.
* | decoder_thread: moved code to decoder_input_stream_open()Max Kellermann2009-11-071-27/+50
| | | | | | | | | | | | This function opens the stream and waits for it to become ready; meanwhile it checks for STOP commands. It is code moved from decoder_run_stream().
* | decoder_thread: added local variable "dc" in decoder_run_file()Max Kellermann2009-11-071-6/+7
| | | | | | | | Simplify the expressions.
* | output/jack: free source port names on exitMax Kellermann2009-11-071-0/+3
| | | | | | | | Make valgrind happy.
* | decoder_list: pass previous plugin pointer to lookup functionsMax Kellermann2009-11-074-19/+40
| | | | | | | | Remove the static integer hack, that's not thread safe and sucks.
* | decoder_list: moved suffix/mime_type checks to decoder_plugin.cMax Kellermann2009-11-073-4/+64
| |
* | decoder_list: back to NULL terminated listMax Kellermann2009-11-071-7/+8
| | | | | | | | A NULL terminated list is easier to iterate.
* | decoder_thread: open input stream on demandMax Kellermann2009-11-071-72/+59
| | | | | | | | | | | | Moved the global input stream opener to decoder_run_stream(). decoder_run_file() now opens the input stream each time a plugin provides a stream decoder method.
* | decoder_thread: moved plugin loops to separate functionsMax Kellermann2009-11-071-82/+127
| | | | | | | | Tame the large decoder_run_song() function.
* | uri: added function attributesMax Kellermann2009-11-071-0/+5
| | | | | | | | Let gcc optimize a little bit more.
* | utils: renamed stringFoundInStringArray()Max Kellermann2009-11-066-30/+35
| | | | | | | | | | No CamelCase. Use bool instead of int. Make both arguments mandatory.