Mediastreamer2 VoIP ์—”์ง„ ํƒ์ƒ‰. 12 ๋ถ€

๊ธ€์˜ ์†Œ์žฌ๋Š” ์ œ ๊ธ€์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค. ์   ์ฑ„๋„.

Mediastreamer2 VoIP ์—”์ง„ ํƒ์ƒ‰. 12 ๋ถ€

๊ณผ๊ฑฐ์— ๊ธฐ์‚ฌ, ํ‹ฐ์ปค ๋ถ€ํ•˜ ์ถ”์ • ๋ฌธ์ œ์™€ ๋ฏธ๋””์–ด ์ŠคํŠธ๋ฆฌ๋จธ์˜ ๊ณผ๋„ํ•œ ์ปดํ“จํŒ… ๋ถ€ํ•˜ ์ฒ˜๋ฆฌ ๋ฐฉ์•ˆ์„ ๊ณ ๋ฏผํ•˜๊ธฐ๋กœ ์•ฝ์†ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฐ์ดํ„ฐ ์ด๋™๊ณผ ๊ด€๋ จ๋œ ๊ณต์˜ˆ ํ•„ํ„ฐ ๋””๋ฒ„๊น… ๋ฌธ์ œ๋ฅผ ๋‹ค๋ฃจ๊ณ  ์„ฑ๋Šฅ ์ตœ์ ํ™” ๋ฌธ์ œ๋ฅผ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์ด ๋” ๋…ผ๋ฆฌ์ ์ด๋ผ๊ณ  ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํฌ๋ž˜ํ”„ํŠธ ํ•„ํ„ฐ ๋””๋ฒ„๊น…

์ด์ „ ๊ธฐ์‚ฌ์—์„œ ๋ฏธ๋””์–ด ์ŠคํŠธ๋ฆฌ๋จธ์˜ ๋ฐ์ดํ„ฐ ์ด๋™ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ดํŽด๋ณธ ํ›„ ์—ฌ๊ธฐ์— ์ˆจ๊ฒจ์ง„ ์œ„ํ—˜์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋Š” ๊ฒƒ์ด ๋…ผ๋ฆฌ์ ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. "๋ฐ์ดํ„ฐ ํ๋ฆ„" ์›์น™์˜ ํŠน์ง• ์ค‘ ํ•˜๋‚˜๋Š” ํž™์—์„œ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์ด ๋ฐ์ดํ„ฐ ํ๋ฆ„์˜ ์†Œ์Šค์— ์œ„์น˜ํ•œ ํ•„ํ„ฐ์—์„œ ๋ฐœ์ƒํ•˜๊ณ  ํ๋ฆ„ ๊ฒฝ๋กœ ๋์— ์œ„์น˜ํ•œ ํ•„ํ„ฐ๊ฐ€ ์ด๋ฏธ ๋ฐ˜ํ™˜์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ํ•ด์ œํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํž™์—. ๋˜ํ•œ ์ค‘๊ฐ„ ์ง€์  ์–ด๋”˜๊ฐ€์—์„œ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ์˜ ์ƒ์„ฑ ๋ฐ ํŒŒ๊ดด๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ๋Š” ๋ฐ์ดํ„ฐ ๋ธ”๋ก์„ ์ƒ์„ฑํ•œ ํ•„ํ„ฐ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ํ•„ํ„ฐ์— ์˜ํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

