aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2009-11-11decoder/flac: moved code to flac_compat.hMax Kellermann3-113/+134
2009-11-11decoder/{flac,vorbis}: include config.h for LFSMax Kellermann3-0/+3
Allow those plugins to open large files on 32 bit platforms.
2009-11-11decoder/flac: merged code into flac_decoder_loop()Max Kellermann1-101/+55
The decoder loop of flac_decode_internal(), flac_container_decode() and flac_filedecode_internal() is merged into this one function. This unifies the code, and uses the frame number to identify the end of a CUE sub song.
2009-11-11decoder/flac: keep track of current frame numberMax Kellermann4-0/+12
We need this for more exact end-of-subsong detection for CUE files.
2009-11-11fd_util: don't call fd_set_nonblock() if open() has failedMax Kellermann1-1/+2
This fixes an assertion failure.
2009-11-11added missing config.h includes for extended LFS supportMax Kellermann7-4/+8
All sources which might work with large files must include config.h, to get Large File Support on 32 bit platforms.
2009-11-11update: added missing config.h includesMax Kellermann2-1/+7
This broke sticker and archive support.
2009-11-11decoder/flac: fixed CUE seeking range checkMax Kellermann1-14/+8
If flac_container_decode() gets a seek destination which is out of range, it ignores the SEEK command (never finishes it). This leads to MPD lockup, because the player thread waits for completion.
2009-11-11decoder/flac: removed redundant NULL checksMax Kellermann1-9/+3
After the decoder loop, "flac_dec" is always set.
2009-11-11oggflac: rewind stream after FLAC detectionMax Kellermann1-0/+8
The oggflac plugin has been completely broken for quite a while and nobody has noticed - maybe we should remove it?
2009-11-11decoder/flac: moved code to flac_pcm.cMax Kellermann3-81/+133
2009-11-11decoder/flac: moved code to flac_metadata.cMax Kellermann6-175/+240
2009-11-11decoder/flac: return replay_gain_info object from helper functionMax Kellermann1-28/+24
Make the function more generic by not passing "struct flac_data" to it.
2009-11-11decoder/flac: merged some code into flac_tag_apply_metadata()Max Kellermann4-25/+27
2009-11-10decoder/oggflac: initialize the "tag" variableMax Kellermann1-1/+2
2009-11-10wave_encoder: new encoder for streaming PCM wave files.Viliam Mateicka2-0/+245
When using wave encoder with httpd audio output mpd can input this stream via http and audiofile decoder. This for example opens simple way to configure lossless audio streaming port(like jack or pulseaudio does but without overhead). Another possibility can be using it for gathering raw data for visualization plugins (If sync issue will be resolved)
2009-11-10decoder/flac: don't use float to calculate song durationMax Kellermann3-8/+10
Simple (up-rounding) integer division is good enough. We're casting the result back to an integer anyway.
2009-11-10decoder/flac: pass VorbisComment to comments_to_tag()Max Kellermann4-11/+12
2009-11-10decoder/flac: use pcm_buffer instead of fixed bufferMax Kellermann2-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.
2009-11-10decoder/flac: added function flac_data_deinit()Max Kellermann4-17/+26
Clean up tag and replay_gain_info there.
2009-11-10configure.ac: require GLib 2.12Max Kellermann9-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.
2009-11-10moved GLib compatibility code to glib_compat.hMax Kellermann2-10/+44
2009-11-10sticker: added fallback for sqlite3_prepare_v2()Max Kellermann1-0/+4
This function was not present in SQLite < 3.4.
2009-11-10input/lastfm: fixed variable name in GLib<2.16 code pathMax Kellermann1-1/+1
Should be "lastfm_user", not "lastfm_username".
2009-11-10decoder/flac: pass void pointer to flac_convert()Max Kellermann1-5/+5
That function diverts into various bit formats; it doesn't need a typed pointer.
2009-11-10decoder/flac: pass audio_format.bits to flac_convert()Max Kellermann1-11/+8
Don't use audio_format_sample_size() for identifying the sample format.
2009-11-10fd_util: removed creat_cloexec()Max Kellermann9-39/+13
Add a "mode" argument to open_cloexec() instead.
2009-11-10fd_util: added function pipe_cloexec()Max Kellermann2-2/+31
Same as pipe_cloexec_nonblock(), but doesn't set non-blocking mode.
2009-11-09decoder_list: fix decoder_plugin_from_mime_type()Max Kellermann1-1/+1
Copy'n'paste error: call decoder_plugin_supports_mime_type() instead of decoder_plugin_supports_suffix().
2009-11-09output/alsa: fill period buffer with silence before drainingMax Kellermann1-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().
2009-11-09player_thread: drain audio outputs at the end of the playlistMax Kellermann1-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.
2009-11-09output_thread: added command DRAINMax Kellermann6-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.
2009-11-09player_control: removed the "volatile" attributeMax Kellermann1-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.
2009-11-08fd_util: added missing NONBLOCK fallback for socket()Max Kellermann1-1/+3
2009-11-08fd_util: relicense under BSD 2-clauseMax Kellermann2-22/+40
We'll copy this code to libmpdclient, and that's easier if its license is BSD.
2009-11-08utils: removed function set_nonblocking()Max Kellermann2-32/+0
It's not used anymore, its features have been moved to fd_util.c.
2009-11-08fd_util: added O_NONBLOCK functionsMax Kellermann6-26/+55
Changed the wrappers for pipe(), socket(), accept(). On WIN32, this does not work for pipe().
2009-11-08fd_util: fixed typo in API documentationMax Kellermann1-6/+6
2009-11-08encoder/null: removed empty close() methodMax Kellermann1-6/+0
That's an optional method.
2009-11-08encoder/null: removed unused audio_format attributeMax Kellermann1-5/+2
2009-11-08fd_util: added API documentationMax Kellermann1-0/+24
2009-11-08fd_util: unexport fd_set_cloexec()Max Kellermann2-4/+1
This function is used only internally.
2009-11-07inotify: set close-on-exec flagMax Kellermann3-1/+31
Added wrapper for inotify_init1() to fd_util.c.
2009-11-07set the close-on-exec flag on all file descriptorsMax Kellermann14-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.
2009-11-07decoder_thread: close input fileMax Kellermann1-3/+10
An input_stream_close() call was missing after today's code reorganization.
2009-11-07log: redirect stdout/stderr to /dev/null if syslog is usedMax Kellermann1-1/+4
Don't hold a file descriptor on root's tty when syslog is used for logging.
2009-11-07output/jack: added option "server_name"Max Kellermann1-1/+8
2009-11-07output_all: automatically attempt to re-enable failed outputsMax Kellermann1-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.
2009-11-07output/httpd: moved code to httpd_output_bind()Max Kellermann1-28/+48
2009-11-07exclude: use GPatternSpec instead of fnmatch()Max Kellermann1-5/+5
GLib's version of fnmatch() is more portable.