Condividi tramite


Metodo IMFTransform::GetStreamIDs (mftransform.h)

Ottiene gli identificatori di flusso per i flussi di input e output in questa trasformazione di Media Foundation (MFT).

Sintassi

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

Parametri

[in] dwInputIDArraySize

Numero di elementi nella matrice pdwInputIDs .

[out] pdwInputIDs

Puntatore a una matrice allocata dal chiamante. Il metodo riempie la matrice con gli identificatori del flusso di input. Le dimensioni della matrice devono essere almeno uguali al numero di flussi di input. Per ottenere il numero di flussi di input, chiamare IMFTransform::GetStreamCount.

Se il chiamante passa una matrice maggiore del numero di flussi di input, MFT non deve scrivere valori nelle voci di matrice aggiuntive.

[in] dwOutputIDArraySize

Numero di elementi nella matrice pdwOutputIDs .

[out] pdwOutputIDs

Puntatore a una matrice allocata dal chiamante. Il metodo riempie la matrice con gli identificatori del flusso di output. Le dimensioni della matrice devono essere almeno uguali al numero di flussi di output. Per ottenere il numero di flussi di output, chiamare GetStreamCount.

Se il chiamante passa una matrice maggiore del numero di flussi di output, MFT non deve scrivere valori nelle voci di matrice aggiuntive.

Valore restituito

Il metodo restituisce un valore HRESULT. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente.

Codice restituito Descrizione
S_OK
Il metodo è riuscito.
E_NOTIMPL
Non implementato. Vedere la sezione Osservazioni.
MF_E_BUFFERTOOSMALL
Una o entrambe le matrici sono troppo piccole.

Commenti

Gli identificatori di flusso sono necessari perché alcuni MFP possono aggiungere o rimuovere flussi, pertanto l'indice di un flusso potrebbe non essere univoco. Di conseguenza, i metodi IMFTransform che operano sui flussi accettano identificatori di flusso.

Questo metodo può restituire E_NOTIMPL se sono soddisfatte entrambe le condizioni seguenti:

  • La trasformazione ha un numero fisso di flussi.
  • I flussi vengono numerati consecutivamente da 0 a n - 1, dove n è il numero di flussi di input o flussi di output. In altre parole, il primo flusso di input è 0, il secondo è 1 e così via; e il primo flusso di output è 0, il secondo è 1 e così via.
Questo metodo deve essere implementato se una delle condizioni seguenti è vera:
  • MFT può aggiungere o rimuovere flussi di output.
  • MFT consente al client di aggiungere o rimuovere flussi di input.
  • Gli identificatori del flusso non sono consecutivi.
Tutti gli identificatori del flusso di input devono essere univoci all'interno di un MFT e tutti gli identificatori del flusso di output devono essere univoci. Tuttavia, un flusso di input e un flusso di output possono condividere lo stesso identificatore.

Se il client aggiunge un flusso di input, il client assegna l'identificatore, pertanto MFT deve consentire identificatori arbitrari, purché siano univoci. Se MFT crea un flusso di output, MFT assegna l'identificatore.

Per convenzione, se un MFT ha esattamente un flusso di input fisso e un flusso di output fisso, deve assegnare l'identificatore 0 a entrambi i flussi.

Se MFT_UNIQUE_METHOD_NAMES viene definito prima di includere mftransform.h, questo metodo viene rinominato MFTGetStreamIDs. Vedere Creazione di oggetti DMO/MFT ibridi.

Requisiti

   
Client minimo supportato Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione mftransform.h
Libreria Mfuuid.lib

Vedi anche

IMFTransform

Trasformazioni di Media Foundation