private OpenVideoResult InstanciateGenerator(SyntheticVideo video) { OpenVideoResult res = OpenVideoResult.NotSupported; generator = new FrameGeneratorSyntheticVideo(video); res = generator.Initialize(null); initialized = res == OpenVideoResult.Success; return(res); }
private static SyntheticVideo Parse(XmlReader r) { SyntheticVideo video = new SyntheticVideo(); r.MoveToContent(); if (!(r.Name == "KinoveaSyntheticVideo")) { return(video); } r.ReadStartElement(); r.ReadElementContentAsString("FormatVersion", ""); while (r.NodeType == XmlNodeType.Element) { switch (r.Name) { case "ImageSize": video.ImageSize = XmlHelper.ParseSize(r.ReadElementContentAsString()); break; case "FramesPerSecond": video.FramePerSecond = r.ReadElementContentAsDouble(); break; case "DurationFrames": video.DurationFrames = r.ReadElementContentAsInt(); break; case "BackgroundColor": video.BackgroundColor = XmlHelper.ParseColor(r.ReadElementContentAsString(), Color.White); break; case "FrameNumber": video.FrameNumber = XmlHelper.ParseBoolean(r.ReadElementContentAsString()); break; case "Objects": video.Objects = ParseObjects(r); break; default: // Skip unparsed nodes. string unparsed = r.ReadOuterXml(); log.DebugFormat("Unparsed content in KSV XML: {0}", unparsed); break; } } r.ReadEndElement(); return(video); }
public override OpenVideoResult Open(string filePath) { this.filePath = filePath; this.video = SyntheticVideoSerializer.Deserialize(filePath); if (video == null) { return(OpenVideoResult.NotSupported); } OpenVideoResult res = InstanciateGenerator(video); if (res != OpenVideoResult.Success) { return(res); } SetupVideoInfo(); workingZone = new VideoSection(0, videoInfo.DurationTimeStamps - videoInfo.AverageTimeStampsPerFrame); return(res); }
public static SyntheticVideo Deserialize(string file) { if (!File.Exists(file)) { return(null); } XmlReaderSettings settings = new XmlReaderSettings(); settings.IgnoreComments = true; settings.IgnoreProcessingInstructions = true; settings.IgnoreWhitespace = true; settings.CloseInput = true; SyntheticVideo video = null; using (XmlReader r = XmlReader.Create(file, settings)) { video = Parse(r); } return(video); }
public FrameGeneratorSyntheticVideo(SyntheticVideo video) { this.video = video; errorBitmap = new Bitmap(640, 480); }