Condividi tramite


Metodo IMFTransform::SetOutputType (mftransform.h)

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

Sintassi

HRESULT SetOutputType(
  [in] DWORD        dwOutputStreamID,
  [in] IMFMediaType *pType,
  [in] DWORD        dwFlags
);

Parametri

[in] dwOutputStreamID

Identificatore di flusso di output. Per ottenere l'elenco di identificatori di flusso, chiamare FMTransform::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 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
La trasformazione non può usare 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 flag reciprocamente contraddittori.
MF_E_TRANSFORM_CANNOT_CHANGE_MEDIATYPE_WHILE_PROCESSING
MFT non può cambiare tipi durante l'elaborazione dei dati. Provare a svuotare o scaricare il MFT.
MF_E_TRANSFORM_TYPE_NOT_SET
È necessario impostare i tipi di input prima di impostare i tipi di output.
MF_E_UNSUPPORTED_D3D_TYPE
MFT non è riuscito a trovare una configurazione DIRECTX Video Acceleration (DXVA) adatta.

Commenti

Questo metodo può essere usato per impostare, testare senza impostazione 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 input prima di impostare il tipo di output. In tal caso, il metodo restituisce MF_E_TRANSFORM_TYPE_NOT_SET.

Se MFT supporta DirectX Video Acceleration (DXVA) ma non è in grado di trovare una configurazione DXVA appropriata(ad esempio, se il driver grafico 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 MFTSetOutputType. 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

FMTransform

Trasformazioni di Media Foundation