<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Server Dataflow</title><link>https://sourceforge.net/p/twocan/wiki/Server%2520Dataflow/</link><description>Recent changes to Server Dataflow</description><atom:link href="https://sourceforge.net/p/twocan/wiki/Server%20Dataflow/feed" rel="self"/><language>en</language><lastBuildDate>Fri, 02 Mar 2012 20:27:23 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/twocan/wiki/Server%20Dataflow/feed" rel="self" type="application/rss+xml"/><item><title>WikiPage Server Dataflow modified by Dmitri Becker</title><link>https://sourceforge.net/p/twocan/wiki/Server%2520Dataflow/</link><description>&lt;pre&gt;--- v3 
+++ v4 
@@ -53,7 +53,17 @@
 * The *PCM Playback Module* gets the PCM buffer from the *PCM Play Queue*, plays it on the sound device, then pushes it to the *PCM Buffer Pool Queue*.
 * **Process repeats from step 1**
 
-The sequence is the same if local monitoring is not used, except that the *Compressor module* pushes the PCM  buffer to the *PCM Buffer Pool Queue* instead of the *PCM Play Queue*, and the *PCM Playback module* does nothing.
+The sequence is the same if local monitoring is not used, except that the *Compressor module* pushes the PCM  buffer directly to the *PCM Buffer Pool Queue* instead of the *PCM Play Queue*, and the *PCM Playback module* does nothing.
+
+### The Compressed Data Section
+
+The heart of the compressed data section is the main *Compressed packet loop and interface*, which holds enough compressed audio packets to cover the maximum time-shift period.  If it holds 15 minutes worth of packets, then streaming or recording of audio from up to 15 minutes ago can be performed.  Once the packet loop is full, new packets replace the oldest ones in the loop, maintaining the same total amount of audio data.
+
+There can be any number of *Compressed data interface* objects linked to the packet loop at any time, each associated with a *Streaming connection* or a *File writer*.  These can access packets from the loop in sequence, beginning with any packet from the oldest to the most recent in the loop.  This allows recording or streaming of audio beginning from any time within the duration covered by the compressed packet loop.
+
+Additional *Compressed packet loop and interface* objects can exist, associated with open files (from previous recordings) that are being played back to connected clients.  In these cases, the *Compressed data interface* associated with the relevant connection(s) is linked to that additional compressed packet loop rather than the main one.
+
+The *Compressed packet loop and interface* objects also keep track of metadata and any additional information (besides the compressed audio packets themselves) that is needed for decoding the stream, and provide it on demand (eg. codebooks for Vorbis).
 
 
 
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dmitri Becker</dc:creator><pubDate>Fri, 02 Mar 2012 20:27:23 -0000</pubDate><guid>https://sourceforge.nete9fb13ce78e11fc45314f4f1bc7bf940f4288252</guid></item></channel></rss>