referencia de estructura audio_stream_out

referencia de estructura audio_stream_out

#include < audio.h >

Campos de información

estructura audio_stream común
uint32_t(* get_latency )(construcción de estructura audio_stream_out *stream)
En t(* set_volume )(struct audio_stream_out *flujo, flotar a la izquierda, flotar a la derecha)
tamaño_t(* escribir )(struct audio_stream_out *stream, const void *buffer, size_t bytes)
En t(* get_render_position )(const estructura audio_stream_out *stream, uint32_t *dsp_frames)
En t(* get_next_write_timestamp )(const struct audio_stream_out *stream, int64_t *timestamp)
En t(* set_callback )(struct audio_stream_out *stream, stream_callback_t callback, void *cookie)
En t(* pausa )(estructura audio_stream_out *stream)
En t(* reanudar )(estructura audio_stream_out *stream)
En t(* drenaje )(estructura audio_stream_out *stream, audio_drain_type_t tipo)
En t(* flush )(estructura audio_stream_out *stream)
En t(* get_presentation_position )(const struct audio_stream_out *stream, uint64_t *frames, struct timespec *timestamp)

Descripción detallada

audio_stream_out es la interfaz de abstracción para el hardware de salida de audio.

Proporciona información sobre varias propiedades del controlador de hardware de salida de audio.

Definición en la línea 276 del archivo audio.h .

Documentación de campo

estructura audio_stream común

Métodos comunes de transmisión de audio. Este debe ser el primer miembro de audio_stream_out ya que los usuarios de esta estructura emitirán un puntero de audio_stream a audio_stream_out en contextos donde se sabe que audio_stream hace referencia a audio_stream_out .

Definición en la línea 282 del archivo audio.h .

int(* drenaje)(estructura audio_stream_out *stream, audio_drain_type_t tipo)

Solicita una notificación cuando se han reproducido datos almacenados en búfer por el controlador/hardware. Si se ha llamado previamente a set_callback() para habilitar el modo sin bloqueo, el drenaje() no debe bloquear, sino que debe regresar rápidamente y se notifica la finalización del drenaje a través de la devolución de llamada. Si no se ha llamado a set_callback() , el drenaje() debe bloquearse hasta que se complete. Si type==AUDIO_DRAIN_ALL, el drenaje se completa cuando se han reproducido todos los datos escritos previamente. Si type==AUDIO_DRAIN_EARLY_NOTIFY, el drenaje se completa poco antes de que se reproduzcan todos los datos de la pista actual para dar tiempo a que el marco realice un cambio de pista sin pausas.

El drenaje debe regresar inmediatamente en la llamada stop() y flush()

La implementación de esta función es obligatoria para la reproducción descargada.

Definición en la línea 372 del archivo audio.h .

int(* al ras)(estructura audio_stream_out *stream)

Notifica al controlador de audio que vacíe los datos en cola. La transmisión ya debe estar en pausa antes de llamar a flush() .

La implementación de esta función es obligatoria para la reproducción descargada.

Definición en la línea 380 del archivo audio.h .

uint32_t(* get_latency)(estructura const audio_stream_out *stream)

Devuelve la latencia estimada del controlador de hardware de audio en milisegundos.

Definición en la línea 287 del archivo audio.h .

int(* get_next_write_timestamp)(estructura const audio_stream_out *stream, int64_t *timestamp)

obtenga la hora local en la que se presentará la próxima escritura en el controlador de audio. Las unidades son microsegundos, donde la época la decide el HAL de audio local.

Definición en la línea 324 del archivo audio.h .

int(* get_presentation_position)(const struct audio_stream_out *stream, uint64_t *frames, struct timespec *timestamp)

Devuelve un recuento reciente del número de fotogramas de audio presentados a un observador externo. Esto excluye los marcos que se han escrito pero que aún están en proceso. El conteo no se restablece a cero cuando la salida entra en espera. También devuelve el valor de CLOCK_MONOTONIC a partir de este recuento de presentación. Se espera que el recuento devuelto sea "reciente", pero no es necesario que sea el valor más reciente posible. Sin embargo, el tiempo asociado debe corresponder a cualquier recuento que se devuelva. Ejemplo: suponga que se han presentado N+M fotogramas, donde M es un número 'pequeño'. Entonces está permitido devolver N en lugar de N+M, y la marca de tiempo debe corresponder a N en lugar de N+M. Los términos 'reciente' y 'pequeño' no están definidos. Reflejan la calidad de la implementación.

3.0 y superior solamente.

Definición en la línea 398 del archivo audio.h .

int(* get_render_position)(estructura const audio_stream_out *stream, uint32_t *dsp_frames)

Definición en la línea 317 del archivo audio.h .

int(* pausa)(estructura audio_stream_out *stream)

Notifica al controlador de audio que detenga la reproducción; sin embargo, el hardware retiene los búferes en cola. Útil para implementar pausa/reanudar. La implementación vacía, si no es compatible, debe implementarse para hardware con latencia no trivial. En el estado de pausa, el hardware de audio aún podría estar usando energía. El usuario puede considerar llamar a suspender después de un tiempo de espera.

La implementación de esta función es obligatoria para la reproducción descargada.

Definición en la línea 345 del archivo audio.h .

int(* reanudar)(estructura audio_stream_out *stream)

Notifica al controlador de audio que reanude la reproducción después de una pausa. Devuelve un error si se llama sin una pausa coincidente.

La implementación de esta función es obligatoria para la reproducción descargada.

Definición en la línea 353 del archivo audio.h .

int(* set_callback)(struct audio_stream_out *stream, stream_callback_t callback, void *cookie)

configure la función de devolución de llamada para notificar la finalización de escritura y drenaje sin bloqueo. Llamar a esta función implica que todas las escrituras () y drenajes () futuras deben ser sin bloqueo y usar la devolución de llamada para indicar la finalización.

Definición en la línea 333 del archivo audio.h .

int(* set_volume)(struct audio_stream_out *flujo, flotar a la izquierda, flotar a la derecha)

Utilice este método en situaciones en las que la mezcla de audio se realice en el hardware. Este método sirve como una interfaz directa con el hardware, lo que le permite configurar directamente el volumen a través del marco. Este método puede producir múltiples salidas PCM o códecs acelerados por hardware, como MP3 o AAC.

Definición en la línea 296 del archivo audio.h .

ssize_t(* escritura)(estructura audio_stream_out *stream, const void *buffer, size_t bytes)

Escribir búfer de audio en el controlador. Devuelve el número de bytes escritos o un status_t negativo. Si al menos un marco se escribió correctamente antes del error, se sugiere que el controlador devuelva ese recuento de bytes (corto) correcto y luego devuelva un error en la llamada posterior.

Si se ha llamado previamente a set_callback() para habilitar el modo sin bloqueo, no se permite que write() bloquee. Debe escribir solo la cantidad de bytes que caben actualmente en el búfer del controlador/hardware y luego devolver este conteo de bytes. Si es menor que el tamaño de escritura solicitado, se debe llamar a la función de devolución de llamada cuando haya más espacio disponible en el búfer del controlador/hardware.

Definición en la línea 311 del archivo audio.h .


La documentación para esta estructura se generó a partir del siguiente archivo:
  • hardware/libhardware/include/hardware/ audio.h
,

referencia de estructura audio_stream_out

referencia de estructura audio_stream_out

#include < audio.h >

Campos de información

estructura audio_stream común
uint32_t(* get_latency )(construcción de estructura audio_stream_out *stream)
En t(* set_volume )(struct audio_stream_out *flujo, flotar a la izquierda, flotar a la derecha)
tamaño_t(* escribir )(struct audio_stream_out *stream, const void *buffer, size_t bytes)
En t(* get_render_position )(const estructura audio_stream_out *stream, uint32_t *dsp_frames)
En t(* get_next_write_timestamp )(const struct audio_stream_out *stream, int64_t *timestamp)
En t(* set_callback )(struct audio_stream_out *stream, stream_callback_t callback, void *cookie)
En t(* pausa )(estructura audio_stream_out *stream)
En t(* reanudar )(estructura audio_stream_out *stream)
En t(* drenaje )(estructura audio_stream_out *stream, audio_drain_type_t tipo)
En t(* flush )(estructura audio_stream_out *stream)
En t(* get_presentation_position )(const struct audio_stream_out *stream, uint64_t *frames, struct timespec *timestamp)

Descripción detallada

audio_stream_out es la interfaz de abstracción para el hardware de salida de audio.

Proporciona información sobre varias propiedades del controlador de hardware de salida de audio.

Definición en la línea 276 del archivo audio.h .

Documentación de campo

estructura audio_stream común

Métodos comunes de transmisión de audio. Este debe ser el primer miembro de audio_stream_out ya que los usuarios de esta estructura emitirán un puntero de audio_stream a audio_stream_out en contextos donde se sabe que audio_stream hace referencia a audio_stream_out .

Definición en la línea 282 del archivo audio.h .

int(* drenaje)(estructura audio_stream_out *stream, audio_drain_type_t tipo)

Solicita una notificación cuando se han reproducido datos almacenados en búfer por el controlador/hardware. Si se ha llamado previamente a set_callback() para habilitar el modo sin bloqueo, el drenaje() no debe bloquear, sino que debe regresar rápidamente y se notifica la finalización del drenaje a través de la devolución de llamada. Si no se ha llamado a set_callback() , el drenaje() debe bloquearse hasta que se complete. Si type==AUDIO_DRAIN_ALL, el drenaje se completa cuando se han reproducido todos los datos escritos previamente. Si type==AUDIO_DRAIN_EARLY_NOTIFY, el drenaje se completa poco antes de que se reproduzcan todos los datos de la pista actual para dar tiempo a que el marco realice un cambio de pista sin pausas.

