Método IMFTransform::GetStreamIDs (mftransform.h)
Obtém os identificadores de fluxo para os fluxos de entrada e saída nesta MFT (transformação do Media Foundation).
Sintaxe
HRESULT GetStreamIDs(
[in] DWORD dwInputIDArraySize,
[out] DWORD *pdwInputIDs,
[in] DWORD dwOutputIDArraySize,
[out] DWORD *pdwOutputIDs
);
Parâmetros
[in] dwInputIDArraySize
Número de elementos na matriz pdwInputIDs .
[out] pdwInputIDs
Ponteiro para uma matriz alocada pelo chamador. O método preenche a matriz com os identificadores de fluxo de entrada. O tamanho da matriz deve ser pelo menos igual ao número de fluxos de entrada. Para obter o número de fluxos de entrada, chame IMFTransform::GetStreamCount.
Se o chamador passar uma matriz maior que o número de fluxos de entrada, o MFT não deverá gravar valores nas entradas de matriz extras.
[in] dwOutputIDArraySize
Número de elementos na matriz pdwOutputIDs .
[out] pdwOutputIDs
Ponteiro para uma matriz alocada pelo chamador. O método preenche a matriz com os identificadores de fluxo de saída. O tamanho da matriz deve ser pelo menos igual ao número de fluxos de saída. Para obter o número de fluxos de saída, chame GetStreamCount.
Se o chamador passar uma matriz maior que o número de fluxos de saída, o MFT não deverá gravar valores nas entradas de matriz extras.
Valor retornado
O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.
Código de retorno | Descrição |
---|---|
|
O método foi bem-sucedido. |
|
Não implementado. Consulte Observações. |
|
Uma ou ambas as matrizes são muito pequenas. |
Comentários
Identificadores de fluxo são necessários porque alguns MFTs podem adicionar ou remover fluxos, portanto, o índice de um fluxo pode não ser exclusivo. Portanto, os métodos IMFTransform que operam em fluxos levam identificadores de fluxo.
Esse método poderá retornar E_NOTIMPL se ambas as seguintes condições forem verdadeiras:
- A transformação tem um número fixo de fluxos.
- Os fluxos são numerados consecutivamente de 0 a n – 1, em que n é o número de fluxos de entrada ou fluxos de saída. Em outras palavras, o primeiro fluxo de entrada é 0, o segundo é 1 e assim por diante; e o primeiro fluxo de saída é 0, o segundo é 1 e assim por diante.
- O MFT pode adicionar ou remover fluxos de saída.
- O MFT permite que o cliente adicione ou remova fluxos de entrada.
- Os identificadores de fluxo não são consecutivos.
Se o cliente adicionar um fluxo de entrada, o cliente atribuirá o identificador, portanto, o MFT deverá permitir identificadores arbitrários, desde que sejam exclusivos. Se o MFT criar um fluxo de saída, o MFT atribuirá o identificador.
Por convenção, se um MFT tiver exatamente um fluxo de entrada fixo e um fluxo de saída fixo, ele deverá atribuir o identificador 0 a ambos os fluxos.
Se MFT_UNIQUE_METHOD_NAMES for definido antes de incluir mftransform.h, esse método será renomeado como MFTGetStreamIDs. Consulte Criando objetos DMO/MFT híbridos.
Requisitos
Cliente mínimo com suporte | Windows Vista [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | mftransform.h |
Biblioteca | Mfuuid.lib |