Mediastreamer2 VoIP انجن کی تلاش۔ حصہ 3

مضمون کا مواد میری تحریر سے لیا گیا ہے۔ زین چینل.

Mediastreamer2 VoIP انجن کی تلاش۔ حصہ 3

ٹون جنریٹر کی مثال کو بہتر بنانا

پچھلے میں آرٹیکل ہم نے ایک ٹون جنریٹر ایپلی کیشن لکھا اور اسے کمپیوٹر اسپیکر سے آواز نکالنے کے لیے استعمال کیا۔ اب ہم دیکھیں گے کہ ہمارا پروگرام ختم ہونے پر میموری کو واپس ہیپ میں واپس نہیں کرتا ہے۔ اس مسئلے کو واضح کرنے کا وقت آگیا ہے۔

ہمیں سرکٹ کی مزید ضرورت نہ ہونے کے بعد، ڈیٹا پائپ لائن کو روک کر میموری کو آزاد کرنا شروع ہونا چاہیے۔ ایسا کرنے کے لیے، آپ کو فنکشن کا استعمال کرتے ہوئے سرکٹ سے کلاک سورس اور ٹکر کو منقطع کرنا ہوگا۔ ms_ticker_detach(). ہمارے معاملے میں، ہمیں فلٹر ان پٹ سے ٹکر کو منقطع کرنا چاہیے۔ voidsource:

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

نیا تبصرہ شامل کریں