ื—ืงืจ ืžื ื•ืข ื”-VoIP Mediastreamer2. ื—ืœืง 12

ื”ื—ื•ืžืจ ืฉืœ ื”ืžืืžืจ ืœืงื•ื— ืžืžื ื™ ืขืจื•ืฅ ื–ืŸ.

ื—ืงืจ ืžื ื•ืข ื”-VoIP Mediastreamer2. ื—ืœืง 12

ื‘ืขื‘ืจ ัั‚ะฐั‚ัŒะต, ื”ื‘ื˜ื—ืชื™ ืœืฉืงื•ืœ ืืช ื ื•ืฉื ื”ืขืจื›ืช ื”ืขื•ืžืก ืขืœ ื”ื˜ื™ืงืจ ื•ื“ืจื›ื™ื ืœื”ื™ืœื—ื ื‘ืขื•ืžืก ืžื—ืฉื•ื‘ ืžื•ืคืจื– ื‘ืกื˜ืจื™ืžืจ ื”ืžื“ื™ื”. ืื‘ืœ ื”ื—ืœื˜ืชื™ ืฉื–ื” ื™ื”ื™ื” ื”ื’ื™ื•ื ื™ ื™ื•ืชืจ ืœื›ืกื•ืช ืืช ื”ื ื•ืฉืื™ื ืฉืœ ืื™ืชื•ืจ ื‘ืื’ื™ื ื‘ืžืกื ื ื™ ืžืœืื›ื” ื”ืงืฉื•ืจื™ื ืœืชื ื•ืขืช ื ืชื•ื ื™ื ื•ืจืง ืื– ืœืฉืงื•ืœ ืกื•ื’ื™ื•ืช ืฉืœ ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ื‘ื™ืฆื•ืขื™ื.

ืื™ืชื•ืจ ื‘ืื’ื™ื ืžืกื ื ื™ ืžืœืื›ื”

ืื—ืจื™ ืฉื‘ื“ืงื ื• ืืช ื”ืžื ื’ื ื•ืŸ ืœื”ืขื‘ืจืช ื ืชื•ื ื™ื ื‘ืกื˜ืจื™ืžืจ ืžื“ื™ื” ื‘ืžืืžืจ ื”ืงื•ื“ื, ื™ื”ื™ื” ื”ื’ื™ื•ื ื™ ืœื“ื‘ืจ ืขืœ ื”ืกื›ื ื•ืช ื”ื—ื‘ื•ื™ื•ืช ื‘ื•. ืื—ืช ื”ืชื›ื•ื ื•ืช ืฉืœ ืขืงืจื•ืŸ "ื–ืจื™ืžืช ื”ื ืชื•ื ื™ื" ื”ื™ื ืฉื–ื™ื›ืจื•ืŸ ืžื•ืงืฆื” ืžื”ืขืจื™ืžื” ื‘ืžืกื ื ื™ื ื”ืžืžื•ืงืžื™ื ื‘ืžืงื•ืจ ื–ืจื™ืžืช ื”ื ืชื•ื ื™ื, ื•ื”ื–ื™ื›ืจื•ืŸ ืžืฉืชื—ืจืจ ื•ืžื•ื—ื–ืจ ืœืขืจื™ืžื” ืขืœ ื™ื“ื™ ืžืกื ื ื™ื ื”ืžืžื•ืงืžื™ื ื‘ืกื•ืฃ ื”ื–ืจื™ืžื”. ื ึธืชึดื™ื‘. ื‘ื ื•ืกืฃ, ื™ืฆื™ืจืช ื ืชื•ื ื™ื ื—ื“ืฉื™ื ื•ื”ืฉืžื“ืชื ื™ื›ื•ืœื™ื ืœื”ืชืจื—ืฉ ืื™ืคืฉื”ื• ื‘ืืžืฆืข. ื‘ืื•ืคืŸ ื›ืœืœื™, ืฉื—ืจื•ืจ ื”ื–ื™ื›ืจื•ืŸ ืžืชื‘ืฆืข ืขืœ ื™ื“ื™ ืžืกื ืŸ ืฉื•ื ื” ืžื–ื” ืฉื™ืฆืจ ืืช ื‘ืœื•ืง ื”ื ืชื•ื ื™ื.

