private void BufferNonIntegratedFrame(int nextFrameIdToBuffer) { if (m_IsRunning && !m_StopRequestReceived) { int directionAwareFrameId = GetDirectionAwareFrameIndex(nextFrameIdToBuffer); Pixelmap bmp = m_VideoStream.GetPixelmap(directionAwareFrameId); if (bmp != null) { lock (m_FrameBitmapLock) { var bufferedFrame = new BufferedFrame() { FrameNo = nextFrameIdToBuffer, FirstFrameInIntegrationPeriod = nextFrameIdToBuffer, Image = bmp, FrameFileName = m_VideoStream.SupportsFrameFileNames ? m_VideoStream.GetFrameFileName(directionAwareFrameId) : null }; m_FramesBufferQueue.Enqueue(bufferedFrame); } } } }
private void BufferRunningAverageIntegratedFrame(int nextFrameIdToBuffer) { Pixelmap thisFrame = m_IsRunning && !m_StopRequestReceived ? ProduceRunningAverageIntegratedFrame(nextFrameIdToBuffer) : null; if (thisFrame != null) { // 4) Produce the integrated bitmap lock (m_FrameBitmapLock) { var bufferedFrame = new BufferedFrame() { FrameNo = nextFrameIdToBuffer, FirstFrameInIntegrationPeriod = nextFrameIdToBuffer, Image = thisFrame }; m_FramesBufferQueue.Enqueue(bufferedFrame); } } }
private void BufferBinningIntegratedFrame(int nextFrameIdToBuffer) { for (int i = 0; i < m_FramesToIntegrate; i++) { Pixelmap thisFrame = m_IsRunning && !m_StopRequestReceived ? ProduceBinningIntegratedFrame(nextFrameIdToBuffer) : null; lock (m_FrameBitmapLock) { var bufferedFrame = new BufferedFrame() { FrameNo = nextFrameIdToBuffer + i, FirstFrameInIntegrationPeriod = nextFrameIdToBuffer, Image = thisFrame }; m_FramesBufferQueue.Enqueue(bufferedFrame); } } }