Compartilhar via


Método IMFDeviceTransform::GetStreamIDs (mftransform.h)

O método GetStreamIDs 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 *pdwInputStreamIds,
  [out] DWORD dwOutputIDArraySize,
        DWORD *pdwOutputStreamIds
);

Parâmetros

[in] dwInputIDArraySize

O número de elementos em pdwInputStreamIDs

[out] pdwInputStreamIds

Um 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 IMFDeviceTransform::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.

[out] dwOutputIDArraySize

O número de elementos em pdwOutputStreamIDs.

pdwOutputStreamIds

Um 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 IMFDeviceTransform::GetStreamCount.

Valor retornado

O método retorna um HRESULT. Os valores possíveis incluem, mas não se limitam aos valores fornecidos na tabela a seguir.

Código de retorno Descrição
S_OK
A transição do estado do fluxo foi bem-sucedida.
E_POINTER
Ponteiro inválido passado.
MF_E_BUFFERTOOSMALL
O buffer que está chegando não tem espaço suficiente para preencher as IDs de fluxo.

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 IMFDeviceTransform que operam em fluxos recebem identificadores de fluxo.

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. I

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.

Requisitos

   
Cliente mínimo com suporte Windows 10, versão 1703
Plataforma de Destino Windows
Cabeçalho mftransform.h

Confira também

IMFDeviceTransform