Partilhar via


Efeitos de APO descarregados por hardware

Em Windows 10, versão 1511 e posterior, há suporte para o descarregamento de APOs (objetos de processamento de áudio). Além dos possíveis aprimoramentos de desempenho, há uma economia de energia possível significativa disponível ao usar APOs descarregadas por hardware.

Dois tipos de APOs podem ser carregados durante a reprodução de descarregamento de hardware.

  1. Efeitos de fluxo de descarregamento (OSFX)
  2. Efeitos do modo de descarregamento (OMFX)

Visão geral dos efeitos de APO descarregados por hardware

Processamento de áudio descarregado por hardware e APOs descarregados por hardware

Em Windows 8, o mecanismo de áudio foi reprojetado para trabalhar com fluxos de áudio que foram descarregados para um dispositivo de hardware separado, mas conectado ao sistema de áudio main do computador. Isso é chamado de descarregamento de hardware. Para obter mais informações, consulte Processamento de áudio descarregado por hardware.

O recurso de descarregamento de hardware é direcionado principalmente para cenários de baixa potência com tamanhos de buffer maiores. Por exemplo, durante a reprodução de Áudio de Baixa Potência (LPA) nos sistemas compatíveis, o tamanho do buffer de áudio ou a periodicidade podem ser definidos como 1 segundo para que a CPU não seja ativada com frequência para processar buffers pequenos (por exemplo, a cada 10 milissegundos).

A implementação de APOs descarregados por hardware, juntamente com o processamento de áudio descarregado por hardware, fornece a capacidade de maximizar a eficiência de energia.

O diagrama a seguir mostra a arquitetura de objetos de processamento de áudio. O lado direito do diagrama mostra um aplicativo se comunicando com os efeitos OSFX e OMFX descarregados por hardware.

Diagrama mostrando a arquitetura do driver de áudio com o aplicativo se comunicando com os efeitos, drivers e hardware de áudio OSFX e OMFX descarregados por hardware.

Implementando efeitos de APO descarregados por hardware

Um APO descarregado por hardware deve seguir os mesmos requisitos básicos e princípios de design descritos em Arquitetura de Objeto de Processamento de Áudio e Implementação de Objetos de Processamento de Áudio.

Diretrizes de implementação de formato de áudio com suporte

Para APOs descarregados por hardware, algumas considerações adicionais devem ser dadas aos formatos de áudio com suporte.

Cada APO implementa o método IAudioProcessingObject::IsInputFormatSupported , que é usado durante a criação do grafo de áudio para determinar o formato de áudio de saída e se qualquer conversão de formato é necessária.

HRESULT IsInputFormatSupported(
  [in, optional]  IAudioMediaType *pOppositeFormat,
  [in, optional]  IAudioMediaType *pRequestedInputFormat,
  [out, optional] IAudioMediaType **ppSupportedInputFormat
);

O ponto de extremidade de renderização de descarregamento pode dar suporte a uma variedade de formatos, incluindo o formato padrão compatível com a renderização de pinos de host/sistema. Um APO de descarregamento deve dar suporte a todos esses formatos para que os fluxos de renderização (com os formatos com suporte) não precisem passar por nenhuma conversão de formato adicional.

Um SFX de descarregamento pode implementar conversões de formato e aceitar uma gama mais ampla de formatos. Por exemplo, se o SFX de Descarregamento fornecer virtualizações de fone de ouvido (ou seja, converter áudio de canal 5.1 em estéreo), ele deverá retornar S_OK para o par de entrada/saída apropriado nesse método.

Um SFX de descarregamento deve examinar os formatos com suporte do pino de descarregamento e dar suporte/estender os recursos juntos.

O descarregamento do MFX não pode alterar o formato do fluxo de entrada, mas ainda precisa dar suporte à variedade de formatos oferecidos pelo ponto de extremidade de descarregamento e eliminar qualquer conversão de formato desnecessária.

Durante a renderização no pino de descarregamento, apenas um fluxo está ativo nesse pino e, portanto, não há mistura de fluxos. Portanto, o processamento do áudio no nível do fluxo e do modo não é necessário. Portanto, os efeitos de áudio podem não precisar ser habilitados como efeito de fluxo e modo. Os pontos de extremidade descarregados darão suporte a mais fluxos e, dependendo da arquitetura de processamento de um sistema, o processamento de descarregamento pode precisar ser fatorado no SFX/MFX.

Entradas de arquivo INF

Implemente as seguintes entradas de arquivo INF para definir os efeitos que serão carregados durante a reprodução de descarregamento. A chave de propriedade do arquivo INF instrui o construtor de ponto de extremidade de áudio a definir os CLSIDs para APOs descarregados no repositório de propriedades de efeitos. Essas informações são usadas para criar o grafo de áudio que será usado para informar aos aplicativos de nível superior quais efeitos estão em vigor.

Chave de Propriedade GUID
PKEY_FX_Offload_StreamEffectClsid {D04E05A6-594B-4FB6-A80D-01AF5EED7D1D},11
PKEY_FX_Offload_ModeEffectClsid {D04E05A6-594B-4FB6-A80D-01AF5EED7D1D},12
PKEY_SFX_Offload_ProcessingModes_Supported_For_Streaming {D3993A3F-99C2-4402-B5EC-A92A0367664B},11
PKEY_MFX_Offload_ProcessingModes_Supported_For_Streaming {D3993A3F-99C2-4402-B5EC-A92A0367664B},12

Implementando objetos de processamento de áudio
Objetos de processamento de áudio do Windows