internal void EnqueueBuffer(FileInfo target, VideoSlice buffer) { _starving = false; _queue.Enqueue(new PendingBuffer(target, buffer)); Log.Trace("Enqueued buffer for " + target.Name + " - queue now contains " + _queue.Count + " buffers."); _msgAddEvent.Reset(); }
internal unsafe bool TryLoadBufferFromDisk(FileInfo target, VideoSlice buffer) { return(buffer.TryReset() && UnbufferedFileTools.TryRead( target, (int)buffer.BufferSize, buffer.AsBytePtr )); }
internal unsafe bool TryWriteBufferToDisk(FileInfo target, VideoSlice buffer) { Log.Trace("Attempting to write a frame buffer to '" + target.Name + "'"); if (!UnbufferedFileTools.TryWrite( target, (int)buffer.BufferSize, buffer.AsBytePtr) ) { Log.Error("UnbufferedFileTools.TryWrite(" + target.Name + ") failed."); return(false); } // Now that the buffer contents have been written to disk, clear the buffer frames for the // next set of contents. buffer.TryReset(); buffer.Unlock(); return(true); }
public PendingBuffer(FileInfo target, VideoSlice buffer) { Target = target; Buffer = buffer; }
internal static bool TryRead(FileInfo file, VideoSlice buffer) { return(TryRead(file, (int)buffer.BufferSize, buffer.AsBytePtr)); }