ืžื ืงื•ื“ืช ืžื‘ื˜ ืฉืœ ื ื™ื˜ื•ืจ ื–ื™ื›ืจื•ืŸ ืฉืงื•ืฃ, ื™ื”ื™ื” ืกื‘ื™ืจ ืฉื”ืžืกื ืŸ, ืขื ืงื‘ืœืช ื‘ืœื•ืง ืงืœื˜, ื™ืฉืžื™ื“ ืื•ืชื• ืžื™ื“ ืœืื—ืจ ืขื™ื‘ื•ื“, ืฉื—ืจื•ืจ ื”ื–ื™ื›ืจื•ืŸ ื•ื™ื•ืฆื™ื ื‘ืœื•ืง ื—ื“ืฉ ืฉื ื•ืฆืจ ืขื ื ืชื•ื ื™ ืคืœื˜. ื‘ืžืงืจื” ื–ื”, ื“ืœื™ืคืช ื–ื™ื›ืจื•ืŸ ื‘ืžืกื ืŸ ืชืชื’ืœื” ื‘ืงืœื•ืช - ืื ื”ืžื ืชื— ื–ื™ื”ื” ื“ืœื™ืคื” ื‘ืžืกื ืŸ, ืื– ื”ืžืกื ืŸ ื”ื‘ื ืœื ื”ื•ืจืก ื‘ืœื•ืงื™ื ื ื›ื ืกื™ื ื›ืžื• ืฉืฆืจื™ืš ื•ื™ืฉ ื‘ื• ืฉื’ื™ืื”. ืื‘ืœ ืžื ืงื•ื“ืช ื”ืžื‘ื˜ ืฉืœ ืฉืžื™ืจื” ืขืœ ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื, ื’ื™ืฉื” ื–ื• ืœืขื‘ื•ื“ื” ืขื ื‘ืœื•ืงื™ ื ืชื•ื ื™ื ืื™ื ื” ืคืจื•ื“ื•ืงื˜ื™ื‘ื™ืช - ื”ื™ื ืžื•ื‘ื™ืœื” ืœืžืกืคืจ ืจื‘ ืฉืœ ืคืขื•ืœื•ืช ืœื”ืงืฆืืช/ืคื™ื ื•ื™ ื–ื™ื›ืจื•ืŸ ืœื‘ืœื•ืงื™ ื ืชื•ื ื™ื ืœืœื ื›ืœ ืคืœื˜ ืฉื™ืžื•ืฉื™.

ืžืกื™ื‘ื” ื–ื•, ืžืกื ื ื™ ืžื“ื™ื” ืกื˜ืจื™ืžืจ, ืขืœ ืžื ืช ืœื ืœื”ืื˜ ืืช ืขื™ื‘ื•ื“ ื”ื ืชื•ื ื™ื, ืžืฉืชืžืฉื™ื ื‘ืคื•ื ืงืฆื™ื•ืช ื”ื™ื•ืฆืจื•ืช ื”ืขืชืงื•ืช ืงืœื•ืช ื‘ืขืช ื”ืขืชืงืช ื”ื•ื“ืขื•ืช (ื“ื™ื‘ืจื ื• ืขืœื™ื”ืŸ ื‘ืžืืžืจ ื”ืงื•ื“ื). ืคื•ื ืงืฆื™ื•ืช ืืœื• ื™ื•ืฆืจื•ืช ืžื•ืคืข ื—ื“ืฉ ืฉืœ ื›ื•ืชืจืช ื”ื”ื•ื“ืขื” ืจืง ืขืœ ื™ื“ื™ "ืฆื™ืจื•ืฃ" ืืœื™ื” ื‘ืœื•ืง ื ืชื•ื ื™ื ืžื”ื”ื•ื“ืขื” "ื”ื™ืฉื ื”" ื”ืžื•ืขืชืงืช. ื›ืชื•ืฆืื” ืžื›ืš, ืฉืชื™ ื›ื•ืชืจื•ืช ืžื—ื•ื‘ืจื•ืช ืœื‘ืœื•ืง ื ืชื•ื ื™ื ืื—ื“ ื•ืžื•ื ื” ื”ื”ืชื™ื™ื—ืกื•ืช ื‘ื‘ืœื•ืง ื”ื ืชื•ื ื™ื ืžื•ื’ื“ืœ. ืื‘ืœ ื–ื” ื™ื™ืจืื” ื›ืžื• ืฉืชื™ ื”ื•ื“ืขื•ืช. ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ื™ื•ืชืจ ื”ื•ื“ืขื•ืช ืขื ื‘ืœื•ืง ื ืชื•ื ื™ื "ื—ื‘ืจืชื™" ื›ื–ื”, ืœืžืฉืœ, ืžืกื ืŸ MS_TEE ื™ื•ืฆืจ ืชืจื™ืกืจ ืขื•ืชืงื™ื ืงืœื™ื ื›ืืœื” ื‘ื‘ืช ืื—ืช, ื•ืžืคื™ืฅ ืื•ืชื ื‘ื™ืŸ ื”ืคืœื˜ื™ื ืฉืœื•. ืื ื›ืœ ื”ืžืกื ื ื™ื ื‘ืฉืจืฉืจืช ืคื•ืขืœื™ื ื›ื”ืœื›ื”, ืขื“ ืกื•ืฃ ื”ืฆื™ื ื•ืจ ืืžื•ืจ ืžื•ื ื” ื”ื”ืชื™ื™ื—ืกื•ืช ื”ื–ื” ืœื”ื’ื™ืข ืœืืคืก ื•ืคื•ื ืงืฆื™ื™ืช ืฉื—ืจื•ืจ ื”ื–ื™ื›ืจื•ืŸ ืชื™ืงืจื: ms_free(). ืื ื”ืฉื™ื—ื” ืœื ืชืชืจื—ืฉ, ืื– ืคื™ืกืช ื”ื–ื™ื›ืจื•ืŸ ื”ื–ื• ืœื ืชื•ื—ื–ืจ ื™ื•ืชืจ ืœืขืจื™ืžื”, ื›ืœื•ืžืจ. ื–ื” "ื™ื“ืœื•ืฃ". ื”ืžื—ื™ืจ ืœืฉื™ืžื•ืฉ ื‘ืขื•ืชืงื™ื ืงืœื™ื ื”ื•ื ืื•ื‘ื“ืŸ ื”ื™ื›ื•ืœืช ืœืงื‘ื•ืข ื‘ืงืœื•ืช (ื›ืคื™ ืฉื™ื”ื™ื” ื‘ืžืงืจื” ืฉืœ ืขื•ืชืงื™ื ืจื’ื™ืœื™ื) ืื™ื–ื” ืžืกื ืŸ ื’ืจืฃ ื“ื•ืœืฃ ื–ื™ื›ืจื•ืŸ.

