Sample: |
|
How to use the CompressorDataSize is shown in the sample
Saving Codec Properties.
Save the data from a codec that was selected in a combo box.
[C#] private void cmdSaveCodecData_Click( object sender, System.EventArgs e )
{
if( edtConfigFile.Text != "" )
{
try
{
System.IO.FileStream Filestream = new System.IO.FileStream( edtConfigFile.Text, System.IO.FileMode.Create, System.IO.FileAccess.Write );
// Create the writer for data.
System.IO.BinaryWriter BinWriter = new System.IO.BinaryWriter( Filestream );
// Write data to Test.data.
AviCompressor aviComp = null;
aviComp = ((AviCompressor)(CodecBox.SelectedItem));
BinWriter.Write( aviComp.ToString() );
BinWriter.Write( aviComp.CompressorDataSize );
BinWriter.Write( aviComp.CompressorData );
BinWriter.Close();
Filestream.Close();
}
catch( Exception Ex )
{
MessageBox.Show( Ex.Message, "Write error", MessageBoxButtons.OK, MessageBoxIcon.Error );
}
}
}
Load the previously saved data and assign it to a codec.
[C#] private void cmdLoadCodecData_Click( object sender, System.EventArgs e )
{
if( edtConfigFile.Text != "" )
{
try
{
// Create the reader for data.
System.IO.FileStream Filestrem = new System.IO.FileStream( edtConfigFile.Text, System.IO.FileMode.Open, System.IO.FileAccess.Read );
System.IO.BinaryReader BinReader = new System.IO.BinaryReader( Filestrem );
string CodecName = "";
AviCompressor Codec = null;
bool CodecFound = false;
// Retrieve the name of the codec from the codec configuration file
CodecName = BinReader.ReadString();
// Search this codec in the codec combo box
CodecFound = false;
foreach( AviCompressor item in CodecBox.Items )
{
if( item.ToString() == CodecName )
{
CodecBox.SelectedItem = item;
Codec = item;
CodecFound = true;
}
}
if( CodecFound == true )
{
int codecDataLen = BinReader.ReadInt32();
// Assign the configuration data to the codec.
Codec.CompressorData = BinReader.ReadBytes( codecDataLen );
}
else
{
// If the codec was not found, display an error message.
MessageBox.Show( "The codec " + CodecName + " was not found!", "Load codec configuration", MessageBoxButtons.OK, MessageBoxIcon.Information );
}
BinReader.Close();
Filestrem.Close();
}
catch( Exception Ex )
{
MessageBox.Show( Ex.Message, "Read error", MessageBoxButtons.OK, MessageBoxIcon.Error );
}
}
}
|