Libopenaptx์˜ ์ž‘์„ฑ์ž๋Š” Freedesktop ํ”„๋กœ์ ํŠธ์˜ ์ฝ”๋“œ ๋Œ€์—ฌ๋ฅผ ์ฐจ๋‹จํ•˜๋„๋ก ๋ผ์ด์„ผ์Šค๋ฅผ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

Pali Rohรกr๋Š” A2DP Bluetooth ํ”„๋กœํ•„์— ์‚ฌ์šฉ๋˜๋Š” aptX(์˜ค๋””์˜ค ์ฒ˜๋ฆฌ ๊ธฐ์ˆ ) ์ฝ”๋ฑ์˜ ๊ตฌํ˜„์„ ์ œ๊ณตํ•˜๋Š” libopenaptx ํ”„๋กœ์ ํŠธ์˜ ๋ผ์ด์„ผ์Šค๋ฅผ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€์—๋Š” ์˜ค๋””์˜ค ์ธ์ฝ”๋”ฉ ๋ฐ ๋””์ฝ”๋”ฉ์„ ์œ„ํ•œ libopenaptx.so ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ผ์ด์„ผ์Šค๊ฐ€ LGPLv2.1์—์„œ GPLv3+๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๊ด€๋ จ๋œ ์ฝ”๋“œ๋ฅผ GPLv2์— ๋‹ค์‹œ ๋ผ์ด์„ผ์Šคํ•˜์ง€ ์•Š๊ณ ์„œ๋Š” GPLv3 ๋ผ์ด์„ผ์Šค ํ•˜์—์„œ๋งŒ ์ œ๊ณต๋˜๋Š” ํ”„๋กœ์ ํŠธ์—์„œ libopenaptx ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ Apache 2.0 ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ฅธ ํ”„๋กœ์ ํŠธ์™€์˜ ๋ผ์ด์„ ์Šค ํ˜ธํ™˜์„ฑ์ด ๋‹ฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๋ผ์ด์„ผ์Šค ๋ณ€๊ฒฝ์€ Libopenaptx์˜ ์ฐฝ์‹œ์ž์— ๋”ฐ๋ฅด๋ฉด ๋ผ์ด์„ผ์Šค ๊ณ„์•ฝ์„ ์œ„๋ฐ˜ํ•˜๊ณ  ์ฑ„ํƒ๋œ ํ–‰๋™ ๊ฐ•๋ น์„ ๋‚จ์šฉํ•œ Freedesktop ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ์ž ๋ฐ Collabora ํšŒ์‚ฌ์™€์˜ ์ถฉ๋Œ์— ๋Œ€ํ•œ ๋Œ€์‘์ด์—ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ Paly์— ๋”ฐ๋ฅด๋ฉด Freedesktop๊ณผ Collabora์˜ ๊ฐœ๋ฐœ์ž๋Š” ์ž‘์„ฑ์ž์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๊ณ  ๊ทธ์˜ ์ฝ”๋“œ๋ฅผ PulseAudio๋กœ ์ „์†กํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฆ๊ฑฐ๋กœ Libopenaptx ์ž‘์„ฑ์ž๋Š” ์ž์‹ ์ด ์ž‘์„ฑํ•œ decode_buffer ํ•จ์ˆ˜๋ฅผ ์–ธ๊ธ‰ํ–ˆ๋Š”๋ฐ, ๊ทธ ์•ˆ์— ์ฃผ์„๊นŒ์ง€ ์ผ์น˜ํ–ˆ์ง€๋งŒ Paly์— ๋”ฐ๋ฅด๋ฉด Freedesktop ๊ฐœ๋ฐœ์ž๋“ค์€ ์ด๊ฒƒ์ด ์ž์‹ ๋“ค์˜ ์ฝ”๋“œ๋ผ๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ–‰์œ„๊ฐ€ ๋ผ์ด์„ผ์Šค ๊ณ„์•ฝ์„ ์œ„๋ฐ˜ํ–ˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋…ผ์˜ํ•˜๋ ค๋Š” ๋ถ„๋…ธ์™€ ์‹œ๋„์— ๋Œ€์‘ํ•˜์—ฌ Freedesktop ๊ฐœ๋ฐœ์ž๋“ค์€ ์ด ๋…ผ์˜๊ฐ€ ํ”„๋กœ์ ํŠธ ํ–‰๋™ ๊ฐ•๋ น์„ ์œ„๋ฐ˜ํ•œ๋‹ค๋Š” ๊ตฌ์‹ค๋กœ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ํ‰ํ™”์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์€ Libopenaptx์˜ ์ž‘์„ฑ์ž๋Š” ๋ผ์ด์„ผ์Šค๋ฅผ GPLv3์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  Freedesktop ํ”„๋กœ์ ํŠธ์—์„œ ์ฝ”๋“œ ์‚ฌ์šฉ์„ ๊ธˆ์ง€ํ•˜๋Š” ๋ฉ”๋ชจ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ผ์ด์„ผ์Šค ๋ณ€๊ฒฝ์€ ๋ผ์ด์„ผ์Šค ๋น„ํ˜ธํ™˜์„ฑ์œผ๋กœ ์ธํ•ด ์ฝ”๋“œ์—์„œ PipeWire ์‚ฌ์šฉ์„ ๊ธˆ์ง€ํ•˜๋Š” ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์— Freedesktop ๊ฐœ๋ฐœ์ž๊ฐ€ ์ด๋ฏธ ์ถ”๊ฐ€ํ•œ ๋ฒ„์ „ libopenaptx 0.2.1๋ถ€ํ„ฐ ์ ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

X.Org ์žฌ๋‹จ์˜ ์ „ ์ด์‚ฌํšŒ ๋ฉค๋ฒ„์ด์ž Wayland ๋ฐ PipeWire์˜ ํ•ต์‹ฌ ๊ฐœ๋ฐœ์ž ์ค‘ ํ•œ ๋ช…์ด๋ฉฐ Collabora์˜ ๊ทธ๋ž˜ํ”ฝ ํ”„๋กœ์ ํŠธ ์ฑ…์ž„์ž์ธ Daniel Stone์€ libopenaptx์˜ ๋ผ์ด์„ผ์Šค ๋ณ€๊ฒฝ์ด ๋ฒ•์ ์œผ๋กœ ๋ชจํ˜ธํ•˜๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. Libopenaptx๋Š” Pali Rohar์˜ ๊ฐœ์ธ ๊ฐœ๋ฐœ์ด ์•„๋‹ˆ๋ผ ์›๋ž˜ LGPLv2.1 ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ์ œ๊ณต๋˜์—ˆ๋˜ FFmpeg ํ”„๋กœ์ ํŠธ์˜ ์ฝ”๋“œ ํฌํฌ์ผ ๋ฟ์ด๋ฉฐ Pali Rohar๋Š” ์ด์— ์†ํ•˜์ง€ ์•Š๋Š” ์ฝ”๋“œ ๋ถ€๋ถ„์— ๋Œ€ํ•œ ๋ผ์ด์„ ์Šค๋ฅผ ์ผ๋ฐฉ์ ์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ์—๊ฒŒ๋Š” ์‚ฌ์šฉ ๋ฒ”์œ„์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ œํ•œ์ด ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ผ์ด์„ ์Šค๋ฅผ ๋‹ค์‹œ ๋ถ€์—ฌํ•˜๋ ค๋ฉด ํฌํฌ๊ฐ€ ์ƒ์„ฑ๋œ ์ฝ”๋“œ์˜ ์›๋ณธ ์ž‘์„ฑ์ž์˜ ๋ช…์‹œ์ ์ธ ๋™์˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. LGPL ์•ฝ๊ด€์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์ €์ž‘์ž์˜ ๋™์˜ ์—†์ด ๋ผ์ด์„ ์Šค๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์€ ์ตœ์‹  ๋ฒ„์ „์˜ LGPL์—์„œ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ตœ๋Œ€ LGPL v3.0๊นŒ์ง€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ถ”๊ฐ€ ์ œํ•œ ์‚ฌํ•ญ์ด ํฌํ•จ๋œ GPLv3๊นŒ์ง€๋Š” ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Pali Rohar๋Š” ์ถ”๊ฐ€ ์ œํ•œ ์‚ฌํ•ญ์„ ๋„์ž…ํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ ํ”„๋กœ์ ํŠธ๋Š” ์ด์ œ ์ˆœ์ˆ˜ํ•œ GPLv3 ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ์ œ๊ณต๋˜๋ฉฐ Freedesktop ๋ฐ Collabora์— ๋Œ€ํ•œ ์–ธ๊ธ‰์€ GPLv3์„ ์œ„๋ฐ˜ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๋Š” README ํŒŒ์ผ์˜ ์„ค๋ช…์ผ ๋ฟ์ด๋ผ๊ณ  ๋‹ตํ–ˆ์Šต๋‹ˆ๋‹ค.

Daniel Stone์— ๋”ฐ๋ฅด๋ฉด Freedesktop์ด Libopenaptx์˜ ๋ผ์ด์„ผ์Šค๋ฅผ ์œ„๋ฐ˜ํ–ˆ๋‹ค๋Š” ์ฃผ์žฅ์€ ์‚ฌ์‹ค์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ผ์ด์„ผ์Šค ๊ณ„์•ฝ ์กฐ๊ฑด์„ ์ˆ˜๋ฝํ•˜๊ณ  Libopenaptx ๊ฐœ๋ฐœ์ž์˜ ์ถ”๊ฐ€ ์‹œ๋„๋ฅผ ์ˆ˜๋ฝํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ PulseAudio ํ”„๋กœ์ ํŠธ๋กœ ์ „์†กํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ์— ๋Œ€ํ•œ ์–‘๋„๋œ ๊ถŒ๋ฆฌ๋ฅผ ์ทจ์†Œํ•˜๋Š” ๊ฒƒ์€ ์œ ํšจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ–‰๋™๊ฐ•๋ น ์ค€์ˆ˜์™€ ๋ผ์ด์„ ์Šค ์œ„๋ฐ˜ ์‚ฌ์ด์˜ ์—ฐ๊ด€์„ฑ, Collabora๊ฐ€ ๋ผ์ด์„ ์Šค๋ฅผ ์œ„๋ฐ˜ํ–ˆ๋‹ค๋Š” ์ฃผ์žฅ(์ด๋Š” ์ฐธ๊ฐ€์ž ๊ธˆ์ง€ ์กฐ์น˜์™€ ์ „ํ˜€ ๊ด€๋ จ์ด ์—†์Œ)๋„ ๊ทผ๊ฑฐ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

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

์ถœ์ฒ˜ : opennet.ru

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