ืžื›ื™ื•ื•ืŸ ืฉืžืคืชื—ื™ ืกื˜ืจื™ืžืจ ื”ืžื“ื™ื” ืื—ืจืื™ื ืœืื™ืชื•ืจ ื“ืœื™ืคื•ืช ื–ื™ื›ืจื•ืŸ ื‘ืžืกื ื ื™ื ืžืงื•ืจื™ื™ื, ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉืœื ืชืฆื˜ืจืš ืœื ืคื•ืช ืื•ืชื. ืื‘ืœ ืขื ืžืกื ืŸ ื”ื™ืฆื™ืจื” ืฉืœืš, ืืชื” ื”ื—ื’ื‘ ืฉืœ ื”ืื•ืฉืจ ืฉืœืš, ื•ื”ื–ืžืŸ ืฉืืชื” ืžื‘ืœื” ื‘ื—ื™ืคื•ืฉ ืื—ืจ ื“ืœื™ืคื•ืช ื‘ืงื•ื“ ืฉืœืš ื™ื”ื™ื” ืชืœื•ื™ ื‘ื“ื™ื•ืง ืฉืœืš. ื›ื“ื™ ืœื”ืคื—ื™ืช ืืช ื–ืžืŸ ืื™ืชื•ืจ ื”ื‘ืื’ื™ื ืฉืœืš, ืขืœื™ื ื• ืœื‘ื—ื•ืŸ ื˜ื›ื ื™ืงื•ืช ื–ื™ื”ื•ื™ ื“ืœื™ืคื•ืช ื‘ืขืช ืคื™ืชื•ื— ืžืกื ื ื™ื. ื‘ื ื•ืกืฃ, ื™ื›ื•ืœ ืœืงืจื•ืช ืฉื”ื“ืœื™ืคื” ืชืชื‘ื˜ื ืจืง ื›ืืฉืจ ื”ืคื™ืœื˜ืจ ืžื™ื•ืฉื ื‘ืžืขืจื›ืช ืืžื™ืชื™ืช, ืฉื‘ื” ืžืกืคืจ ื”"ื—ืฉื•ื“ื™ื" ืขืฉื•ื™ ืœื”ื™ื•ืช ืขืฆื•ื ื•ื”ื–ืžืŸ ืœื ื™ืคื•ื™ ื‘ืื’ื™ื ืžื•ื’ื‘ืœ.

