Project

General

Profile

Gapk » History » Version 3

laforge, 05/29/2017 09:30 AM
mailing list

1 1 laforge
{{>toc}}
2 1 laforge
3 1 laforge
h1. gapk
4 1 laforge
5 2 laforge
The *G* SM *A* udio *P* ocket *K* nive (GAPK) is a small command-line tool that supports conversion between the various GSM related codecs (HR/FR/EFR/AMR) and PCM audio. It supports many different formats for the codec frames, including ETSI and IETF standardized formats, as well as vendor-specific formats like those found in the TI Calypso DSP (see [[OsmocomBB:]]) and those of Racal 6103/6113 GSM test equipment.
6 1 laforge
7 1 laforge
h2. Supported Codecs
8 1 laforge
9 1 laforge
|_.Codec|_.Description|
10 1 laforge
|pcm|Raw PCM signed 16bits samples|
11 1 laforge
|hr|GSM 06.20 Half Rate codec|
12 1 laforge
|fr|GSM 06.10 Full Rate codec (classic gsm codec)|
13 1 laforge
|efr|GSM 06.60 Enhanced Full Rate codec|
14 1 laforge
|amr|GSM 26.061 Adaptive Multi Rate codec|
15 1 laforge
16 1 laforge
h2. Supported Formats
17 1 laforge
18 1 laforge
|_.Format|_.Description|
19 1 laforge
|amr-efr             |Classic .amr file containing EFR (=AMR 12.2k) data|
20 1 laforge
|gsm                 |Classic .gsm file format (and RTP payload for FR according to RFC3551)|
21 1 laforge
|hr-ref-dec          |3GPP HR Reference decoder code parameters file format|
22 1 laforge
|hr-ref-enc          |3GPP HR Reference encoder code parameters file format|
23 1 laforge
|racal-hr            |Racal HR TCH/H recording|
24 1 laforge
|racal-fr            |Racal FR TCH/F recording|
25 1 laforge
|racal-efr           |Racal EFR TCH/F recording|
26 1 laforge
|rawpcm-s16le        |Raw PCM samples Signed 16 bits little endian|
27 1 laforge
|ti-hr               |Texas Instrument HR TCH/H buffer format|
28 1 laforge
|ti-fr               |Texas Instrument FR TCH/F buffer format|
29 1 laforge
|ti-efr              |Texas Instrument EFR TCH/F buffer format|
30 1 laforge
|amr-opencore        |Input format to libopencore-amrnb|
31 1 laforge
|rtp-amr             |RTP payload for AMR according to RFC4867|
32 1 laforge
|rtp-efr             |RTP payload for EFR according to RFC3551|
33 1 laforge
|rtp-hr-etsi         |RTP payload for HR according to ETSI TS 101 318|
34 1 laforge
|rtp-hr-ietf         |RTP payload for HR according to IETF RFC5993|
35 1 laforge
36 1 laforge
h2. Common use cases
37 1 laforge
38 1 laforge
h3. RTP sink with audio playback on sound card
39 1 laforge
40 1 laforge
You can run @gapk@ as a _RTP sink_, i.e. listening to a given UDP port for incoming RTP frames, decoding them from their respective audio codec and then playing them back via your computers' sound card.
41 1 laforge
42 1 laforge
<pre>
43 1 laforge
$ gapk -I 0.0.0.0/30000 -f rtp-amr -A default -g rawpcm-s16le
44 1 laforge
</pre>
45 1 laforge
46 1 laforge
where
47 1 laforge
* *@-I 0.0.0.0/30000@* indicates the IP adddress (any) and UDP port (30000) to bind to and receive RTP frames on
48 1 laforge
* *@-f rtp-amr@* indicates the codec. Use *@gsm, rtp-efr, rtp-amr, rtp-hr-etsi or rtp-hr-ietf@* depending on your use case
49 1 laforge
* *@-A default@* is the alsa hardware device name (default is the default sound card)
50 2 laforge
51 2 laforge
h2. Source Code
52 2 laforge
53 2 laforge
You can find the source code in git:
54 2 laforge
* http://git.osmocom.org/gapk/ (cgit web interface)
55 2 laforge
* @git clone git://git.osmocom.org/gapk@ for cloning the repository
56 2 laforge
57 3 laforge
h2. Contact / Mailing List
58 3 laforge
59 3 laforge
The project is too small to have it's own mailing list.  Instead, we use the openbsc@lists.osmocom.org mailing list ("subscribe":http://lists.osmocom.org/mailman/listinfo/OpenBSC). Please observe the [[cellular-infrastructure:Mailing_List_Rules]].
60 3 laforge
61 2 laforge
h2. Authors
62 2 laforge
63 2 laforge
@gapk@ as written by Sylvain Munaut with contributions from Harald Welte. 
64 2 laforge
65 2 laforge
It uses external libraries for the actual audio codecs, such as @libgsm@, @libopencore-amrnb@ nd the ETSI reference implementation for GSM-HR.