/// <summary> /// Read MediaInfo properties from given file /// </summary> /// <param name="fileName">File to check</param> /// <returns>File Properties</returns> public static MediaInfoContainer GetMediaInfo(string fileName) { var result = new MediaInfoContainer(); const NumberStyles numStyle = NumberStyles.Number; var resultInfo = new MediaInfo(); resultInfo.Option("Internet", "No"); resultInfo.Open(fileName); _videoStreams = resultInfo.Count_Get(StreamKind.Video); _audioStreams = resultInfo.Count_Get(StreamKind.Audio); _imageStreams = resultInfo.Count_Get(StreamKind.Image); _textStreams = resultInfo.Count_Get(StreamKind.Text); _menuCount = resultInfo.Count_Get(StreamKind.Menu); #region Get General Info result.General.CompleteName = resultInfo.Get(StreamKind.General, 0, "CompleteName"); result.General.FileName = resultInfo.Get(StreamKind.General, 0, "FileName"); result.General.FileExtension = resultInfo.Get(StreamKind.General, 0, "FileExtension"); result.General.Format = resultInfo.Get(StreamKind.General, 0, "Format"); result.General.FormatExtensions = resultInfo.Get(StreamKind.General, 0, "Format/Extensions"); result.General.InternetMediaType = resultInfo.Get(StreamKind.General, 0, "InternetMediaType"); DateTime.TryParse(resultInfo.Get(StreamKind.General, 0, "Duration/String3"), CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out result.General.DurationTime); result.General.Title = resultInfo.Get(StreamKind.General, 0, "Title"); result.General.EncodedApplication = resultInfo.Get(StreamKind.General, 0, "Encoded_Application"); result.General.EncodedApplicationUrl = resultInfo.Get(StreamKind.General, 0, "Encoded_Application/Url"); result.General.EncodedLibrary = resultInfo.Get(StreamKind.General, 0, "Encoded_Library"); result.General.EncodedLibraryName = resultInfo.Get(StreamKind.General, 0, "Encoded_Library/Name"); result.General.EncodedLibraryVersion = resultInfo.Get(StreamKind.General, 0, "Encoded_Library/Version"); result.General.EncodedLibraryDate = resultInfo.Get(StreamKind.General, 0, "Encoded_Library/Date"); result.General.EncodedLibrarySettings = resultInfo.Get(StreamKind.General, 0, "Encoded_Library_Settings"); #endregion #region Get Video Info for (var i = 0; i < _videoStreams; i++) { var videoStream = new VideoStreamInfo(); int.TryParse(resultInfo.Get(StreamKind.Video, i, "StreamKindID"), numStyle, CultureInfo.InvariantCulture, out videoStream.StreamKindID); int.TryParse(resultInfo.Get(StreamKind.Video, i, "StreamKindPos"), numStyle, CultureInfo.InvariantCulture, out videoStream.StreamKindPos); int.TryParse(resultInfo.Get(StreamKind.Video, i, "ID"), numStyle, CultureInfo.InvariantCulture, out videoStream.ID); videoStream.Format = resultInfo.Get(StreamKind.Video, i, "Format"); videoStream.FormatInfo = resultInfo.Get(StreamKind.Video, i, "Format/Info"); videoStream.FormatVersion = resultInfo.Get(StreamKind.Video, i, "Format_Version"); videoStream.FormatProfile = resultInfo.Get(StreamKind.Video, i, "Format_Profile"); videoStream.FormatFrameMode = resultInfo.Get(StreamKind.Video, i, "Format_Settings_FrameMode"); videoStream.MultiViewBaseProfile = resultInfo.Get(StreamKind.Video, i, "MultiView_BaseProfile"); videoStream.MultiViewCount = resultInfo.Get(StreamKind.Video, i, "MultiView_Count"); videoStream.InternetMediaType = resultInfo.Get(StreamKind.Video, i, "InternetMediaType"); videoStream.CodecID = resultInfo.Get(StreamKind.Video, i, "CodecID"); videoStream.CodecIDInfo = resultInfo.Get(StreamKind.Video, i, "CodecID/Info"); videoStream.CodecIDUrl = resultInfo.Get(StreamKind.Video, i, "CodecID/Url"); videoStream.CodecIDDescription = resultInfo.Get(StreamKind.Video, i, "CodecID_Description"); DateTime.TryParse(resultInfo.Get(StreamKind.Video, i, "Duration/String3"), CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out videoStream.DurationTime); videoStream.BitRateMode = resultInfo.Get(StreamKind.Video, i, "BitRate_Mode"); int.TryParse(resultInfo.Get(StreamKind.Video, i, "BitRate"), numStyle, CultureInfo.InvariantCulture, out videoStream.BitRate); int.TryParse(resultInfo.Get(StreamKind.Video, i, "BitRate_Minimum"), numStyle, CultureInfo.InvariantCulture, out videoStream.BitRateMin); int.TryParse(resultInfo.Get(StreamKind.Video, i, "BitRate_Nominal"), numStyle, CultureInfo.InvariantCulture, out videoStream.BitRateNom); int.TryParse(resultInfo.Get(StreamKind.Video, i, "BitRate_Maximum"), numStyle, CultureInfo.InvariantCulture, out videoStream.BitRateMax); int.TryParse(resultInfo.Get(StreamKind.Video, i, "Width"), numStyle, CultureInfo.InvariantCulture, out videoStream.Width); int.TryParse(resultInfo.Get(StreamKind.Video, i, "Height"), numStyle, CultureInfo.InvariantCulture, out videoStream.Height); videoStream.PixelAspectRatio = resultInfo.Get(StreamKind.Video, i, "PixelAspectRatio"); videoStream.DisplayAspectRatio = resultInfo.Get(StreamKind.Video, i, "DisplayAspectRatio"); videoStream.FrameRateMode = resultInfo.Get(StreamKind.Video, i, "FrameRate_Mode"); float.TryParse(resultInfo.Get(StreamKind.Video, i, "FrameRate"), numStyle, CultureInfo.InvariantCulture, out videoStream.FrameRate); VideoHelper.GetFpsNumDenom(videoStream.FrameRate, out videoStream.FrameRateEnumerator, out videoStream.FrameRateDenominator); float.TryParse(resultInfo.Get(StreamKind.Video, i, "FrameRate_Minimum"), numStyle, CultureInfo.InvariantCulture, out videoStream.FrameRateMin); float.TryParse(resultInfo.Get(StreamKind.Video, i, "FrameRate_Nominal"), numStyle, CultureInfo.InvariantCulture, out videoStream.FrameRateNom); float.TryParse(resultInfo.Get(StreamKind.Video, i, "FrameRate_Maximum"), numStyle, CultureInfo.InvariantCulture, out videoStream.FrameRateMax); long.TryParse(resultInfo.Get(StreamKind.Video, i, "FrameCount"), numStyle, CultureInfo.InvariantCulture, out videoStream.FrameCount); int.TryParse(resultInfo.Get(StreamKind.Video, i, "BitDepth"), numStyle, CultureInfo.InvariantCulture, out videoStream.BitDepth); videoStream.ScanType = resultInfo.Get(StreamKind.Video, i, "ScanType"); videoStream.ScanOrder = resultInfo.Get(StreamKind.Video, i, "ScanOrder"); ulong.TryParse(resultInfo.Get(StreamKind.Video, i, "StreamSize"), numStyle, CultureInfo.InvariantCulture, out videoStream.StreamSize); videoStream.EncodedApplication = resultInfo.Get(StreamKind.Video, i, "Encoded_Application"); videoStream.EncodedApplicationUrl = resultInfo.Get(StreamKind.Video, i, "Encoded_Application/Url"); videoStream.EncodedLibrary = resultInfo.Get(StreamKind.Video, i, "Encoded_Library"); videoStream.EncodedLibraryName = resultInfo.Get(StreamKind.Video, i, "Encoded_Library/Name"); videoStream.EncodedLibraryVersion = resultInfo.Get(StreamKind.Video, i, "Encoded_Library/Version"); videoStream.EncodedLibraryDate = resultInfo.Get(StreamKind.Video, i, "Encoded_Library/Date"); videoStream.EncodedLibrarySettings = resultInfo.Get(StreamKind.Video, i, "Encoded_Library_Settings"); if (videoStream.Width > 1280) { if ((videoStream.ScanType == "Progressive") || (videoStream.ScanType == "")) { videoStream.VideoSize = VideoFormat.Videoformat1080P; } else { videoStream.VideoSize = VideoFormat.Videoformat1080I; } } else if (videoStream.Width > 720) { videoStream.VideoSize = VideoFormat.Videoformat720P; } else if ((videoStream.Height > 480) && (videoStream.Height <= 576) && (videoStream.Width <= 720)) { if ((videoStream.ScanType == "Progressive") || (videoStream.ScanType == "")) { videoStream.VideoSize = VideoFormat.Videoformat576P; } else { videoStream.VideoSize = VideoFormat.Videoformat576I; } } else { if ((videoStream.ScanType == "Progressive") || (videoStream.ScanType == "")) { videoStream.VideoSize = VideoFormat.Videoformat480P; } else { videoStream.VideoSize = VideoFormat.Videoformat480I; } } result.Video.Add(videoStream); } #endregion #region Get Audio Info for (var i = 0; i < _audioStreams; i++) { var audioStream = new AudioStreamInfo(); int.TryParse(resultInfo.Get(StreamKind.Audio, i, "StreamKindID"), numStyle, CultureInfo.InvariantCulture, out audioStream.StreamKindID); int.TryParse(resultInfo.Get(StreamKind.Audio, i, "StreamKindPos"), numStyle, CultureInfo.InvariantCulture, out audioStream.StreamKindPos); int.TryParse(resultInfo.Get(StreamKind.Audio, i, "ID"), numStyle, CultureInfo.InvariantCulture, out audioStream.ID); audioStream.Format = resultInfo.Get(StreamKind.Audio, i, "Format"); audioStream.FormatInfo = resultInfo.Get(StreamKind.Audio, i, "Format/Info"); audioStream.FormatVersion = resultInfo.Get(StreamKind.Audio, i, "Format_Version"); audioStream.FormatProfile = resultInfo.Get(StreamKind.Audio, i, "Format_Profile"); audioStream.CodecID = resultInfo.Get(StreamKind.Audio, i, "CodecID"); audioStream.CodecIDInfo = resultInfo.Get(StreamKind.Audio, i, "CodecID/Info"); audioStream.CodecIDUrl = resultInfo.Get(StreamKind.Audio, i, "CodecID/Url"); audioStream.CodecIDDescription = resultInfo.Get(StreamKind.Audio, i, "CodecID_Description"); long.TryParse(resultInfo.Get(StreamKind.Audio, i, "Duration"), numStyle, CultureInfo.InvariantCulture, out audioStream.Duration); audioStream.BitRateMode = resultInfo.Get(StreamKind.Audio, i, "BitRate_Mode"); int.TryParse(resultInfo.Get(StreamKind.Audio, i, "BitRate"), numStyle, CultureInfo.InvariantCulture, out audioStream.BitRate); int.TryParse(resultInfo.Get(StreamKind.Audio, i, "BitRate_Minimum"), numStyle, CultureInfo.InvariantCulture, out audioStream.BitRateMin); int.TryParse(resultInfo.Get(StreamKind.Audio, i, "BitRate_Nominal"), numStyle, CultureInfo.InvariantCulture, out audioStream.BitRateNom); int.TryParse(resultInfo.Get(StreamKind.Audio, i, "BitRate_Maximum"), numStyle, CultureInfo.InvariantCulture, out audioStream.BitRateMax); int.TryParse(resultInfo.Get(StreamKind.Audio, i, "Channel(s)"), numStyle, CultureInfo.InvariantCulture, out audioStream.Channels); audioStream.ChannelsString = resultInfo.Get(StreamKind.Audio, i, "Channel(s)/String"); audioStream.ChannelPositions = resultInfo.Get(StreamKind.Audio, i, "ChannelPositions"); int.TryParse(resultInfo.Get(StreamKind.Audio, i, "SamplingRate"), numStyle, CultureInfo.InvariantCulture, out audioStream.SamplingRate); int.TryParse(resultInfo.Get(StreamKind.Audio, i, "BitDepth"), numStyle, CultureInfo.InvariantCulture, out audioStream.BitDepth); audioStream.CompressionMode = resultInfo.Get(StreamKind.Audio, i, "Compression_Mode"); int.TryParse(resultInfo.Get(StreamKind.Audio, i, "Delay"), numStyle, CultureInfo.InvariantCulture, out audioStream.Delay); ulong.TryParse(resultInfo.Get(StreamKind.Audio, i, "StreamSize"), numStyle, CultureInfo.InvariantCulture, out audioStream.StreamSize); audioStream.EncodedLibrary = resultInfo.Get(StreamKind.Audio, i, "Encoded_Library"); audioStream.EncodedLibraryName = resultInfo.Get(StreamKind.Audio, i, "Encoded_Library/Name"); audioStream.EncodedLibraryVersion = resultInfo.Get(StreamKind.Audio, i, "Encoded_Library/Version"); audioStream.EncodedLibraryDate = resultInfo.Get(StreamKind.Audio, i, "Encoded_Library/Date"); audioStream.EncodedLibrarySettings = resultInfo.Get(StreamKind.Audio, i, "Encoded_Library_Settings"); audioStream.LanguageFull = resultInfo.Get(StreamKind.Audio, i, "Language/String1"); audioStream.LanguageIso6391 = resultInfo.Get(StreamKind.Audio, i, "Language/String2"); audioStream.LanguageIso6392 = resultInfo.Get(StreamKind.Audio, i, "Language/String3"); result.Audio.Add(audioStream); } #endregion #region Get Image Info for (var i = 0; i < _imageStreams; i++) { var imageStream = new ImageStreamInfo(); int.TryParse(resultInfo.Get(StreamKind.Image, i, "StreamKindID"), numStyle, CultureInfo.InvariantCulture, out imageStream.StreamKindID); int.TryParse(resultInfo.Get(StreamKind.Image, i, "ID"), numStyle, CultureInfo.InvariantCulture, out imageStream.ID); imageStream.Format = resultInfo.Get(StreamKind.Image, i, "Format"); imageStream.CodecIDInfo = resultInfo.Get(StreamKind.Image, i, "CodecID/Info"); ulong.TryParse(resultInfo.Get(StreamKind.Image, i, "StreamSize"), numStyle, CultureInfo.InvariantCulture, out imageStream.StreamSize); imageStream.LanguageFull = resultInfo.Get(StreamKind.Image, i, "Language/String1"); imageStream.LanguageIso6392 = resultInfo.Get(StreamKind.Image, i, "Language/String3"); result.Image.Add(imageStream); } #endregion #region Get Text Info for (var i = 0; i < _textStreams; i++) { var textStream = new TextStreamInfo(); int.TryParse(resultInfo.Get(StreamKind.Text, i, "StreamKindID"), numStyle, CultureInfo.InvariantCulture, out textStream.StreamKindID); int.TryParse(resultInfo.Get(StreamKind.Text, i, "ID"), numStyle, CultureInfo.InvariantCulture, out textStream.ID); textStream.Format = resultInfo.Get(StreamKind.Text, i, "Format"); textStream.CodecIDInfo = resultInfo.Get(StreamKind.Text, i, "CodecID/Info"); int.TryParse(resultInfo.Get(StreamKind.Text, i, "Delay"), numStyle, CultureInfo.InvariantCulture, out textStream.Delay); ulong.TryParse(resultInfo.Get(StreamKind.Text, i, "StreamSize"), numStyle, CultureInfo.InvariantCulture, out textStream.StreamSize); textStream.LanguageFull = resultInfo.Get(StreamKind.Text, i, "Language/String1"); textStream.LanguageIso6392 = resultInfo.Get(StreamKind.Text, i, "Language/String3"); result.Text.Add(textStream); } #endregion #region Get Menu Info for (var i = 0; i < _menuCount; i++) { var menuStream = new MenuStreamInfo(); int.TryParse(resultInfo.Get(StreamKind.Menu, i, "Chapters_Pos_Begin"), numStyle, CultureInfo.InvariantCulture, out menuStream.ChaptersPosBegin); int.TryParse(resultInfo.Get(StreamKind.Menu, i, "Chapters_Pos_End"), numStyle, CultureInfo.InvariantCulture, out menuStream.ChaptersPosEnd); for (var j = menuStream.ChaptersPosBegin; j < menuStream.ChaptersPosEnd; j++) { DateTime tempTime; DateTime.TryParse(resultInfo.Get(StreamKind.Menu, i, j, InfoKind.Name), CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out tempTime); result.Chapters.Add(tempTime.TimeOfDay); } } #endregion resultInfo.Option("Complete"); resultInfo.Close(); return(result); }
public void GetMediaInfo(string fileName) { const NumberStyles numStyle = NumberStyles.Number; if (Processing.MyMediaInfo == null) { Processing.MyMediaInfo = new MediaInfo(); Processing.MyMediaInfo.Option("Internet", "No"); } Processing.MyMediaInfo.Open(fileName); _videoStreams = Processing.MyMediaInfo.Count_Get(StreamKind.Video); _audioStreams = Processing.MyMediaInfo.Count_Get(StreamKind.Audio); _imageStreams = Processing.MyMediaInfo.Count_Get(StreamKind.Image); _textStreams = Processing.MyMediaInfo.Count_Get(StreamKind.Text); _menuCount = Processing.MyMediaInfo.Count_Get(StreamKind.Menu); #region Get General Info General.CompleteName = Processing.MyMediaInfo.Get(StreamKind.General, 0, "CompleteName"); General.FileName = Processing.MyMediaInfo.Get(StreamKind.General, 0, "FileName"); General.FileExtension = Processing.MyMediaInfo.Get(StreamKind.General, 0, "FileExtension"); General.Format = Processing.MyMediaInfo.Get(StreamKind.General, 0, "Format"); General.FormatExtensions = Processing.MyMediaInfo.Get(StreamKind.General, 0, "Format/Extensions"); General.InternetMediaType = Processing.MyMediaInfo.Get(StreamKind.General, 0, "InternetMediaType"); DateTime.TryParse(Processing.MyMediaInfo.Get(StreamKind.General, 0, "Duration/String3"), AppSettings.CInfo, DateTimeStyles.AssumeLocal, out General.DurationTime); General.Title = Processing.MyMediaInfo.Get(StreamKind.General, 0, "Title"); General.EncodedApplication = Processing.MyMediaInfo.Get(StreamKind.General, 0, "Encoded_Application"); General.EncodedApplicationUrl = Processing.MyMediaInfo.Get(StreamKind.General, 0, "Encoded_Application/Url"); General.EncodedLibrary = Processing.MyMediaInfo.Get(StreamKind.General, 0, "Encoded_Library"); General.EncodedLibraryName = Processing.MyMediaInfo.Get(StreamKind.General, 0, "Encoded_Library/Name"); General.EncodedLibraryVersion = Processing.MyMediaInfo.Get(StreamKind.General, 0, "Encoded_Library/Version"); General.EncodedLibraryDate = Processing.MyMediaInfo.Get(StreamKind.General, 0, "Encoded_Library/Date"); General.EncodedLibrarySettings = Processing.MyMediaInfo.Get(StreamKind.General, 0, "Encoded_Library_Settings"); #endregion #region Get Video Info for (int i = 0; i < _videoStreams; i++) { VideoStreamInfo videoStream = new VideoStreamInfo(); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Video, i, "StreamKindID"), numStyle, AppSettings.CInfo, out videoStream.StreamKindID); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Video, i, "StreamKindPos"), numStyle, AppSettings.CInfo, out videoStream.StreamKindPos); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Video, i, "ID"), numStyle, AppSettings.CInfo, out videoStream.ID); videoStream.Format = Processing.MyMediaInfo.Get(StreamKind.Video, i, "Format"); videoStream.FormatInfo = Processing.MyMediaInfo.Get(StreamKind.Video, i, "Format/Info"); videoStream.FormatVersion = Processing.MyMediaInfo.Get(StreamKind.Video, i, "Format_Version"); videoStream.FormatProfile = Processing.MyMediaInfo.Get(StreamKind.Video, i, "Format_Profile"); videoStream.FormatFrameMode = Processing.MyMediaInfo.Get(StreamKind.Video, i, "Format_Settings_FrameMode"); videoStream.MultiViewBaseProfile = Processing.MyMediaInfo.Get(StreamKind.Video, i, "MultiView_BaseProfile"); videoStream.MultiViewCount = Processing.MyMediaInfo.Get(StreamKind.Video, i, "MultiView_Count"); videoStream.InternetMediaType = Processing.MyMediaInfo.Get(StreamKind.Video, i, "InternetMediaType"); videoStream.CodecID = Processing.MyMediaInfo.Get(StreamKind.Video, i, "CodecID"); videoStream.CodecIDInfo = Processing.MyMediaInfo.Get(StreamKind.Video, i, "CodecID/Info"); videoStream.CodecIDUrl = Processing.MyMediaInfo.Get(StreamKind.Video, i, "CodecID/Url"); videoStream.CodecIDDescription = Processing.MyMediaInfo.Get(StreamKind.Video, i, "CodecID_Description"); DateTime.TryParse(Processing.MyMediaInfo.Get(StreamKind.Video, i, "Duration/String3"), AppSettings.CInfo, DateTimeStyles.AssumeLocal, out videoStream.DurationTime); videoStream.BitRateMode = Processing.MyMediaInfo.Get(StreamKind.Video, i, "BitRate_Mode"); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Video, i, "BitRate"), numStyle, AppSettings.CInfo, out videoStream.BitRate); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Video, i, "BitRate_Minimum"), numStyle, AppSettings.CInfo, out videoStream.BitRateMin); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Video, i, "BitRate_Nominal"), numStyle, AppSettings.CInfo, out videoStream.BitRateNom); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Video, i, "BitRate_Maximum"), numStyle, AppSettings.CInfo, out videoStream.BitRateMax); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Video, i, "Width"), numStyle, AppSettings.CInfo, out videoStream.Width); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Video, i, "Height"), numStyle, AppSettings.CInfo, out videoStream.Height); videoStream.PixelAspectRatio = Processing.MyMediaInfo.Get(StreamKind.Video, i, "PixelAspectRatio"); videoStream.DisplayAspectRatio = Processing.MyMediaInfo.Get(StreamKind.Video, i, "DisplayAspectRatio"); videoStream.FrameRateMode = Processing.MyMediaInfo.Get(StreamKind.Video, i, "FrameRate_Mode"); Single.TryParse(Processing.MyMediaInfo.Get(StreamKind.Video, i, "FrameRate"), numStyle, AppSettings.CInfo, out videoStream.FrameRate); Processing.GetFPSNumDenom(videoStream.FrameRate, out videoStream.FrameRateEnumerator, out videoStream.FrameRateDenominator); Single.TryParse(Processing.MyMediaInfo.Get(StreamKind.Video, i, "FrameRate_Minimum"), numStyle, AppSettings.CInfo, out videoStream.FrameRateMin); Single.TryParse(Processing.MyMediaInfo.Get(StreamKind.Video, i, "FrameRate_Nominal"), numStyle, AppSettings.CInfo, out videoStream.FrameRateNom); Single.TryParse(Processing.MyMediaInfo.Get(StreamKind.Video, i, "FrameRate_Maximum"), numStyle, AppSettings.CInfo, out videoStream.FrameRateMax); Int64.TryParse(Processing.MyMediaInfo.Get(StreamKind.Video, i, "FrameCount"), numStyle, AppSettings.CInfo, out videoStream.FrameCount); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Video, i, "BitDepth"), numStyle, AppSettings.CInfo, out videoStream.BitDepth); videoStream.ScanType = Processing.MyMediaInfo.Get(StreamKind.Video, i, "ScanType"); videoStream.ScanOrder = Processing.MyMediaInfo.Get(StreamKind.Video, i, "ScanOrder"); UInt64.TryParse(Processing.MyMediaInfo.Get(StreamKind.Video, i, "StreamSize"), numStyle, AppSettings.CInfo, out videoStream.StreamSize); videoStream.EncodedApplication = Processing.MyMediaInfo.Get(StreamKind.Video, i, "Encoded_Application"); videoStream.EncodedApplicationUrl = Processing.MyMediaInfo.Get(StreamKind.Video, i, "Encoded_Application/Url"); videoStream.EncodedLibrary = Processing.MyMediaInfo.Get(StreamKind.Video, i, "Encoded_Library"); videoStream.EncodedLibraryName = Processing.MyMediaInfo.Get(StreamKind.Video, i, "Encoded_Library/Name"); videoStream.EncodedLibraryVersion = Processing.MyMediaInfo.Get(StreamKind.Video, i, "Encoded_Library/Version"); videoStream.EncodedLibraryDate = Processing.MyMediaInfo.Get(StreamKind.Video, i, "Encoded_Library/Date"); videoStream.EncodedLibrarySettings = Processing.MyMediaInfo.Get(StreamKind.Video, i, "Encoded_Library_Settings"); if (videoStream.Width > 1280) { if ((videoStream.ScanType == "Progressive") || (videoStream.ScanType == "")) { videoStream.VideoSize = VideoFormat.Videoformat1080P; } else { videoStream.VideoSize = VideoFormat.Videoformat1080I; } } else if (videoStream.Width > 720) { videoStream.VideoSize = VideoFormat.Videoformat720P; } else if ((videoStream.Height > 480) && (videoStream.Height <= 576) && (videoStream.Width <= 720)) { if ((videoStream.ScanType == "Progressive") || (videoStream.ScanType == "")) { videoStream.VideoSize = VideoFormat.Videoformat576P; } else { videoStream.VideoSize = VideoFormat.Videoformat576I; } } else { if ((videoStream.ScanType == "Progressive") || (videoStream.ScanType == "")) { videoStream.VideoSize = VideoFormat.Videoformat480P; } else { videoStream.VideoSize = VideoFormat.Videoformat480I; } } Video.Add(videoStream); } #endregion #region Get Audio Info for (int i = 0; i < _audioStreams; i++) { AudioStreamInfo audioStream = new AudioStreamInfo(); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Audio, i, "StreamKindID"), numStyle, AppSettings.CInfo, out audioStream.StreamKindID); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Audio, i, "StreamKindPos"), numStyle, AppSettings.CInfo, out audioStream.StreamKindPos); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Audio, i, "ID"), numStyle, AppSettings.CInfo, out audioStream.ID); audioStream.Format = Processing.MyMediaInfo.Get(StreamKind.Audio, i, "Format"); audioStream.FormatInfo = Processing.MyMediaInfo.Get(StreamKind.Audio, i, "Format/Info"); audioStream.FormatVersion = Processing.MyMediaInfo.Get(StreamKind.Audio, i, "Format_Version"); audioStream.FormatProfile = Processing.MyMediaInfo.Get(StreamKind.Audio, i, "Format_Profile"); audioStream.CodecID = Processing.MyMediaInfo.Get(StreamKind.Audio, i, "CodecID"); audioStream.CodecIDInfo = Processing.MyMediaInfo.Get(StreamKind.Audio, i, "CodecID/Info"); audioStream.CodecIDUrl = Processing.MyMediaInfo.Get(StreamKind.Audio, i, "CodecID/Url"); audioStream.CodecIDDescription = Processing.MyMediaInfo.Get(StreamKind.Audio, i, "CodecID_Description"); Int64.TryParse(Processing.MyMediaInfo.Get(StreamKind.Audio, i, "Duration"), numStyle, AppSettings.CInfo, out audioStream.Duration); audioStream.BitRateMode = Processing.MyMediaInfo.Get(StreamKind.Audio, i, "BitRate_Mode"); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Audio, i, "BitRate"), numStyle, AppSettings.CInfo, out audioStream.BitRate); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Audio, i, "BitRate_Minimum"), numStyle, AppSettings.CInfo, out audioStream.BitRateMin); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Audio, i, "BitRate_Nominal"), numStyle, AppSettings.CInfo, out audioStream.BitRateNom); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Audio, i, "BitRate_Maximum"), numStyle, AppSettings.CInfo, out audioStream.BitRateMax); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Audio, i, "Channel(s)"), numStyle, AppSettings.CInfo, out audioStream.Channels); audioStream.ChannelsString = Processing.MyMediaInfo.Get(StreamKind.Audio, i, "Channel(s)/String"); audioStream.ChannelPositions = Processing.MyMediaInfo.Get(StreamKind.Audio, i, "ChannelPositions"); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Audio, i, "SamplingRate"), numStyle, AppSettings.CInfo, out audioStream.SamplingRate); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Audio, i, "BitDepth"), numStyle, AppSettings.CInfo, out audioStream.BitDepth); audioStream.CompressionMode = Processing.MyMediaInfo.Get(StreamKind.Audio, i, "Compression_Mode"); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Audio, i, "Delay"), numStyle, AppSettings.CInfo, out audioStream.Delay); UInt64.TryParse(Processing.MyMediaInfo.Get(StreamKind.Audio, i, "StreamSize"), numStyle, AppSettings.CInfo, out audioStream.StreamSize); audioStream.EncodedLibrary = Processing.MyMediaInfo.Get(StreamKind.Audio, i, "Encoded_Library"); audioStream.EncodedLibraryName = Processing.MyMediaInfo.Get(StreamKind.Audio, i, "Encoded_Library/Name"); audioStream.EncodedLibraryVersion = Processing.MyMediaInfo.Get(StreamKind.Audio, i, "Encoded_Library/Version"); audioStream.EncodedLibraryDate = Processing.MyMediaInfo.Get(StreamKind.Audio, i, "Encoded_Library/Date"); audioStream.EncodedLibrarySettings = Processing.MyMediaInfo.Get(StreamKind.Audio, i, "Encoded_Library_Settings"); audioStream.LanguageFull = Processing.MyMediaInfo.Get(StreamKind.Audio, i, "Language/String1"); audioStream.LanguageIso6391 = Processing.MyMediaInfo.Get(StreamKind.Audio, i, "Language/String2"); audioStream.LanguageIso6392 = Processing.MyMediaInfo.Get(StreamKind.Audio, i, "Language/String3"); Audio.Add(audioStream); } #endregion #region Get Image Info for (int i = 0; i < _imageStreams; i++) { ImageStreamInfo imageStream = new ImageStreamInfo(); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Image, i, "StreamKindID"), numStyle, AppSettings.CInfo, out imageStream.StreamKindID); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Image, i, "ID"), numStyle, AppSettings.CInfo, out imageStream.ID); imageStream.Format = Processing.MyMediaInfo.Get(StreamKind.Image, i, "Format"); imageStream.CodecIDInfo = Processing.MyMediaInfo.Get(StreamKind.Image, i, "CodecID/Info"); UInt64.TryParse(Processing.MyMediaInfo.Get(StreamKind.Image, i, "StreamSize"), numStyle, AppSettings.CInfo, out imageStream.StreamSize); imageStream.LanguageFull = Processing.MyMediaInfo.Get(StreamKind.Image, i, "Language/String1"); imageStream.LanguageIso6392 = Processing.MyMediaInfo.Get(StreamKind.Image, i, "Language/String3"); Image.Add(imageStream); } #endregion #region Get Text Info for (int i = 0; i < _textStreams; i++) { TextStreamInfo textStream = new TextStreamInfo(); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Text, i, "StreamKindID"), numStyle, AppSettings.CInfo, out textStream.StreamKindID); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Text, i, "ID"), numStyle, AppSettings.CInfo, out textStream.ID); textStream.Format = Processing.MyMediaInfo.Get(StreamKind.Text, i, "Format"); textStream.CodecIDInfo = Processing.MyMediaInfo.Get(StreamKind.Text, i, "CodecID/Info"); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Text, i, "Delay"), numStyle, AppSettings.CInfo, out textStream.Delay); UInt64.TryParse(Processing.MyMediaInfo.Get(StreamKind.Text, i, "StreamSize"), numStyle, AppSettings.CInfo, out textStream.StreamSize); textStream.LanguageFull = Processing.MyMediaInfo.Get(StreamKind.Text, i, "Language/String1"); textStream.LanguageIso6392 = Processing.MyMediaInfo.Get(StreamKind.Text, i, "Language/String3"); Text.Add(textStream); } #endregion #region Get Menu Info for (int i = 0; i < _menuCount; i++) { MenuStreamInfo menuStream = new MenuStreamInfo(); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Menu, i, "Chapters_Pos_Begin"), numStyle, AppSettings.CInfo, out menuStream.ChaptersPosBegin); Int32.TryParse(Processing.MyMediaInfo.Get(StreamKind.Menu, i, "Chapters_Pos_End"), numStyle, AppSettings.CInfo, out menuStream.ChaptersPosEnd); for (int j = menuStream.ChaptersPosBegin; j < menuStream.ChaptersPosEnd; j++) { DateTime tempTime; DateTime.TryParse(Processing.MyMediaInfo.Get(StreamKind.Menu, i, j, InfoKind.Name), AppSettings.CInfo, DateTimeStyles.AssumeLocal, out tempTime); Chapters.Add(tempTime.TimeOfDay); } } #endregion Processing.MyMediaInfo.Option("Complete"); Processing.MyMediaInfo.Close(); }
public void GetMediaInfo(string fileName) { const NumberStyles numStyle = NumberStyles.Number; if (Processing.mediaInfo == null) { Processing.mediaInfo = new MediaInfo(); Processing.mediaInfo.Option("Internet", "No"); } Processing.mediaInfo.Open(fileName); _videoStreams = Processing.mediaInfo.Count_Get(StreamKind.Video); _audioStreams = Processing.mediaInfo.Count_Get(StreamKind.Audio); _imageStreams = Processing.mediaInfo.Count_Get(StreamKind.Image); _textStreams = Processing.mediaInfo.Count_Get(StreamKind.Text); _menuCount = Processing.mediaInfo.Count_Get(StreamKind.Menu); #region Get General Info General.CompleteName = Processing.mediaInfo.Get(StreamKind.General, 0, "CompleteName"); General.FileName = Processing.mediaInfo.Get(StreamKind.General, 0, "FileName"); General.FileExtension = Processing.mediaInfo.Get(StreamKind.General, 0, "FileExtension"); General.Format = Processing.mediaInfo.Get(StreamKind.General, 0, "Format"); General.FormatExtensions = Processing.mediaInfo.Get(StreamKind.General, 0, "Format/Extensions"); General.InternetMediaType = Processing.mediaInfo.Get(StreamKind.General, 0, "InternetMediaType"); DateTime.TryParse(Processing.mediaInfo.Get(StreamKind.General, 0, "Duration/String3"), AppSettings.CInfo, DateTimeStyles.AssumeLocal, out General.DurationTime); General.Title = Processing.mediaInfo.Get(StreamKind.General, 0, "Title"); General.EncodedApplication = Processing.mediaInfo.Get(StreamKind.General, 0, "Encoded_Application"); General.EncodedApplicationUrl = Processing.mediaInfo.Get(StreamKind.General, 0, "Encoded_Application/Url"); General.EncodedLibrary = Processing.mediaInfo.Get(StreamKind.General, 0, "Encoded_Library"); General.EncodedLibraryName = Processing.mediaInfo.Get(StreamKind.General, 0, "Encoded_Library/Name"); General.EncodedLibraryVersion = Processing.mediaInfo.Get(StreamKind.General, 0, "Encoded_Library/Version"); General.EncodedLibraryDate = Processing.mediaInfo.Get(StreamKind.General, 0, "Encoded_Library/Date"); General.EncodedLibrarySettings = Processing.mediaInfo.Get(StreamKind.General, 0, "Encoded_Library_Settings"); #endregion #region Get Video Info for (int i = 0; i < _videoStreams; i++) { VideoStreamInfo videoStream = new VideoStreamInfo(); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Video, i, "StreamKindID"), numStyle, AppSettings.CInfo, out videoStream.StreamKindID); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Video, i, "StreamKindPos"), numStyle, AppSettings.CInfo, out videoStream.StreamKindPos); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Video, i, "ID"), numStyle, AppSettings.CInfo, out videoStream.ID); videoStream.Format = Processing.mediaInfo.Get(StreamKind.Video, i, "Format"); videoStream.FormatInfo = Processing.mediaInfo.Get(StreamKind.Video, i, "Format/Info"); videoStream.FormatVersion = Processing.mediaInfo.Get(StreamKind.Video, i, "Format_Version"); videoStream.FormatProfile = Processing.mediaInfo.Get(StreamKind.Video, i, "Format_Profile"); videoStream.MultiViewBaseProfile = Processing.mediaInfo.Get(StreamKind.Video, i, "MultiView_BaseProfile"); videoStream.MultiViewCount = Processing.mediaInfo.Get(StreamKind.Video, i, "MultiView_Count"); videoStream.InternetMediaType = Processing.mediaInfo.Get(StreamKind.Video, i, "InternetMediaType"); videoStream.CodecID = Processing.mediaInfo.Get(StreamKind.Video, i, "CodecID"); videoStream.CodecIDInfo = Processing.mediaInfo.Get(StreamKind.Video, i, "CodecID/Info"); videoStream.CodecIDUrl = Processing.mediaInfo.Get(StreamKind.Video, i, "CodecID/Url"); videoStream.CodecIDDescription = Processing.mediaInfo.Get(StreamKind.Video, i, "CodecID_Description"); DateTime.TryParse(Processing.mediaInfo.Get(StreamKind.Video, i, "Duration/String3"), AppSettings.CInfo, DateTimeStyles.AssumeLocal, out videoStream.DurationTime); videoStream.BitRateMode = Processing.mediaInfo.Get(StreamKind.Video, i, "BitRate_Mode"); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Video, i, "BitRate"), numStyle, AppSettings.CInfo, out videoStream.BitRate); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Video, i, "BitRate_Minimum"), numStyle, AppSettings.CInfo, out videoStream.BitRateMin); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Video, i, "BitRate_Nominal"), numStyle, AppSettings.CInfo, out videoStream.BitRateNom); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Video, i, "BitRate_Maximum"), numStyle, AppSettings.CInfo, out videoStream.BitRateMax); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Video, i, "Width"), numStyle, AppSettings.CInfo, out videoStream.Width); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Video, i, "Height"), numStyle, AppSettings.CInfo, out videoStream.Height); videoStream.PixelAspectRatio = Processing.mediaInfo.Get(StreamKind.Video, i, "PixelAspectRatio"); videoStream.DisplayAspectRatio = Processing.mediaInfo.Get(StreamKind.Video, i, "DisplayAspectRatio"); videoStream.FrameRateMode = Processing.mediaInfo.Get(StreamKind.Video, i, "FrameRate_Mode"); Single.TryParse(Processing.mediaInfo.Get(StreamKind.Video, i, "FrameRate"), numStyle, AppSettings.CInfo, out videoStream.FrameRate); Processing.GetFPSNumDenom(videoStream.FrameRate, out videoStream.FrameRateEnumerator, out videoStream.FrameRateDenominator); Single.TryParse(Processing.mediaInfo.Get(StreamKind.Video, i, "FrameRate_Minimum"), numStyle, AppSettings.CInfo, out videoStream.FrameRateMin); Single.TryParse(Processing.mediaInfo.Get(StreamKind.Video, i, "FrameRate_Nominal"), numStyle, AppSettings.CInfo, out videoStream.FrameRateNom); Single.TryParse(Processing.mediaInfo.Get(StreamKind.Video, i, "FrameRate_Maximum"), numStyle, AppSettings.CInfo, out videoStream.FrameRateMax); Int64.TryParse(Processing.mediaInfo.Get(StreamKind.Video, i, "FrameCount"), numStyle, AppSettings.CInfo, out videoStream.FrameCount); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Video, i, "BitDepth"), numStyle, AppSettings.CInfo, out videoStream.BitDepth); videoStream.ScanType = Processing.mediaInfo.Get(StreamKind.Video, i, "ScanType"); videoStream.ScanOrder = Processing.mediaInfo.Get(StreamKind.Video, i, "ScanOrder"); UInt64.TryParse(Processing.mediaInfo.Get(StreamKind.Video, i, "StreamSize"), numStyle, AppSettings.CInfo, out videoStream.StreamSize); videoStream.EncodedApplication = Processing.mediaInfo.Get(StreamKind.Video, i, "Encoded_Application"); videoStream.EncodedApplicationUrl = Processing.mediaInfo.Get(StreamKind.Video, i, "Encoded_Application/Url"); videoStream.EncodedLibrary = Processing.mediaInfo.Get(StreamKind.Video, i, "Encoded_Library"); videoStream.EncodedLibraryName = Processing.mediaInfo.Get(StreamKind.Video, i, "Encoded_Library/Name"); videoStream.EncodedLibraryVersion = Processing.mediaInfo.Get(StreamKind.Video, i, "Encoded_Library/Version"); videoStream.EncodedLibraryDate = Processing.mediaInfo.Get(StreamKind.Video, i, "Encoded_Library/Date"); videoStream.EncodedLibrarySettings = Processing.mediaInfo.Get(StreamKind.Video, i, "Encoded_Library_Settings"); if (videoStream.Width > 1280) { if ((videoStream.ScanType == "Progressive") || (videoStream.ScanType == "")) videoStream.VideoSize = VideoFormat.Videoformat1080P; else videoStream.VideoSize = VideoFormat.Videoformat1080I; } else if (videoStream.Width > 720) { videoStream.VideoSize = VideoFormat.Videoformat720P; } else if ((videoStream.Height > 480) && (videoStream.Height <= 576) && (videoStream.Width <= 720)) { if ((videoStream.ScanType == "Progressive") || (videoStream.ScanType == "")) videoStream.VideoSize = VideoFormat.Videoformat576P; else videoStream.VideoSize = VideoFormat.Videoformat576I; } else { if ((videoStream.ScanType == "Progressive") || (videoStream.ScanType == "")) videoStream.VideoSize = VideoFormat.Videoformat480P; else videoStream.VideoSize = VideoFormat.Videoformat480I; } Video.Add(videoStream); } #endregion #region Get Audio Info for (int i = 0; i < _audioStreams; i++) { AudioStreamInfo audioStream = new AudioStreamInfo(); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Audio, i, "StreamKindID"), numStyle, AppSettings.CInfo, out audioStream.StreamKindID); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Audio, i, "StreamKindPos"), numStyle, AppSettings.CInfo, out audioStream.StreamKindPos); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Audio, i, "ID"), numStyle, AppSettings.CInfo, out audioStream.ID); audioStream.Format = Processing.mediaInfo.Get(StreamKind.Audio, i, "Format"); audioStream.FormatInfo = Processing.mediaInfo.Get(StreamKind.Audio, i, "Format/Info"); audioStream.FormatVersion = Processing.mediaInfo.Get(StreamKind.Audio, i, "Format_Version"); audioStream.FormatProfile = Processing.mediaInfo.Get(StreamKind.Audio, i, "Format_Profile"); audioStream.CodecID = Processing.mediaInfo.Get(StreamKind.Audio, i, "CodecID"); audioStream.CodecIDInfo = Processing.mediaInfo.Get(StreamKind.Audio, i, "CodecID/Info"); audioStream.CodecIDUrl = Processing.mediaInfo.Get(StreamKind.Audio, i, "CodecID/Url"); audioStream.CodecIDDescription = Processing.mediaInfo.Get(StreamKind.Audio, i, "CodecID_Description"); Int64.TryParse(Processing.mediaInfo.Get(StreamKind.Audio, i, "Duration"), numStyle, AppSettings.CInfo, out audioStream.Duration); audioStream.BitRateMode = Processing.mediaInfo.Get(StreamKind.Audio, i, "BitRate_Mode"); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Audio, i, "BitRate"), numStyle, AppSettings.CInfo, out audioStream.BitRate); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Audio, i, "BitRate_Minimum"), numStyle, AppSettings.CInfo, out audioStream.BitRateMin); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Audio, i, "BitRate_Nominal"), numStyle, AppSettings.CInfo, out audioStream.BitRateNom); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Audio, i, "BitRate_Maximum"), numStyle, AppSettings.CInfo, out audioStream.BitRateMax); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Audio, i, "Channel(s)"), numStyle, AppSettings.CInfo, out audioStream.Channels); audioStream.ChannelsString = Processing.mediaInfo.Get(StreamKind.Audio, i, "Channel(s)/String"); audioStream.ChannelPositions = Processing.mediaInfo.Get(StreamKind.Audio, i, "ChannelPositions"); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Audio, i, "SamplingRate"), numStyle, AppSettings.CInfo, out audioStream.SamplingRate); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Audio, i, "BitDepth"), numStyle, AppSettings.CInfo, out audioStream.BitDepth); audioStream.CompressionMode = Processing.mediaInfo.Get(StreamKind.Audio, i, "Compression_Mode"); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Audio, i, "Delay"), numStyle, AppSettings.CInfo, out audioStream.Delay); UInt64.TryParse(Processing.mediaInfo.Get(StreamKind.Audio, i, "StreamSize"), numStyle, AppSettings.CInfo, out audioStream.StreamSize); audioStream.EncodedLibrary = Processing.mediaInfo.Get(StreamKind.Audio, i, "Encoded_Library"); audioStream.EncodedLibraryName = Processing.mediaInfo.Get(StreamKind.Audio, i, "Encoded_Library/Name"); audioStream.EncodedLibraryVersion = Processing.mediaInfo.Get(StreamKind.Audio, i, "Encoded_Library/Version"); audioStream.EncodedLibraryDate = Processing.mediaInfo.Get(StreamKind.Audio, i, "Encoded_Library/Date"); audioStream.EncodedLibrarySettings = Processing.mediaInfo.Get(StreamKind.Audio, i, "Encoded_Library_Settings"); audioStream.LanguageFull = Processing.mediaInfo.Get(StreamKind.Audio, i, "Language/String1"); audioStream.LanguageIso6391 = Processing.mediaInfo.Get(StreamKind.Audio, i, "Language/String2"); audioStream.LanguageIso6392 = Processing.mediaInfo.Get(StreamKind.Audio, i, "Language/String3"); Audio.Add(audioStream); } #endregion #region Get Image Info for (int i = 0; i < _imageStreams; i++) { ImageStreamInfo imageStream = new ImageStreamInfo(); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Image, i, "StreamKindID"), numStyle, AppSettings.CInfo, out imageStream.StreamKindID); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Image, i, "ID"), numStyle, AppSettings.CInfo, out imageStream.ID); imageStream.Format = Processing.mediaInfo.Get(StreamKind.Image, i, "Format"); imageStream.CodecIDInfo = Processing.mediaInfo.Get(StreamKind.Image, i, "CodecID/Info"); UInt64.TryParse(Processing.mediaInfo.Get(StreamKind.Image, i, "StreamSize"), numStyle, AppSettings.CInfo, out imageStream.StreamSize); imageStream.LanguageFull = Processing.mediaInfo.Get(StreamKind.Image, i, "Language/String1"); imageStream.LanguageIso6392 = Processing.mediaInfo.Get(StreamKind.Image, i, "Language/String3"); Image.Add(imageStream); } #endregion #region Get Text Info for (int i = 0; i < _textStreams; i++) { TextStreamInfo textStream = new TextStreamInfo(); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Text, i, "StreamKindID"), numStyle, AppSettings.CInfo, out textStream.StreamKindID); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Text, i, "ID"), numStyle, AppSettings.CInfo, out textStream.ID); textStream.Format = Processing.mediaInfo.Get(StreamKind.Text, i, "Format"); textStream.CodecIDInfo = Processing.mediaInfo.Get(StreamKind.Text, i, "CodecID/Info"); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Text, i, "Delay"), numStyle, AppSettings.CInfo, out textStream.Delay); UInt64.TryParse(Processing.mediaInfo.Get(StreamKind.Text, i, "StreamSize"), numStyle, AppSettings.CInfo, out textStream.StreamSize); textStream.LanguageFull = Processing.mediaInfo.Get(StreamKind.Text, i, "Language/String1"); textStream.LanguageIso6392 = Processing.mediaInfo.Get(StreamKind.Text, i, "Language/String3"); Text.Add(textStream); } #endregion #region Get Menu Info for (int i = 0; i < _menuCount; i++) { MenuStreamInfo menuStream = new MenuStreamInfo(); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Menu, i, "Chapters_Pos_Begin"), numStyle, AppSettings.CInfo, out menuStream.ChaptersPosBegin); Int32.TryParse(Processing.mediaInfo.Get(StreamKind.Menu, i, "Chapters_Pos_End"), numStyle, AppSettings.CInfo, out menuStream.ChaptersPosEnd); for (int j = menuStream.ChaptersPosBegin; j < menuStream.ChaptersPosEnd; j++) { DateTime tempTime; DateTime.TryParse(Processing.mediaInfo.Get(StreamKind.Menu, i, j, InfoKind.Name), AppSettings.CInfo, DateTimeStyles.AssumeLocal, out tempTime); Chapters.Add(tempTime.TimeOfDay); } } #endregion Processing.mediaInfo.Option("Complete"); Processing.mediaInfo.Close(); }