//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()); } } }
/// <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); } }
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); } }
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)); } } }
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); } }