private void ExtractInfo(string filePath, string pathToDll, NumberFormatInfo providerNumber) { using (var mediaInfo = new MediaInfo(pathToDll)) { Version = mediaInfo.Option("Info_Version"); mediaInfo.Open(filePath); var streamNumber = 0; Tags = TagHelper.GetAllTags <AudioTags>(mediaInfo, StreamKind.General, 0); // Setup videos for (var i = 0; i < mediaInfo.CountGet(StreamKind.Video); ++i) { VideoStreams.Add(new VideoStreamBuilder(mediaInfo, streamNumber++, i).Build()); } if (Duration == 0) { double duration; double.TryParse( mediaInfo.Get(StreamKind.Video, 0, "Duration"), NumberStyles.AllowDecimalPoint, providerNumber, out duration); Duration = (int)duration; } // Setup audios for (var i = 0; i < mediaInfo.CountGet(StreamKind.Audio); ++i) { AudioStreams.Add(new AudioStreamBuilder(mediaInfo, streamNumber++, i).Build()); } // Setup subtitles for (var i = 0; i < mediaInfo.CountGet(StreamKind.Text); ++i) { Subtitles.Add(new SubtitleStreamBuilder(mediaInfo, streamNumber++, i).Build()); } // Setup chapters for (var i = 0; i < mediaInfo.CountGet(StreamKind.Other); ++i) { Chapters.Add(new ChapterStreamBuilder(mediaInfo, streamNumber++, i).Build()); } // Setup menus for (var i = 0; i < mediaInfo.CountGet(StreamKind.Menu); ++i) { MenuStreams.Add(new MenuStreamBuilder(mediaInfo, streamNumber++, i).Build()); } MediaInfoNotloaded = VideoStreams.Count == 0 && AudioStreams.Count == 0 && Subtitles.Count == 0; // Produce copability properties if (MediaInfoNotloaded) { SetPropertiesDefault(); } else { SetupProperties(mediaInfo); } } }
public void BeforeScenario() { var tags = TagHelper.GetAllTags(featureContext, scenarioContext); variableController.AddConfig(config.Value, tags); }