El drenaje debe regresar inmediatamente en la llamada stop() y flush()

La implementación de esta función es obligatoria para la reproducción descargada.

Definición en la línea 372 del archivo audio.h .

int(* al ras)(estructura audio_stream_out *stream)

Notifica al controlador de audio que vacíe los datos en cola. La transmisión ya debe estar en pausa antes de llamar a flush() .

La implementación de esta función es obligatoria para la reproducción descargada.

Definición en la línea 380 del archivo audio.h .

uint32_t(* get_latency)(estructura const audio_stream_out *stream)

Devuelve la latencia estimada del controlador de hardware de audio en milisegundos.

Definición en la línea 287 del archivo audio.h .

int(* get_next_write_timestamp)(estructura const audio_stream_out *stream, int64_t *timestamp)

obtenga la hora local en la que se presentará la próxima escritura en el controlador de audio. Las unidades son microsegundos, donde la época la decide el HAL de audio local.

Definición en la línea 324 del archivo audio.h .

int(* get_presentation_position)(const struct audio_stream_out *stream, uint64_t *frames, struct timespec *timestamp)

Devuelve un recuento reciente del número de fotogramas de audio presentados a un observador externo. Esto excluye los marcos que se han escrito pero que aún están en proceso. El conteo no se restablece a cero cuando la salida entra en espera. También devuelve el valor de CLOCK_MONOTONIC a partir de este recuento de presentación. Se espera que el recuento devuelto sea "reciente", pero no es necesario que sea el valor más reciente posible. Sin embargo, el tiempo asociado debe corresponder a cualquier recuento que se devuelva. Ejemplo: suponga que se han presentado N+M fotogramas, donde M es un número 'pequeño'. Entonces está permitido devolver N en lugar de N+M, y la marca de tiempo debe corresponder a N en lugar de N+M. Los términos 'reciente' y 'pequeño' no están definidos. Reflejan la calidad de la implementación.

3.0 y superior solamente.

Definición en la línea 398 del archivo audio.h .

int(* get_render_position)(estructura const audio_stream_out *stream, uint32_t *dsp_frames)

Definición en la línea 317 del archivo audio.h .

int(* pausa)(estructura audio_stream_out *stream)

Notifica al controlador de audio que detenga la reproducción; sin embargo, el hardware retiene los búferes en cola. Útil para implementar pausa/reanudar. La implementación vacía, si no es compatible, debe implementarse para hardware con latencia no trivial. En el estado de pausa, el hardware de audio aún podría estar usando energía. El usuario puede considerar llamar a suspender después de un tiempo de espera.

La implementación de esta función es obligatoria para la reproducción descargada.

Definición en la línea 345 del archivo audio.h .

int(* reanudar)(estructura audio_stream_out *stream)

Notifica al controlador de audio que reanude la reproducción después de una pausa. Devuelve un error si se llama sin una pausa coincidente.

La implementación de esta función es obligatoria para la reproducción descargada.

Definición en la línea 353 del archivo audio.h .

int(* set_callback)(struct audio_stream_out *stream, stream_callback_t callback, void *cookie)

configure la función de devolución de llamada para notificar la finalización de escritura y drenaje sin bloqueo. Llamar a esta función implica que todas las escrituras () y drenajes () futuras deben ser sin bloqueo y usar la devolución de llamada para indicar la finalización.

Definición en la línea 333 del archivo audio.h .

int(* set_volume)(struct audio_stream_out *flujo, flotar a la izquierda, flotar a la derecha)

Utilice este método en situaciones en las que la mezcla de audio se realice en el hardware. Este método sirve como una interfaz directa con el hardware, lo que le permite configurar directamente el volumen a través del marco. Este método puede producir múltiples salidas PCM o códecs acelerados por hardware, como MP3 o AAC.

Definición en la línea 296 del archivo audio.h .

ssize_t(* escritura)(estructura audio_stream_out *stream, const void *buffer, size_t bytes)

Escribir búfer de audio en el controlador. Devuelve el número de bytes escritos o un status_t negativo. Si al menos un marco se escribió correctamente antes del error, se sugiere que el controlador devuelva ese recuento de bytes (corto) correcto y luego devuelva un error en la llamada posterior.

Si se ha llamado previamente a set_callback() para habilitar el modo sin bloqueo, no se permite que write() bloquee. Debe escribir solo la cantidad de bytes que caben actualmente en el búfer del controlador/hardware y luego devolver este conteo de bytes. Si es menor que el tamaño de escritura solicitado, se debe llamar a la función de devolución de llamada cuando haya más espacio disponible en el búfer del controlador/hardware.

Definición en la línea 311 del archivo audio.h .


La documentación para esta estructura se generó a partir del siguiente archivo:
  • hardware/libhardware/include/hardware/ audio.h