aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* pcm_byteswap: use GLib byte swapping macrosMax Kellermann2011-10-101-15/+2
| | | | | GLib's macros are implemented with inline assembly, and probably a lot faster than our naive bit shifting implementation.
* pcm_{mix,volume}: pass only sample_format to pcm_mix()Max Kellermann2011-10-107-18/+19
| | | | The other audio_format attributes are not used.
* pcm_buffer: un-inline pcm_buffer_get()Max Kellermann2011-10-102-14/+38
| | | | This function is too complex for being inlined everywhere.
* input/cdio_paranoia: pass byte order swapping to the PCM "decoder"Max Kellermann2011-10-101-32/+11
| | | | | | Send another "magic" MIME type when the byte order must be reversed. This also fixes byte order issues when big-endian was involved (input data or host byte order) - that was completely broken.
* decoder/pcm: support reverse byte orderMax Kellermann2011-10-101-3/+21
|
* decoder_api: convert data to host byte orderMax Kellermann2011-10-101-0/+3
|
* pcm_convert: support reverse endian inputMax Kellermann2011-10-101-0/+14
|
* pcm_byteswap: add function with sample_format overloadMax Kellermann2011-10-102-0/+43
|
* audio_format: convert reverse_endian to a "bool"Max Kellermann2011-10-102-4/+4
|
* audio_format: un-inline audio_format_mask_apply()Max Kellermann2011-10-102-17/+21
| | | | | This function is not critical for performance, and the inline expansion looks too expensive.
* audio_format: add function attributesMax Kellermann2011-10-102-0/+10
| | | | For better optimization.
* audio: rename audio.[ch] to audio_config.[ch]Max Kellermann2011-10-104-5/+5
|
* Makefile.am: generate static library from pluginsMax Kellermann2011-10-091-0/+30
| | | | Compile the plugins only once with the same C flags.
* don't define WINVER in *.c filesMax Kellermann2011-10-0910-10/+0
| | | | | In a C file, that is too late, because _mingw.h defaults to 0x0502, and ours would be illegal redefintion.
* decoder/{pcm,dsdiff}: add missing stdio.h includeMax Kellermann2011-10-093-0/+3
|
* Merge commit 'release-0.16.5'Max Kellermann2011-10-092-2/+2
|\ | | | | | | | | | | Conflicts: NEWS configure.ac
| * decoder/wavpack: don't call WavpackGetMode() twiceMax Kellermann2011-10-081-1/+1
| | | | | | | | Use local variable "is_float".
| * pcm_convert: fix typo in error messageMax Kellermann2011-10-081-1/+1
| |
* | audio_format: move code to sample_format_size()Max Kellermann2011-10-081-6/+13
| | | | | | | | | | Cast to enum sample_format. Without the cast, it's just a plain integer, and gcc cannot know that a "case" statement is missing.
* | pcm_resample_lsr: move common code to lsr_process()Max Kellermann2011-10-081-32/+17
| |
* | output/roar: move code to _use_audio_format()Max Kellermann2011-10-081-27/+38
| |
* | db_print: print absolute URI of playlist entriesMax Kellermann2011-10-083-5/+21
| | | | | | | | | | | | | | The protocol mandates that playlist URIs are absolute (i.e. full URI relative to the music directory, not relative to the parent directory). This adds the parameter "directory" to the "playlist" visitor method.
* | Merge branch 'v0.16.x'Max Kellermann2011-10-082-12/+15
|\|
| * output/openal: auto-fallback to mono if channel count is unsupportedMax Kellermann2011-10-081-9/+9
| | | | | | | | .. instead of failing playback completely.
| * output/alsa: remove "default" case from switchMax Kellermann2011-10-081-3/+6
| | | | | | | | Allow gcc to warn when a new format isn't supported.
* | pcm_resample: add internal function _lsr_init()Max Kellermann2011-10-084-8/+26
| | | | | | | | Let the libsamplerate code initialize itself.
* | pcm_resample: one-time global initializationMax Kellermann2011-10-085-42/+84
| | | | | | | | | | Load the samplerate_converter on MPD startup. Fail if the converter name is invalid.
* | decoder/dsdiff: add option "lsbitfirst"Max Kellermann2011-10-071-1/+11
| | | | | | | | Defaults to "no", which fixes the noise problems.
* | decoder/dsdiff: add documentationMax Kellermann2011-10-071-0/+7
| |
* | playlist_song: allow references to songs outside the musicdirMax Kellermann2011-10-061-0/+6
| | | | | | | | | | | | 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-068-54/+140
|\| | | | | | | | | | | | | | | 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-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | 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-5/+17
| | | | | | | | | | | | | | 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_thread: move code to player_open_output()Max Kellermann2011-10-061-22/+37
| | | | | | | | | | Common function that manages "player" attributes after audio_output_all_open() has returned.
| * output_control: remove unused prototype _close_locked()Max Kellermann2011-10-061-3/+0
| |
| * player_control: auto-start playback when seeking is requestedMax Kellermann2011-10-061-3/+0
| | | | | | | | | | 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-2/+10
| |
| * decoder_api: call _prepare_initial_seek() in decoder_tag()Max Kellermann2011-10-061-1/+1
| | | | | | | | | | This checks both conditions: pending and running. Fixes yet another assertion failure!
| * decoder_api: move code to _prepare_initial_seek()Max Kellermann2011-10-061-7/+31
| | | | | | | | .. and add a few code comments.
| * decoder_control: add attributes start_ms, end_msMax Kellermann2011-10-055-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 seekMax Kellermann2011-10-051-3/+8
| | | | | | | | Fixes one more assertion failure.
| * decoder_api: clear initial_seek_running on errorMax Kellermann2011-10-041-1/+3
| | | | | | | | Fixes possible assertion failure.
* | decoder/dsdiff: new decoder pluginMax Kellermann2011-10-043-0/+512
| | | | | | | | | | Doesn't seem to work yet, getting just noise from a test file. Seeking isn't implemented yet.
* | dsd2pcm/noiseshape: fix typo in C++ checkMax Kellermann2011-10-041-2/+2
| |
* | dsd2pcm: fix prototypesMax Kellermann2011-10-042-3/+3
| | | | | | | | Fixes gcc warnings.
* | import dsd2pcm_src.zipSebastian Gesemann2011-10-048-0/+637
| | | | | | | | | | | | | | [this is the code from dsd2pcm_src.zip, published on a forum by Sebastian Gesemann. Upon request, he has given permission to redistribute and modify his code, without referring to a specific license. - mk]
* | audio_format: add constant MAX_CHANNELSMax Kellermann2011-10-041-1/+3
| | | | | | | | To be used in fixed-size arrays.
* | Add support for streaming to a DLNA clientSteven Blackburn2011-09-301-5/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-225-17/+79
|\| | | | | | | | | Conflicts: src/player_thread.c
| * decoder_api: emulate SEEK command for initial seek to CUE trackMax Kellermann2011-09-224-16/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.