aboutsummaryrefslogtreecommitdiffstats
path: root/src/output (follow)
Commit message (Collapse)AuthorAgeFilesLines
* output/alsa: split the frame_size attributeMax Kellermann2012-03-221-6/+18
| | | | Make it in_frame_size and out_frame_size, to account for packing.
* audio_format: remove the packed S24 formatMax Kellermann2012-03-224-7/+0
| | | | | | For simplicity, the MPD core should not have to deal with packing. It is rarely used, and those plugins that need it should use the pcm_export library instead.
* output/alsa: use pcm_export to pack 24 bit samplesMax Kellermann2012-03-221-15/+48
|
* output/oss: use pcm_export to pack 24 bit samplesMax Kellermann2012-03-221-10/+15
|
* pcm_export: add option "pack"Max Kellermann2012-03-222-1/+2
| | | | | Converts padded 24 bit samples to packed 24 bit samples. Will replace the packed S24 sample format, which is not used internally.
* output/oss: remember the real OSS formatMax Kellermann2012-03-221-5/+13
| | | | | Improving oss_reopen() by using the very same value that was used initially.
* output/alsa: simplify setup_format()Max Kellermann2012-03-221-7/+4
|
* output/alsa: don't pass audio_format to _try_format()Max Kellermann2012-03-221-16/+13
| | | | Let the caller configure the audio_format object.
* output/alsa: simplify alsa_output_try_format_both()Max Kellermann2012-03-221-45/+18
| | | | Merge three functions into one and call get_bitformat() only once.
* output/oss: move code to oss_probe_sample_format()Max Kellermann2012-03-211-34/+59
|
* output/{alsa,oss}: move endian code to new library pcm_exportMax Kellermann2012-03-212-61/+23
|
* audio_format: remove the reverse_endian attributeMax Kellermann2012-03-211-3/+1
| | | | | | Eliminate support for reverse endian samples from the MPD core. This moves a lot of complexity to the plugins that really need it (only ALSA and CDIO currently).
* output/oss: always receive host byte order samplesMax Kellermann2012-03-211-7/+68
| | | | Don't use audio_format.reverse_endian.
* output/alsa: always receive host byte order samplesMax Kellermann2012-03-211-3/+61
| | | | Don't use audio_format.reverse_endian.
* output/alsa: merge alsa_data_free() into destructorMax Kellermann2012-03-211-8/+3
|
* Fix the build on OSXRich Healey2012-03-211-0/+1
|
* audio_format: remove the format SAMPLE_FORMAT_DSD_LSBFIRSTMax Kellermann2012-03-212-2/+0
| | | | | This format is unused since the DSDIFF decoder plugin now reverses the bit order.
* audio_format: basic support for DSD-over-USBMax Kellermann2012-03-192-0/+2
|
* use g_strerror() instead of strerror()Max Kellermann2012-03-064-19/+19
| | | | Make sure we get a UTF-8 encoded string.
* raop_output: fix raop_session inbalanceKurt Van Dijck2012-03-011-2/+8
| | | | | | | | raop_session_free must be called from raop_output_finish, not from raop_output_remove. In raop_output_remove, do close the ntp_server & control port. Signed-off-by: Kurt Van Dijck <kurt.van.dijck@skynet.be>
* audio_format: add DSD sample formatMax Kellermann2012-03-012-0/+4
| | | | | Basic support for Direct Stream Digital. No conversion yet, and no decoder/output plugin support.
* Merge branch 'v0.16.x'Max Kellermann2012-02-131-5/+1
|\ | | | | | | | | | | | | | | Conflicts: NEWS configure.ac src/decoder/ffmpeg_decoder_plugin.c test/read_tags.c
| * output/winmm: remove pointless NULL checkMax Kellermann2012-02-131-5/+1
| | | | | | | | pcm_buffer_get() cannot ever return NULL.
* | output/osx: fix memory leak after AudioUnitSetProperty() failureMax Kellermann2012-01-041-0/+1
| |
* | output/osx: implement 32 bit playbackMax Kellermann2011-12-241-2/+6
| |
* | output/osx: allocate the device in enable()Max Kellermann2011-12-241-102/+116
| | | | | | | | | | Keep the device open as long as the output is enabled, but initialize it only when playback starts.
* | Merge branch 'v0.16.x'Max Kellermann2011-12-241-6/+3
|\|
| * output/osx: clear render buffer when there's not enough dataMax Kellermann2011-12-241-2/+3
| | | | | | | | | | | | When we don't have enough data, generate some silence, hoping the input buffer will fill soon. Reducing the render buffer size is not legal.
| * output/osx: remove sleep call from render callbackMax Kellermann2011-12-241-4/+0
| | | | | | | | | | Blocking inside the render callback is forbidden, and this sleep call didn't make any sense.
* | output/openal: improve synchronizationMax Kellermann2011-12-131-13/+16
| | | | | | | | | | | | | | | | | | This plugin's use of the "Timer" library was wrong; it added the same amount of virtual data in every iteration in _play(), but did not actually play something. This created an artificial, but useless, delay. This patch implements the method _cancel(), and implements hard-coded sleep values. This is only slightly better, but does not attempt to look sane.
* | output/openal: move code to inline functionsMax Kellermann2011-12-131-9/+25
| |
* | output/openal: use alGetSourcei(AL_BUFFER) to force-unqueue buffersMax Kellermann2011-12-131-14/+4
| | | | | | | | | | | | | | | | The implementation of cancel() did not work well: you cannot use alSourceUnqueueBuffers() to unqueue queued buffers, and our function openal_unqueue_buffers() left the OpenAL library in a rather undefined state; nothing was supposed to be queued, but the "filled" variable was not reset.
* | output/openal: make attribute "filled" unsignedMax Kellermann2011-12-131-1/+1
| |
* | output/openal: remove bogus format check from _open()Max Kellermann2011-12-131-8/+0
| | | | | | | | The expression "!format" does not make sense, and cannot occur.
* | output/fifo: implement output_plugin method delay()Max Kellermann2011-12-131-3/+11
| |
* | output/null: implement output_plugin method delay()Max Kellermann2011-12-131-3/+11
| |
* | output/null: don't initialize the "timer" attribute in _init()Max Kellermann2011-12-131-6/+1
| | | | | | | | Unnecessary overhead.
* | Merge branch 'v0.16.x'Max Kellermann2011-12-131-10/+4
|\| | | | | | | | | | | Conflicts: NEWS configure.ac
| * output/openal: force 16 bit playback, as 8 bit doesn't workMax Kellermann2011-12-131-10/+4
| | | | | | | | | | | | The OpenAL specification says that AL_FORMAT_MONO8 and AL_FORMAT_STEREO8 expect unsigned 8 bit samples, but MPD uses unsigned samples.
* | winmm_output_plugin: fail if wrong device specified instead of using fallback.Denis Krjuchkov2011-12-131-12/+29
| | | | | | | | | | Silently choosing default is misleading and can cause hours of investigation. It's better to fail immediately telling user what is wrong with config.
* | audio_format: basic support for floating point samplesMax Kellermann2011-10-202-0/+4
| | | | | | | | | | Support for conversion from float to 16, 24 and 32 bit integer samples.
* | output/roar: move code to _use_audio_format()Max Kellermann2011-10-081-27/+38
| |
* | 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.
* | 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.
* | Simplify setsockopt() casting workaroundDan McGee2011-09-211-2/+2
| | | | | | | | | | | | | | | | | | On Win32, the third setsockopt parameter has type (char *) while on POSIX systems it is (void *). However, given that it is a no-op cast to go from a char pointer to a void pointer, we can cast to a char pointer (with a possible const modifier) on all platforms and satisfy the compiler. Signed-off-by: Dan McGee <dan@archlinux.org>
* | socket_util: move sockaddr_to_string() to resolver.cMax Kellermann2011-09-201-1/+1
| |
* | rtsp_client, output/raop: use close_socket() instead of close()Max Kellermann2011-09-201-4/+4
| |
* | Merge branch 'v0.16.x'Max Kellermann2011-09-203-8/+23
|\|