ํˆฌ๋ช…ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ด€์ ์—์„œ ํ•„ํ„ฐ๋Š” ์ž…๋ ฅ ๋ธ”๋ก์„ ์ˆ˜์‹ ํ•  ๋•Œ ์ฒ˜๋ฆฌ ํ›„ ์ฆ‰์‹œ ํŒŒ๊ดดํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•˜๊ณ  ์ถœ๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ๋ธ”๋ก์„ ์ถœ๋ ฅ์— ๋„ฃ๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ํ•„ํ„ฐ์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ์‰ฝ๊ฒŒ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ„์„๊ธฐ๊ฐ€ ํ•„ํ„ฐ์˜ ๋ˆ„์ˆ˜๋ฅผ ๊ฐ์ง€ํ•˜๋ฉด ๋’ค๋”ฐ๋ฅด๋Š” ํ•„ํ„ฐ๊ฐ€ ๋“ค์–ด์˜ค๋Š” ๋ธ”๋ก์„ ์ œ๋Œ€๋กœ ํŒŒ๊ดดํ•˜์ง€ ์•Š๊ณ  ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ณ ์„ฑ๋Šฅ ์œ ์ง€์˜ ๊ด€์ ์—์„œ ๋ณผ ๋•Œ ๋ฐ์ดํ„ฐ ๋ธ”๋ก ์ž‘์—…์— ๋Œ€ํ•œ ์ด๋Ÿฌํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์€ ์ƒ์‚ฐ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์œ ์šฉํ•œ ์†Œ๋ชจ ์—†์ด ๋ฐ์ดํ„ฐ ๋ธ”๋ก์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น/ํ•ด์ œํ•˜๋Š” ๋งŽ์€ ์ž‘์—…์œผ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ด์œ ๋กœ ๋ฏธ๋””์–ด ์ŠคํŠธ๋ฆฌ๋จธ ํ•„ํ„ฐ๋Š” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ๋Šฆ์ถ”์ง€ ์•Š๊ธฐ ์œ„ํ•ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ณต์‚ฌํ•  ๋•Œ ๊ฐ€๋ฒผ์šด ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“œ๋Š” ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(์ด์ „ ๊ธฐ์‚ฌ์—์„œ ์ด์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค). ์ด๋Ÿฌํ•œ ํ•จ์ˆ˜๋Š” ๋ณต์‚ฌ๋œ "์˜ค๋ž˜๋œ" ๋ฉ”์‹œ์ง€์˜ ๋ฐ์ดํ„ฐ ๋ธ”๋ก์„ "์ฒจ๋ถ€"ํ•˜์—ฌ ๋ฉ”์‹œ์ง€ ํ—ค๋”์˜ ์ƒˆ ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ๋ธ”๋ก์— ๋‘ ๊ฐœ์˜ ํ—ค๋”๊ฐ€ ์ฒจ๋ถ€๋˜๊ณ  ๋ฐ์ดํ„ฐ ๋ธ”๋ก์˜ ์ฐธ์กฐ ์นด์šดํ„ฐ๊ฐ€ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‘ ๊ฐœ์˜ ๋ฉ”์‹œ์ง€์ฒ˜๋Ÿผ ๋ณด์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ "๊ณต๊ฐœ" ๋ฐ์ดํ„ฐ ๋ธ”๋ก์ด ์žˆ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ๋” ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด MS_TEE ํ•„ํ„ฐ๋Š” ํ•œ ๋ฒˆ์— XNUMX๊ฐœ์˜ ์ด๋Ÿฌํ•œ ๋ผ์ดํŠธ ๋ณต์‚ฌ๋ณธ์„ ์ƒ์„ฑํ•˜์—ฌ ์ถœ๋ ฅ์— ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. ์ฒด์ธ์˜ ๋ชจ๋“  ํ•„ํ„ฐ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋ฉด ํŒŒ์ดํ”„๋ผ์ธ์˜ ๋์—์„œ ์ด ์ฐธ์กฐ ํšŸ์ˆ˜๊ฐ€ XNUMX์— ๋„๋‹ฌํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ํ•ด์ œ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค. ms_free(). ํ˜ธ์ถœ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉด ์ด ๋ฉ”๋ชจ๋ฆฌ ์กฐ๊ฐ์€ ๋” ์ด์ƒ ํž™์œผ๋กœ ๋ฐ˜ํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” "๋ˆ„์„ค"ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋ฒผ์šด ๋ณต์‚ฌ๋ณธ์„ ์‚ฌ์šฉํ•˜๋Š” ๋น„์šฉ์€ (์ผ๋ฐ˜ ๋ณต์‚ฌ๋ณธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ) ์–ด๋–ค ๊ทธ๋ž˜ํ”„ ํ•„ํ„ฐ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ˆ„์ถœ๋˜๋Š”์ง€ ์‰ฝ๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์˜ ์†์‹ค์ž…๋‹ˆ๋‹ค.

