姓名
stream - 一些底层存储的可读、可写、可寻址接口
摘要
数据流是用于读取和写入数据到某个底层存储空间(通常是 VMO)的接口。
说明
流会维护对某些底层存储空间(通常是 VMO)的引用以及用于定位读取和写入操作的还原偏移。
与 VMO 上的读写操作不同,对流的读写操作可能很短,这些操作可以成功完成,无需填充(或分别清空)所提供的缓冲区。例如,如果读取操作超出了 VMO 的末尾,读取操作将直接失败;而如果读取操作延伸到了数据流末尾,则会成功读取到数据流末尾并部分填充缓冲区。
超出底层存储空间末尾的写入会尝试增加底层存储空间的大小,而不是立即失败。例如,如果写入的流超出底层 VMO 的末尾,则将尝试调整 VMO 的大小,而不是失败。如果调整大小操作在底层 VMO 上失败,则写入最终可能会很短。
系统调用
zx_stream_create()
- 通过 VMO 创建视频流zx_stream_readv()
- 从当前跳转偏移量处读取数据zx_stream_readv_at()
- 从具有给定偏移量的数据流中读取数据zx_stream_writev()
- 在当前跳转偏移量处向流写入数据zx_stream_writev_at()
- 以给定偏移量向数据流写入数据zx_stream_seek()
- 修改音频流的当前定位偏移量