Método IMFSourceReaderEx::AddTransformForStream (mfreadwrite.h)
Adiciona uma transformação, como um efeito de áudio ou vídeo, a um fluxo.
Sintaxe
HRESULT AddTransformForStream(
[in] DWORD dwStreamIndex,
[in] IUnknown *pTransformOrActivate
);
Parâmetros
[in] dwStreamIndex
O fluxo a ser configurado. O valor pode ser qualquer um dos seguintes.
[in] pTransformOrActivate
Um ponteiro para um dos seguintes:
- Uma transformação do Media Foundation (MFT) que expõe a interface IMFTransform .
- Um objeto de ativação MFT que expõe a interface IMFActivate .
Retornar valor
Esse método pode retornar um desses valores.
Código de retorno | Descrição |
---|---|
|
Êxito. |
|
A transformação não dá suporte ao formato de fluxo atual e nenhuma conversão foi possível. Confira Comentários para obter mais informações. |
|
Solicitação inválida. |
|
O parâmetro dwStreamIndex é inválido. |
Comentários
Esse método tenta adicionar a transformação no final da cadeia de processamento atual.
Para usar esse método, faça a seguinte sequência de chamadas:
- Chame IMFSourceReader::SetCurrentMediaType para definir o tipo de saída desejado para o fluxo. Nesta etapa, você pode especificar um tipo de mídia que contenha apenas o tipo principal e os GUIDs de subtipo. Por exemplo, para obter a saída RGB de 32 bits, defina um tipo principal de MFMediaType_Video e um subtipo de MFVideoFormat_RGB32. (Para obter mais informações, consulte GUIDs de tipo de mídia.)
- Chame AddTransformForStream. Se o Leitor de Origem conectar a transformação com êxito, ele definirá o tipo de saída na transformação.
- Chame IMFSourceReader::GetCurrentMediaType para obter o tipo de saída da transformação. Esse método retorna um tipo de mídia com uma descrição de formato completa.
- Opcionalmente, se você quiser modificar o tipo de saída, chame IMFSourceReader::SetCurrentMediaType novamente para definir um tipo de mídia completo na transformação.
O método falhará se o leitor de origem tiver sido configurado com os atributos MF_READWRITE_DISABLE_CONVERTERS ou MF_SOURCE_READER_ENABLE_VIDEO_PROCESSING .
No modo assíncrono, o método também falhará se uma solicitação de exemplo estiver pendente. Nesse caso, aguarde até que o retorno de chamada OnReadSample seja invocado antes de chamar o método . Para obter mais informações sobre como usar o Leitor de Origem no modo assíncrono, consulte IMFSourceReader::ReadSample.
Você pode adicionar uma transformação a qualquer momento durante o streaming. No entanto, o método não libera nem esvazia o pipeline antes de inserir a transformação. Portanto, se os dados já estiverem no pipeline, não há garantia de que o próximo exemplo tenha a transformação aplicada.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 8 [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2012 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | mfreadwrite.h |