Update README.md

This commit is contained in:
Johannes Pohl 2015-09-01 10:57:52 +02:00
parent c71e5b03c4
commit ef482cbd07

View file

@ -9,18 +9,18 @@ The server's audio input is a named pipe `/tmp/snapfifo`. All data that is fed i
How does is work How does is work
---------------- ----------------
The SnapServer reads PCM chunks from the pipe `/tmp/snapfifo`. The chunk is encoded and tagged with the local time. Supported codecs are: The SnapServer reads PCM chunks from the pipe `/tmp/snapfifo`. The chunk is encoded and tagged with the local time. Supported codecs are:
* PCM: lossless uncompressed * **PCM** lossless uncompressed
* FLAC: lossless compressed [default] * **FLAC** lossless compressed [default]
* Vorbis: lossy compression * **Vorbis** lossy compression
The encoded chunk is sent via a TCP connection to the SnapClients. The encoded chunk is sent via a TCP connection to the SnapClients.
Each client does continuos time synchronization with the server, so that the client is always aware of the local server time. Each client does continuos time synchronization with the server, so that the client is always aware of the local server time.
Every received chunk is first decoded and added to the client's chunk-buffer. Knowing the server's time, the chunk is played out using alsa at the appropriate time. Time deviations are corrected by Every received chunk is first decoded and added to the client's chunk-buffer. Knowing the server's time, the chunk is played out using ALSA at the appropriate time. Time deviations are corrected by
* skipping parts or whole chunks * skipping parts or whole chunks
* playing silence * playing silence
* playing faster/slower * playing faster/slower
Typically the deviation is < 1ms. Typically the deviation is samller than 1ms.
Installation Installation
------------ ------------
@ -116,5 +116,5 @@ pacmd load-module module-pipe-sink file=/tmp/snapfifo
Roadmap Roadmap
------- -------
* Support multiple streams ("Zones") * **Remote control** JSON-RPC API to change client latency, volume, zone, ...
* Remote control: change client latency, volume, zone * **Zones** Support multiple streams