internal void Initialize(TransportStreamParser tsParser, string fileName) { _tsParser = tsParser; Text = string.Format(Configuration.Settings.Language.TransportStreamSubtitleChooser.Title, fileName); foreach (int id in tsParser.SubtitlePacketIds) { listBoxTracks.Items.Add(string.Format(Configuration.Settings.Language.TransportStreamSubtitleChooser.PidLine, id, tsParser.GetDvbSubtitles(id).Count)); } listBoxTracks.SelectedIndex = 0; }
public void TransportStreamTest1() { string fileName = Path.Combine(Directory.GetCurrentDirectory(), "sample_TS_with_graphics.ts"); var parser = new TransportStreamParser(); parser.Parse(fileName, null); var subtitles = parser.GetDvbSubtitles(41); Assert.IsTrue(subtitles.Count == 10); using (var bmp = subtitles[0].Pes.GetImageFull()) { Assert.IsTrue(bmp.Width == 719); Assert.IsTrue(bmp.Height == 575); } }
private bool ImportSubtitleFromTransportStream(string fileName) { ShowStatus(_language.ParsingTransportStream); Refresh(); var tsParser = new TransportStreamParser(); tsParser.Parse(fileName, (pos, total) => UpdateProgress(pos, total, _language.ParsingTransportStreamFile)); ShowStatus(string.Empty); TaskbarList.SetProgressState(Handle, TaskbarButtonProgressFlags.NoProgress); if (tsParser.SubtitlePacketIds.Count == 0) { MessageBox.Show(_language.NoSubtitlesFound); return false; } int packedId = tsParser.SubtitlePacketIds[0]; if (tsParser.SubtitlePacketIds.Count > 1) { using (var subChooser = new TransportStreamSubtitleChooser()) { subChooser.Initialize(tsParser, fileName); if (subChooser.ShowDialog(this) == DialogResult.Cancel) return false; packedId = tsParser.SubtitlePacketIds[subChooser.SelectedIndex]; } } var subtitles = tsParser.GetDvbSubtitles(packedId); using (var formSubOcr = new VobSubOcr()) { formSubOcr.Initialize(subtitles, Configuration.Settings.VobSubOcr, fileName); if (formSubOcr.ShowDialog(this) == DialogResult.OK) { MakeHistoryForUndo(_language.BeforeImportingDvdSubtitle); _subtitle.Paragraphs.Clear(); SetCurrentFormat(Configuration.Settings.General.DefaultSubtitleFormat); _subtitle.WasLoadedWithFrameNumbers = false; _subtitle.CalculateFrameNumbersFromTimeCodes(CurrentFrameRate); foreach (var p in formSubOcr.SubtitleFromOcr.Paragraphs) { _subtitle.Paragraphs.Add(p); } ShowSource(); SubtitleListview1.Fill(_subtitle, _subtitleAlternate); _subtitleListViewIndex = -1; SubtitleListview1.FirstVisibleIndex = -1; SubtitleListview1.SelectIndexAndEnsureVisible(0); _fileName = string.Empty; Text = Title; Configuration.Settings.Save(); return true; } return false; } }