GAPK Integration » History » Version 7
laforge, 07/25/2022 07:29 AM
gitea
1 | 1 | fixeria | h1. GAPK Integration |
---|---|---|---|
2 | 2 | fixeria | |
3 | [[GAPK:|GAPK (GSM Audio Pocket Knife)]] is a "FFmpeg":https://www.ffmpeg.org/ like project focused on GSM related codecs (HR/FR/EFR/AMR) and formats. Since the _libosmogapk_ was introduced, it becomes possible to link [[OsmocomBB:]] against it and use its API for audio processing, i.e. for both voice capture and playback. |
||
4 | 3 | fixeria | |
5 | 7 | laforge | Some initial work around this was already done, and has been published in a separate branch ("fixeria/audio":https://gitea.osmocom.org/phone-side/osmocom-bb/src/branch/fixeria/audio). |
6 | 3 | fixeria | |
7 | h2. PHY support |
||
8 | |||
9 | Both [[TRX_Interface#The-trxcon-application|trxcon]] and [[cellular-infrastructure:Virtual_Um|VIRT-PHY]] do forward TCH frames to the higher layers (e.g. [[mobile]]) by default, while [[HardwareCalypso|Calypso]]-based phones can handle them either within DSP (both regular phone's mic and speaker are involved), or also forward them via L1CTL. The forwarding behaviour can be enabled using _L1CTL_TCH_MODE_REQ_ message and its _AUDIO_TX_TRAFFIC_REQ_ | _AUDIO_RX_TRAFFIC_IND_ flags. |
||
10 | 4 | fixeria | |
11 | h2. Why GAPK integration is important? |
||
12 | |||
13 | Well, at the moment the state of voice support in the higher layers, especially in the [[mobile]] application, is limited. There is incomplete implementation of MNCC-socket handling, including forwarding of TCH frames, but it is very limited (for example, only TCH FR codec is supported). |
||
14 | |||
15 | 5 | fixeria | With GAPK it is pretty easy to fill the gap, and implement audio / voice processing back-end for [[mobile]] application. In particular, back-end implementation assumes the following features: |
16 | 4 | fixeria | |
17 | * voice capture and playback (via ALSA), |
||
18 | * frame coding for GSM specific codecs, |
||
19 | * PHY specific format (e.g. TI) handling, |
||
20 | * ECU (Error Concealment Unit), |
||
21 | * RTP support. |