Metodo IMFSourceReaderEx::AddTransformForStream (mfreadwrite.h)
Aggiunge una trasformazione, ad esempio un effetto audio o video, a un flusso.
Sintassi
HRESULT AddTransformForStream(
[in] DWORD dwStreamIndex,
[in] IUnknown *pTransformOrActivate
);
Parametri
[in] dwStreamIndex
Flusso da configurare. Il valore può essere uno dei seguenti.
Valore | Significato |
---|---|
|
Indice in base zero di un flusso. |
|
Primo flusso video. |
|
Primo flusso audio. |
[in] pTransformOrActivate
Puntatore a uno dei seguenti:
- Trasformazione MFT (Media Foundation) che espone l'interfaccia IMFTransform .
- Oggetto attivazione MFT che espone l'interfaccia IMFActivate .
Valore restituito
Questo metodo può restituire uno di questi valori.
Codice restituito | Descrizione |
---|---|
|
Operazione completata. |
|
La trasformazione non supporta il formato del flusso corrente e non è stata possibile alcuna conversione. Per ulteriori informazioni, vedere la sezione Osservazioni. |
|
Richiesta non valida. |
|
Il parametro dwStreamIndex non è valido. |
Commenti
Questo metodo tenta di aggiungere la trasformazione alla fine della catena di elaborazione corrente.
Per usare questo metodo, effettuare la sequenza di chiamate seguente:
- Chiamare IMFSourceReader::SetCurrentMediaType per impostare il tipo di output desiderato per il flusso. In questo passaggio è possibile specificare un tipo di supporto contenente solo il tipo principale e i GUID del sottotipo. Ad esempio, per ottenere l'output RGB a 32 bit, impostare un tipo principale di MFMediaType_Video e un sottotipo di MFVideoFormat_RGB32. Per altre informazioni, vedere GUID del tipo di supporto.
- Chiamare AddTransformForStream. Se il lettore di origine connette correttamente la trasformazione, imposta il tipo di output nella trasformazione.
- Chiamare IMFSourceReader::GetCurrentMediaType per ottenere il tipo di output dalla trasformazione. Questo metodo restituisce un tipo di supporto con una descrizione completa del formato.
- Facoltativamente, se si desidera modificare il tipo di output, chiamare di nuovo IMFSourceReader::SetCurrentMediaType per impostare un tipo di supporto completo nella trasformazione.
Il metodo ha esito negativo se il lettore di origine è stato configurato con gli attributi MF_READWRITE_DISABLE_CONVERTERS o MF_SOURCE_READER_ENABLE_VIDEO_PROCESSING .
In modalità asincrona, il metodo ha esito negativo anche se una richiesta di esempio è in sospeso. In tal caso, attendere che il callback OnReadSample venga richiamato prima di chiamare il metodo . Per altre informazioni sull'uso del lettore di origine in modalità asincrona, vedere IMFSourceReader::ReadSample.
È possibile aggiungere una trasformazione in qualsiasi momento durante lo streaming. Tuttavia, il metodo non scarica o svuota la pipeline prima di inserire la trasformazione. Pertanto, se i dati sono già presenti nella pipeline, l'esempio successivo non garantisce l'applicazione della trasformazione.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8 [app desktop | App UWP] |
Server minimo supportato | Windows Server 2012 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | mfreadwrite.h |