ื›ื™ืฆื“ ืžืชื‘ื˜ืืช ื“ืœื™ืคืช ื–ื™ื›ืจื•ืŸ?

ื–ื” ื”ื’ื™ื•ื ื™ ืœื”ื ื™ื— ื›ื™ ื‘ืคืœื˜ ื”ืชื•ื›ื ื™ืช ื—ืœืง ืขืœื™ื•ืŸ ื™ืฆื™ื’ ืืช ืื—ื•ื– ื”ื–ื™ื›ืจื•ืŸ ื”ื”ื•ืœืš ื•ื’ื•ื‘ืจ ืฉื ื›ื‘ืฉ ืขืœ ื™ื“ื™ ื”ื™ื™ืฉื•ื ืฉืœืš.

ื”ื‘ื™ื˜ื•ื™ ื”ื—ื™ืฆื•ื ื™ ื™ื”ื™ื” ืฉื‘ืฉืœื‘ ืžืกื•ื™ื ื”ืžืขืจื›ืช ืชืชื—ื™ืœ ืœื”ื’ื™ื‘ ืœืื˜ ืœืชื ื•ืขืช ื”ืขื›ื‘ืจ ื•ืœืื˜ ืœืื˜ ืชืฆื™ื™ืจ ืžื—ื“ืฉ ืืช ื”ืžืกืš. ื™ื™ืชื›ืŸ ื’ื ืฉื™ื•ืžืŸ ื”ืžืขืจื›ืช ื™ื’ื“ืœ ื•ื™ืื›ืœ ืžืงื•ื ื‘ื›ื•ื ืŸ ื”ืงืฉื™ื— ืฉืœืš. ื‘ืžืงืจื” ื–ื”, ื”ืืคืœื™ืงืฆื™ื” ืฉืœืš ืชืชื—ื™ืœ ืœื”ืชื ื”ื’ ื‘ืฆื•ืจื” ืžื•ื–ืจื”, ืœื ืชื’ื™ื‘ ืœืคืงื•ื“ื•ืช, ืœื ืชื•ื›ืœ ืœืคืชื•ื— ืงื•ื‘ืฅ ื•ื›ื•'.

ื›ื“ื™ ืœื–ื”ื•ืช ื”ืชืจื—ืฉื•ืช ื“ืœื™ืคื”, ื ืฉืชืžืฉ ื‘ื ืชื— ื–ื™ื›ืจื•ืŸ (ืœื”ืœืŸ ืžื ืชื—). ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ื•ืืœื’ืจื™ื ื“ (ื˜ื•ึนื‘ ืžืืžืจ ืขืœ ื–ื”) ืื• ืžื•ื‘ื ื” ื‘ืžื”ื“ืจ gcc MemorySnitizer ืื• ืžืฉื”ื• ืื—ืจ. ืื ื”ืžื ืชื— ืžืจืื” ืฉืžืชืจื—ืฉืช ื“ืœื™ืคื” ื‘ืื—ื“ ืžืžืกื ื ื™ ื”ื’ืจืคื™ื, ืื– ื–ื” ืื•ืžืจ ืฉื”ื’ื™ืข ื”ื–ืžืŸ ืœื™ื™ืฉื ืื—ืช ืžื”ืฉื™ื˜ื•ืช ื”ืžืชื•ืืจื•ืช ืœื”ืœืŸ.

ืฉื™ื˜ืช ืฉืœื•ืฉืช ื”ืื•ืจื ื™ื

ื›ืคื™ ืฉื”ื•ื–ื›ืจ ืœืขื™ืœ, ืื ื™ืฉ ื“ืœื™ืคืช ื–ื™ื›ืจื•ืŸ, ื”ืžื ืชื— ื™ืฆื‘ื™ืข ืขืœ ื”ืžืกื ืŸ ืฉื‘ื™ืงืฉ ื”ืงืฆืืช ื–ื™ื›ืจื•ืŸ ืžื”ืขืจื™ืžื”. ืื‘ืœ ื–ื” ืœื ื™ืฆื‘ื™ืข ืขืœ ื”ืžืกื ืŸ ืฉ"ืฉื›ื—" ืœื”ื—ื–ื™ืจ ืื•ืชื•, ืฉืœืžืขืฉื” ื”ื•ื ื”ืืฉื. ืœืคื™ื›ืš, ื”ืžื ืชื— ื™ื›ื•ืœ ืจืง ืœืืฉืจ ืืช ื”ืคื—ื“ื™ื ืฉืœื ื•, ืืš ืœื ืœื”ืฆื‘ื™ืข ืขืœ ื”ืฉื•ืจืฉ ืฉืœื”ื.