"๋„ค์ดํ‹ฐ๋ธŒ" ํ•„ํ„ฐ์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ์ฐพ๋Š” ์ฑ…์ž„์€ ๋ฏธ๋””์–ด ์ŠคํŠธ๋ฆฌ๋จธ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์žˆ์œผ๋ฏ€๋กœ ๋””๋ฒ„๊น…ํ•  ํ•„์š”๊ฐ€ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ œ์ž‘ ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž์‹ ์ด ํ–‰๋ณต์˜ ๋ฉ”๋šœ๊ธฐ์ด๋ฉฐ ์ฝ”๋“œ์˜ ๋ˆ„์ถœ์„ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐ ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„์€ ์ •ํ™•๋„์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ๋””๋ฒ„๊น… ์‹œ๊ฐ„์„ ์ค„์ด๋ ค๋ฉด ํ•„ํ„ฐ๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ ๋ˆ„์ˆ˜ ์ง€์—ญํ™” ๊ธฐ์ˆ ์„ ์‚ดํŽด๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ "์šฉ์˜์ž"์˜ ์ˆ˜๊ฐ€ ๋งŽ๊ณ  ๋””๋ฒ„๊น… ์‹œ๊ฐ„์ด ์ œํ•œ๋˜๋Š” ์‹ค์ œ ์‹œ์Šคํ…œ์—์„œ ํ•„ํ„ฐ๋ฅผ ์ ์šฉํ•  ๋•Œ๋งŒ ๋ˆ„์ถœ์ด ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋Š” ์–ด๋–ป๊ฒŒ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๊นŒ?

ํ”„๋กœ๊ทธ๋žจ์˜ ์ถœ๋ ฅ์—์„œ ์ƒ๋‹จ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์ฐจ์ง€ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ๋น„์œจ์ด ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์™ธ๋ถ€ ํ‘œํ˜„์€ ์–ด๋Š ์‹œ์ ์—์„œ ์‹œ์Šคํ…œ์ด ๋งˆ์šฐ์Šค์˜ ์›€์ง์ž„์— ์ฒœ์ฒœํžˆ ๋ฐ˜์‘ํ•˜์—ฌ ์ฒœ์ฒœํžˆ ํ™”๋ฉด์„ ๋‹ค์‹œ ๊ทธ๋ฆฐ๋‹ค๋Š” ์‚ฌ์‹ค๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ๋กœ๊ทธ๊ฐ€ ์ปค์ ธ์„œ ํ•˜๋“œ ๋“œ๋ผ์ด๋ธŒ์˜ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๋ช…๋ น์— ์‘๋‹ตํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ํŒŒ์ผ์„ ์—ด ์ˆ˜ ์—†๋Š” ๋“ฑ ์ด์ƒํ•˜๊ฒŒ ์ž‘๋™ํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๋ˆ„์ถœ ์‚ฌ์‹ค์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ ๋ถ„์„๊ธฐ(์ดํ•˜ ๋ถ„์„๊ธฐ๋ผ๊ณ  ํ•จ)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์ˆ˜ ๋ฐœ๊ทธ๋ฆฐ๋“œ (์ข‹์€ ๊ธฐ์‚ฌ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด) ๋˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์— ๋‚ด์žฅ GCC ๋ฉ”๋ชจ๋ฆฌ์„ธ๋‹ˆํƒ€์ด์ € ๋˜๋Š” ๋‹ค๋ฅธ ๊ฒƒ. ๋ถ„์„๊ธฐ๊ฐ€ ๊ทธ๋ž˜ํ”„ ํ•„ํ„ฐ ์ค‘ ํ•˜๋‚˜์—์„œ ๋ˆ„์ถœ์ด ๋ฐœ์ƒํ•œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋˜๋ฉด ์•„๋ž˜ ์„ค๋ช…๋œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋ฅผ ์ ์šฉํ•  ๋•Œ์ž„์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์“ฐ๋ฆฌ ํŒŒ์ธ์ฆˆ ๋ฐฉ์‹

