private EncodingCompletedEventArgs EncodeFileThread(MediaEncoderSettings settings) {
EncodingCompletedEventArgs Result = null;
DateTime StartTime = DateTime.Now;
Task<bool> VideoEnc = null;
if (settings.VideoCodec != VideoCodecs.Copy)
VideoEnc = Task.Run(() => FfmpegBusiness.EncodeH264(settings));
// Encode audio stream with Nero Aac Encoder
if (settings.AudioAction == AudioActions.Encode) {
Task<bool> AudioEnc = Task.Run(() => EncodeAudio(settings));
if (VideoEnc != null)
Task.WaitAll(VideoEnc, AudioEnc);
else
Task.WaitAll(AudioEnc);
} else if (VideoEnc != null)
Task.WaitAll(VideoEnc);
Result = FinalizeEncoding(settings, StartTime);
return Result;
}