/// <summary> /// Get allparameter values and dump to logfile. /// call: /// var mi = new MediaInfo(fullFileName); /// string s = mi.AllParameterValues(fullFileName); /// </summary> /// <param name="fileName">The filename.</param> /// <returns></returns> public string AllParameterValues(string mediaInfoDLLFullName, string fileName) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.AppendLine(fileName); using (MediaInfoWrapper mediaInfo = new MediaInfoWrapper(mediaInfoDLLFullName)) { mediaInfo.Open(fileName); try { StreamKind streamKind = StreamKind.General; int streamCount = 0; foreach (string parameter in mediaInfo.InfoParametersCSV) { string[] parameters = parameter.Split(';'); if (parameters.Length == 1) { sb.AppendLine(parameters[0]); Enum.TryParse(parameters[0], out streamKind); if (Int32.TryParse(mediaInfo.Get(streamKind, 0, "StreamCount"), out streamCount)) { sb.AppendLine("streamCount=" + streamCount.ToString()); } } else if (parameters.Length > 1) { ////parameters[0] ////"Status" ////parameters[1] ////"bit field (0=IsAccepted, 1=IsFilled, 2=IsUpdated, 3=IsFinished)" for (int i = 0; i < streamCount; i++) { string value = mediaInfo.Get(streamKind, i, parameters[0]); if (!string.IsNullOrWhiteSpace(value)) { sb.AppendLine(String.Format("{0}: {1}={2} ({3})", streamKind, parameters[0], value, parameters[1])); } } } } } finally { mediaInfo.Close(); } } return(sb.ToString()); }
/// <summary>Reads the media information from the specified file.</summary> /// <param name="mediaInfoDLLFullName">Full filename of the mediainfo.DLL.</param> /// <param name="fileName">The media file full filename.</param> public void ReadMediaInformation(string fileName) { using (MediaInfoWrapper mediaInfo = new MediaInfoWrapper(this.MediaInfoDLLFullName)) { mediaInfo.Open(fileName); try { this.ReadInformation(mediaInfo); this.ReadGeneral(mediaInfo); this.ReadVideo(mediaInfo); this.ReadAudio(mediaInfo); this.ReadText(mediaInfo); } finally { mediaInfo.Close(); } } }