Compartilhar via


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
S_OK
O método foi bem-sucedido.
E_NOTIMPL
Não implementado. Consulte Observações.
MF_E_BUFFERTOOSMALL
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.
Esse método deverá ser implementado se qualquer uma das seguintes condições for verdadeira:
  • 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.
Todos os identificadores de fluxo de entrada devem ser exclusivos em um MFT e todos os identificadores de fluxo de saída devem ser exclusivos. No entanto, um fluxo de entrada e um fluxo de saída podem compartilhar o mesmo identificador.

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

Confira também

IMFTransform

Transformações do Media Foundation