The IConfigAviMux interface controls how the AVI multiplexer filter writes files out to disk. DirectShow currently exposes this interface through the property page of the AVI multiplexer filter and you can use it to set the master stream and compatibility indexes.
IConfigAviMux provides backward compatibility with older Video for Windows® audio-video interleaved (AVI) index formats (idx1) as well as extended AVI 2.0 index formats (indx) to allow for file sizes greater than 1 gigabyte (GB). Set and retrieve the compatibility indexes by using the IConfigAviMux::SetOutputCompatibilityIndex and IConfigAviMux::GetOutputCompatibilityIndex methods. See AVI 2.0 File Format Extensions for more information on AVI 2.0.
When to Implement
DirectShow implements this interface and makes its functionality available to anyone through the property page of an AVI multiplexer filter. However, you can implement this interface yourself if you're writing a filter that takes audio and video streams from a capture graph and generates an AVI file.
When to Use
Use this interface when your application must control how a file is captured.
Methods in Vtable Order
IUnknown methods | Description |
QueryInterface | Retrieves pointers to supported interfaces. |
AddRef | Increments the reference count. |
Release | Decrements the reference count. |
IConfigAviMux methods | Description |
SetMasterStream | Sets the master stream that other streams must synchronize to after the file is saved to disk. |
GetMasterStream | Retrieves the master stream that other streams must synchronize to after the file is written out. |
SetOutputCompatibilityIndex | Sets the AVI index format for the file that the multiplexer saves to. |
GetOutputCompatibilityIndex | Retrieves the AVI index format for the file that the multiplexer will write to. |
Sets the master stream that other streams must synchronize to after the file is saved to disk.
HRESULT SetMasterStream(
LONG iStream
);
Returns an HRESULT value that depends on the implementation of the interface.
Different streams in the capture scenario can capture at different rates if you are using separate audio and video capture cards. By specifying a master stream that all others must synchronize to, this method adjusts the frame rate or audio sampling rate to account for drifts in the rates.
To eliminate capture drifts that can occur between audio sampling rates and video frame rates, it is recommended that you use combined audio/video cards for capture of large files.
IConfigAviMux::GetMasterStream
Retrieves the master stream that other streams must synchronize to after the file is written out.
HRESULT GetMasterStream(
LONG *pStream
);
Returns an HRESULT value that depends on the implementation of the interface.
To eliminate capture drifts that can occur between audio sampling rates and video frame rates, it is recommended that you use combined audio/video cards for capture of large files.
IConfigAviMux::SetMasterStream
Sets the AVI index format for the file that the multiplexer saves to.
HRESULT SetOutputCompatibilityIndex(
BOOL fOldIndex
);
Returns an HRESULT value that depends on the implementation of the interface.
In addition to backward compatibility with Video for Windows® AVI index formats (idx1), DirectShow also supports extended AVI 2.0 index format (indx), which this method can specify. AVI 2.0 index format allows for increased AVI file size (greater than 1 GB), hierarchical indexing, incremental growth of files, and minimal disk seeks. See AVI 2.0 File Format Extensions for more information on AVI 2.0.
IConfigAviMux::GetOutputCompatibilityIndex
Retrieves the AVI index format for the file that the multiplexer will write to.
HRESULT GetOutputCompatibilityIndex(
BOOL *pfOldIndex
);
Returns an HRESULT value that depends on the implementation of the interface.
© 1997 Microsoft Corporation. All rights reserved. Terms of Use.