public void SaveAsSchemeToXML(string fileName)
{
// Create a new XmlTextWriter instance
XmlTextWriter writer = new
XmlTextWriter(fileName, Encoding.UTF8);
writer.Formatting = Formatting.Indented;
writer.Indentation = 4;
// start writing!
writer.WriteStartDocument();
writer.WriteStartElement("MultimediaScheme");
writer.WriteElementString("Container", MediaInfoBase.VideoContainerToFFMpegContainer[TargetContainer]);
// Video
writer.WriteStartElement("Video");
writer.WriteElementString("Codec", TargetVideoCodec.ToString());
if (TargetVideoCodec != VideoCodecEnum.none)
{
var firstVideoTrack = FirstVideoTrack;
if (firstVideoTrack != null)
{
if (EditResolution)
{
writer.WriteElementString("Width", firstVideoTrack.Width.ToString());
writer.WriteElementString("Height", firstVideoTrack.Height.ToString());
}
if (EditAspect) writer.WriteElementString("Aspect", firstVideoTrack.Aspect);
if (EditBitRate) writer.WriteElementString("Bitrate", firstVideoTrack.Bitrate.ToString());
if (EditFrameRate) writer.WriteElementString("Framerate", firstVideoTrack.FrameRate.ToString(System.Globalization.CultureInfo.InvariantCulture));
}
}
writer.WriteEndElement();
// Audio
writer.WriteStartElement("Audio");
foreach (var track in Tracks)
{
if (track.TrackType == "Audio")
{
writer.WriteStartElement("Track");
writer.WriteElementString("Codec", track.TargetAudioCodec.ToString());
if ((track.TargetAudioCodec != AudioCodecEnum.none) && (track.TargetAudioCodec != AudioCodecEnum.copy) )
{
writer.WriteElementString("Channels", track.Channels.ToString());
writer.WriteElementString("Bitrate", track.Bitrate.ToString());
writer.WriteElementString("SamplingRate", track.SamplingRateHz.ToString());
}
writer.WriteEndElement();
}
}
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Close();
}