Usando dizimação para otimizar o desempenho de combinação
[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in 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 Audio/Video Capture in 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.]
Importante
A otimização descrita nesta seção é altamente dependente do hardware subjacente. A menos que você possa garantir que tipo de hardware gráfico será usado com o aplicativo, isso pode prejudicar seriamente a aparência da imagem de vídeo.
A HDTV requer muita capacidade de processamento, que em sistemas mais recentes é fornecida principalmente pelos elementos gráficos cartão. Mas mesmo que os elementos gráficos cartão e o decodificador possam dar suporte a resoluções de 1920x1080, o usuário pode nem sempre ter seu monitor definido para essa resolução. Nesse caso, o chip gráfico é necessário para criar uma imagem 1920 x 1080 e, em seguida, reduzir a resolução antes de enviá-la para o buffer de quadros.
Como isso é um desperdício de energia de processamento, a VMR fornece uma maneira de dizimar (reduzir) a imagem no momento em que ela está sendo renderizada na superfície do DirectDraw. Isso eliminará a cópia de memória extra necessária se a imagem precisar ser redimensionada depois de renderizada.
VMR-7: Para habilitar a dizimação, chame IVMRMixerControl::SetMixingPrefs com o sinalizador MixerPref_DecimateOutput.
VMR-9: Para habilitar a dizimação, chame IVMRMixerControl9::SetMixingPrefs com o sinalizador MixerPref9_DecimateOutput.
O método SetMixingPrefs deve ser chamado antes que a VMR seja conectada. Os sinalizadores de preferência de combinação não podem ser alterados quando o grafo está em execução.
Tópicos relacionados