aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
| * 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.
| * decoder_internal.h: more API documentationMax Kellermann2011-09-221-0/+5
| |
| * utils: uri.h: fix a typo: "schema"Jonathan Neuschäfer2011-09-211-1/+1
| |
* | protocol: drop G_GNUC_PURE from client_message_dupJonathan Neuschäfer2011-09-211-1/+1
| |
* | utils: mark sockaddr_to_string() as G_GNUC_MALLOCJonathan Neuschäfer2011-09-211-0/+1
| |
* | Simplify setsockopt() casting workaroundDan McGee2011-09-212-20/+6
| | | | | | | | | | | | | | | | | | 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>
* | tcp_connect: generic library for establishing TCP connectionsMax Kellermann2011-09-202-0/+348
| |
* | io_thread: add function _timeout_add()Max Kellermann2011-09-202-0/+13
| | | | | | | | | | Same as _timeout_add_seconds(), but this one has millisecond resolution.
* | io_thread: _timeout_add_seconds() returns GSource*Max Kellermann2011-09-202-5/+5
| | | | | | | | The numeric ID isn't so useful.
* | server_socket: use resolve_host_port() instead of getaddrinfo()Max Kellermann2011-09-201-17/+4
| | | | | | | | Allow port specification in "bind_to_address" settings.
* | resolver: add function resolve_host_port()Max Kellermann2011-09-202-2/+84
| |
* | socket_util: move sockaddr_to_string() to resolver.cMax Kellermann2011-09-207-65/+126
| |
* | rtsp_client, output/raop: use close_socket() instead of close()Max Kellermann2011-09-202-5/+7
| |
* | tcp_socket, udp_server: use g_io_channel_new_socket()Max Kellermann2011-09-202-10/+4
| |
* | Merge branch 'v0.16.x'Max Kellermann2011-09-2010-25/+98
|\|
| * fd_util: add function close_socket()Max Kellermann2011-09-206-8/+25
| | | | | | | | Wrap close(), use closesocket() on WIN32/WinSock.
| * fd_util: check HAVE_INOTIFY_INIT in headerMax Kellermann2011-09-201-0/+4
| | | | | | | | Don't provide the prototype if inotify_init() was not detected.
| * fd_util: include check.h, verify config.h was includedMax Kellermann2011-09-201-0/+2
| |
| * glib_socket.h: wrap g_io_channel_*_new() calls portablyMax Kellermann2011-09-205-16/+48
| | | | | | | | | | 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-outputMax Kellermann2011-09-191-1/+19
| | | | | | | | | | Allow enabling the plugin explicitly without running Solaris, to test the build.
* | Set socket TCP keepalive option on incoming connectionsDan McGee2011-09-193-2/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a connected host disappears without our knowledge, as can happen over wireless or a hibernating machine, we continue to hold the port open waiting for messages. Because we never try to send anything down this now-broken pipe, the connection will sit idle taking up a slot in our allowed incoming connections list. If enough of these happen, an unintended Denial of Service takes place, where all connection slots are filled with now-broken, never ending connections. Setting the TCP keepalive option at least allows these to time out after the default two hours, which is sufficient in the non-malicious case. Signed-off-by: Dan McGee <dan@archlinux.org>
* | output_plugin: the plugin allocates the audio_output objectMax Kellermann2011-09-1930-537/+814
| | | | | | | | | | | | 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 valuesMax Kellermann2011-09-181-2/+10
| | | | | | | | Fixes gcc warnings.
* | output/roar: unknown volume is -1, not 0Max Kellermann2011-09-181-1/+1
| |
* | output/roar: move code to roar_cancel_locked() and othersMax Kellermann2011-09-181-39/+55
| | | | | | | | Wrap the locking code.
* | output/roar: use GLib memory allocation functionsMax Kellermann2011-09-171-11/+3
| | | | | | | | GLib has a built-in OOM handler.
* | output/roar: use config_get_block_string() for temporaryMax Kellermann2011-09-171-8/+5
| |
* | output/roar: reorder methodsMax Kellermann2011-09-171-14/+14
| |
* | output: rename plugin variablesMax Kellermann2011-09-178-11/+11
| | | | | | | | Consistent naming.
* | Merge branch 'v0.16.x'Max Kellermann2011-09-172-11/+12
|\|
| * decoder/audiofile: include stdio header for SEEK_* definesTim Harder2011-09-171-0/+1
| | | | | | | | The stdio header is no longer pulled in by af_vfs.h in audiofile-0.3.0.
| * output/pulse: improve lockingMax Kellermann2011-09-171-11/+11
| | | | | | | | | | Always lock the main loop when operating on PULSE objects. Document this.
* | output: per-plugin headerMax Kellermann2011-09-1738-28/+432
| | | | | | | | | | Move the "extern" declarations from output_list.c, for more type safety.
* | output/pulse: don't expose internal struct in public headerMax Kellermann2011-09-173-36/+56
| | | | | | | | | | Provide _lock() and _unlock() to wrap all accesses from the mixer plugin.
* | output/raop: don't expose internal structs in public headerMax Kellermann2011-09-172-96/+95
| |
* | output/roar: export volume methodsMax Kellermann2011-09-173-46/+60
| | | | | | | | Use these instead of exposing the internal roar_t struct.
* | output: rename plugin source filesMax Kellermann2011-09-179-0/+0
| |
* | output/pulse: move code to _setup_stream()Max Kellermann2011-09-171-15/+36
| |
* | input/soup: wait some more before resuming the streamMax Kellermann2011-09-161-1/+6
| |