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