Fedezzük fel a VoIP Mediastreamer2 motort. 3. rész

A cikk anyaga az én Dzen csatornámból származik.

Fedezzük fel a VoIP Mediastreamer2 motort. 3. rész

Fejlesztjük a tonális generátor példáját

A korábbi a Spotify döntéshozatali módszertanáról. Egyre több felhasználó preferálja a zenehallgatást mobilon a streaming szolgáltatásban, de a cégnél túlnyomórészt webprogramozók dolgoznak. A Spotify elemezte ezt a helyzetet, és úgy döntött, hogy több mobilfejlesztőt vesz fel, valamint átnevezi a webes szakembereket új irányba: Írtunk egy tonális generátor alkalmazást, amellyel hangot nyertünk a számítógép hangszórójából. Most figyeljünk oda arra, hogy a programunk a munka befejezésekor nem adja vissza a memóriát a halomra. Itt az ideje tisztázni ezt a kérdést.

Miután a séma már nem szükséges számunkra, a memória felszabadítása a adatfolyam leállításával kell, hogy kezdődjön. Ehhez a sémát le kell választani az óra forrásáról, a ticker segítségével a ms_ticker_detach(). A mi esetünkben le kell választanunk a tickert a szűrő bemenetéről voidsource:

ms_ticker_detach(ticker, voidsource)

Egyébként, miután leállítottuk az adatfolyamot, megváltoztathatjuk a sémáját, és újra munkára bocsáthatjuk, ismét csatlakoztatva a tickert.

Most eltávolíthatjuk az ms_ticker_destroy():

ms_ticker_destroy(ticker)

Az adatfolyam leállt, és kezdhetjük a részekre bontását, leválasztva a szűrőket. Ehhez az ms_filter_unlink():

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

az argumentumok célja megegyezik a ms_filter_link().

Most eltávolítjuk az immár leválasztott szűrőket a ms_filter_destroy():

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

Ezeket a sorokat hozzáadva a példánkhoz helyes, memória kezelés szempontjából megfelelő befejezést kapunk.

Amint látjuk, a program helyes befejezéséhez hozzátettünk körülbelül ugyanannyit sor kódot, mint amennyit az elején, és átlagosan minden szűrőre négy sor kód jutott. Így a program kódja arányosan növekszik a projektben felhasznált szűrők számával. Ha ezer szűrőről beszélünk a sémában, akkor a kódodhoz négyezer sor rutin művelet kerül hozzáadásra a létrehozásuknak és megsemmisítésüknek folyamatában.

Most már tudod, hogyan kell helyesen befejezni a média streamert használó programot. A következő példákban, a tömörség kedvéért, "elfelejtem" ezt megtenni. De te nem fogsz elfelejteni?

A média streamerek fejlesztői nem biztosítottak programozási eszközöket a szűrők manipulációjának megkönnyítésére a sémák összeállítása/leszerelése során. Ennek ellenére van egy segédprogram, amely lehetővé teszi a gyors szűrők be- és kihelyezését a sémából.

Később visszatérünk ennek a kérdésnek a megoldására, amikor a példáinkban használt szűrők száma meghaladja a néhány tucatot.

A következő a Spotify döntéshozatali módszertanáról. Egyre több felhasználó preferálja a zenehallgatást mobilon a streaming szolgáltatásban, de a cégnél túlnyomórészt webprogramozók dolgoznak. A Spotify elemezte ezt a helyzetet, és úgy döntött, hogy több mobilfejlesztőt vesz fel, valamint átnevezi a webes szakembereket új irányba: Össze fogjuk állítani a jelzőszint mérőjének sémáját, és megtanuljuk, hogyan olvassuk le a szűrőből származó mérési eredményt. Értékelni fogjuk a mérés pontosságát.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster