Project

General

Profile

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.
Add picture from clipboard (Maximum size: 48.8 MB)