private static IEnumerable <VideoTrack> ParseVideoTracks(XElement videoTracksElement) { IEnumerable <VideoTrack> videoTracks = null; if (videoTracksElement != null) { videoTracks = videoTracksElement .Elements(AssetMetadataParser.VideoTrackElementName) .Select(v => VideoTrack.Load(v)) .ToArray(); } return(videoTracks); }
internal static VideoTrack Load(XElement videoTrackElement) { VideoTrack videoTrack = new VideoTrack(); videoTrack.Id = videoTrackElement.GetAttributeAsIntOrDefault(AssetMetadataParser.IdAttributeName); videoTrack.Bitrate = videoTrackElement.GetAttributeAsIntOrDefault(AssetMetadataParser.BitrateAttributeName); videoTrack.TargetBitrate = videoTrackElement.GetAttributeAsIntOrDefault(AssetMetadataParser.TargetBitrateAttributeName); videoTrack.FourCC = videoTrackElement.GetAttributeOrDefault(AssetMetadataParser.FourCCAttributeName); videoTrack.Width = videoTrackElement.GetAttributeAsIntOrDefault(AssetMetadataParser.WidthAttributeName); videoTrack.Height = videoTrackElement.GetAttributeAsIntOrDefault(AssetMetadataParser.HeightAttributeName); videoTrack.DisplayAspectRatioNumerator = videoTrackElement.GetAttributeAsIntOrDefault(AssetMetadataParser.DisplayAspectRatioNumeratorAttributeName); videoTrack.DisplayAspectRatioDenominator = videoTrackElement.GetAttributeAsIntOrDefault(AssetMetadataParser.DisplayAspectRatioDenominatorAttributeName); videoTrack.Framerate = videoTrackElement.GetAttributeAsDoubleOrDefault(AssetMetadataParser.FramerateAttributeName); videoTrack.TargetFramerate = videoTrackElement.GetAttributeAsDoubleOrDefault(AssetMetadataParser.TargetFramerateAttributeName); return(videoTrack); }