Beispiel #1
0
 public void EnqueueTask(FFMpegEncoderTask task)
 {
     lock (_lockObj)
     {
         task.TaskFinishedCallback += new Action(NextTask);
         task.TaskFinishedCallback += new Action(OnTaskCompleted);
         _tasks.Enqueue(task);
         ++_queuedTasksCount;
     }
     if (!_isEnabled || CurrrentStatus != QueueStatus.NoTasks)
     {
         return;
     }
     NextTask();
 }
        public FFMpegEncoderTask(MediaEncodingSetup encodingSetup, MediaEncodingTaskInfo taskInfo)
        {
            FFMpegEncoderTask ffMpegEncoderTask = this;

            Id                 = Guid.NewGuid();
            MediaId            = taskInfo.Id;
            _encodingSetup     = encodingSetup;
            _progress          = new FFMpegProgress(args => ConvertProgressEvent(this, args));
            _workingDirectory  = new FileInfo(Assembly.GetEntryAssembly().Location).Directory.FullName;
            _environmentConfig = new EnvironmentConfig(_workingDirectory);
            if (!_encodingSetup.NotEncoding)
            {
                TaskFinishedCallback += () => ffMpegEncoderTask.OnFinished(ffMpegEncoderTask, new ConvertFinishedEventArgs(DateTime.Now - ffMpegEncoderTask._startTime, taskInfo));
            }
        }