ื›ื“ื™ ืœื‘ืจืจ ืืช ืžื™ืงื•ืžื• ืฉืœ ื”ืžืกื ืŸ ื”"ืจืข" ื‘ื’ืจืฃ, ื ื™ืชืŸ ืœื‘ืฆืข ืฆืžืฆื•ื ื”ื’ืจืฃ ืœืžืกืคืจ ื”ืžื™ื ื™ืžืœื™ ืฉืœ ืฆืžืชื™ื ืฉื‘ื”ื ื”ืžื ืชื— ืขื“ื™ื™ืŸ ืžื–ื”ื” ื“ืœื™ืคื” ื•ืœืžืงื ืืช ื”ืžืกื ืŸ ื”ื‘ืขื™ื™ืชื™ ื‘ืฉืœื•ืฉืช ื”ืื•ืจื ื™ื ื”ื ื•ืชืจื™ื.

ืื‘ืœ ื™ื›ื•ืœ ืœืงืจื•ืช ืฉืขืœ ื™ื“ื™ ื”ืคื—ืชืช ืžืกืคืจ ื”ืžืกื ื ื™ื ื‘ื’ืจืฃ, ืชืฉื‘ืฉ ืืช ืžื”ืœืš ื”ืื™ื ื˜ืจืืงืฆื™ื” ื”ืจื’ื™ืœ ื‘ื™ืŸ ืžืกื ื ื™ื ื•ืืœืžื ื˜ื™ื ืื—ืจื™ื ืฉืœ ื”ืžืขืจื›ืช ืฉืœืš ื•ื”ื“ืœื™ืคื” ืœื ืชื•ืคื™ืข ื™ื•ืชืจ. ื‘ืžืงืจื” ื–ื”, ืชืฆื˜ืจืš ืœืขื‘ื•ื“ ืขื ื’ืจืฃ ื‘ื’ื•ื“ืœ ืžืœื ื•ืœื”ืฉืชืžืฉ ื‘ื’ื™ืฉื” ื”ืžืชื•ืืจืช ืœื”ืœืŸ.

ืฉื™ื˜ืช ื‘ื™ื“ื•ื“ ื”ื–ื–ื”

ืœืคืฉื˜ื•ืช ื”ืžืฆื’ืช, ื ืฉืชืžืฉ ื‘ื’ืจืฃ ื”ืžื•ืจื›ื‘ ืžืฉืจืฉืจืช ืื—ืช ืฉืœ ืžืกื ื ื™ื. ื”ื™ื ืžื•ืฆื’ืช ื‘ืชืžื•ื ื”.

ื—ืงืจ ืžื ื•ืข ื”-VoIP Mediastreamer2. ื—ืœืง 12

ื’ืจืฃ ืจื’ื™ืœ ื‘ื•, ืœืฆื“ ืžืกื ื ื™ ืกื˜ืจื™ืžืจ ืžื“ื™ื” ืžื•ื›ื ื™ื, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืืจื‘ืขื” ืžืกื ื ื™ craft F1...F4, ืžืืจื‘ืขื” ืกื•ื’ื™ื ืฉื•ื ื™ื, ืื•ืชื ื”ื›ื ืชื ืžื–ืžืŸ ื•ืื™ืŸ ืœื›ื ืกืคืง ื‘ื ื›ื•ื ื•ืชื. ืขื ื–ืืช, ื”ื‘ื” ื ื ื™ื— ืฉืœื›ืžื” ืžื”ื ื™ืฉ ื“ืœื™ืคื•ืช ื–ื™ื›ืจื•ืŸ. ื”ืคืขืœืช ื”ืชื•ื›ื ื™ืช ืฉืœื ื• ืœื ื™ื˜ื•ืจ ื”ืžื ืชื—, ืื ื• ืœืžื“ื™ื ืžื”ื“ื•ื— ืฉืœื• ืฉืžืกื ืŸ ืžืกื•ื™ื ื‘ื™ืงืฉ ื›ืžื•ืช ืžืกื•ื™ืžืช ืฉืœ ื–ื™ื›ืจื•ืŸ ื•ืœื ื”ื—ื–ื™ืจ ืื•ืชื• ืœ-Hap N ืžืกืคืจ ืคืขืžื™ื. ืืชื” ื™ื›ื•ืœ ื‘ืงืœื•ืช ืœื ื—ืฉ ืฉื™ื”ื™ื” ืงื™ืฉื•ืจ ืœืคื•ื ืงืฆื™ื•ืช ื”ืกื™ื ื•ืŸ ื”ืคื ื™ืžื™ื•ืช ืžืกื•ื’ MS_VOID_SOURCE. ื”ืžืฉื™ืžื” ืฉืœื• ื”ื™ื ืœืงื—ืช ื–ื™ื›ืจื•ืŸ ืžื”ืขืจื™ืžื”. ืžืกื ื ื™ื ืื—ืจื™ื ื—ื™ื™ื‘ื™ื ืœื”ื—ื–ื™ืจ ืื•ืชื• ืœืฉื. ื”ึธื”ึตืŸ. ืื ื• ื ื–ื”ื” ืืช ืขื•ื‘ื“ืช ื”ื“ืœื™ืคื”.

