Mediastreamer2 VoIP қозғалтқышын зерттеу. 3 бөлім

Мақала материалы менің сайтымнан алынды zen арнасы.

Mediastreamer2 VoIP қозғалтқышын зерттеу. 3 бөлім

Тон генераторының мысалын жақсарту

Алдыңғысында мақала Біз дыбыс генераторының қосымшасын жазып, оны компьютер динамигінен дыбыс шығару үшін қолдандық. Енді біз бағдарламамыз аяқталғаннан кейін жадты үйіндіге қайтармайтынын байқаймыз. Бұл мәселені нақтылайтын кез келді.

Схеманы қажет етпегеннен кейін жадты босату деректер құбырын тоқтату арқылы басталуы керек. Ол үшін функцияның көмегімен сағат көзі мен тикерді тізбектен ажырату керек ms_ticker_detach(). Біздің жағдайда біз тикерді сүзгі кірісінен ажыратуымыз керек бос көз:

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().

Біз қазір бөлінген сүзгілерді пайдаланып алып тастаймыз ms_filter_destroy():

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

Біздің мысалға осы жолдарды қосу арқылы біз жадты басқару тұрғысынан дұрыс бағдарламаның аяқталуын аламыз.

Көріп отырғанымыздай, бағдарламаны дұрыс аяқтау бізден бастапқыдағыдай код жолдарының шамамен бірдей санын қосуды талап етті, әр сүзгіге орта есеппен төрт жолдық код. Бағдарлама кодының өлшемі жобада қолданылатын сүзгілер санына пропорционалды түрде артады екен. Егер схемадағы мың сүзгі туралы айтатын болсақ, онда кодқа оларды жасау және жою үшін әдеттегі операциялардың төрт мың жолы қосылады.

Енді сіз медиа ағынды пайдаланатын бағдарламаны қалай дұрыс тоқтату керектігін білесіз. Келесі мысалдарда, жинақылық үшін мен мұны «ұмытып кетемін». Бірақ ұмытпайсың ба?

Медиа стримерді әзірлеушілер схемаларды құрастыру/бөлшектеу кезінде сүзгілерді өңдеуді жеңілдету үшін бағдарламалық құралдарды қамтамасыз етпеді. Соған қарамастан, схемадан сүзгіні жылдам енгізуге/алып тастауға мүмкіндік беретін көмекші бар.

Біз бұл мәселені шешуге кейінірек, мысалдарымыздағы сүзгілердің саны бірнеше ондаған асқанда ораламыз.

Келесі мақала Біз сигнал деңгейінің өлшегіш схемасын жинаймыз және сүзгіден өлшеу нәтижесін оқуды үйренеміз. Өлшеу дәлдігін бағалайық.

Ақпарат көзі: www.habr.com

пікір қалдыру