Mediastreamer2 VoIP motorra arakatzen. 3. zatia

Artikuluaren materiala niretik hartua da zen kanala.

Mediastreamer2 VoIP motorra arakatzen. 3. zatia

Tonu-sorgailuaren adibidea hobetzea

Aurrekoan Artikulu Tonu-sorgailuaren aplikazio bat idatzi genuen eta ordenagailuaren bozgorailutik soinua ateratzeko erabili genuen. Orain ohartuko gara gure programak ez duela memoria itzultzen amaitzean memoriara itzultzen. Gai hau argitzeko garaia da.

Zirkuitua gehiago behar ez badugu, memoria askatzen hasi beharko litzateke datu-hodiak geldituz. Horretarako, erloju-iturria eta ticker-a zirkuitutik deskonektatu behar dituzu funtzioa erabiliz ms_ticker_detach(). Gure kasuan, ticker-a iragazki sarreratik deskonektatu behar dugu iturburu hutsa:

ms_ticker_detach(ticker, voidsource)

Bide batez, garraiatzailea gelditu ondoren, bere zirkuitua aldatu eta berriro martxan jarri dezakegu, berriro ticker-a konektatuz.

Orain funtzioa erabiliz kendu dezakegu ms_ticker_destroy():

ms_ticker_destroy(ticker)

Garraiatzailea gelditu egin da eta haren zatiak desmuntatzen has gaitezke, iragazkiak deskonektatuz. Horretarako, erabili funtzioa ms_filter_unlink():

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

argumentuen helburua funtzioaren berdina da ms_filter_link().

Orain bereizitako iragazkiak kenduko ditugu erabiliz ms_filter_destroy():

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

Lerro hauek gure adibideari gehituz, memoriaren kudeaketaren ikuspegitik programaren amaiera zuzena lortuko dugu.

Ikus dezakegunez, programa behar bezala osatzeak hasieran adina kode-lerro gehitzea eskatzen zigun, batez beste lau kode-lerro iragazki bakoitzeko. Ematen du programaren kodearen tamaina proiektuan erabilitako iragazki kopuruaren proportzioan handituko dela. Zirkuituan mila iragazki buruz hitz egiten badugu, horiek sortzeko eta suntsitzeko ohiko eragiketa lau mila lerro gehituko zaizkio kodeari.

Orain badakizu nola amaitzen den multimedia-streamer bat erabiltzen duen programa bat. Ondorengo adibideetan, trinkotasunaren mesedetan, hau egitea "ahaztuko" zait. Baina ez duzu ahaztuko?

Media streamer-aren garatzaileek ez zuten software-tresnarik eman zirkuituak muntatzean/desmuntatzerakoan iragazkien manipulazioa errazteko. Hala ere, bada laguntzaile bat zirkuitutik iragazki bat azkar sartzeko/kentzeko aukera ematen duena.

Aurrerago itzuliko gara arazo hau konpontzera, gure adibideetako iragazki kopurua dozena pare bat gainditzen duenean.

Hurrengoa Artikulu Seinale-maila-neurgailu zirkuitu bat muntatuko dugu eta iragazkitik neurketaren emaitza irakurtzen ikasiko dugu. Ebalua dezagun neurketaren zehaztasuna.

Iturria: www.habr.com

Gehitu iruzkin berria