Esempio n. 1
0
 /// <summary>
 /// Saves the media associated to a given header message and looks for
 /// unheaded chunks of this header to save their data on the media structure.
 /// </summary>
 /// <param name="header">Header message.</param>
 /// <param name="streamS">Media associated to the header message.</param>
 /// <param name="SaveChunk">Methodd that takes a chunk message and saves its data.</param>
 public void RecoverEarlyChunks(headerMsg header, struc streamS, StreamChunkHandler <chunkMsg> SaveChunk)
 {
     streamData[header.id]             = streamS;
     streamWasFullyReceived[header.id] = false;
     if (amountOfEarlyChunks.ContainsKey(header.id))
     {
         int i     = 0;
         int count = 0;
         while (i < amountOfEarlyChunks[header.id] && i < unheadedChunks.Count)
         {
             var row = unheadedChunks[i].Item1;
             if (row.id == header.id)
             {
                 SaveChunk(row);
                 unheadedChunks.RemoveAt(i);
                 count += 1;
             }
             i += 1;
         }
         if (amountOfEarlyChunks[header.id] != count)
         {
             RemoveStream(header.id);
         }
         amountOfEarlyChunks.Remove(header.id);
     }
 }
Esempio n. 2
0
 /// <summary>
 /// Adds the data contain in a chunk message to the appopiate media structure.
 /// </summary>
 /// <param name="chunk">Chunk message.</param>
 /// <param name="SaveChunk">Methodd that takes a chunk message and saves its data.</param>
 public void AddChunk(chunkMsg chunk, StreamChunkHandler <chunkMsg> SaveChunk)
 {
     if (streamData.ContainsKey(chunk.id))
     {
         SaveChunk(chunk);
     }
     else
     {
         unheadedChunks.Add((chunk, 0.0f));
         if (amountOfEarlyChunks.ContainsKey(chunk.id))
         {
             amountOfEarlyChunks[chunk.id] += 1;
         }
         else
         {
             amountOfEarlyChunks[chunk.id] = 1;
         }
         Debug.Log(amountOfEarlyChunks[chunk.id] + " chunk(s) with our previous head received.");
     }
 }