Ferkenne de Mediastreamer2 VoIP-motor. Diel 3

It materiaal fan it artikel is nommen út myn zen kanaal.

Ferkenne de Mediastreamer2 VoIP-motor. Diel 3

Ferbetterjen fan de toangenerator foarbyld

Yn it foarige artikel Wy skreaunen in toangenerator-applikaasje en brûkten it om lûd te ekstrahearjen fan in komputersprekker. No sille wy merke dat ús programma it ûnthâld net werombringt nei de heap as it einiget. It is tiid om dit probleem te ferdúdlikjen.

Neidat wy it circuit net mear nedich binne, moat it befrijen fan ûnthâld begjinne troch de gegevenspipeline te stopjen. Om dit te dwaan, moatte jo de klokboarne en ticker losmeitsje fan it circuit mei de funksje ms_ticker_detach(). Yn ús gefal moatte wy de ticker loskeppelje fan 'e filterynfier voidsource:

ms_ticker_detach(ticker, voidsource)

Troch de wei, nei it stopjen fan de cunewalde, kinne wy ​​feroarje syn circuit en sette it wer yn wurking, wer ferbinen de ticker.

No kinne wy ​​it fuortsmite mei de funksje ms_ticker_destroy():

ms_ticker_destroy(ticker)

De transportband is stoppe en wy kinne begjinne te disassemble dielen fan it, losmeitsje de filters. Om dit te dwaan, brûk de funksje ms_filter_unlink():

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

it doel fan 'e arguminten is itselde as foar de funksje ms_filter_link().

Wy ferwiderje de no skieden filters mei help fan ms_filter_destroy():

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

Troch dizze rigels ta te foegjen oan ús foarbyld, krije wy in juste programmabeëiniging út it eachpunt fan ûnthâldbehear.

Sa't wy sjen kinne, fereasket de juste foltôging fan it programma ús om sawat itselde oantal rigels koade ta te foegjen as oan it begjin, mei in gemiddelde fan fjouwer rigels koade per filter. It docht bliken dat de grutte fan it programma koade sil tanimme yn ferhâlding ta it oantal filters brûkt yn it projekt. As wy prate oer tûzen filters yn it circuit, dan sille fjouwer tûzen rigels fan routine operaasjes foar it meitsjen en ferneatigje se wurde tafoege oan jo koade.

No wite jo hoe't jo in programma korrekt kinne beëinigje dat in mediastreamer brûkt. Yn 'e folgjende foarbylden sil ik om' e kompaktheid "ferjitte" om dit te dwaan. Mar jo sille net ferjitte?

De ûntwikkelders fan 'e mediastreamer levere gjin software-ark om manipulaasje fan filters te fasilitearjen by it gearstallen / disassemble fan circuits. Dochs is der in helper wêrmei jo fluch ynfoegje / fuortsmite in filter út it circuit.

Wy sille letter weromkomme nei it oplossen fan dit probleem, as it oantal filters yn ús foarbylden mear as in pear tsientallen is.

Folgjende artikel Wy sille in sirkwy fan 'e sinjaalnivometer gearstalle en learje hoe't jo it mjitresultaat fan it filter lêze. Litte wy de krektens fan 'e mjitting evaluearje.

Boarne: www.habr.com

Add a comment