์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ถ„์„๊ธฐ๋Š” ํž™์—์„œ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ์š”์ฒญํ•œ ํ•„ํ„ฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ๊ทธ๊ฒƒ์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์„ "์žŠ์€"ํ•„ํ„ฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ค์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ถ„์„์ž๋Š” ์šฐ๋ฆฌ์˜ ๋‘๋ ค์›€์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์„ ๋ฟ ๊ทธ ๋ฟŒ๋ฆฌ๋ฅผ ์ง€์ ํ•˜์ง€๋Š” ๋ชปํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜ํ”„์—์„œ "๋ถˆ๋Ÿ‰" ํ•„ํ„ฐ์˜ ์œ„์น˜๋ฅผ โ€‹โ€‹์ฐพ์œผ๋ ค๋ฉด ๋ถ„์„๊ธฐ๊ฐ€ ์—ฌ์ „ํžˆ ๋ˆ„์ˆ˜๋ฅผ ๊ฐ์ง€ํ•˜๋Š” ์ตœ์†Œ ๋…ธ๋“œ ์ˆ˜๋กœ ๊ทธ๋ž˜ํ”„๋ฅผ ์ค„์ด๊ณ  ๋‚˜๋จธ์ง€ XNUMX๊ฐœ์˜ ์†Œ๋‚˜๋ฌด์—์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ํ•„ํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์—ด์˜ ํ•„ํ„ฐ ์ˆ˜๋ฅผ ์ค„์ด๋ฉด ํ•„ํ„ฐ์™€ ์‹œ์Šคํ…œ์˜ ๋‹ค๋ฅธ ์š”์†Œ ๊ฐ„์˜ ์ •์ƒ์ ์ธ ์ƒํ˜ธ ์ž‘์šฉ ๊ณผ์ •์ด ์ค‘๋‹จ๋˜๊ณ  ๋ˆ„์ถœ์ด ๋” ์ด์ƒ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ „์ฒด ํฌ๊ธฐ ๊ทธ๋ž˜ํ”„๋กœ ์ž‘์—…ํ•˜๊ณ  ์•„๋ž˜์— ์„ค๋ช…๋œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์Šฌ๋ผ์ด๋”ฉ ์ ˆ์—ฐ์ฒด ๋ฐฉ์‹

๊ฐ„๋‹จํ•˜๊ฒŒ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด ๋‹จ์ผ ํ•„ํ„ฐ ์ฒด์ธ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๊ทธ๋ž˜ํ”„๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋…€๋Š” ๊ทธ๋ฆผ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

Mediastreamer2 VoIP ์—”์ง„ ํƒ์ƒ‰. 12 ๋ถ€

