Share via


IWMEncSourceGroup.set_AutoArchive

Windows Media Encoder SDK banner art

The set_AutoArchive method specifies a value that indicates the nature of the archiving operation if WMEncoder.EnableAutoArchive is set to true.

Syntax

void IWMEncSourceGroup.set_AutoArchive(
  WMENC_ARCHIVE_TYPE  enumArchiveType,
  WMENC_ARCHIVE_OPERATION  penumArchiveOp
);

Parameters

enumArchiveType

[in]  Specifies a WMENC_ARCHIVE_TYPE enumeration type indicating where content can be archived.

penumArchiveOp

A WMENC_ARCHIVE_OPERATION enumeration type that indicates whether encoded content will be archived when the source group is made active and the encoding session starts.

If this property fails, it returns an error number.

Number Description
0xC00D1B77 You can save encoded content only to a local file.
0xC00D1B78 You can only start, stop, or pause the archiving process.

Return Values

This method does not return a value.

Remarks

Use the set_AutoArchive method to selectively archive source groups. For instance, if you are encoding a static welcome screen, a live presentation and a static goodbye screen, you can utilize disk space more efficiently by only archiving the live presentation. Use the WMEncoder.EnableAutoArchive property to specify whether archiving will automatically occur when the encoding session starts. Use the WMEncoder.Archive method to manually control the archiving process. If both the EnableAutoArchive and set_AutoArchive properties are set to true, archiving automatically starts when encoding of the relevant source group starts.

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