Пример #1
0
        public bool Start(int _startAtSegment, ref string txtResult)
        {
            AwaitingSegmentNumber = _startAtSegment; // need to set this pretty sharpish
            StartAtSeconds        = _startAtSegment * EncodingParameters.SegmentDuration;

            if (IsRunning)
            {
                IsReStarting = true;
                Abort();
            }

            Initialise();

            IsReStarting = false;
            IsRunning    = shellRunner.Start(ref txtResult);
            return(IsRunning);
        }
Пример #2
0
        public void StartProbeAsync()
        {
            ShellCmdRunner shellProber = new ShellCmdRunner();

            // From parameters
            probeRunner = new ShellCmdRunner();
            probeRunner.ProcessOutputReceived += new EventHandler <GenericEventArgs <string> >(probeRunner_ProcessOutputReceived);
            probeRunner.FileName = Path.Combine(PathToTools, "ffprobe.exe");

            // No need to monitor the children here
            probeRunner.MonitorChildren = false;

            // Set up objects
            probeArguments = new CommandArguments();
            ConstructProbeArguments();
            probeRunner.Arguments = probeArguments.ToString();
            AVStreams             = new List <AVStream>();


            string txtResult = "";

            if (!probeRunner.Start(ref txtResult, true))
            {
                // Failure - return
                ProbeFinished = false; // We didnt' get to finish
                ProbeSuccess  = false;
                ProbeReport   = txtResult;
                probeHandle.Set();
                return;
            }

            // Doesn't really finish, I think it launches more threads... ...give it 3 seconds
            System.Threading.Thread.CurrentThread.Join(3000);

            // Probe has finished - we waited for exit.. ..let's analyse
            ProbeFinished = true;
            processOutputBuffer(); // Must do this first!
            AnalyseStreams();
        }
        public void StartProbeAsync()
        {
            ShellCmdRunner shellProber = new ShellCmdRunner();

            // From parameters
            probeRunner = new ShellCmdRunner();
            probeRunner.ProcessOutputReceived += new EventHandler<GenericEventArgs<string>>(probeRunner_ProcessOutputReceived);
            probeRunner.FileName = Path.Combine(PathToTools, "ffprobe.exe");

            // No need to monitor the children here
            probeRunner.MonitorChildren = false;

            // Set up objects
            probeArguments = new CommandArguments();
            ConstructProbeArguments();
            probeRunner.Arguments = probeArguments.ToString();
            AVStreams = new List<AVStream>();

            string txtResult = "";
            if (!probeRunner.Start(ref txtResult, true))
            {
                // Failure - return
                ProbeFinished = false; // We didnt' get to finish
                ProbeSuccess = false;
                ProbeReport = txtResult;
                probeHandle.Set();
                return;
            }

            // Doesn't really finish, I think it launches more threads... ...give it 3 seconds
            System.Threading.Thread.CurrentThread.Join(3000);

            // Probe has finished - we waited for exit.. ..let's analyse
            ProbeFinished = true;
            processOutputBuffer(); // Must do this first!
            AnalyseStreams();
        }