public bool Initialize(string directory, int id = -1) { Debug.Assert(FileProvider != null); var sourceMetadata = VideoMetadataReader.GetVideoMetadata(SourceFile); if (sourceMetadata == null) { Error = $"ffprobe could not read file: {SourceFile}"; return(false); } SourceMetadata = sourceMetadata; TargetFileExtension = Path.GetExtension(SourceFile).TrimStart('.'); TargetTotalFrames = (int)Math.Ceiling(SourceMetadata.FrameRate * SourceMetadata.Duration.TotalSeconds); InitializeEx(); var targetFileName = id == -1 ? $"{Path.GetFileNameWithoutExtension( SourceFile )}.{TargetFileExtension}" : $"{Path.GetFileNameWithoutExtension( SourceFile )}-{id}.{TargetFileExtension}"; TargetFile = Path.Combine(directory, targetFileName); if (File.Exists(TargetFile)) { TargetFile = string.Empty; // To avoid deleting Error = $"\"{targetFileName}\" exists in \"{directory}\""; return(false); } _initialized = true; return(true); }
protected override void InitializeEx() { var model = (CropVideoFilterViewModel)ViewModel; if (model.Type == CropType.RemoveBlackBars) { _crop = VideoMetadataReader.GetCropDetect(SourceFile, SourceMetadata.Duration); } }