ื›ื“ื™ ืœืงื‘ื•ืข ื‘ืื™ื–ื” ืงื˜ืข ืฉืœ ื”ืฆื™ื ื•ืจ ื”ื™ื” ื—ื•ืกืจ ืคืขื•ืœื” ืฉื”ื•ื‘ื™ืœ ืœื“ืœื™ืคืช ื–ื™ื›ืจื•ืŸ, ืžื•ืฆืข ืœื”ื›ื ื™ืก ืžืกื ืŸ ื ื•ืกืฃ ืฉืคืฉื•ื˜ ืžืขื‘ื™ืจ ื”ื•ื“ืขื•ืช ืžืงืœื˜ ืœืคืœื˜, ืืš ื‘ืžืงื‘ื™ืœ ื™ื•ืฆืจ ืขื•ืชืง ืฉืœ ื”ื•ื“ืขืช ื”ืงืœื˜ ืฉืื™ื ื” ืงืœื”. , ืืœื "ื›ื‘ื“" ืจื’ื™ืœ, ื•ืื– ืžื•ื—ืง ืœื—ืœื•ื˜ื™ืŸ ืืช ื”ื”ื•ื“ืขื” ืฉื”ืชืงื‘ืœื” ื‘ื›ื ื™ืกื”. ืœืžืกื ืŸ ื›ื–ื” ื ืงืจื ืžื‘ื•ื“ื“. ืื ื• ืžืืžื™ื ื™ื ืฉืžื›ื™ื•ื•ืŸ ืฉื”ืคื™ืœื˜ืจ ืคืฉื•ื˜, ืื™ืŸ ื‘ื• ื ื–ื™ืœื”. ื•ืขื•ื“ ืชื›ื•ื ื” ื—ื™ื•ื‘ื™ืช ืื—ืช - ืื ื ื•ืกื™ืฃ ืื•ืชื” ื‘ื›ืœ ืžืงื•ื ื‘ื’ืจืฃ ืฉืœื ื•, ื–ื” ืœื ื™ืฉืคื™ืข ืขืœ ืคืขื•ืœืช ื”ืžืขื’ืœ ื‘ืฉื•ื ืฆื•ืจื”. ื ืฆื™ื’ ืืช ืžื‘ื•ื“ื“ ื”ืžืกื ืŸ ื‘ืฆื•ืจื” ืฉืœ ืžืขื’ืœ ืขื ืžืขื’ืœ ื›ืคื•ืœ.

ืื ื• ืžืคืขื™ืœื™ื ืืช ื”ืžื‘ื•ื“ื“ ืžื™ื“ ืœืื—ืจ ืžืกื ืŸ ืžืงื•ืจ ื”ืจื™ืง:
ื—ืงืจ ืžื ื•ืข ื”-VoIP Mediastreamer2. ื—ืœืง 12

