Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 da Media Foundation (MFT) que expõe a interface IMFTransform .
- Um objeto de ativação MFT que expõe a interface IMFActivate .
Valor de retorno
Esse método pode retornar um desses valores.
| Código de retorno | Description |
|---|---|
|
Êxito. |
|
A transformação não dá suporte ao formato de fluxo atual e nenhuma conversão foi possível. Consulte Comentários para obter mais informações. |
|
Solicitação inválida. |
|
O parâmetro dwStreamIndex é inválido. |
Observações
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 contém apenas o tipo principal e os GUIDs de subtipo. Por exemplo, para obter uma 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 ou drena o pipeline antes de inserir a transformação. Portanto, se os dados já estiverem no pipeline, o próximo exemplo não terá a transformação aplicada.
Requirements
| Requirement | Value |
|---|---|
| Cliente mínimo suportado | Windows 8 [aplicativos da área de trabalho | Aplicativos UWP] |
| Servidor mínimo compatível | Windows Server 2012 [aplicativos da área de trabalho | Aplicativos UWP] |
| da Plataforma de Destino | Windows |
| Header | mfreadwrite.h |