Gets the stream identifiers for the input and output streams on this Media Foundation transform (MFT).
public:
HRESULT GetStreamIDs(
DWORD dwInputIDArraySize,
DWORD *pdwInputIDs,
DWORD dwOutputIDArraySize,
DWORD *pdwOutputIDs
)
dwInputIDArraySize
Type: DWORD
Number of elements in the pdwInputIDs array.
pdwInputIDs
Type: DWORD *
[out] Pointer to an array allocated by the caller. The method fills the array with the input stream identifiers. The array size must be at least equal to the number of input streams. To get the number of input streams, call IMFTransform::GetStreamCount. If the caller passes an array that is larger than the number of input streams, the MFT must not write values into the extra array entries.
dwOutputIDArraySize
Type: DWORD
Number of elements in the pdwOutputIDs array.
pdwOutputIDs
Type: DWORD *
[out] Pointer to an array allocated by the caller. The method fills the array with the output stream identifiers. The array size must be at least equal to the number of output streams. To get the number of output streams, call GetStreamCount. If the caller passes an array that is larger than the number of output streams, the MFT must not write values into the extra array entries.
Type: HRESULT
The method returns an HRESULT. Possible values include, but are not limited to, those in the following table.
| Return code | Description |
|---|---|
| S_OK | The method succeeded. |
| E_NOTIMPL | Not implemented. See Remarks. |
| MF_E_BUFFERTOOSMALL | One or both of the arrays is too small. |
Refer to Media Foundation return codes.
Stream identifiers are necessary because some MFTs can add or remove streams, so the index of a stream may not be unique. Therefore, IMFTransform methods that operate on streams take stream identifiers.
This method can return E_NOTIMPL if both of the following conditions are true:
This method must be implemented if any of the following conditions is true:
All input stream identifiers must be unique within an MFT, and all output stream identifiers must be unique. However, an input stream and an output stream can share the same identifier.
If the client adds an input stream, the client assigns the identifier, so the MFT must allow arbitrary identifiers, as long as they are unique. If the MFT creates an output stream, the MFT assigns the identifier.
By convention, if an MFT has exactly one fixed input stream and one fixed output stream, it should assign the identifier 0 to both streams.
If MFT_UNIQUE_METHOD_NAMES is defined before including mftransform.h, this method is renamed MFTGetStreamIDs. See Creating Hybrid DMO/MFT Objects.
Header: Declared in mftransform.h.
Library: Use Mfuuid.lib.