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); }
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(); }