我们研究了Mediastreamer2 VoIP引擎。第三部分

文章资料取自我的禅宗频道



改进音调生成器示例


在上一篇文章中,我们编写了一个声音生成器应用程序,并使用它从计算机扬声器中提取声音。现在,我们将注意以下事实:我们的程序在完成工作后不会将内存返回到堆中。现在是时候澄清这个问题了。


在我们不再需要电路之后,释放内存应该从停止数据管道开始。为此,您需要使用ms_ticker_detach()函数从电路断开时钟源,股票报价器在我们的例子中,我们必须断开代码与voidsource过滤器的输入的连接


ms_ticker_detach(ticker, voidsource)

顺便说一句,在传送带停止后,我们可以更改其方案并重新投入使用,再次连接收纸器。


现在我们可以使用ms_ticker_destroy()函数将其删除


ms_ticker_destroy(ticker)

传送带已停止,我们可以通过断开过滤器的连接来进行拆卸。ms_filter_unlink()函数用于此目的


ms_filter_unlink(voidsource, 0, dtmfgen, 0);
ms_filter_unlink(dtmfgen, 0, snd_card_write, 0);

参数的用途与函数ms_filter_link()相同


, , c ms_filter_destroy():


ms_filter_destroy(voidsource);
ms_filter_destroy(dtmfgen);
ms_filter_destroy(snd_card_write);

, , .


, , . , . , .


. , , "" . - ?


媒体流媒体的开发人员没有提供软件工具来促进电路组装/拆卸过程中对过滤器的操作。但是,有一个帮助程序可让您快速从电路中插入/移除滤波器。


当示例中的过滤器数量超过几十个时,我们将稍后再解决该问题。


在下一篇文章中,我们将组装信号电平计的电路,并学习如何从滤波器读取测量结果。估计测量的准确性。


All Articles