public void TransportStreamTest1()
        {
            string fileName = Path.Combine(Directory.GetCurrentDirectory(), "sample_TS_with_graphics.ts");
            var    parser   = new Nikse.SubtitleEdit.Logic.TransportStream.TransportStreamParser();

            parser.ParseTSFile(fileName);
            var subtitles = parser.GetDvbSubtitles(41);

            Assert.IsTrue(subtitles.Count == 10);
            Assert.IsTrue(subtitles[0].Pes.GetImageFull().Width == 719);
            Assert.IsTrue(subtitles[0].Pes.GetImageFull().Height == 575);
        }
        public void TransportStreamTest1()
        {
            string fileName = Path.Combine(Directory.GetCurrentDirectory(), "sample_TS_with_graphics.ts");
            var parser = new Nikse.SubtitleEdit.Logic.TransportStream.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);
            }
        }
Exemple #3
0
        private bool ImportSubtitleFromTransportStream(string fileName)
        {
            if (string.IsNullOrEmpty(_language.ParsingTransportStream))
                ShowStatus("Parsing transport stream - please wait...");
            else
                ShowStatus(_language.ParsingTransportStream);
            Refresh();
            var tsParser = new Nikse.SubtitleEdit.Logic.TransportStream.TransportStreamParser();
            tsParser.ParseTsFile(fileName);
            ShowStatus(string.Empty);

            if (tsParser.SubtitlePacketIds.Count == 0)
            {
                MessageBox.Show(_language.NoSubtitlesFound);
                return false;
            }

            int packedId = tsParser.SubtitlePacketIds[0];
            if (tsParser.SubtitlePacketIds.Count > 1)
            {
                var subChooser = new TransportStreamSubtitleChooser();
                _formPositionsAndSizes.SetPositionAndSize(subChooser);
                subChooser.Initialize(tsParser, fileName);
                if (subChooser.ShowDialog(this) == DialogResult.Cancel)
                    return false;
                packedId = tsParser.SubtitlePacketIds[subChooser.SelectedIndex];
                _formPositionsAndSizes.SavePositionAndSize(subChooser);
            }
            var subtitles = tsParser.GetDvbSubtitles(packedId);

            var formSubOcr = new VobSubOcr();
            _formPositionsAndSizes.SetPositionAndSize(formSubOcr);
            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 (Paragraph 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();
                _formPositionsAndSizes.SavePositionAndSize(formSubOcr);
                return true;
            }
            _formPositionsAndSizes.SavePositionAndSize(formSubOcr);
            return false;
        }