当前位置: 技术问答>linux和unix
关于ALSA驱动程序中PCM子流substream的疑惑
来源: 互联网 发布时间:2016-11-13
本文导语: 前几天刚入手ALSA驱动,对在驱动程序中的open,close等函数的substream参数一直不太清楚。函数如下: static int snd_card_XXX_wm8976_open( struct snd_pcm_substream *substream ) static int snd_XXX_wm8976_hw_params( struct snd_pcm_substream *subs...
前几天刚入手ALSA驱动,对在驱动程序中的open,close等函数的substream参数一直不太清楚。函数如下:
static int snd_card_XXX_wm8976_open( struct snd_pcm_substream *substream )
static int snd_XXX_wm8976_hw_params( struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *hw_params )
static int snd_XXX_wm8976_trigger( struct snd_pcm_substream *substream, int cmd )
我个人的理解substream参数有点像OSS中的file参数。
但是又有文章说substream是PCM流的子流,每个PCM流包含多个子流substream。
所以我想问问各位高手,能不能说明一下substream指的是什么?什么是PCM子流?
万分感谢!
static int snd_card_XXX_wm8976_open( struct snd_pcm_substream *substream )
static int snd_XXX_wm8976_hw_params( struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *hw_params )
static int snd_XXX_wm8976_trigger( struct snd_pcm_substream *substream, int cmd )
我个人的理解substream参数有点像OSS中的file参数。
但是又有文章说substream是PCM流的子流,每个PCM流包含多个子流substream。
所以我想问问各位高手,能不能说明一下substream指的是什么?什么是PCM子流?
万分感谢!
|
PCM可以包含多个子流,一般是playback流和capture流,分别是用来播放和录音。这两个子流是用snd_pcm_substream结构体表示。具体含义深入看看。
当PCM子流打开后,这个runtime就会被分配到这个子流中,他包含硬件初始化,配置参数,缓存,mmap记录,锁等等的信息,几乎所有子流的控制都在runtime机构体里,所以相当的重要!
当PCM子流打开后,这个runtime就会被分配到这个子流中,他包含硬件初始化,配置参数,缓存,mmap记录,锁等等的信息,几乎所有子流的控制都在runtime机构体里,所以相当的重要!
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。