/// <summary> /// Processes the file as media item. OBSOLETE /// </summary> /// <param name="filename">The filename.</param> /// <param name="outputDirectory">The output directory.</param> private void processFile(string filename, string outputDirectory) { THelper.Information ("Processing {0} ...", filename); DateTime startTime = DateTime.Now; MSEEncoder.MediaItem mediaItem; try { mediaItem = new MSEEncoder.MediaItem (filename); } catch (MSEEncoder.InvalidMediaFileException) { THelper.Critical("\"" + filename + "\" isn't a video file."); return; } bool hasVideo = (mediaItem.OriginalFileType & MSEEncoder.FileType.Video) == MSEEncoder.FileType.Video; if (!hasVideo) { THelper.Critical ("\"" + filename + "\" isn't a video file."); return; } if (_tnSettings.End == TimeSpan.Zero) _tnSettings.End = mediaItem.FileDuration - new TimeSpan (0, 0, 5); else if (_tnSettings.End < TimeSpan.Zero) _tnSettings.End = mediaItem.FileDuration + _tnSettings.End; else if (_tnSettings.End > mediaItem.FileDuration) _tnSettings.End = mediaItem.FileDuration; DateTime mediaItemCreated = DateTime.Now; THelper.Information ("{0} to create Microsoft.Encoder.MediaItem.", (mediaItemCreated - startTime).ToString(@"h\:mm\:ss")); ThumbnailCreator tg; DateTime overviewCreated; int nThumbs; int originalBorder = _tnSettings.Border; _tnSettings.SrcRect = new System.Drawing.Rectangle (0, 0, mediaItem.OriginalVideoSize.Width, mediaItem.OriginalVideoSize.Height); double videoAspect = (double) mediaItem.OriginalVideoSize.Width / mediaItem.OriginalVideoSize.Height; _tnSettings.ThumbAspectRatio = videoAspect; int x, y, newWidth, newHeight; if (_cropAspect != 0.0) { if (_cropAspect > videoAspect) { x = 0; newWidth = mediaItem.OriginalVideoSize.Width; newHeight = (int) (mediaItem.OriginalVideoSize.Width / _cropAspect + 0.5); y = (int) ((mediaItem.OriginalVideoSize.Height - newHeight) / 2.0); } else { y = 0; newHeight = mediaItem.OriginalVideoSize.Height; newWidth = (int) (mediaItem.OriginalVideoSize.Height * _cropAspect + 0.5); x = (int) ((mediaItem.OriginalVideoSize.Width - newWidth) / 2.0); } _tnSettings.SrcRect = new System.Drawing.Rectangle (x, y, newWidth, newHeight); _tnSettings.ThumbAspectRatio = (double) newWidth / newHeight; } if (_stretchAspect != 0.0) { _tnSettings.ThumbAspectRatio = _stretchAspect; } if (!_skipOverview) { _tnSettings.Border = 1; tg = new ThumbnailCreator (_tnSettings, _debug); nThumbs = tg.GenerateOverviewThumbs (mediaItem, filename, outputDirectory); overviewCreated = DateTime.Now; THelper.Information ("{0} to create overview thumbnails.", (overviewCreated - mediaItemCreated).ToString(@"h\:mm\:ss")); THelper.Information ("{0} thumbs created. {1:F2} seconds / thumb.", nThumbs, (overviewCreated - mediaItemCreated).TotalSeconds / nThumbs); } else { overviewCreated = DateTime.Now; THelper.Information ("Overview page skipped."); } _tnSettings.Border = originalBorder; tg = new ThumbnailCreator (_tnSettings, _debug); nThumbs = 0; if (_tnSettings.Interval.TotalSeconds > 0) { TimeSpan originalInterval = _tnSettings.Interval; if (mediaItem.FileDuration.TotalMinutes < 45 && originalInterval.TotalSeconds > 2) _tnSettings.Interval = new TimeSpan (0, 0, 2); nThumbs = tg.GenerateMultiThumbs (mediaItem, filename, outputDirectory); _tnSettings.Interval = originalInterval; } DateTime multiCreated = DateTime.Now; if (nThumbs > 0) { THelper.Information ("{0} to generate multi-page thumbnails.", (multiCreated - overviewCreated).ToString(@"h\:mm\:ss")); THelper.Information ("{0} thumbs created. {1:F2} seconds / thumb.", nThumbs, (multiCreated - overviewCreated).TotalSeconds / nThumbs); } else { THelper.Information ("Multi-page thumbnails skipped."); } THelper.Information ("{0} overall time to process {1}.", (multiCreated - startTime).ToString(@"h\:mm\:ss"), filename); THelper.Information (); }