/// <summary> /// Return info from this MXFFile /// </summary> /// <param name="path"></param> /// <returns></returns> public string GetTrackInfo(int trackID) { try { List <MXFLogicalObject> lot = MXFLogicalObject.GetLogicChilds <MXFGenericTrack>(this.LogicalBase[typeof(MXFMaterialPackage)]); MXFLogicalObject track = lot.Where(a => ((MXFGenericTrack)a.Object).TrackID == trackID).FirstOrDefault(); if (track != null) { MXFGenericTrack gtrack = track.Object as MXFGenericTrack; if (gtrack != null) { StringBuilder sb = new StringBuilder(); sb.Append(string.Format("'{0}' ", gtrack.TrackName)); MXFTimelineTrack ttrack = gtrack as MXFTimelineTrack; if (ttrack != null) { sb.Append(string.Format("Rate: {0} ", ttrack.EditRate)); } MXFSequence seq = MXFLogicalObject.GetFirstChild <MXFSequence>(track); if (seq != null && seq.DataDefinition != null) { sb.Append(string.Format("Type: {0} ", seq.DataDefinition.Description)); } return(sb.ToString()); } } return(""); } catch (Exception) { } return(""); }
/// <summary> /// Return info for a generic track packet /// </summary> /// <returns>A string representing information about a generic track</returns> public string GetTrackInfo(MXFGenericTrack genericTrack) { try { if (genericTrack != null) { StringBuilder sb = new StringBuilder(); MXFSequence seq = genericTrack.GetFirstMXFSequence(); if (seq != null && seq.DataDefinition != null) { sb.Append(string.Format("{0}", seq.DataDefinition.Name)); } if (genericTrack is MXFTimelineTrack timeLineTrack) { sb.Append(string.Format(" @ {0}, ", timeLineTrack.EditRate)); } sb.Append(string.Format(@"""{0}"", ", genericTrack.TrackName)); return(sb.ToString()); } return(""); } catch (Exception) { return("Unable to retrieve track info. See error log for more details"); } }