コード例 #1
0
ファイル: FramePlayer.cs プロジェクト: hpavlov/tangra3
        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);
                    }
                }
            }
        }
コード例 #2
0
ファイル: FramePlayer.cs プロジェクト: hpavlov/tangra3
        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);
                }
            }
        }
コード例 #3
0
ファイル: FramePlayer.cs プロジェクト: hpavlov/tangra3
        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);
                }
            }
        }