示例#1
0
        //private void readObject(ObjectInputStream o)
        //        throws IOException, ClassNotFoundException {
        //    o.defaultReadObject();
        //}

        public override void fillCountsArrayFromBuffer(ByteBuffer buffer, int length)
        {
            lock (updateLock)
            {
                WrappedBuffer <long> logbuffer = buffer.asLongBuffer();
                for (int i = 0; i < length; i++)
                {
                    counts.lazySet(i, logbuffer.get());
                }
            }
        }
示例#2
0
 /// <summary>
 /// Writes the data from the internal counts array into the buffer.
 /// </summary>
 /// <param name="buffer">The buffer to write to</param>
 /// <param name="length">The length to write.</param>
 protected override void FillBufferFromCountsArray(ByteBuffer buffer, int length)
 {
     lock (UpdateLock)
     {
         if ((_cachedDstLongBuffer == null) ||
             (buffer != _cachedDstByteBuffer) ||
             (buffer.Position != _cachedDstByteBufferPosition))
         {
             _cachedDstByteBuffer         = buffer;
             _cachedDstByteBufferPosition = buffer.Position;
             _cachedDstLongBuffer         = buffer.AsLongBuffer();
         }
         _cachedDstLongBuffer.Rewind();
         _cachedDstLongBuffer.Put(_counts, 0, length);
     }
 }
示例#3
0
 public override void fillBufferFromCountsArray(/*final*/ ByteBuffer buffer, /*final*/ int length)
 {
     lock (updateLock)
     {
         if ((cachedDstLongBuffer == null) ||
             (buffer != cachedDstByteBuffer) ||
             (buffer.position() != cachedDstByteBufferPosition))
         {
             cachedDstByteBuffer         = buffer;
             cachedDstByteBufferPosition = buffer.position();
             cachedDstLongBuffer         = buffer.asLongBuffer();
         }
         cachedDstLongBuffer.rewind();
         cachedDstLongBuffer.put(counts, 0, length);
     }
 }
示例#4
0
 public override void fillBufferFromCountsArray(ByteBuffer buffer, int length)
 {
     lock (updateLock)
     {
         if ((cachedDstLongBuffer == null) ||
             (buffer != cachedDstByteBuffer) ||
             (buffer.position() != cachedDstByteBufferPosition))
         {
             cachedDstByteBuffer         = buffer;
             cachedDstByteBufferPosition = buffer.position();
             cachedDstLongBuffer         = buffer.asLongBuffer();
         }
         cachedDstLongBuffer.rewind();
         for (int i = 0; i < length; i++)
         {
             cachedDstLongBuffer.put(counts.get(i));
         }
     }
 }
示例#5
0
        public VideoSlice(
            uint frameCount,
            uint frameSize,
            Func <long, WrappedBuffer> getBuffer)
        {
            var bufferId   = Guid.NewGuid();
            var bufferSize = sizeof(VideoSliceHeader) + ((frameCount + 1) * frameSize);

            _buffer             = getBuffer(bufferSize);
            _header             = (VideoSliceHeader *)_buffer.Buffer;
            _header->Version    = Version;
            _header->FrameCount = frameCount;
            _header->FrameSize  = frameSize;
            bufferId.CopyToBuffer(_header->BufferId);
            Frames     = new byte *[frameCount];
            _frameData = _buffer.Buffer + sizeof(VideoSliceHeader);
            for (int i = 0; i < frameCount; i++)
            {
                Frames[i] = _frameData + (i * frameSize);
            }
        }
 public override void fillBufferFromCountsArray(/*final*/ ByteBuffer buffer, /*final*/ int length) 
 {
     lock (updateLock)
     {
         if ((cachedDstLongBuffer == null) ||
             (buffer != cachedDstByteBuffer) ||
             (buffer.position() != cachedDstByteBufferPosition))
         {
             cachedDstByteBuffer = buffer;
             cachedDstByteBufferPosition = buffer.position();
             cachedDstLongBuffer = buffer.asLongBuffer();
         }
         cachedDstLongBuffer.rewind();
         cachedDstLongBuffer.put(counts, 0, length);
     }
 }
示例#7
0
 public override void fillBufferFromCountsArray(ByteBuffer buffer, int length)
 {
     lock (updateLock)
     {
         if ((cachedDstLongBuffer == null) ||
             (buffer != cachedDstByteBuffer) ||
             (buffer.position() != cachedDstByteBufferPosition))
         {
             cachedDstByteBuffer = buffer;
             cachedDstByteBufferPosition = buffer.position();
             cachedDstLongBuffer = buffer.asLongBuffer();
         }
         cachedDstLongBuffer.rewind();
         for (int i = 0; i < length; i++)
         {
             cachedDstLongBuffer.put(counts.get(i));
         }
     }
 }
 /// <summary>
 /// Writes the data from the internal counts array into the buffer.
 /// </summary>
 /// <param name="buffer">The buffer to write to</param>
 /// <param name="length">The length to write.</param>
 protected override void FillBufferFromCountsArray(ByteBuffer buffer, int length)
 {
     lock (UpdateLock)
     {
         if ((_cachedDstLongBuffer == null) ||
             (buffer != _cachedDstByteBuffer) ||
             (buffer.Position != _cachedDstByteBufferPosition))
         {
             _cachedDstByteBuffer = buffer;
             _cachedDstByteBufferPosition = buffer.Position;
             _cachedDstLongBuffer = buffer.AsLongBuffer();
         }
         _cachedDstLongBuffer.Rewind();
         _cachedDstLongBuffer.Put(_counts, 0, length);
     }
 }