Referência de estrutura audio_stream_out

Referência de estrutura audio_stream_out

#include < audio.h >

Campos de dados

struct audio_stream comum
uint32_t(* get_latency )(const struct audio_stream_out *stream)
int(* set_volume )(struct audio_stream_out *stream, float para a esquerda, float para a direita)
ssize_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(* pausa )(struct audio_stream_out *stream)
int(* resume )(struct audio_stream_out *stream)
int(* dreno )(struct audio_stream_out *stream, audio_drain_type_t type)
int(* flush )(struct audio_stream_out *stream)
int(* get_presentation_position )(const struct audio_stream_out *stream, uint64_t *frames, struct timespec *timestamp)

Descrição detalhada

audio_stream_out é a interface de abstração para o hardware de saída de áudio.

Ele fornece informações sobre várias propriedades do driver de hardware de saída de áudio.

Definição na linha 276 do arquivo audio.h .

Documentação de campo

struct audio_stream comum

Métodos comuns de saída de áudio. Este deve ser o primeiro membro de audio_stream_out , pois os usuários dessa estrutura converterão um audio_stream para o ponteiro audio_stream_out em contextos em que se sabe que o audio_stream faz referência a um audio_stream_out .

Definição na linha 282 do arquivo audio.h .

int(*dreno)(struct audio_stream_out *stream, audio_drain_type_t type)

Solicita notificação quando os dados armazenados em buffer pelo driver/hardware foram reproduzidos. Se set_callback() foi chamado anteriormente para habilitar o modo não bloqueante, o drain() não deve bloquear, em vez disso, deve retornar rapidamente e a conclusão do dreno é notificada através do retorno de chamada. Se set_callback() não foi chamado, o drain() deve bloquear até a conclusão. Se type==AUDIO_DRAIN_ALL, o dreno será concluído quando todos os dados gravados anteriormente tiverem sido reproduzidos. Se type==AUDIO_DRAIN_EARLY_NOTIFY, o dreno é concluído pouco antes de todos os dados da faixa atual serem reproduzidos para dar tempo para a estrutura realizar uma troca de faixa sem intervalos.

Dreno deve retornar imediatamente na chamada de stop() e flush()

A implementação desta função é obrigatória para a reprodução descarregada.

Definição na linha 372 do arquivo audio.h .

int(* flush)(struct audio_stream_out *stream)

Notifica o driver de áudio para liberar os dados enfileirados. O fluxo já deve estar pausado antes de chamar flush() .

A implementação desta função é obrigatória para a reprodução descarregada.

Definição na linha 380 do arquivo audio.h .

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

Retorna a latência estimada do driver de hardware de áudio em milissegundos.

Definição na linha 287 do arquivo audio.h .

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

obtenha a hora local em que a próxima gravação no driver de áudio será apresentada. As unidades são microssegundos, onde a época é decidida pelo HAL de áudio local.

Definição na linha 324 do arquivo audio.h .

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

Retorna uma contagem recente do número de quadros de áudio apresentados a um observador externo. Isso exclui quadros que foram gravados, mas ainda estão no pipeline. A contagem não é zerada quando a saída entra em espera. Também retorna o valor de CLOCK_MONOTONIC a partir desta contagem de apresentação. Espera-se que a contagem retornada seja 'recente', mas não precisa ser o valor mais recente possível. No entanto, o tempo associado deve corresponder a qualquer contagem retornada. Exemplo: suponha que N+M quadros tenham sido apresentados, onde M é um número 'pequeno'. Então é permitido retornar N ao invés de N+M, e o timestamp deve corresponder a N ao invés de N+M. Os termos 'recente' e 'pequeno' não estão definidos. Eles refletem a qualidade da implementação.

3.0 e superior apenas.

Definição na linha 398 do arquivo audio.h .

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

Definição na linha 317 do arquivo audio.h .

int(* pausa)(struct audio_stream_out *stream)

Notifica o driver de áudio para interromper a reprodução, mas os buffers enfileirados são retidos pelo hardware. Útil para implementar pausa/retomar. Implementação vazia se não for suportada, no entanto, deve ser implementada para hardware com latência não trivial. No estado de pausa, o hardware de áudio ainda pode estar usando energia. O usuário pode considerar suspender após um tempo limite.

A implementação desta função é obrigatória para a reprodução descarregada.

Definição na linha 345 do arquivo audio.h .

int(* resume)(struct audio_stream_out *stream)

Notifica o driver de áudio para retomar a reprodução após uma pausa. Retorna erro se chamado sem pausa correspondente.

A implementação desta função é obrigatória para a reprodução descarregada.

Definição na linha 353 do arquivo audio.h .

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

defina a função de retorno de chamada para notificar a conclusão de gravação e drenagem sem bloqueio. Chamar esta função implica que todos os futuros write() e drain() devem ser não bloqueantes e usar o retorno de chamada para sinalizar a conclusão.

Definição na linha 333 do arquivo audio.h .

int(* set_volume)(struct audio_stream_out *stream, float para a esquerda, float para a direita)

Use este método em situações em que a mixagem de áudio é feita no hardware. Esse método serve como uma interface direta com o hardware, permitindo que você defina diretamente o volume como oposto por meio da estrutura. Esse método pode produzir várias saídas PCM ou codecs acelerados por hardware, como MP3 ou AAC.

Definição na linha 296 do arquivo audio.h .

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

Gravar buffer de áudio no driver. Retorna o número de bytes gravados ou um status_t negativo. Se pelo menos um quadro foi gravado com sucesso antes do erro, sugere-se que o driver retorne essa contagem de bytes bem-sucedida (curta) e, em seguida, retorne um erro na chamada subsequente.

Se set_callback() foi chamado anteriormente para habilitar o modo sem bloqueio, o write() não tem permissão para bloquear. Ele deve gravar apenas o número de bytes que cabem atualmente no buffer do driver/hardware e, em seguida, retornar essa contagem de bytes. Se for menor que o tamanho de gravação solicitado, a função de retorno de chamada deverá ser chamada quando houver mais espaço disponível no buffer do driver/hardware.

Definição na linha 311 do arquivo audio.h .


A documentação para esta estrutura foi gerada a partir do seguinte arquivo:
  • hardware/libhardware/include/hardware/ audio.h
,

Referência de estrutura audio_stream_out

Referência de estrutura audio_stream_out

#include < audio.h >

Campos de dados

struct audio_stream comum
uint32_t(* get_latency )(const struct audio_stream_out *stream)
int(* set_volume )(struct audio_stream_out *stream, float para a esquerda, float para a direita)
ssize_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(* pausa )(struct audio_stream_out *stream)
int(* resume )(struct audio_stream_out *stream)
int(* dreno )(struct audio_stream_out *stream, audio_drain_type_t type)
int(* flush )(struct audio_stream_out *stream)
int(* get_presentation_position )(const struct audio_stream_out *stream, uint64_t *frames, struct timespec *timestamp)

Descrição detalhada

audio_stream_out é a interface de abstração para o hardware de saída de áudio.

Ele fornece informações sobre várias propriedades do driver de hardware de saída de áudio.

Definição na linha 276 do arquivo audio.h .

Documentação de campo

struct audio_stream comum

Métodos comuns de saída de áudio. Este deve ser o primeiro membro de audio_stream_out , pois os usuários dessa estrutura converterão um audio_stream para o ponteiro audio_stream_out em contextos em que se sabe que o audio_stream faz referência a um audio_stream_out .

Definição na linha 282 do arquivo audio.h .

int(*dreno)(struct audio_stream_out *stream, audio_drain_type_t type)

Solicita notificação quando os dados armazenados em buffer pelo driver/hardware foram reproduzidos. Se set_callback() foi chamado anteriormente para habilitar o modo não bloqueante, o drain() não deve bloquear, em vez disso, deve retornar rapidamente e a conclusão do dreno é notificada através do retorno de chamada. Se set_callback() não foi chamado, o drain() deve bloquear até a conclusão. Se type==AUDIO_DRAIN_ALL, o dreno será concluído quando todos os dados gravados anteriormente tiverem sido reproduzidos. Se type==AUDIO_DRAIN_EARLY_NOTIFY, o dreno é concluído pouco antes de todos os dados da faixa atual serem reproduzidos para dar tempo para a estrutura realizar uma troca de faixa sem intervalos.

Dreno deve retornar imediatamente na chamada de stop() e flush()

A implementação desta função é obrigatória para a reprodução descarregada.

Definição na linha 372 do arquivo audio.h .

int(* flush)(struct audio_stream_out *stream)

Notifica o driver de áudio para liberar os dados enfileirados. O fluxo já deve estar pausado antes de chamar flush() .

A implementação desta função é obrigatória para a reprodução descarregada.

Definição na linha 380 do arquivo audio.h .

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

Retorna a latência estimada do driver de hardware de áudio em milissegundos.

Definição na linha 287 do arquivo audio.h .

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

obtenha a hora local em que a próxima gravação no driver de áudio será apresentada. As unidades são microssegundos, onde a época é decidida pelo HAL de áudio local.

Definição na linha 324 do arquivo audio.h .

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

Retorna uma contagem recente do número de quadros de áudio apresentados a um observador externo. Isso exclui quadros que foram gravados, mas ainda estão no pipeline. A contagem não é zerada quando a saída entra em espera. Também retorna o valor de CLOCK_MONOTONIC a partir desta contagem de apresentação. Espera-se que a contagem retornada seja 'recente', mas não precisa ser o valor mais recente possível. No entanto, o tempo associado deve corresponder a qualquer contagem retornada. Exemplo: suponha que N+M quadros tenham sido apresentados, onde M é um número 'pequeno'. Então é permitido retornar N ao invés de N+M, e o timestamp deve corresponder a N ao invés de N+M. Os termos 'recente' e 'pequeno' não estão definidos. Eles refletem a qualidade da implementação.

3.0 e superior apenas.

Definição na linha 398 do arquivo audio.h .

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

Definição na linha 317 do arquivo audio.h .

int(* pausa)(struct audio_stream_out *stream)

Notifica o driver de áudio para interromper a reprodução, mas os buffers enfileirados são retidos pelo hardware. Útil para implementar pausa/retomar. Implementação vazia se não for suportada, no entanto, deve ser implementada para hardware com latência não trivial. No estado de pausa, o hardware de áudio ainda pode estar usando energia. O usuário pode considerar suspender após um tempo limite.

A implementação desta função é obrigatória para a reprodução descarregada.

Definição na linha 345 do arquivo audio.h .

int(* resume)(struct audio_stream_out *stream)

Notifica o driver de áudio para retomar a reprodução após uma pausa. Retorna erro se chamado sem pausa correspondente.

A implementação desta função é obrigatória para a reprodução descarregada.

Definição na linha 353 do arquivo audio.h .

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

defina a função de retorno de chamada para notificar a conclusão de gravação e drenagem sem bloqueio. Chamar esta função implica que todos os futuros write() e drain() devem ser não bloqueantes e usar o retorno de chamada para sinalizar a conclusão.

Definição na linha 333 do arquivo audio.h .

int(* set_volume)(struct audio_stream_out *stream, float para a esquerda, float para a direita)

Use este método em situações em que a mixagem de áudio é feita no hardware. Esse método serve como uma interface direta com o hardware, permitindo que você defina diretamente o volume como oposto por meio da estrutura. Esse método pode produzir várias saídas PCM ou codecs acelerados por hardware, como MP3 ou AAC.

Definição na linha 296 do arquivo audio.h .

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

Gravar buffer de áudio no driver. Retorna o número de bytes gravados ou um status_t negativo. Se pelo menos um quadro foi gravado com sucesso antes do erro, sugere-se que o driver retorne essa contagem de bytes bem-sucedida (curta) e, em seguida, retorne um erro na chamada subsequente.

Se set_callback() foi chamado anteriormente para habilitar o modo sem bloqueio, o write() não tem permissão para bloquear. Ele deve gravar apenas o número de bytes que cabem atualmente no buffer do driver/hardware e, em seguida, retornar essa contagem de bytes. Se for menor que o tamanho de gravação solicitado, a função de retorno de chamada deverá ser chamada quando houver mais espaço disponível no buffer do driver/hardware.

Definição na linha 311 do arquivo audio.h .


A documentação para esta estrutura foi gerada a partir do seguinte arquivo:
  • hardware/libhardware/include/hardware/ audio.h