Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | output/osx: fix memory leak after AudioUnitSetProperty() failure | Max Kellermann | 2012-01-04 | 1 | -0/+1 |
| | |||||
* | output/osx: implement 32 bit playback | Max Kellermann | 2011-12-24 | 1 | -2/+6 |
| | |||||
* | output/osx: allocate the device in enable() | Max Kellermann | 2011-12-24 | 1 | -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 Kellermann | 2011-12-24 | 1 | -6/+3 |
|\ | |||||
| * | output/osx: clear render buffer when there's not enough data | Max Kellermann | 2011-12-24 | 1 | -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 callback | Max Kellermann | 2011-12-24 | 1 | -4/+0 |
| | | | | | | | | | | Blocking inside the render callback is forbidden, and this sleep call didn't make any sense. | ||||
* | | output/openal: improve synchronization | Max Kellermann | 2011-12-13 | 1 | -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 functions | Max Kellermann | 2011-12-13 | 1 | -9/+25 |
| | | |||||
* | | output/openal: use alGetSourcei(AL_BUFFER) to force-unqueue buffers | Max Kellermann | 2011-12-13 | 1 | -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" unsigned | Max Kellermann | 2011-12-13 | 1 | -1/+1 |
| | | |||||
* | | output/openal: remove bogus format check from _open() | Max Kellermann | 2011-12-13 | 1 | -8/+0 |
| | | | | | | | | The expression "!format" does not make sense, and cannot occur. | ||||
* | | output/fifo: implement output_plugin method delay() | Max Kellermann | 2011-12-13 | 1 | -3/+11 |
| | | |||||
* | | output/null: implement output_plugin method delay() | Max Kellermann | 2011-12-13 | 1 | -3/+11 |
| | | |||||
* | | output/null: don't initialize the "timer" attribute in _init() | Max Kellermann | 2011-12-13 | 1 | -6/+1 |
| | | | | | | | | Unnecessary overhead. | ||||
* | | Merge branch 'v0.16.x' | Max Kellermann | 2011-12-13 | 1 | -10/+4 |
|\| | | | | | | | | | | | Conflicts: NEWS configure.ac | ||||
| * | output/openal: force 16 bit playback, as 8 bit doesn't work | Max Kellermann | 2011-12-13 | 1 | -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 Krjuchkov | 2011-12-13 | 1 | -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 samples | Max Kellermann | 2011-10-20 | 2 | -0/+4 |
| | | | | | | | | | | Support for conversion from float to 16, 24 and 32 bit integer samples. | ||||
* | | output/roar: move code to _use_audio_format() | Max Kellermann | 2011-10-08 | 1 | -27/+38 |
| | | |||||
* | | Merge branch 'v0.16.x' | Max Kellermann | 2011-10-08 | 2 | -12/+15 |
|\| | |||||
| * | output/openal: auto-fallback to mono if channel count is unsupported | Max Kellermann | 2011-10-08 | 1 | -9/+9 |
| | | | | | | | | .. instead of failing playback completely. | ||||
| * | output/alsa: remove "default" case from switch | Max Kellermann | 2011-10-08 | 1 | -3/+6 |
| | | | | | | | | Allow gcc to warn when a new format isn't supported. | ||||
* | | Add support for streaming to a DLNA client | Steven Blackburn | 2011-09-30 | 1 | -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 workaround | Dan McGee | 2011-09-21 | 1 | -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.c | Max Kellermann | 2011-09-20 | 1 | -1/+1 |
| | | |||||
* | | rtsp_client, output/raop: use close_socket() instead of close() | Max Kellermann | 2011-09-20 | 1 | -4/+4 |
| | | |||||
* | | Merge branch 'v0.16.x' | Max Kellermann | 2011-09-20 | 3 | -8/+23 |
|\| | |||||
| * | fd_util: add function close_socket() | Max Kellermann | 2011-09-20 | 1 | -2/+2 |
| | | | | | | | | Wrap close(), use closesocket() on WIN32/WinSock. | ||||
| * | glib_socket.h: wrap g_io_channel_*_new() calls portably | Max Kellermann | 2011-09-20 | 1 | -5/+2 |
| | | | | | | | | | | 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 | 1 | -1/+19 |
| | | | | | | | | | | Allow enabling the plugin explicitly without running Solaris, to test the build. | ||||
* | | output_plugin: the plugin allocates the audio_output object | Max Kellermann | 2011-09-19 | 20 | -320/+492 |
| | | | | | | | | | | | | Pass audio_output objects around instead of void pointers. This will give some more control to the plugin, and prepares for non-blocking audio outputs. | ||||
* | | output/roar: check return values | Max Kellermann | 2011-09-18 | 1 | -2/+10 |
| | | | | | | | | Fixes gcc warnings. | ||||
* | | output/roar: unknown volume is -1, not 0 | Max Kellermann | 2011-09-18 | 1 | -1/+1 |
| | | |||||
* | | output/roar: move code to roar_cancel_locked() and others | Max Kellermann | 2011-09-18 | 1 | -39/+55 |
| | | | | | | | | Wrap the locking code. | ||||
* | | output/roar: use GLib memory allocation functions | Max Kellermann | 2011-09-17 | 1 | -11/+3 |
| | | | | | | | | GLib has a built-in OOM handler. | ||||
* | | output/roar: use config_get_block_string() for temporary | Max Kellermann | 2011-09-17 | 1 | -8/+5 |
| | | |||||
* | | output/roar: reorder methods | Max Kellermann | 2011-09-17 | 1 | -14/+14 |
| | | |||||
* | | output: rename plugin variables | Max Kellermann | 2011-09-17 | 7 | -7/+7 |
| | | | | | | | | Consistent naming. | ||||
* | | Merge branch 'v0.16.x' | Max Kellermann | 2011-09-17 | 1 | -11/+11 |
|\| | |||||
| * | output/pulse: improve locking | Max Kellermann | 2011-09-17 | 1 | -11/+11 |
| | | | | | | | | | | Always lock the main loop when operating on PULSE objects. Document this. | ||||
* | | output: per-plugin header | Max Kellermann | 2011-09-17 | 37 | -8/+413 |
| | | | | | | | | | | Move the "extern" declarations from output_list.c, for more type safety. | ||||
* | | output/pulse: don't expose internal struct in public header | Max Kellermann | 2011-09-17 | 2 | -31/+49 |
| | | | | | | | | | | Provide _lock() and _unlock() to wrap all accesses from the mixer plugin. | ||||
* | | output/raop: don't expose internal structs in public header | Max Kellermann | 2011-09-17 | 2 | -96/+95 |
| | | |||||
* | | output/roar: export volume methods | Max Kellermann | 2011-09-17 | 2 | -14/+57 |
| | | | | | | | | Use these instead of exposing the internal roar_t struct. | ||||
* | | output: rename plugin source files | Max Kellermann | 2011-09-17 | 9 | -0/+0 |
| | | |||||
* | | output/pulse: move code to _setup_stream() | Max Kellermann | 2011-09-17 | 1 | -15/+36 |
| | | |||||
* | | Merge branch 'v0.16.x' | Max Kellermann | 2011-09-16 | 1 | -1/+2 |
|\| | |||||
| * | input/curl, output/pulse: fix "unused local variable" warnings | Max Kellermann | 2011-09-16 | 1 | -1/+2 |
| | | |||||
* | | conf: add config_dup_block_path() | Max Kellermann | 2011-09-09 | 1 | -14/+9 |
| | | |||||
* | | utils: parsePath() returns GError on failure | Max Kellermann | 2011-09-09 | 1 | -3/+3 |
| | | | | | | | | Better error messages. |