Efectos de APO descargados de hardware
En Windows 10, versión 1511 y posteriores, se admite la descarga de objetos de procesamiento de audio (API). Además de posibles mejoras de rendimiento, hay un ahorro de energía posible disponible al usar las API descargadas de hardware.
Se pueden cargar dos tipos de API durante la reproducción de descarga de hardware.
- Descargar efectos de flujo (OSFX)
- Efectos del modo de descarga (OMFX)
En Windows 8, el motor de audio se ha rediseñado para trabajar con secuencias de audio que se han descargado en un dispositivo de hardware independiente del sistema de audio principal del equipo, pero conectado a él. Esto se conoce como descarga de hardware. Para obtener más información, consulte Procesamiento de audio descargado por hardware.
La característica de descarga de hardware está destinada principalmente a escenarios de bajo consumo con tamaños de búfer más grandes. Por ejemplo, durante la reproducción de Audio de bajo consumo (LPA) en los sistemas compatibles, el tamaño o la periodicidad del búfer de audio se pueden establecer en 1 segundo para que la CPU no se despierte con frecuencia para procesar pequeños búferes (por ejemplo, cada 10 milisegundos).
La implementación de API descargadas de hardware junto con el procesamiento de audio descargado de hardware proporciona la capacidad de maximizar la eficiencia energética.
En el diagrama siguiente se muestra la arquitectura de objetos de procesamiento de audio. En el lado derecho del diagrama se muestra una aplicación que se comunica a los efectos de OSFX descargados de hardware y OMFX.
Un APO descargado de hardware debe cumplir los mismos requisitos básicos y principios de diseño descritos en Arquitectura de objetos de procesamiento de audio e Implementación de objetos de procesamiento de audio.
En el caso de las API descargadas de hardware, se debe tener en cuenta algunas consideraciones adicionales para los formatos de audio admitidos.
Cada APO implementa el método IAudioProcessingObject::IsInputFormatSupported que se usa durante la compilación del grafo de audio para determinar el formato de audio de salida y si se necesita alguna conversión de formato.
HRESULT IsInputFormatSupported(
[in, optional] IAudioMediaType *pOppositeFormat,
[in, optional] IAudioMediaType *pRequestedInputFormat,
[out, optional] IAudioMediaType **ppSupportedInputFormat
);
El punto de conexión de representación de descarga puede admitir una variedad de formatos, incluido el formato predeterminado admitido por la representación de patillas del sistema o host. Un APO de descarga debe admitir todos estos formatos para que las secuencias de representación (con los formatos admitidos) no tengan que pasar por ninguna conversión de formato adicional.
Una descarga de SFX puede implementar conversiones de formato y aceptar una gama más amplia de formatos. Por ejemplo, si offload SFX proporciona virtualizaciones de auriculares (es decir, convertir audio de canal 5.1 en estéreo), debe devolver S_OK para el par de entrada y salida adecuado en este método.
Una descarga de SFX debe revisar los formatos compatibles con el pin de descarga y admitir o ampliar las funcionalidades juntas.
La descarga de MFX no puede cambiar el formato de la secuencia de entrada, pero todavía necesita admitir la variedad de formatos que ofrece el punto de conexión de descarga y eliminar cualquier conversión de formato innecesaria.
Durante la representación en el pin de descarga, solo hay una secuencia activa en ese pin y, por lo tanto, no hay ninguna combinación de secuencias. Por lo tanto, no es necesario procesar el audio en el nivel de secuencia y en el nivel de modo. Por lo tanto, es posible que los efectos de audio no necesiten habilitarse como un efecto de secuencia y un efecto de modo. Los puntos de conexión descargados admitirán más secuencias y, en función de la arquitectura de procesamiento de un sistema, es posible que sea necesario tener en cuenta el procesamiento de descarga en SFX/MFX.
Implemente las siguientes entradas de archivo INF para definir los efectos que se cargarán durante la descarga de reproducción. La clave de propiedad del archivo INF indica al generador de puntos de conexión de audio que establezcan los CLSID para las API descargadas en el almacén de propiedades de efectos. Esta información se usa para crear el gráfico de audio que se usará para informar a las aplicaciones de nivel superior qué efectos están en su lugar.
Clave de propiedad | 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 |
Implementación de objetos de procesamiento de audio
Objetos de procesamiento de audio de Windows