标签:index outputs 录音 source pa output new
1. source 如何与source_output进行关联的?
① 初始化source
module-alsa-source.c
在module加载pa_module_init时,创建pa_source_new。
s->outputs = pa_idxset_new(NULL, NULL);
创建一个outputs的容器(数组)
r = pa_idxset_put(core->sources, s, &s->index);
将创建的source保存在core的sources中。
② 创建source_output,与source进行关联
source-output.c
pa_source_output_new
o = malloc(sizeof(struct pa_source_output));
r = pa_idxset_put(s->outputs, o, NULL);
存入到source的outputs的容器(数组),进行了关联
Protocol-esound.c
○ 获取source
source = get_input_source(c->protocol)
pa_idxset_get_by_index(p->core->sources, p->sink_index)
○ source与outputs进行关联
c->source_output = pa_source_output_new(source, name, &ss);
Protocol-native.c
○ 获取source
source = pa_idxset_get_by_index(c->protocol->core->sources, source_index);
○ source与outputs进行关联
s = record_stream_new(c, source, &ss, name, maxlength, fragment_size)
source_output = pa_source_output_new(source, name, ss)
Protocol-simple.c
○ 获取source
source = pa_idxset_get_by_index(p->core->sources, p->source_index)
○ source与outputs进行关联
c->source_output = pa_source_output_new(source, c->client->name, &p->sample_spec)
标签:index,outputs,录音,source,pa,output,new 来源: https://www.cnblogs.com/renhl/p/14014096.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。