コード例 #1
0
ファイル: GraphsUserControl.cs プロジェクト: rvs76/Maranate
        public void CloseFiles()
        {
            _backBufferThreadEndList.Add(_backBufferThread.ManagedThreadId);
            _backBufferThread.Join();

            StatisticsProcessor = null;
            if (VideoMediaFile != null)
            {
                VideoMediaFile.Dispose();
                VideoMediaFile = null;
            }

            var oldFields = _fields;

            _fields = new List <MediaFile.FrameField>();
            foreach (var field in oldFields)
            {
                if (field != null)
                {
                    field.Dispose();
                }
            }
            oldFields.Clear();

            StartBackBufferThread();
        }
コード例 #2
0
ファイル: GraphsUserControl.cs プロジェクト: rvs76/Maranate
        private void PrepareData()
        {
            if ((StatisticsProcessor == null) || (VideoMediaFile == null))
            {
                return;
            }

            _fieldInterval   = (int)((_secondsVisible / (double)VIDEO_FRAME_COUNT) / VideoMediaFile.FieldDuration);
            _firstFieldIndex = _fieldNumber - (_fieldInterval * VIDEO_FRAME_COUNT / 2);
            _lastFieldIndex  = _fieldNumber + (_fieldInterval * VIDEO_FRAME_COUNT / 2);
            _fieldCount      = _lastFieldIndex - _firstFieldIndex;
            _field_dx        = this.ClientSize.Width / (float)_fieldCount;

            var oldFields = _fields;

            foreach (var field in oldFields)
            {
                if (field != null)
                {
                    field.Dispose();
                }
            }

            var fieldIndexes = new List <int>();

            for (int n = _firstFieldIndex; n < _lastFieldIndex; n += _fieldInterval)
            {
                fieldIndexes.Add(n + (int)Math.Ceiling(_fieldInterval / 2.0));
            }
            _fields = VideoMediaFile.GetVideoFrameFields(fieldIndexes);
            if (_fields.Count > 3)
            {
                var field = _fields[3];
                if (field == null)
                {
                    Console.WriteLine("!!!! Middle field is null");
                }
            }
        }