private void LoadImageLayoutInfo(AdvFileInfo fileInfo) { for (int i = 0; i < fileInfo.ImageLayoutsCount; i++) { AdvImageLayoutInfo info; int errorCode = AdvLib.GetImageLayoutInfo(i, out info); AdvError.Check(errorCode); var layout = new ImageLayoutDefinition() { LayoutId = info.ImageLayoutId, Bpp = info.ImageLayoutBpp }; for (int j = 0; j < info.ImageLayoutTagsCount; j++) { string name; string value; if (AdvLib.GetImageLayoutTag(info.ImageLayoutId, j, out name, out value) == AdvError.S_OK) { layout.ImageLayoutTags.Add(name, value); } } ImageLayouts.Add(layout); } }
private void LoadTags(AdvFileInfo fileInfo) { for (int i = 0; i < fileInfo.MainStreamTagsCount; i++) { string name; string value; if (AdvLib.GetMainStreamTag(i, out name, out value) == AdvError.S_OK) { MainSteamInfo.MetadataTags.Add(name, value); } } for (int i = 0; i < fileInfo.CalibrationStreamTagsCount; i++) { string name; string value; if (AdvLib.GetCalibrationStreamTag(i, out name, out value) == AdvError.S_OK) { CalibrationSteamInfo.MetadataTags.Add(name, value); } } for (int i = 0; i < fileInfo.SystemMetadataTagsCount; i++) { string name; string value; if (AdvLib.GetSystemMetadataTag(i, out name, out value) == AdvError.S_OK) { SystemMetadataTags.Add(name, value); } } for (int i = 0; i < fileInfo.UserMetadataTagsCount; i++) { string name; string value; if (AdvLib.GetUserMetadataTag(i, out name, out value) == AdvError.S_OK) { UserMetadataTags.Add(name, value); } } for (int i = 0; i < fileInfo.ImageSectionTagsCount; i++) { string name; string value; if (AdvLib.GetImageSectionTag(i, out name, out value) == AdvError.S_OK) { ImageSectionTags.Add(name, value); } } }
private void EnsureStatusTagDefinitions(AdvFileInfo fileInfo) { for (uint i = 0; i < fileInfo.StatusTagsCount; i++) { Adv2TagType?tagType; string tagName; if (AdvLib.GetStatusTagInfo(i, out tagType, out tagName) == AdvError.S_OK && !string.IsNullOrEmpty(tagName) && tagType != null) { StatusTagDefinitions.Add(new Tuple <string, uint, Adv2TagType>(tagName, i, tagType.Value)); } } }
private void LoadEdlsName(string strDirectory) { string[] arrEdls = System.IO.Directory.GetFiles(strDirectory, "*.edl"); this.C_ListEdlsInFolder.BeginUpdate(); foreach (string strEdl in arrEdls) { string strEdlName = this.GetFileName(strEdl); AdvFileInfo info = new AdvFileInfo(strEdlName, strEdl); this.C_ListEdlsInFolder.Items.Add(info); } this.C_ListEdlsInFolder.EndUpdate(); }
private void LoadGamesName(string strDirectory) { string[] arrGames = System.IO.Directory.GetFiles(strDirectory, "*.exp"); this.C_ListGamesInFolder.BeginUpdate(); foreach (string strGame in arrGames) { string strGameName = this.GetFileName(strGame); if (this.CheckGameName(strGameName)) { AdvFileInfo info = new AdvFileInfo(strGameName, strGame); this.C_ListGamesInFolder.Items.Add(info); } } this.C_ListGamesInFolder.EndUpdate(); }
private AstroDigitalVideoStream(string fileName, ref AdvFileMetadataInfo fileMetadataInfo, ref GeoLocationInfo geoLocation) { CheckAdvFileFormat(fileName, ref fileMetadataInfo, ref geoLocation); m_FileName = fileName; var fileInfo = new AdvFileInfo(); TangraCore.ADVOpenFile(fileName, ref fileInfo); m_FirstFrame = 0; m_CountFrames = fileInfo.CountFrames; m_BitPix = fileInfo.Bpp; m_Width = fileInfo.Width; m_Height = fileInfo.Height; m_Aav16NormVal = fileInfo.Aav16NormVal; m_FrameRate = fileInfo.FrameRate; // Get the last frame in the video and read the Almanac Offset and Almanac Status so they are applied // to the frames that didn't have Almanac Status = Updated if (m_CountFrames > 0) { GetPixelmap(m_FirstFrame + m_CountFrames - 1); m_AlamanacOffsetLastFrameIsGood = m_CurrentFrameInfo.AlmanacStatusIsGood; m_AlmanacOffsetLastFrame = m_CurrentFrameInfo.GetSignedAlamancOffset(); } else { m_AlamanacOffsetLastFrameIsGood = false; m_AlmanacOffsetLastFrame = 0; } m_Engine = fileMetadataInfo.Engine; m_CameraModel = fileMetadataInfo.Camera; m_UsesNtpTimestamps = fileMetadataInfo.HasNTPTimeStamps; if (m_Engine == "AAV") { m_VideoStandard = GetFileTag("NATIVE-VIDEO-STANDARD"); double.TryParse(GetFileTag("NATIVE-FRAME-RATE"), out m_NativeFrameRate); int.TryParse(GetFileTag("OSD-FIRST-LINE"), out m_OsdFirstLine); int.TryParse(GetFileTag("OSD-LAST-LINE"), out m_OsdLastLine); if (m_OsdLastLine > m_Height) { m_OsdLastLine = m_Height; } if (m_OsdFirstLine < 0) { m_OsdFirstLine = 0; } m_IntegratedAAVFrames = -1; if (double.TryParse(GetFileTag("EFFECTIVE-FRAME-RATE"), out m_EffectiveFrameRate) && m_NativeFrameRate != 0) { m_IntegratedAAVFrames = (int)Math.Round(m_NativeFrameRate / m_EffectiveFrameRate); } int.TryParse(GetFileTag("FRAME-STACKING-RATE"), out m_StackingRate); if (m_StackingRate == 1) { m_StackingRate = 0; // Video stacked at x1 is a non-stacked video } } else { m_OsdFirstLine = 0; m_OsdLastLine = 0; } m_OcrDataAvailable = null; }