/// <summary> /// Handle teh Job Processing Started Event /// </summary> /// <param name="sender"> /// The sender. /// </param> /// <param name="e"> /// The QueueProgressEventArgs. /// </param> private void queueProcessor_JobProcessingStarted( object sender, QueueProgressEventArgs e) { this.JobStatus = "Queue Started"; this.JobsPending = string.Format("{0} jobs pending", this.queueProcessor.QueueManager.Count); this.IsEncoding = true; }
/// <summary> /// Invoke the JobProcessingStarted event /// </summary> /// <param name="e"> /// The QueueProgressEventArgs. /// </param> private void InvokeJobProcessingStarted(QueueProgressEventArgs e) { QueueProgressStatus handler = this.JobProcessingStarted; if (handler != null) { handler(this, e); } }
/// <summary> /// Handle the Queue Starting Event /// </summary> /// <param name="sender"> /// The sender. /// </param> /// <param name="e"> /// The e. /// </param> private void QueueProcessorJobProcessingStarted(object sender, QueueProgressEventArgs e) { Execute.OnUIThread( () => { this.ProgramStatusLabel = "Preparing to encode ..."; this.IsEncoding = true; }); }
private void QueueProcessorJobProcessingStarted(object sender, QueueProgressEventArgs e) { this.JobsPending = string.Format(Resources.QueueViewModel_JobsPending, this.queueProcessor.Count); this.IsQueueRunning = true; }
private void QueueProgressChanged(object sender, QueueProgressEventArgs args) { Type senderType; var processingTool = string.Empty; var progress = string.Empty; var elapsedTime = new DateTime(args.ElapsedTime.Ticks).ToString("HH:mm:ss"); var eta = new DateTime(args.EstimatedTimeLeft.Ticks).ToString("HH:mm:ss"); try { senderType = sender.GetType(); } catch (Exception) { senderType = new object().GetType(); } switch (senderType.Name) { case "DecoderFfmpegGetCrop": processingTool = "Video: Calculating Crop Rectangle..."; progress = $"Calculating Crop Rectangle: {args.PercentComplete,3:0}%, Time elapsed: {elapsedTime}, ETA: {eta}"; break; case "DecoderFfmsIndex": processingTool = "Video: Indexing..."; progress = $"Indexing Video Stream: {args.PercentComplete,3:0}%, Time elapsed: {elapsedTime}, ETA: {eta}"; break; case "DemuxerEac3To": case "DemuxerFfmpeg": case "DemuxerMplayer": case "DemuxerTsMuxeR": processingTool = "Source: Demultiplexing Streams..."; progress = $"Demultiplexing Streams: {args.PercentComplete,3:0}%, Time elapsed: {elapsedTime}, ETA: {eta}"; break; case "EncoderBdSup2Sub": processingTool = "Subtitle: Processing captions..."; progress = $"Processing Subtitle Captions: {args.PercentComplete,3:0}%, Time elapsed: {elapsedTime}, ETA: {eta}"; break; case "EncoderFfmpegAc3": processingTool = "Audio: Encoding to AC-3..."; progress = $"Encoding Stream to AC-3: {args.PercentComplete,3:0}%, Time elapsed: {elapsedTime}, ETA: {eta}"; break; case "EncoderFfmpegDvd": processingTool = $"Video: Encoding DVD Compliant stream, encoding pass {args.Pass:0}..."; progress = $"Encoding Video Stream: {args.PercentComplete,3:0}%, {args.CurrentFrame,6:0} / {args.TotalFrames,6:0} Frames, "; progress += $"{args.AverageFrameRate,5:0.0} FPS, ".ToString(_appConfig.CInfo); progress += $"Time elapsed: {elapsedTime}, ETA: {eta}"; break; case "EncoderLame": processingTool = "Audio: Encoding to MP3..."; progress = $"Encoding Stream to MP3: {args.PercentComplete,3:0}%, Time elapsed: {elapsedTime}, ETA: {eta}"; break; case "EncoderNeroAac": case "EncoderQaac": processingTool = "Audio: Encoding to AAC..."; progress = $"Encoding Stream to AAC: {args.PercentComplete,3:0}%, Time elapsed: {elapsedTime}, ETA: {eta}"; break; case "EncoderOggEnc": processingTool = "Audio: Encoding to OGG..."; progress = $"Encoding Stream to OGG: {args.PercentComplete,3:0}%, Time elapsed: {elapsedTime}, ETA: {eta}"; break; case "EncoderX264": case "EncoderFfmpegX264": processingTool = $"Video: Encoding to h.264, encoding pass {args.Pass:0}..."; progress = $"Encoding Video Stream: {args.PercentComplete,3:0}%, {args.CurrentFrame,6:0} / {args.TotalFrames,6:0} Frames, "; progress += $"{args.AverageFrameRate,5:0.0} FPS, ".ToString(_appConfig.CInfo); progress += $"Time elapsed: {elapsedTime}, ETA: {eta}"; break; case "FileWorker": processingTool = "Copying / Moving Files..."; progress = $"Copying / Moving Files: {args.PercentComplete,3:0}%, Time elapsed: {elapsedTime}, ETA: {eta}"; break; case "MuxerDvdAuthor": processingTool = "Output: Authoring DVD Structure..."; progress = $"Authoring DVD Structure: {args.PercentComplete,3:0}%, Time elapsed: {elapsedTime}, ETA: {eta}"; break; case "MuxerMkvMerge": processingTool = "Output: Multiplexing Streams to MKV (Matroska) File..."; progress = $"Multiplexing Output File: {args.PercentComplete,3:0}%, Time elapsed: {elapsedTime}, ETA: {eta}"; break; case "MuxerMp4Box": processingTool = "Output: Multiplexing Streams to MP4 File..."; progress = $"Multiplexing Output File: {args.PercentComplete,3:0}%, Time elapsed: {elapsedTime}, ETA: {eta}"; break; case "MuxerMplex": processingTool = "Output: Multiplexing Media Streams to MPEG Package..."; progress = $"Multiplexing MPEG Package: {args.PercentComplete,3:0}%, Time elapsed: {elapsedTime}, ETA: {eta}"; break; case "MuxerSpuMux": processingTool = "Output: Multiplexing Subtitle Stream into MPEG Package..."; progress = $"Multiplexing Subtitle Stream into MPEG Package: {args.PercentComplete,3:0}%, Time elapsed: {elapsedTime}, ETA: {eta}"; break; } ProgressValue = args.PercentComplete; TotalProgressValue = args.TotalPercentComplete; JobStatus = progress; if (!string.IsNullOrEmpty(args.JobName)) { Execute.OnUIThread(() => LogEntries.Insert(0, new LogEntry { EntryTime = DateTime.Now, JobName = args.JobName, LogText = string.IsNullOrEmpty(processingTool) ? "Processing started" : processingTool } ) ); } }
/// <summary> /// Invoke the Queue Status Changed Event. /// </summary> /// <param name="e"> /// The QueueProgressEventArgs. /// </param> public void InvokeQueueStatusChanged(QueueProgressEventArgs e) { var handler = QueueProgressChanged; handler?.Invoke(_currentEncoder, e); }