ืื ื—ื ื• ืžืจื™ืฆื™ื ืืช ื”ืชื•ื›ื ื™ืช ืขื ื”ืžื ืชื— ืฉื•ื‘, ื•ืจื•ืื™ื ืฉื”ืคืขื ื”ืžื ืชื— ื™ืืฉื™ื ืืช ื”ืžื‘ื•ื“ื“. ืื—ืจื™ ื”ื›ืœ, ื–ื” ื”ื•ื ืฉื™ื•ืฆืจ ื›ืขืช ื‘ืœื•ืงื™ื ืฉืœ ื ืชื•ื ื™ื, ืืฉืจ ืื– ื”ื•ืœื›ื™ื ืœืื™ื‘ื•ื“ ืขืœ ื™ื“ื™ ืžืกื ืŸ ืจืฉืœื ื™ (ืื• ืžืกื ื ื™ื) ืœื ื™ื“ื•ืขื™ื. ื”ืฉืœื‘ ื”ื‘ื ื”ื•ื ืœื”ืขื‘ื™ืจ ืืช ื”ืžื‘ื•ื“ื“ ืœืื•ืจืš ื”ืฉืจืฉืจืช ื™ืžื™ื ื”, ืขืœ ื™ื“ื™ ืžืกื ืŸ ืื—ื“, ื•ืœื”ืชื—ื™ืœ ืืช ื”ื ื™ืชื•ื— ืžื—ื“ืฉ. ืื–, ืฉืœื‘ ืื—ืจ ืฉืœื‘ ื”ื–ื–ืช ื”ืžื‘ื•ื“ื“ ื™ืžื™ื ื”, ื ืงื‘ืœ ืžืฆื‘ ืฉื‘ื• ื‘ื“ื•ื— ื”ื ื™ืชื•ื— ื”ื‘ื ืžืกืคืจ ื‘ืœื•ืงื™ ื”ื–ื™ื›ืจื•ืŸ "ื”ื“ืœืคื•" ื™ืงื˜ืŸ. ื”ืžืฉืžืขื•ืช ื”ื™ื ืฉื‘ืฉืœื‘ ื–ื” ื”ืžื‘ื•ื“ื“ ื”ื™ื” ื‘ืฉืจืฉืจืช ืžื™ื“ ืœืื—ืจ ืžืกื ืŸ ื”ื‘ืขื™ื”. ืื ื”ื™ื” ืจืง โ€‹โ€‹ืžืกื ืŸ "ืจืข" ืื—ื“, ื”ื“ืœื™ืคื” ืชื™ืขืœื ื›ืœื™ืœ. ืœืคื™ื›ืš, ืžื™ืงืžื ื• ืืช ื”ืžืกื ืŸ ื”ื‘ืขื™ื™ืชื™ (ืื• ืื—ื“ ืžื›ืžื”). ืœืื—ืจ ืฉ"ืชื™ืงื ื•" ืืช ื”ืžืกื ืŸ, ื ื•ื›ืœ ืœื”ืžืฉื™ืš ืœื”ื–ื™ื– ืืช ื”ืžื‘ื•ื“ื“ ื™ืžื™ื ื” ืœืื•ืจืš ื”ืฉืจืฉืจืช ืขื“ ืฉื ื‘ื™ืก ืœื—ืœื•ื˜ื™ืŸ ื“ืœื™ืคื•ืช ื–ื™ื›ืจื•ืŸ.

ื™ื™ืฉื•ื ืžืกื ืŸ ืžื‘ื•ื“ื“

ื™ื™ืฉื•ื ื”ืžื‘ื•ื“ื“ ื ืจืื” ื‘ื“ื™ื•ืง ื›ืžื• ืžืกื ืŸ ืจื’ื™ืœ. ืงื•ื‘ืฅ ื”ื›ื•ืชืจืช:

/* ะคะฐะนะป iso_filter.h  ะžะฟะธัะฐะฝะธะต ะธะทะพะปะธั€ัƒัŽั‰ะตะณะพ ั„ะธะปัŒั‚ั€ะฐ. */

#ifndef iso_filter_h
#define iso_filter_h

/* ะ—ะฐะดะฐะตะผ ะธะดะตะฝั‚ะธั„ะธะบะฐั‚ะพั€ ั„ะธะปัŒั‚ั€ะฐ. */
#include <mediastreamer2/msfilter.h>

#define MY_ISO_FILTER_ID 1024

extern MSFilterDesc iso_filter_desc;

#endif

ื”ืžืกื ืŸ ืขืฆืžื•:

/* ะคะฐะนะป iso_filter.c  ะžะฟะธัะฐะฝะธะต ะธะทะพะปะธั€ัƒัŽั‰ะตะณะพ ั„ะธะปัŒั‚ั€ะฐ. */

#include "iso_filter.h"

    static void
iso_init (MSFilter * f)
{
}
    static void
iso_uninit (MSFilter * f)
{
}

    static void
iso_process (MSFilter * f)
{
    mblk_t *im;

    while ((im = ms_queue_get (f->inputs[0])) != NULL)
    {
        ms_queue_put (f->outputs[0], copymsg (im));
        freemsg (im);
    }
}

