コード例 #1
0
        internal override void GlobalInputGetProperties(string text, ParsingProperties properties)
        {
            bool  isFrameRatePAL = inputRegexPAL.Match(text).Success;
            float frameRate      = (isFrameRatePAL ? 25 : 29.97F);

            properties.InputFrameRate = frameRate;
        }
コード例 #2
0
        private void CompleteTimingsAfterParsing(Subtitles subtitles, ParsingProperties parsingProperties)
        {
            float originalFrameRate = subtitles.Properties.OriginalFrameRate;

            subtitles.Properties.SetCurrentFrameRate(originalFrameRate);

            if (parsingProperties.TimingMode == TimingMode.Times)
            {
                subtitles.UpdateFramesFromTimes(originalFrameRate);
            }
            else
            {
                subtitles.UpdateTimesFromFrames(originalFrameRate);
            }
        }
コード例 #3
0
ファイル: GenericResolvers.cs プロジェクト: Bagoum/danmokou
            public ReflCtx(IParseQueue q)
            {
                List <ParsingProperty> properties = new List <ParsingProperty>();

                props = new ParsingProperties(new ParsingProperty[0]);
                while (q.MaybeScan() == SMParser.PROP2_KW)
                {
                    q.Advance();
                    properties.Add(q.NextChild().Into <ParsingProperty>());
                    if (!q.IsNewline)
                    {
                        throw new Exception(
                                  $"Line {q.GetLastLine()} is missing a newline at the end of the the property declaration. Instead, it found \"{q.Scan()}\".");
                    }
                }
                props = new ParsingProperties(properties);
            }
コード例 #4
0
        private Subtitles ParsedSubtitlesPlain(string path, Encoding fileEncoding, string text, bool withCharacterNames, TimingMode timingMode, string lineSeparator)
        {
            SubtitleCollection collection        = null;
            PlainTextParser    plainParser       = new PlainTextParser(withCharacterNames, lineSeparator);
            ParsingProperties  parsingProperties = plainParser.Parse(text, timingMode, fileEncoding, out collection);

            SubtitleProperties subtitleProperties = new SubtitleProperties(parsingProperties);

            collection.SetPropertiesForAll(subtitleProperties);

            Subtitles subtitles = new Subtitles(collection, subtitleProperties);

            CompleteTimingsAfterParsing(subtitles, parsingProperties);

            fileProperties = new FileProperties(path, fileEncoding, parsingProperties.TimingMode);

            Logger.Info("[SubtitleFactory] Opened {0} with encoding {1}", path, fileEncoding);
            return(subtitles);
        }
コード例 #5
0
        /* Private members */

        private Subtitles ParsedSubtitles(string path, Encoding fileEncoding, SubtitleFormat format, float inputFrameRate, string text)
        {
            SubtitleCollection collection        = null;
            SubtitleParser     subtitleParser    = new SubtitleParser(includeIncompleteSubtitles);
            ParsingProperties  parsingProperties = subtitleParser.Parse(text, format, inputFrameRate, out collection, out incompleteSubtitles);

            SubtitleProperties subtitleProperties = new SubtitleProperties(parsingProperties);

            collection.SetPropertiesForAll(subtitleProperties);

            Subtitles subtitles = new Subtitles(collection, subtitleProperties);

            CompleteTimingsAfterParsing(subtitles, parsingProperties);

            fileProperties = new FileProperties(path, fileEncoding, format.Type, parsingProperties.TimingMode);

            Logger.Info("[SubtitleFactory] Opened \"{0}\" with encoding \"{1}\", format \"{2}\", timing mode \"{3}\" and frame rate \"{4}\" (input frame rate was \"{5}\")",
                        path, fileEncoding, format.Name, parsingProperties.TimingMode, subtitleProperties.CurrentFrameRate, inputFrameRate);

            return(subtitles);
        }
コード例 #6
0
 internal virtual void GlobalInputGetProperties(string text, ParsingProperties properties)
 {
     return;
 }
コード例 #7
0
 /// <summary>Initializes a new instance of the <see cref="SubtitleProperties" />
 /// class, with defaults for all properties.</summary>
 internal SubtitleProperties(ParsingProperties properties)
 {
     headers           = properties.Headers;
     originalFrameRate = properties.InputFrameRate;
 }