示例#1
0
 private void WriteFrame(Stream stream, IVideoFrame frame)
 {
     lock (_byteArrayStream)
     {
         _byteArrayStream.Position = 0;
         if (_compress)
         {
             using (var deflateStream = new DeflateStream(_byteArrayStream, CompressionMode.Compress))
                 frame.Write(deflateStream);
         }
         else
         {
             frame.Write(_byteArrayStream);
             _byteArrayStream.Close();
         }
         lock (_longBuffer)
         {
             _longBuffer.WriteUInt32AsNetworkOrder((uint)_byteArrayStream.Position);
             stream.Write(_longBuffer, 0, sizeof(uint));
         }
         stream.Write(_byteArrayStream.Buffer, 0, (int)_byteArrayStream.Position);
         _byteArrayStream.Reopen();
     }
 }