internal override void GlobalInputGetProperties(string text, ParsingProperties properties) { bool isFrameRatePAL = inputRegexPAL.Match(text).Success; float frameRate = (isFrameRatePAL ? 25 : 29.97F); properties.InputFrameRate = frameRate; }
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); } }
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); }
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); }
/* 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); }
internal virtual void GlobalInputGetProperties(string text, ParsingProperties properties) { return; }
/// <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; }