Мақала материалы менің сайтымнан алынды
Тон генераторының мысалын жақсарту
Алдыңғысында
Схеманы қажет етпегеннен кейін жадты босату деректер құбырын тоқтату арқылы басталуы керек. Ол үшін функцияның көмегімен сағат көзі мен тикерді тізбектен ажырату керек 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