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
----------------
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
* FLAC: lossless compressed [default]
* Vorbis: lossy compression
* **PCM** lossless uncompressed
* **FLAC** lossless compressed [default]
* **Vorbis** lossy compression
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.
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
* playing silence
* playing faster/slower
Typically the deviation is < 1ms.
Typically the deviation is samller than 1ms.
Installation
------------
@ -116,5 +116,5 @@ pacmd load-module module-pipe-sink file=/tmp/snapfifo
Roadmap
-------
* Support multiple streams ("Zones")
* Remote control: change client latency, volume, zone
* **Remote control** JSON-RPC API to change client latency, volume, zone, ...
* **Zones** Support multiple streams