Share via


IWMEncSourceGroup.PrepareToEncode

Windows Media Encoder SDK banner art

The PrepareToEncode method initializes the source group in the encoding session.

Syntax

void IWMEncSourceGroup.PrepareToEncode(
  bool  bPrepare
);

Parameters

bPrepare

[in]  Boolean indicating whether to initialize an encoding session.

Return Values

If this method fails, it returns an error number.

Number Description
0x8007000E Memory cannot be allocated.
0xC00D0011 This method cannot be called if the encoder engine is running.
0xC00D002 The request is not valid for the current state of the encoder engine.
0xC00D1B67 You must specify a profile for the source group.

Remarks

You can use this method to prepare the encoding session on a source group-by-source group basis. You can also use this method during a running encoding session to create and initialize source groups.

Example Code

using WMEncoderLib;

try
{
// Create a WMEncoder object.
WMEncoder Encoder;
Encoder = new WMEncoder();

// Declare objects and variables.
IWMEncSourceGroupCollection SrcGrpColl;
IWMEncSourceGroup SrcGrp;
IWMEncSource SrcAud;
IWMEncVideoSource SrcVid;
IWMEncProfileCollection ProColl;
IWMEncProfile Pro;
int i;
int iAudCount;
int iVidCount;


// Create an IWMEncSourceGroupCollection object.
SrcGrpColl = Encoder.SourceGroupCollection;

// Create an IWMEncSourceGroup object.
SrcGrp = SrcGrpColl.Add("SG_1");

// Create an audio and a video source object.
SrcAud = SrcGrp.AddSource(WMENC_SOURCE_TYPE.WMENC_AUDIO);
SrcVid = (IWMEncVideoSource)SrcGrp.AddSource(WMENC_SOURCE_TYPE.WMENC_VIDEO);

// Specify the .avi source file.
SrcAud.SetInput("C:\\filename.avi", "", "");
SrcVid.SetInput("C:\\filename.avi", "", "");

// You can also use the AutoSetFileSource property to
// automatically parse a file and add the source streams
// to the source group.

//    SrcGrp.AutoSetFileSource ("C:\\filename.avi");

// Loop through the collection of system profiles to set
// a specific profile into the source group object.

ProColl = Encoder.ProfileCollection;
for (i = 0; i < ProColl.Count; i++)
{
    Pro = ProColl.Item(i);
    if (Pro.Name == "Windows Media Video 8 for Local Area Network (384 Kbps)")
    {
        SrcGrp.set_Profile(Pro);
        break;
    }
}

// Change the name of the source group.
SrcGrp.Name = "Music Only";

// Retrieve the number of audio and video streams
// in the source group.
iAudCount = SrcGrp.get_SourceCount(WMENC_SOURCE_TYPE.WMENC_AUDIO);
iVidCount = SrcGrp.get_SourceCount(WMENC_SOURCE_TYPE.WMENC_VIDEO);

// Remove the video stream. In the current release of the
// Windows Media Encoder SDK, a source group can contain
// at most only one audio, one video, and one script stream.
// You must verify that the count is not 0 before deleting
// the source stream.
if (iVidCount <> 0)
{
    SrcGrp.RemoveSource(WMENC_SOURCE_TYPE.WMENC_VIDEO, 0);
}

// Specify automatic archiving when the source group
// is active.
SrcGrp.set_AutoArchive(WMENC_ARCHIVE_TYPE.WMENC_ARCHIVE_LOCAL, WMENC_ARCHIVE_OPERATION.WMENC_ARCHIVE_START);

// Start the encoding process.
SrcGrp.PrepareToEncode(true);
}

catch (Exception e)
{
     // TODO: Handle exceptions.
}

Requirements

Reference: Windows Media Encoder

Namespace: WMEncoderLib

Assembly: Interop.WMEncoderLib.dll

Library: WMEncoderLib.dll

See Also