Método IVMRFilterConfig::SetNumberOfStreams (strmif.h)

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

O SetNumberOfStreams método define o número de fluxos a serem mistos e instrui a VMR a entrar no modo de mixer.

Sintaxe

HRESULT SetNumberOfStreams(
  [in] DWORD dwMaxStreams
);

Parâmetros

[in] dwMaxStreams

Palavra dupla que contém o número máximo de fluxos de entrada que a VMR será necessária para misturar. Não deve ser maior que MAX_MIXER_STREAMS (16).

Retornar valor

Se o método for bem-sucedido, retornará S_OK. Se falhar, retornará um código de erro.

Código de retorno Descrição
E_FAIL
O mixer já está configurado.
E_INVALIDARG
Foi feita uma tentativa de configurar o mixer para mais de 16 fluxos de entrada.
E_OUTOFMEMORY
Memória para gerenciar os fluxos não pôde ser alocada.

Comentários

dwMaxStreams deve ser igual ao número de pinos de entrada necessários. Os pinos não podem ser adicionados ou removidos após a conexão da VMR. Se você não souber com antecedência quantos fluxos de entrada serão necessários, defina dxMaxStreams como o número máximo que pode ser necessário. Um valor de 1 é válido para dwMaxStreams. Esse valor não faz com que nenhum pino extra seja criado, mas força a VMR a entrar no "modo de mixer". Portanto, depois que esse método for chamado, você não poderá chamar SetRenderingMode para definir o modo como VMRMode_Renderless

A VMR cria quantos pinos de entrada forem especificados sem tentar determinar se há memória de vídeo suficiente para dar suporte a todos eles. Isso ocorre porque ele não tem como conhecer o tipo de mídia ou as dimensões do retângulo no momento. Posteriormente, quando um filtro de upstream tenta se conectar a um pino, nesse ponto o tipo de mídia é conhecido e a VMR examinará a memória do vídeo e falhará na conexão se não houver o suficiente para processar o fluxo.

Nota Embora a VMR dê suporte a vários fluxos, todos eles compartilham um único relógio e, portanto, você não pode buscar um fluxo independentemente dos outros. Se você precisar buscar os fluxos de entrada de forma independente, deverá usar uma técnica diferente. Consulte o exemplo de VMRMulti para obter mais informações.
 

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP com SP1 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho strmif.h (inclua Dshow.h)
Biblioteca Strmiids.lib

Confira também

Códigos de erro e êxito

IVMRFilterConfig Interface

IVMRFilterConfig::GetNumberOfStreams

Usando o Renderizador de Combinação de Vídeo