audio_stream_out 结构参考

audio_stream_out 结构参考

#include < audio.h >

数据字段

结构音频流常见的
uint32_t(* get_latency )(const struct audio_stream_out *stream)
整数(* set_volume )(struct audio_stream_out *stream, 向左浮动, 向右浮动)
大小_t(* write )(struct audio_stream_out *stream, const void *buffer, size_t bytes)
整数(* get_render_position )(const struct audio_stream_out *stream, uint32_t *dsp_frames)
整数(* get_next_write_timestamp )(const struct audio_stream_out *stream, int64_t *timestamp)
整数(* set_callback )(struct audio_stream_out *stream, stream_callback_t回调, void *cookie)
整数(*暂停)(struct audio_stream_out *stream)
整数(* resume )(struct audio_stream_out *stream)
整数(* drain )(struct audio_stream_out *stream, audio_drain_type_t类型)
整数(*刷新)(struct audio_stream_out *stream)
整数(* get_presentation_position )(const struct audio_stream_out *stream, uint64_t *frames, struct timespec *timestamp)

详细说明

audio_stream_out是音频输出硬件的抽象接口。

它提供有关音频输出硬件驱动程序的各种属性的信息。

在文件audio.h的第276行定义。

现场文件

struct audio_stream common

音频流输出的常用方法。这必须audio_stream_out的第一个成员,因为此结构的用户将在已知audio_stream引用audio_stream_out的上下文中将 audio_stream 转换audio_stream_out指针。

在文件audio.h的第282行定义。

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

当驱动程序/硬件缓冲的数据已播放时请求通知。如果之前调用了set_callback()来启用非阻塞模式,则drain()不能阻塞,而是应该快速返回,并且通过回调通知排放完成。如果set_callback()没有被调用,则drain()必须阻塞直到完成。如果 type==AUDIO_DRAIN_ALL,则在播放完所有先前写入的数据后,排水完成。如果 type==AUDIO_DRAIN_EARLY_NOTIFY,则在当前音轨的所有数据播放完之前不久完成排放,以便框架有时间执行无间隙音轨切换。

Drain 必须在 stop() 和flush()调用时立即返回

卸载播放必须执行此功能。

在文件audio.h的第372行定义。

int(* 刷新)(struct audio_stream_out *stream)

通知音频驱动程序刷新排队的数据。 Stream 必须在调用flush()之前已经暂停。

卸载播放必须执行此功能。

在文件audio.h的第380行定义。

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

返回音频硬件驱动程序估计的延迟(以毫秒为单位)。

在文件audio.h的第287行定义。

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

获取下一次写入音频驱动程序的本地时间。单位是微秒,其中 epoch 由本地音频 HAL 决定。

在文件audio.h的第324行定义。

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

返回呈现给外部观察者的音频帧数的最新计数。这不包括已写入但仍在流水线中的帧。当输出进入待机状态时,计数不会重置为零。还返回截至此演示计数的 CLOCK_MONOTONIC 的值。返回的计数应该是“最近的”,但不需要是最近的可能值。但是,关联的时间应该对应于返回的任何计数。示例:假设已呈现 N+M 帧,其中 M 是“小”数。那么允许返回N而不是N+M,并且时间戳应该对应N而不是N+M。术语“最近”和“小”没有定义。它们反映了实施的质量。

仅限 3.0 及更高版本。

在文件audio.h的第398行定义。

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

在文件audio.h的第317行定义。

int(* pause)(struct audio_stream_out *stream)

通知音频驱动程序停止播放,但排队的缓冲区由硬件保留。用于实现暂停/恢复。但是,如果不支持空实现,则应为具有重要延迟的硬件实现。在暂停状态下,音频硬件可能仍在使用电源。用户可以考虑在超时后调用挂起。

卸载播放必须执行此功能。

在文件audio.h的第345行定义。

int(* resume)(struct audio_stream_out *stream)

通知音频驱动程序在暂停后恢复播放。如果在没有匹配暂停的情况下调用,则返回错误。

卸载播放必须执行此功能。

在文件audio.h的第353行定义。

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

设置通知非阻塞写入和排水完成的回调函数。调用此函数意味着所有未来的write()drain()必须是非阻塞的,并使用回调来表示完成。

在文件audio.h的第333行定义。

int(* set_volume)(struct audio_stream_out *stream, 向左浮动, 向右浮动)

在硬件中完成音频混合的情况下使用此方法。此方法用作与硬件的直接接口,允许您通过框架直接设置音量。此方法可能会产生多个 PCM 输出或硬件加速编解码器,例如 MP3 或 AAC。

在文件audio.h的第296行定义。

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

将音频缓冲区写入驱动程序。返回写入的字节数,或负的 status_t。如果在错误之前至少成功写入一帧,则建议驱动程序返回该成功(短)字节计数,然后在后续调用中返回错误。

如果先前已调用set_callback()以启用非阻塞模式,则不允许write()阻塞。它必须只写入当前适合驱动程序/硬件缓冲区的字节数,然后返回此字节数。如果这小于请求的写入大小,则必须在驱动程序/硬件缓冲区中有更多可用空间时调用回调函数。

在文件audio.h的第311行定义。


此结构的文档是从以下文件生成的:
,