๊ธฐ์„ฑํ’ˆ ๋ฏธ๋””์–ด ์ŠคํŠธ๋ฆฌ๋จธ ํ•„ํ„ฐ์™€ ํ•จ๊ป˜ 1๊ฐœ์˜ ํฌ๋ž˜ํ”„ํŠธ ํ•„ํ„ฐ F4โ€ฆ ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋“ค ์ค‘ ๋ช‡ ๊ฐœ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ถ„์„๊ธฐ ๊ฐ๋… ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ๋•Œ ๋ณด๊ณ ์„œ์—์„œ ํŠน์ • ํ•„ํ„ฐ๊ฐ€ ์ผ์ •๋Ÿ‰์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์š”์ฒญํ–ˆ์ง€๋งŒ N๋ฒˆ ํž™์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์•˜๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. MS_VOID_SOURCE ์œ ํ˜•์˜ ๋‚ด๋ถ€ ํ•„ํ„ฐ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ถ”์ธกํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ๊ทธ์˜ ์ž‘์—…์€ ํž™์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ•„ํ„ฐ๋Š” ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ €๊ฒƒ๋“ค. ์šฐ๋ฆฌ๋Š” ๋ˆ„์ถœ์„ ์ฐพ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ์ดˆ๋ž˜ํ•œ ํŒŒ์ดํ”„๋ผ์ธ ๋น„ํ™œ์„ฑ ๋ถ€๋ถ„์ด ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋‹จ์ˆœํžˆ ๋ฉ”์‹œ์ง€๋ฅผ ์ž…๋ ฅ์—์„œ ์ถœ๋ ฅ์œผ๋กœ ์ด๋™์‹œํ‚ค๋Š” ์ถ”๊ฐ€ ํ•„ํ„ฐ๋ฅผ ๋„์ž…ํ•˜๋Š” ๊ฒƒ์ด ์ œ์•ˆ๋˜์ง€๋งŒ ๋™์‹œ์— ๋น„ํ™œ์„ฑ, ์ •์ƒ ์ž…๋ ฅ ๋ฉ”์‹œ์ง€์˜ "๋ฌด๊ฑฐ์šด" ๋ณต์‚ฌ ํ›„ ์ถœ๋ ฅ์— ๋„์ฐฉํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ์™„์ „ํžˆ ์‚ญ์ œ ์ž…๊ตฌ. ์ด๋Ÿฌํ•œ ํ•„ํ„ฐ๋ฅผ ์ ˆ์—ฐ์ฒด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ•„ํ„ฐ๊ฐ€ ๋‹จ์ˆœํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ˆ„์ถœ์ด ๋ฐฐ์ œ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋˜ ํ•˜๋‚˜์˜ ๊ธ์ •์  ์ธ ์†์„ฑ-๊ทธ๋ž˜ํ”„์˜ ์–ด๋Š ์œ„์น˜์— ์ถ”๊ฐ€ํ•˜๋ฉด ํšŒ๋กœ ์ž‘๋™์— ์–ด๋–ค ์‹ ์œผ๋กœ๋“  ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด์ค‘ ์œค๊ณฝ์ด ์žˆ๋Š” ์›์œผ๋กœ ์ ˆ์—ฐ์ฒด ํ•„ํ„ฐ๋ฅผ ๋ฌ˜์‚ฌํ•ฉ๋‹ˆ๋‹ค.

voidsourse ํ•„ํ„ฐ ๋ฐ”๋กœ ๋’ค์— ์ ˆ์—ฐ์ฒด๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
Mediastreamer2 VoIP ์—”์ง„ ํƒ์ƒ‰. 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);

์ด ๊ธฐ๋Šฅ์€ ๋ถ„์„๊ธฐ๊ฐ€ ํ•„ํ„ฐ ์†๋„๋ฅผ ๋„ˆ๋ฌด ๋‚ฎ์ถ”์–ด ํšŒ๋กœ๊ฐ€ ๊ตฌ์ถ•๋œ ์‹œ์Šคํ…œ์˜ ์ž‘๋™์ด ์ค‘๋‹จ๋˜๋Š” ๊ฒฝ์šฐ์— ๊ตฌ์ถœ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ๋Š” ๋ถ„์„๊ธฐ๋ฅผ ํฌ๊ธฐํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋Šฅ์˜ ๋Œ€์ฒด๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ถ„๊ธฐ๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ๊ฐ„๋‹จํ•œ ๊ทธ๋ž˜ํ”„์— ๋Œ€ํ•œ ์ž‘์—… ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ณ ๋ คํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋ฌผ๋ก  ํ•ฉ๋ณ‘์ฆ์ด์žˆ๋Š” ๋‹ค๋ฅธ ๊ฒฝ์šฐ์—๋„ ์ ์šฉ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ์•„์ด๋””์–ด๋Š” ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ๊ธ€์—์„œ๋Š” ํ‹ฐ์ปค ๋ถ€ํ•˜ ์ถ”์ • ๋ฌธ์ œ์™€ ๋ฏธ๋””์–ด ์ŠคํŠธ๋ฆฌ๋จธ์—์„œ ๊ณผ๋„ํ•œ ์ปดํ“จํŒ… ๋ถ€ํ•˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€