Að kanna Mediastreamer2 VoIP vélina. 3. hluti

Efni greinarinnar er tekið úr mínum zen rás.

Að kanna Mediastreamer2 VoIP vélina. 3. hluti

Bæta dæmi um tóngjafa

Í fyrri grein Við skrifuðum tóngjafaforrit og notuðum það til að draga hljóð úr tölvuhátalara. Nú munum við taka eftir því að forritið okkar skilar ekki minni aftur í hrúguna þegar því lýkur. Það er kominn tími til að skýra þetta mál.

Eftir að við þurfum ekki lengur hringrásina ætti að losa minni að byrja með því að stöðva gagnaleiðsluna. Til að gera þetta þarftu að aftengja klukkugjafann og merkið frá hringrásinni með því að nota aðgerðina ms_ticker_detach(). Í okkar tilviki verðum við að aftengja merkið frá síuinntakinu ógilda heimild:

ms_ticker_detach(ticker, voidsource)

Við the vegur, eftir að hafa stöðvað færibandið, getum við breytt hringrásinni og sett það aftur í notkun, aftur tengt tickerinn.

Nú getum við fjarlægt það með því að nota aðgerðina ms_ticker_destroy():

ms_ticker_destroy(ticker)

Færibandið hefur stöðvast og við getum byrjað að taka hluta af honum í sundur, aftengja síurnar. Til að gera þetta, notaðu aðgerðina ms_filter_unlink():

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

tilgangurinn með rökunum er sá sami og fyrir fallið ms_filter_link().

Við fjarlægjum síurnar sem nú eru aðskildar með því að nota ms_filter_destroy():

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

Með því að bæta þessum línum við dæmið okkar fáum við rétta dagskrárlok frá sjónarhóli minnisstjórnunar.

Eins og við sjáum krafðist rétt frágangur forritsins að við bættum við um það bil sama fjölda kóðalína og í upphafi, með að meðaltali fjórar línur af kóða á hverja síu. Það kemur í ljós að stærð forritskóðans mun aukast í hlutfalli við fjölda sía sem notaðar eru í verkefninu. Ef við tölum um þúsund síur í hringrásinni, þá verða fjögur þúsund línur af venjubundnum aðgerðum til að búa til og eyða þeim bætt við kóðann þinn.

Nú veistu hvernig á að loka forriti sem notar fjölmiðlastraumspilara. Í eftirfarandi dæmum, vegna þéttleika, mun ég „gleyma“ að gera þetta. En þú munt ekki gleyma?

Hönnuðir miðlunarstraumarans útveguðu ekki hugbúnaðarverkfæri til að auðvelda meðhöndlun sía þegar þeir setja saman / taka í sundur hringrásir. Engu að síður er til hjálpartæki sem gerir þér kleift að setja/fjarlægja síu fljótt úr hringrásinni.

Við munum snúa aftur til að leysa þetta mál síðar, þegar fjöldi sía í dæmunum okkar fer yfir nokkra tugi.

Næst grein Við munum setja saman merkistigsmælis hringrás og læra hvernig á að lesa mæliniðurstöðuna úr síunni. Við skulum meta mælingarnákvæmni.

Heimild: www.habr.com

Bæta við athugasemd