Riferimento alla struttura audio_stream_out

Riferimento alla struttura audio_stream_out

#include < audio.h >

Campi dati

struttura audio_stream comune
uint32_t(* get_latency )(const struct audio_stream_out *stream)
int(* set_volume )(struct audio_stream_out *stream, float a sinistra, float a destra)
taglia_t(* write )(struct audio_stream_out *stream, const void *buffer, size_t bytes)
int(* get_render_position )(const struct audio_stream_out *stream, uint32_t *dsp_frames)
int(* get_next_write_timestamp )(const struct audio_stream_out *stream, int64_t *timestamp)
int(* set_callback )(struct audio_stream_out *stream, stream_callback_t callback, void *cookie)
int(* pause )(struct audio_stream_out *stream)
int(* curriculum )(struct audio_stream_out *stream)
int(* drain )(struct audio_stream_out *stream, audio_drain_type_t tipo)
int(* flush )(struct audio_stream_out *stream)
int(* get_presentation_position )(const struct audio_stream_out *stream, uint64_t *frames, struct timespec *timestamp)

Descrizione dettagliata

audio_stream_out è l'interfaccia di astrazione per l'hardware di uscita audio.

Fornisce informazioni su varie proprietà del driver hardware di uscita audio.

Definizione alla riga 276 del file audio.h .

Documentazione sul campo

struttura audio_stream comune

Metodi comuni di streaming audio in uscita. Questo deve essere il primo membro di audio_stream_out poiché gli utenti di questa struttura trasmetteranno un puntatore da audio_stream a audio_stream_out in contesti in cui è noto che audio_stream fa riferimento a audio_stream_out .

Definizione alla riga 282 del file audio.h .

int(* drain)(struct audio_stream_out *stream, audio_drain_type_t tipo)

Richiede una notifica quando i dati memorizzati nel buffer dal driver/hardware sono stati riprodotti. Se set_callback() è stato precedentemente chiamato per abilitare la modalità non bloccante, drain() non deve bloccarsi, ma dovrebbe ritornare rapidamente e il completamento dello svuotamento viene notificato tramite il callback. Se set_callback() non è stato chiamato, drain() deve bloccarsi fino al completamento. Se type==AUDIO_DRAIN_ALL, lo scarico viene completato quando tutti i dati scritti in precedenza sono stati riprodotti. Se type==AUDIO_DRAIN_EARLY_NOTIFY, lo scarico viene completato poco prima che tutti i dati per la traccia corrente vengano riprodotti per consentire al framework di eseguire un cambio di traccia senza pause.

Drain deve restituire immediatamente la chiamata stop() e flush()

L'implementazione di questa funzione è obbligatoria per la riproduzione scaricata.

Definizione alla riga 372 del file audio.h .

int(* flush)(struct audio_stream_out *stream)

Notifica al driver audio di svuotare i dati in coda. Lo streaming deve essere già in pausa prima di chiamare flush() .

L'implementazione di questa funzione è obbligatoria per la riproduzione scaricata.

Definizione alla riga 380 del file audio.h .

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

Restituisce la latenza stimata del driver hardware audio in millisecondi.

Definizione alla riga 287 del file audio.h .

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

ottenere l'ora locale in cui verrà presentata la successiva scrittura sul driver audio. Le unità sono microsecondi, dove l'epoca è decisa dall'HAL audio locale.

Definizione alla riga 324 del file audio.h .

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

Restituisce un conteggio recente del numero di frame audio presentati a un osservatore esterno. Ciò esclude i frame che sono stati scritti ma sono ancora in fase di elaborazione. Il conteggio non viene azzerato quando l'uscita entra in standby. Restituisce anche il valore di CLOCK_MONOTONIC a partire dal conteggio di questa presentazione. Si prevede che il conteggio restituito sia "recente", ma non è necessario che sia il valore più recente possibile. Tuttavia, il tempo associato deve corrispondere al conteggio restituito. Esempio: supponiamo che siano stati presentati N+M frame, dove M è un numero 'piccolo'. Quindi è consentito restituire N anziché N+M e il timestamp dovrebbe corrispondere a N anziché N+M. I termini "recente" e "piccolo" non sono definiti. Riflettono la qualità dell'attuazione.

3.0 e versioni successive solo.

Definizione alla riga 398 del file audio.h .

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

Definizione alla riga 317 del file audio.h .

int(* pausa)(struct audio_stream_out *stream)

Notifica al driver audio di interrompere la riproduzione, tuttavia i buffer in coda vengono conservati dall'hardware. Utile per implementare pausa/ripresa. L'implementazione vuota, se non supportata, dovrebbe tuttavia essere implementata per l'hardware con latenza non banale. Nello stato di pausa l'hardware audio potrebbe ancora utilizzare energia. L'utente può prendere in considerazione la possibilità di chiamare la sospensione dopo un timeout.

L'implementazione di questa funzione è obbligatoria per la riproduzione scaricata.

Definizione alla riga 345 del file audio.h .

int(* curriculum)(struct audio_stream_out *stream)

Notifica al driver audio di riprendere la riproduzione dopo una pausa. Restituisce errore se chiamato senza pausa corrispondente.

L'implementazione di questa funzione è obbligatoria per la riproduzione scaricata.

Definizione alla riga 353 del file audio.h .

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

impostare la funzione di callback per notificare il completamento della scrittura e dello scarico non bloccanti. La chiamata a questa funzione implica che tutti i futuri write() e drain() devono essere non bloccanti e utilizzare il callback per segnalare il completamento.

Definizione alla riga 333 del file audio.h .

int(* set_volume)(struct audio_stream_out *stream, float sinistra, float destra)

Utilizzare questo metodo in situazioni in cui il missaggio audio viene eseguito nell'hardware. Questo metodo funge da interfaccia diretta con l'hardware, consentendo di impostare direttamente il volume come previsto tramite il framework. Questo metodo potrebbe produrre più output PCM o codec con accelerazione hardware, come MP3 o AAC.

Definizione alla riga 296 del file audio.h .

ssize_t(* write)(struct audio_stream_out *stream, const void *buffer, size_t bytes)

Scrivi il buffer audio sul driver. Restituisce il numero di byte scritti o uno status_t negativo. Se almeno un frame è stato scritto correttamente prima dell'errore, si suggerisce che il driver restituisca il conteggio di byte riusciti (brevi) e quindi restituisca un errore nella chiamata successiva.

Se set_callback() è stato precedentemente chiamato per abilitare la modalità non bloccante , write() non può bloccare. Deve scrivere solo il numero di byte che attualmente rientrano nel buffer driver/hardware e quindi restituire questo conteggio di byte. Se questa è inferiore alla dimensione di scrittura richiesta, la funzione di callback deve essere chiamata quando è disponibile più spazio nel buffer driver/hardware.

Definizione alla riga 311 del file audio.h .


La documentazione per questa struttura è stata generata dal seguente file:
  • hardware/libhardware/include/hardware/ audio.h