<div dir="ltr">Dear Osmocom community,<br><br>I have been working on GAPK (GSM Audio Packet Knife) for some<br>time, and now I would like to share some achievements.<br><br>Previously GAPK was represented as a single binary that<br>could be called with some command line arguments in order<br>to perform required operations. This is only handy for<br>humans, but not for other programs, which may also need<br>to perform some format / codec conversations or audio<br>capture / playback.<br><br>One of such programs is the mobile from OsmocomBB project.<br>Currently, when you're making a voice call, both audio<br>capture and playback are only possible on the L1 side,<br>i.e. on a Calypso based phone. Of course, the audio stream<br>can be redirected via MNCC socket, but this is not what<br>a regular OsmocomBB user would like to do. Moreover, there<br>is a lack of AMR codec support.<br><br>Also, there is another GNURadio based project named GR-GSM.<br>In short, this is a set of blocks for GSM signal reception,<br>demodulation and further processing. At the moment, one has<br>TCH Full Rate decoding capabilities only. Audio playback is<br>not supported yet.<br><br>Having these projects in my mind, I have got an idea of<br>creating a shared library from the GAPK source code. And,<br>a few days ago I was managed to get the audio playback<br>working in OsmocomBB. I hope, this library will be also<br>usable for other projects.<br><br>Brief list of changes were made:<br><br>  - Composed a shared library named libosmogapk<br>  - All exposed symbols have got an 'osmo_gapk' prefix<br>  - Added a pkg-config manifest and a symbol export map<br>  - Integrated the Osmocom logging framework<br>  - Benchmarking is now disabled by default<br>  - Processing queue now based on the linuxlist<br><br>  - Fixed program exit due to ALSA buffer underrun<br>  - Fixed ALSA audio playback from file<br><br>  - Old gapk application was renamed to 'osmo-gapk'<br>    and linked against the library<br>  - Adjusted verbosity level (normal / debug)<br>  - Fixed I/O combinations (ALSA, RTP, file...) check<br><br>All changes could be found at the fixeria/lib branch of GAPK.<br>I hope to see them merged, and open for discussions ;)<br><br><br clear="all"><div><div><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>With best regards,<br></div><div>Vadim Yanitskiy.<br></div></div></div></div></div></div>
</div></div>