コード例 #1
0
ファイル: MainForm.cs プロジェクト: enildne/zest
        // On new frame
        private void camera_NewFrame( object sender, System.EventArgs e )
        {
            if ( ( intervalsToSave != 0 ) && ( saveOnMotion == true ) )
            {
                // lets save the frame
                if ( writer == null )
                {
                    // create file name
                    DateTime date = DateTime.Now;
                    String fileName = String.Format( "{0}-{1}-{2} {3}-{4}-{5}.avi",
                        date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second );

                    try
                    {
                        // create AVI writer
                        writer = new AVIWriter( "wmv3" );
                        // open AVI file
                        writer.Open( fileName, cameraWindow.Camera.Width, cameraWindow.Camera.Height );
                    }
                    catch ( ApplicationException ex )
                    {
                        if ( writer != null )
                        {
                            writer.Dispose( );
                            writer = null;
                        }
                    }
                }

                // save the frame
                Camera camera = cameraWindow.Camera;

                camera.Lock( );
                writer.AddFrame( camera.LastFrame );
                camera.Unlock( );
            }
        }
コード例 #2
0
ファイル: MainForm.cs プロジェクト: enildne/zest
        // Close current file
        private void CloseFile( )
        {
            Camera camera = cameraWindow.Camera;

            if ( camera != null )
            {
                // detach camera from camera window
                cameraWindow.Camera = null;

                // signal camera to stop
                camera.SignalToStop( );
                // wait for the camera
                camera.WaitForStop( );

                camera = null;

                if ( detector != null )
                    detector.Reset( );
            }

            if ( writer != null )
            {
                writer.Dispose( );
                writer = null;
            }
            intervalsToSave = 0;
        }
コード例 #3
0
ファイル: MainForm.cs プロジェクト: enildne/zest
        // On timer event - gather statistic
        private void timer_Elapsed( object sender, System.Timers.ElapsedEventArgs e )
        {
            Camera camera = cameraWindow.Camera;

            if ( camera != null )
            {
                // get number of frames for the last second
                statCount[statIndex] = camera.FramesReceived;

                // increment indexes
                if ( ++statIndex >= statLength )
                    statIndex = 0;
                if ( statReady < statLength )
                    statReady++;

                float fps = 0;

                // calculate average value
                for ( int i = 0; i < statReady; i++ )
                {
                    fps += statCount[i];
                }
                fps /= statReady;

                statCount[statIndex] = 0;

                fpsPanel.Text = fps.ToString( "F2" ) + " fps";
            }

            // descrease save counter
            if ( intervalsToSave > 0 )
            {
                if ( ( --intervalsToSave == 0 ) && ( writer != null ) )
                {
                    writer.Dispose( );
                    writer = null;
                }
            }
        }
コード例 #4
0
        private void closeAllCameras()
        {
            foreach (rigItem rigI in CameraRig.rig)
            {
                Camera camera = rigI.cam;
                camera.SignalToStop();
                camera.WaitForStop();
            }

            if (writer != null)
            {
                writer.Dispose();
                writer = null;
            }
            intervalsToSave = 0;
        }