IWMEncSourceGroup.AddSource
The AddSource method adds a media stream to the source group.
Syntax
IWMEncSource IWMEncSourceGroup.AddSource(
WMENC_SOURCE_TYPE enumType
);
Parameters
enumType
[in] Member of a WMENC_SOURCE_TYPE enumeration type identifying the type of the media stream being added.
Return Values
This method returns an IWMEncSource object.
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. |
0xC00D1B5B | The input source type must be either audio, video, or script. |
Remarks
Only one audio, one video, one HTML, and one script stream can be added to a source group.
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