alsa pcm接口之在unix环境的传输方法

在unix环境,数据片段响应被接受通过standard I/O call或事件等待路径(poll或select功能),为完成列表,异步通知响应该被列举出来.ALSA实现那些方法被描述在ALSA transfers部分.
标准I/O传输(Standadrd I/O transfers)

这个标准I/O传输常常使用read和write C语言函数集,对于那些函数那儿有两种基本行为-blocked和non-blocked,在non-block 行为,那些I/O函数不会停止,当没有数据可以传输(the ringbuffer满了),他们将返回-EAGIN错误码;在阻塞行为,那些IO函数将会停止并且等待有空闲ringbuffer(playback 播放)或直到那儿有新的样本(capture捕获),这个ALSA 实现将会被发现READ/Write传输片段.
事件等待路径(Event waiting routines)

poll或select函数允许接受请求或事件来自设备当应用程序正在等待事件来自于其他sources(比如keyboard,screen,network或者其他,snd_pcm_poll_descriptors被用来得到文件描述符通过poll或select函数,snd_pcm_poll_descriptors_revents.
异步通知Asynchrounous notification

Alsa和库可以通过一个异步通知处理通过一个SIGIO信号,在信号处理函数中,这个信号允许中断应用和传输数据.

相关推荐
加油201910 小时前
音视频处理(四):一文讲清楚VoIP语音通话SIP和RTP协议
音视频·pcm·voip·sip·rtp·g.711·语音通话
Android系统攻城狮4 天前
Android ALSA驱动进阶之获取周期帧数snd_pcm_lib_period_frames:用法实例(九十五)
android·pcm·android内核·音频进阶·周期帧数
Android系统攻城狮5 天前
Android内核进阶之获取当前PCM周期snd_pcm_lib_period_bytes:用法实例(九十三)
android·pcm·android内核·音频进阶·alsa音频
liwulin05065 天前
【ESP32-S3-CAM】 ESP32-S3-CAM+MAX98357播放pcm格式的wav文件(本地文件和网络文件)
pcm
Android系统攻城狮7 天前
Android内核进阶之周期更新PCM状态snd_pcm_period_elapsed:用法实例(九十二)
android·pcm·android内核·音频进阶
顾北川_野8 天前
播放PCM音频增益低+单独增强PCM解码的方案
音视频·pcm
Android系统攻城狮8 天前
Android内核进阶之写pcm数据到硬件snd_pcm_lib_write:用法实例(八十九)
pcm·android内核·音频进阶·pcm硬件参数·alsa音频
Android系统攻城狮9 天前
Android内核进阶之获取DMA地址snd_pcm_sgbuf_get_addr:用法实例(九十一)
android·pcm·android内核·音频进阶·pcm硬件参数
#做一个清醒的人1 个月前
【electron6】Web Audio + AudioWorklet PCM 实时采集噪音和模拟调试
前端·javascript·electron·pcm
长沙红胖子Qt2 个月前
FFmpeg开发笔记(十二):ffmpeg音频处理、采集麦克风音频录音为WAV
ffmpeg·pcm·wav·录音·麦克风