audio_stream_out 结构参考

audio_stream_out 结构参考

#include < audio.h >

数据字段

结构音频流常见的
uint32_t(* get_latency )(const struct audio_stream_out *stream)
整数(* set_volume )(struct audio_stream_out *stream, 向左浮动, 向右浮动)
大小_t(* write )(struct audio_stream_out *stream, const void *buffer, size_t bytes)
整数(* get_render_position )(const struct audio_stream_out *stream, uint32_t *dsp_frames)
整数(* get_next_write_timestamp )(const struct audio_stream_out *stream, int64_t *timestamp)
整数(* set_callback )(struct audio_stream_out *stream, stream_callback_t回调, void *cookie)
整数(*暂停)(struct audio_stream_out *stream)
整数(* resume )(struct audio_stream_out *stream)
整数(* drain )(struct audio_stream_out *stream, audio_drain_type_t类型)
整数(*刷新)(struct audio_stream_out *stream)
整数(* get_presentation_position )(const struct audio_stream_out *stream, uint64_t *frames, struct timespec *timestamp)

详细说明

audio_stream_out是音频输出硬件的抽象接口。

它提供有关音频输出硬件驱动程序的各种属性的信息。

在文件audio.h的第276行定义。

现场文件

struct audio_stream common

音频流输出的常用方法。这必须audio_stream_out的第一个成员,因为此结构的用户将在已知audio_stream引用audio_stream_out的上下文中将 audio_stream 转换audio_stream_out指针。

在文件audio.h的第282行定义。

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

当驱动程序/硬件缓冲的数据已播放时请求通知。如果之前调用了set_callback()来启用非阻塞模式,则drain()不能阻塞,而是应该快速返回,并且通过回调通知排放完成。如果set_callback()没有被调用,则drain()必须阻塞直到完成。如果 type==AUDIO_DRAIN_ALL,则在播放完所有先前写入的数据后,排水完成。如果 type==AUDIO_DRAIN_EARLY_NOTIFY,则在当前音轨的所有数据播放完之前不久完成排放,以便框架有时间执行无间隙音轨切换。

Drain 必须在 stop() 和flush()调用时立即返回

卸载播放必须执行此功能。

在文件audio.h的第372行定义。

int(* 刷新)(struct audio_stream_out *stream)

通知音频驱动程序刷新排队的数据。 Stream 必须在调用flush()之前已经暂停。

卸载播放必须执行此功能。

在文件audio.h的第380行定义。

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

返回音频硬件驱动程序估计的延迟(以毫秒为单位)。

在文件audio.h的第287行定义。

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

获取下一次写入音频驱动程序的本地时间。单位是微秒,其中 epoch 由本地音频 HAL 决定。

在文件audio.h的第324行定义。

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

返回呈现给外部观察者的音频帧数的最新计数。这不包括已写入但仍在流水线中的帧。当输出进入待机状态时,计数不会重置为零。还返回截至此演示计数的 CLOCK_MONOTONIC 的值。返回的计数应该是“最近的”,但不需要是最近的可能值。但是,关联的时间应该对应于返回的任何计数。示例:假设已呈现 N+M 帧,其中 M 是“小”数。那么允许返回N而不是N+M,并且时间戳应该对应N而不是N+M。术语“最近”和“小”没有定义。它们反映了实施的质量。

仅限 3.0 及更高版本。

在文件audio.h的第398行定义。

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

在文件audio.h的第317行定义。

int(* pause)(struct audio_stream_out *stream)

通知音频驱动程序停止播放,但排队的缓冲区由硬件保留。用于实现暂停/恢复。但是,如果不支持空实现,则应为具有重要延迟的硬件实现。在暂停状态下,音频硬件可能仍在使用电源。用户可以考虑在超时后调用挂起。

卸载播放必须执行此功能。

在文件audio.h的第345行定义。

int(* resume)(struct audio_stream_out *stream)

通知音频驱动程序在暂停后恢复播放。如果在没有匹配暂停的情况下调用,则返回错误。

卸载播放必须执行此功能。

在文件audio.h的第353行定义。

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

设置通知非阻塞写入和排水完成的回调函数。调用此函数意味着所有未来的write()drain()必须是非阻塞的,并使用回调来表示完成。

在文件audio.h的第333行定义。

int(* set_volume)(struct audio_stream_out *stream, 向左浮动, 向右浮动)

在硬件中完成音频混合的情况下使用此方法。此方法用作与硬件的直接接口,允许您通过框架直接设置音量。此方法可能会产生多个 PCM 输出或硬件加速编解码器,例如 MP3 或 AAC。

在文件audio.h的第296行定义。

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

将音频缓冲区写入驱动程序。返回写入的字节数,或负的 status_t。如果在错误之前至少成功写入一帧,则建议驱动程序返回该成功(短)字节计数,然后在后续调用中返回错误。

如果先前已调用set_callback()以启用非阻塞模式,则不允许write()阻塞。它必须只写入当前适合驱动程序/硬件缓冲区的字节数,然后返回此字节数。如果这小于请求的写入大小,则必须在驱动程序/硬件缓冲区中有更多可用空间时调用回调函数。

在文件audio.h的第311行定义。


此结构的文档是从以下文件生成的: