Introducción a la aceleración de hardware de DirectSound
Varios adaptadores de audio ofrecen aceleración de hardware de DirectSound, que es la capacidad de realizar la mezcla de hardware para una o varias secuencias de DirectSound. La mezcla de hardware mejora el rendimiento descargando las operaciones de mezcla de audio de la CPU y realizandolas a velocidades de hardware. Además de mezclar, el hardware realiza operaciones relacionadas, como la conversión de velocidad de muestreo (SRC), la atenuación y, opcionalmente, el procesamiento 3D que, de lo contrario, tendría que realizarse en software.
Todos los dispositivos de representación WaveCíclica o WavePci presentan uno o varios pines de hardware para mezclar secuencias de audio. En el caso de un dispositivo de un solo flujo, siempre se crea una instancia del controlador del sistema KMixer en el pin de representación de hardware disponible.
Los dispositivos con aceleración de hardware de DirectSound proporcionan más de un pin de mezcla de hardware. Cada patilla adicional se puede usar para mezclar una secuencia de DirectSound. Los flujos directSound que se alimentan en patillas mezcladoras de hardware omiten KMixer y evitan la latencia de la mezcla de software en KMixer. DirectSound usa todas las patillas de mezclador aceleradas por hardware disponibles de un dispositivo de audio, siempre que esas patillas tengan una topología que se ajuste a los requisitos de ordenación de nodos de DirectSound. DirectSound también requiere que las patillas admitan el formato de datos de DirectSound especificado por KSDATAFORMAT_SPECIFIER_DSOUND (consulte DirectSound Stream Data Format).
El controlador del sistema SysAudio siempre reserva un pin de hardware para KMixer para que después de que se hayan asignado todos los pins de hardware (no servidos), las secuencias adicionales se pueden mezclar mediante KMixer y introducirse en el pin de hardware reservado.
La ilustración del contenido de onda de representación mediante directSound Software y Búferes de hardware ilustra estos conceptos.
Si un dispositivo de audio proporciona un número suficiente de patillas de mezcla de hardware, todas las secuencias de salida de una aplicación directSound pueden acelerarse por hardware. Si no es así, la aplicación DirectSound tiene un par de opciones:
Puede asignar estáticamente las patillas de mezcla de hardware disponibles a los flujos que requieren las latencias más bajas.
Puede asignar dinámicamente las patillas de mezcla de hardware disponibles a los flujos a medida que se necesitan tratando las patillas como un grupo de recursos compartidos.
Para obtener más información, consulte la explicación de la administración de voz en la documentación de Microsoft Windows SDK.
DirectSound puede usar dos tipos de pins de mezclador de hardware: 2D y 3D. Una patilla 2D realiza SRC, atenuación y mezcla, pero no posicionamiento 3D. DirectSound puede usar un pin 2D para realizar el posicionamiento 3D realizando los cálculos de atenuación y frecuencia necesarios en software y aplicando los resultados a los nodos adecuados en el pin 2D. En cambio, un pin 3D contiene un nodo 3D que puede calcular sus propios efectos 3D directamente desde las propiedades 3D-buffer y 3D-listener en lugar de confiar en DirectSound para hacerlo. Para obtener una lista de las propiedades de un nodo 3D, consulte KSNODETYPE_3D_EFFECTS. Para obtener más información sobre las patillas 2D y 3D, vea Compatibilidad con la aceleración de DirectSound 2D en audio WDM y compatibilidad con la aceleración de DirectSound 3D en el audio WDM.