IMFDeviceTransform::GetStreamIDs method (mftransform.h)
The GetStreamIDs method gets the stream identifiers for the input and output streams on this Media Foundation transform (MFT).
Syntax
HRESULT GetStreamIDs(
[in] DWORD dwInputIDArraySize,
[out] DWORD *pdwInputStreamIds,
[out] DWORD dwOutputIDArraySize,
DWORD *pdwOutputStreamIds
);
Parameters
[in] dwInputIDArraySize
The number of elements in pdwInputStreamIDs
[out] pdwInputStreamIds
A 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 IMFDeviceTransform::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.
[out] dwOutputIDArraySize
The number of elements in pdwOutputStreamIDs.
pdwOutputStreamIds
A 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 IMFDeviceTransform::GetStreamCount.
Return value
The method returns an HRESULT. Possible values include but not limited to values given in the following table.
Return code | Description |
---|---|
|
Transitioning the stream state succeeded. |
|
Invalid pointer passed. |
|
The buffer coming in does not have enough space to fill in the stream IDs. |
Remarks
Stream identifiers are necessary because some MFTs can add or remove streams, so the index of a stream may not be unique. Therefore, IMFDeviceTransform methods that operate on streams take stream identifiers.
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. I
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.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 10, version 1703 |
Target Platform | Windows |
Header | mftransform.h |