Metodo IMFTransform::GetInputAvailableType (mftransform.h)
Ottiene un tipo di supporto disponibile per un flusso di input in questa trasformazione di Media Foundation (MFT).
Sintassi
HRESULT GetInputAvailableType(
[in] DWORD dwInputStreamID,
[in] DWORD dwTypeIndex,
[out] IMFMediaType **ppType
);
Parametri
[in] dwInputStreamID
Identificatore del flusso di input. Per ottenere l'elenco di identificatori di flusso, chiamare FMTransform::GetStreamIDs.
[in] dwTypeIndex
Indice del tipo di supporto da recuperare. I tipi di supporti vengono indicizzati da zero e restituiti in ordine approssimativo di preferenza.
[out] ppType
Riceve un puntatore all'interfaccia IMFMediaType .
Valore restituito
Il metodo restituisce un HRESULT. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente.
Codice restituito | Descrizione |
---|---|
|
Il metodo è riuscito. |
|
MFT non ha un elenco di tipi di input disponibili. |
|
Identificatore di flusso non valido. |
|
Il parametro dwTypeIndex non è compreso nell'intervallo. |
|
È necessario impostare i tipi di output prima di impostare i tipi di input. |
Commenti
MFT definisce un elenco di tipi di supporti disponibili per ogni flusso di input e li ordina per preferenza. Questo metodo enumera i tipi di supporti disponibili per un flusso di input. Per enumerare i tipi disponibili, aumentare dwTypeIndex fino a quando il metodo non restituisce MF_E_NO_MORE_TYPES.
L'impostazione del tipo di supporto in un flusso può modificare i tipi disponibili per un altro flusso o modificare l'ordine di preferenza. Tuttavia, un MFT non è necessario per aggiornare l'elenco dei tipi disponibili in modo dinamico. L'unico modo garantito per verificare se è possibile impostare un tipo di input specifico consiste nel chiamare FMTransform::SetInputType.
In alcuni casi, un MFT non può restituire un elenco di tipi di input fino a quando non vengono impostati uno o più tipi di output. In tal caso, il metodo restituisce MF_E_TRANSFORM_TYPE_NOT_SET.
Un MFT non è necessario per implementare questo metodo. Tuttavia, la maggior parte delle reti multifunzione deve implementare questo metodo, a meno che i tipi supportati non siano semplici e possano essere individuati tramite la funzione MFTGetInfo .
Se MFT_UNIQUE_METHOD_NAMES viene definito prima di includere mftransform.h, questo metodo viene rinominato MFTGetInputAvailableType. Vedere Creazione di oggetti DMO/MFT ibridi.
Per i codificatori, dopo aver impostato il tipo di output, GetInputAvailableType deve restituire un elenco di tipi di input compatibili con il tipo di output corrente. Ciò significa che tutti i tipi restituiti da GetInputAvailableType dopo che il tipo di output è impostato devono essere tipi validi per SetInputType.
I codificatori devono rifiutare i tipi di input se gli attributi del tipo di supporto di input e del tipo di supporto di output non corrispondono, ad esempio l'impostazione di risoluzione con MF_MT_FRAME_SIZE, l'impostazione dell'intervallo nominale con MF_MT_VIDEO_NOMINAL_RANGE o l'impostazione della frequenza dei fotogrammi con MF_MT_FRAME_SIZE
Note sull'implementazione
Se MFT archivia un tipo di supporto internamente, MFT deve restituire un clone del tipo di supporto, non un puntatore al tipo originale. In caso contrario, il chiamante potrebbe modificare il tipo e modificare lo stato interno del MFT.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
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per