KSPROPERTY_RTAUDIO_BUFFER
La propiedad KSPROPERTY_RTAUDIO_BUFFER especifica un búfer cíclico asignado por el controlador para los datos de audio.
En la tabla siguiente se resumen las características de esta propiedad.
Tabla de resumen de uso
Obtener | Set | Destino | Tipo de descriptor de propiedad | Tipo de valor de propiedad |
---|---|---|---|---|
Sí |
No |
Anclar |
El descriptor de propiedad (datos de instancia) consta de una estructura de KSRTAUDIO_BUFFER_PROPERTY que contiene una estructura KSPROPERTY junto con otros miembros. El cliente escribe su tamaño de búfer solicitado en la estructura . Si el cliente no tiene que trabajar con una dirección base específica, debe especificar la dirección base como NULL.
El valor de propiedad (datos de operación) es una estructura de tipo KSRTAUDIO_BUFFER. El controlador rellena esta estructura con el tamaño real del búfer, la dirección base y la marca de barrera de memoria para el búfer cíclico que ha asignado.
Valor devuelto
Una solicitud de propiedad KSPROPERTY_RTAUDIO_BUFFER devuelve STATUS_SUCCESS para indicar que se ha completado correctamente. De lo contrario, la solicitud devuelve un código de estado de error adecuado. En la tabla siguiente se muestran algunos de los posibles códigos de estado de error.
status code | Significado |
---|---|
STATUS_UNSUCCESSFUL |
No se puede asignar un búfer cíclico con la combinación especificada de atributos de búfer. |
STATUS_INSUFFICIENT_RESOURCES |
No se puede asignar memoria para el búfer. |
STATUS_DEVICE_NOT_READY |
El dispositivo no está listo |
Observaciones
La dirección base es la dirección de memoria virtual al principio del búfer cíclico. El cliente puede acceder directamente al búfer en esta dirección. El búfer es contiguo en memoria virtual. La decisión de tomar el búfer contiguo en la memoria física se deja al controlador.
El cliente debe establecer la dirección base en el descriptor de propiedad en NULL. El controlador establece la dirección base en el valor de propiedad en la dirección virtual del búfer de audio asignado.
Normalmente, el hardware de audio requiere que el búfer de audio comience y finalice en los límites de ejemplo o cumpla otros tipos de restricciones de alineación dependientes del hardware. Si hay suficiente memoria disponible, el tamaño real del búfer es el tamaño solicitado redondeado (arriba o abajo) al ejemplo más cercano u otro límite restringido por hardware. El tamaño real debe ser al menos el tamaño solicitado; De lo contrario, el motor de audio de Audio Session API (WASAPI) no usará el búfer y se producirá un error en la creación de secuencias.
Si una solicitud de propiedad de KSPROPERTY_RTAUDIO_BUFFER se realiza correctamente, el valor de propiedad, que es una estructura de tipo KSRTAUDIO_BUFFER, contiene la dirección y el tamaño del búfer asignado por el controlador.
Al cerrar el pin, se libera automáticamente el búfer que se asignó a través de esta propiedad.
Si desea recibir notificaciones de eventos, debe llamar a KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION en lugar de KSPROPERTY_RTAUDIO_BUFFER.
Requisitos
Versión |
Disponible en Windows Vista y en sistemas operativos Windows posteriores. |
Encabezado |
Ksmedia.h |