Exemple #1
0
        /// <summary>
        /// Операция записи
        /// </summary>
        /// <param name="VideoRecorder">Рекордер видеокадров</param>
        private void Write(RealtimeVideoWriter VideoRecorder)
        {
            if (VDBReaderSingle.ThreadState == System.Threading.ThreadState.Unstarted)
            {
                VDBReaderSingle.Start();
            }

            while (VDBReaderSingle.ThreadState != System.Threading.ThreadState.Stopped)
            {
                if (jpegBuffer.Size > MinBufferSize)
                {
                    VideoRecorder.RecordFrame(jpegBuffer.Pull(), FPS);
                }
                if (jpegBuffer.Size > MinBufferSize && jpegBuffer.Size < MaxBufferSize)
                {
                    Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() =>
                    {
                        if (bufferStateProgressBar.Value != jpegBuffer.Size)
                        {
                            bufferStateProgressBar.Value = jpegBuffer.Size;
                        }
                    }));
                }
            }
        }
Exemple #2
0
        //---------------------------------------------------------------------------------------------------------------

        /// <summary>
        /// Инициализация операций чтения/записи при неизвестной длине файла, т.н чтение реального времени
        /// </summary>
        private void RealTimeInitialise(string CurrentFile)
        {
            fstreamVDICount = 0;
            RealtimeVideoReader VideoPlayer   = new RealtimeVideoReader(CurrentFile, (int)VideoRecordingImitator.LabWagonType.SMDL);
            RealtimeVideoWriter VideoRecorder = new RealtimeVideoWriter(this.tbSaveRecordedArchive.Text, (int)VideoRecordingImitator.LabWagonType.SMDL);

            StartClicked = false;
            //Обнуление номера частей

            VideoPlayng = new System.Threading.Thread(delegate()
            {
                Write(VideoRecorder);
            });

            VDBReaderSingle = new System.Threading.Thread(delegate()
            {
                Read(VideoPlayer);
            });
        }