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

Obtiene los identificadores de flujo de las secuencias de entrada y salida de esta transformación de Media Foundation (MFT).

Sintaxis

HRESULT GetStreamIDs(
  [in]  DWORD dwInputIDArraySize,
  [out] DWORD *pdwInputIDs,
  [in]  DWORD dwOutputIDArraySize,
  [out] DWORD *pdwOutputIDs
);

Parámetros

[in] dwInputIDArraySize

Número de elementos de la matriz pdwInputIDs .

[out] pdwInputIDs

Puntero a una matriz asignada por el autor de la llamada. El método rellena la matriz con los identificadores de flujo de entrada. El tamaño de la matriz debe ser al menos igual al número de flujos de entrada. Para obtener el número de flujos de entrada, llame a IMFTransform::GetStreamCount.

Si el autor de la llamada pasa una matriz que es mayor que el número de flujos de entrada, MFT no debe escribir valores en las entradas de matriz adicionales.

[in] dwOutputIDArraySize

Número de elementos de la matriz pdwOutputIDs .

[out] pdwOutputIDs

Puntero a una matriz asignada por el autor de la llamada. El método rellena la matriz con los identificadores del flujo de salida. El tamaño de la matriz debe ser al menos igual al número de flujos de salida. Para obtener el número de flujos de salida, llame a GetStreamCount.

Si el autor de la llamada pasa una matriz que es mayor que el número de secuencias de salida, MFT no debe escribir valores en las entradas de matriz adicionales.

Valor devuelto

El método devuelve un valor HRESULT. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros.

Código devuelto Descripción
S_OK
El método se ha llevado a cabo de forma correcta.
E_NOTIMPL
Sin implementar. Vea la sección Comentarios.
MF_E_BUFFERTOOSMALL
Una o ambas matrices son demasiado pequeñas.

Comentarios

Los identificadores de flujo son necesarios porque algunas MFT pueden agregar o quitar secuencias, por lo que es posible que el índice de una secuencia no sea único. Por lo tanto, los métodos IMFTransform que operan en secuencias toman identificadores de flujo.

Este método puede devolver E_NOTIMPL si se cumplen las dos condiciones siguientes:

  • La transformación tiene un número fijo de secuencias.
  • Los flujos se numeran consecutivamente de 0 a n – 1, donde n es el número de flujos de entrada o flujos de salida. En otras palabras, el primer flujo de entrada es 0, el segundo es 1, etc. y el primer flujo de salida es 0, el segundo es 1, etc.
Este método debe implementarse si se cumple alguna de las condiciones siguientes:
  • MFT puede agregar o quitar flujos de salida.
  • El MFT permite al cliente agregar o quitar flujos de entrada.
  • Los identificadores de flujo no son consecutivos.
Todos los identificadores de flujo de entrada deben ser únicos dentro de un MFT y todos los identificadores de flujo de salida deben ser únicos. Sin embargo, un flujo de entrada y un flujo de salida pueden compartir el mismo identificador.

Si el cliente agrega un flujo de entrada, el cliente asigna el identificador, por lo que MFT debe permitir identificadores arbitrarios, siempre y cuando sean únicos. Si el MFT crea un flujo de salida, MFT asigna el identificador.

Por convención, si una MFT tiene exactamente un flujo de entrada fijo y un flujo de salida fijo, debe asignar el identificador 0 a ambos flujos.

Si MFT_UNIQUE_METHOD_NAMES se define antes de incluir mftransform.h, se cambia el nombre de este método a MFTGetStreamIDs. Consulte Creación de objetos DMO/MFT híbridos.

Requisitos

   
Cliente mínimo compatible Windows Vista [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado mftransform.h
Library Mfuuid.lib

Consulte también

IMFTransform

Transformaciones de Media Foundation