static MSFilterMethod iso_methods[] = {
    {0, NULL}
};

MSFilterDesc iso_filter_desc = {
    MY_ISO_FILTER_ID,
    "iso_filter",
    "A filter that reads from input and copy to its output.",
    MS_FILTER_OTHER,
    NULL,
    1,
    1,
    iso_init,
    NULL,
    iso_process,
    NULL,
    iso_uninit,
    iso_methods
};

MS_FILTER_DESC_EXPORT (iso_desc)

ืฉื™ื˜ื” ืœื”ื—ืœืคืช ืคื•ื ืงืฆื™ื•ืช ื ื™ื”ื•ืœ ื–ื™ื›ืจื•ืŸ

ืœืžื—ืงืจ ืขื“ื™ืŸ ื™ื•ืชืจ, ืกื˜ืจื™ืžืจ ื”ืžื“ื™ื” ืžืกืคืง ืืช ื”ื™ื›ื•ืœืช ืœื”ื—ืœื™ืฃ ืคื•ื ืงืฆื™ื•ืช ื’ื™ืฉื” ืœื–ื™ื›ืจื•ืŸ ื‘ืคื•ื ืงืฆื™ื•ืช ืžืฉืœืš, ืืฉืจ ื‘ื ื•ืกืฃ ืœืขื‘ื•ื“ื” ื”ืขื™ืงืจื™ืช, ื™ืชืขื“ื• "ืžื™, ืื™ืคื” ื•ืœืžื”". ืฉืœื•ืฉ ืคื•ื ืงืฆื™ื•ืช ืžื•ื—ืœืคื•ืช. ื–ื” ื ืขืฉื” ื‘ืื•ืคืŸ ื”ื‘ื:

OrtpMemoryFunctions reserv;
OrtpMemoryFunctions my;

reserv.malloc_fun = ortp_malloc;
reserv.realloc_fun = ortp_realloc;
reserv.free_fun = ortp_free;

my.malloc_fun = &my_malloc;
my.realloc_fun = &my_realloc;
my.free_fun = &my_free;

ortp_set_memory_functions(&my);

ืชื›ื•ื ื” ื–ื• ืžืกื™ื™ืขืช ื‘ืžืงืจื™ื ื‘ื”ื ื”ืžื ืชื— ืžืื˜ ืืช ืคืขื•ืœืช ื”ืžืกื ื ื™ื ืขื“ ื›ื“ื™ ื›ืš ืฉืคืขื™ืœื•ืช ื”ืžืขืจื›ืช ื‘ื” ื‘ื ื•ื™ ื”ืžืขื’ืœ ืฉืœื ื• ืžืฉืชื‘ืฉืช. ื‘ืžืฆื‘ ื›ื–ื”, ืขืœื™ืš ืœื ื˜ื•ืฉ ืืช ื”ืžื ืชื— ื•ืœื”ืฉืชืžืฉ ื‘ื”ื—ืœืคืช ืคื•ื ืงืฆื™ื•ืช ืœืขื‘ื•ื“ื” ืขื ื–ื™ื›ืจื•ืŸ.

ืฉืงืœื ื• ืืœื’ื•ืจื™ืชื ืฉืœ ืคืขื•ืœื•ืช ืขื‘ื•ืจ ื’ืจืฃ ืคืฉื•ื˜ ืฉืื™ื ื• ืžื›ื™ืœ ืขื ืคื™ื. ืื‘ืœ ื’ื™ืฉื” ื–ื• ื™ื›ื•ืœื” ืœื”ื™ื•ืช ืžื™ื•ืฉืžืช ืขืœ ืžืงืจื™ื ืื—ืจื™ื, ื›ืžื•ื‘ืŸ ืขื ื™ื•ืชืจ ืžื•ืจื›ื‘ื•ืช, ืื‘ืœ ื”ืจืขื™ื•ืŸ ื ืฉืืจ ื–ื”ื”.

ื‘ืžืืžืจ ื”ื‘ื, ื ื‘ื—ืŸ ืืช ื ื•ืฉื ื”ืขืจื›ืช ื”ืขื•ืžืก ืขืœ ื˜ื™ืงืจ ื•ื“ืจื›ื™ื ืœื”ื™ืœื—ื ื‘ืขื•ืžืก ืžื—ืฉื•ื‘ ืžื•ืคืจื– ื‘ืกื˜ืจื™ืžืจ ืžื“ื™ื”.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”