Metodo IMFTransform::SetInputType (mftransform.h)

Imposta, verifica o cancella il tipo di supporto per un flusso di input in questa trasformazione MFT (Media Foundation).

Sintassi

HRESULT SetInputType(
  [in] DWORD        dwInputStreamID,
  [in] IMFMediaType *pType,
  [in] DWORD        dwFlags
);

Parametri

[in] dwInputStreamID

Identificatore del flusso di input. Per ottenere l'elenco degli identificatori di flusso, chiamare IMFTransform::GetStreamIDs.

[in] pType

Puntatore all'interfaccia IMFMediaType o NULL.

[in] dwFlags

Zero o più flag dall'enumerazione _MFT_SET_TYPE_FLAGS .

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.
MF_E_INVALIDMEDIATYPE
MFT non può utilizzare il tipo di supporto proposto.
MF_E_INVALIDSTREAMNUMBER
Identificatore di flusso non valido.
MF_E_INVALIDTYPE
Il tipo proposto non è valido. Questo codice di errore indica che il tipo di supporto stesso non è configurato correttamente; Ad esempio, potrebbe contenere attributi reciprocamente contraddittori.
MF_E_TRANSFORM_CANNOT_CHANGE_MEDIATYPE_WHILE_PROCESSING
MFT non può cambiare i tipi durante l'elaborazione dei dati. Prova a svuotare o scaricare il MFT.
MF_E_TRANSFORM_TYPE_NOT_SET
È necessario impostare i tipi di output prima di impostare i tipi di input.
MF_E_UNSUPPORTED_D3D_TYPE
MFT non è riuscito a trovare una configurazione DXVA (DirectX Video Acceleration) adatta.

Commenti

Questo metodo può essere usato per impostare, testare senza impostare o cancellare il tipo di supporto:

  • Per impostare il tipo di supporto, impostare dwFlags su zero e impostare pType su un puntatore non NULL che specifica il tipo di supporto.
  • Per testare il tipo di supporto senza impostarlo, impostare dwFlags su MFT_SET_TYPE_TEST_ONLY e impostare pType su un puntatore non NULL che specifica il tipo di supporto. Se il tipo di supporto è accettabile, il metodo restituisce S_OK. In caso contrario, restituisce MF_E_INVALIDMEDIATYPE. Indipendentemente dal valore restituito, il tipo di supporto corrente non cambia.
  • Per cancellare il tipo di supporto, impostare pType su NULL.
L'impostazione del tipo di supporto in un flusso può modificare i tipi accettabili in un altro flusso.

Un MFT può richiedere al chiamante di impostare uno o più tipi di output prima di impostare il tipo di input. In tal caso, il metodo restituisce MF_E_TRANSFORM_TYPE_NOT_SET.

Se MFT supporta l'accelerazione video DirectX (DXVA), ma non riesce a trovare una configurazione DXVA appropriata (ad esempio, se il driver di grafica non dispone delle funzionalità appropriate), il metodo deve restituire MF_E_UNSUPPORTED_D3D_TYPE. Per altre informazioni, vedere Supporto di DXVA 2.0 in Media Foundation.

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

Requisiti

Requisito Valore
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