コード例 #1
0
 /// <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;
 }
コード例 #2
0
        /// <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);
            }
        }
コード例 #3
0
 /// <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;
     });
 }
コード例 #4
0
 private void QueueProcessorJobProcessingStarted(object sender, QueueProgressEventArgs e)
 {
     this.JobsPending    = string.Format(Resources.QueueViewModel_JobsPending, this.queueProcessor.Count);
     this.IsQueueRunning = true;
 }
コード例 #5
0
        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
                }
                                                           )
                                   );
            }
        }
コード例 #6
0
        /// <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);
        }