Commit Graph

28 Commits

Author SHA1 Message Date
Vadim Yanitskiy 4f0a47d0e3 Add the symbol export map for libosmogapk 2017-12-31 12:20:59 +01:00
Vadim Yanitskiy 48206ad2e0 Add an 'osmo' prefix to the 'gapk' binary
This is a common practice of all Osmocom executables
to have an 'osmo' prefix. Let's follow this here too.
2017-12-31 12:20:59 +01:00
Vadim Yanitskiy 95e666404e Introduce a shared 'libosmogapk' library
The previous GAPK implementation was represented as a single
executable. So, all audio transcoding operations were available
only by calling the 'gapk' binary. This approach didn't allow
external applications to benefit from using GAPK API directly.

Since there are some projects (such as GR-GSM and OsmocomBB),
which are potential users of GAPK code base, it would be better
to have all transcoding functions within a shared library.

So, this change separates the common code into a shared library,
named 'libosmogapk', and links the 'gapk' binary against one.
Currently there are no shared headers, pkg-config manifest and
the export map, but they will be done latter.
2017-12-31 12:20:59 +01:00
Harald Welte 848db7b662 Add support for RTP with GSM-HR payload according to RFC5993
This is incompatible with the ETSI TS 101 318 format!
2017-05-28 16:18:09 +02:00
Harald Welte dc3589a6be Add support for RTP with GSM-HR payload according to ETSI TS 101 318 2017-05-28 16:18:09 +02:00
Harald Welte f62e7a4936 Add "rtp-efr" format support for RTP payload according to RFC3551 4.5.9
The RTP EFR payload is a bit like the FR payload: one nibble magic
marker, then followed by the actual codec bits.  So we need to
add/remove that magic marker and shift the remainder by one nibble.
2017-05-28 16:18:09 +02:00
Harald Welte 8b01f0ca05 Add AMR codec support
After merging this change, there is support for the AMR codec (by means
of libopencore-amr, which is already used for EFR).

In terms of gapk formats, we introdude
* the "amr-opencore" format, which serves both as the canonical format,
  and as the input format to opencore-amrnb itself.
* the "rtp-amr" format, which is the payload of RFC4867 octet-aligned mode

You can use the following command for a real-time RTP playback for AMR
frames:
  ./gapk -I 0.0.0.0/30000 -f rtp-amr -A default -g rawpcm-s16le
2017-05-28 14:29:59 +02:00
Harald Welte 2ae47af0be Add ALSA input/output support to GAPK
The ALSA source/sink uses the pcm-s16le format.
2017-05-28 01:56:33 +02:00
Harald Welte 7a04624563 Add cycle benchmarking support
This enables benchmarking of the codec.  It will print
the amount of CPU cycles needed for encoding/decoding a single
20ms frame on average.
2014-05-08 19:18:01 +02:00
Sylvain Munaut 2c8b3fd281 build: Use AM_CPPFLAGS in Makefile.am
Since automake 1.13 INCLUDES is depricates and causes a warning

Inspired from similar patches by Alexander Huemer for other osmocom
projects

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2013-06-17 08:53:21 +02:00
Harald Welte ce94d971e1 gapk: Add support for RTP input/output streams
Instead of having only file-based I/O, this enables gapk to receive and
send RTP streams, e.g. from live GSM network equipment like
sysmoBTS/nanoBTS.

Support is currently simplistic.  On transmit, there is hard-coded codec
type of full-rate GSM.  On receive-side, we should auto-detect the
format based on frame size and/or payload type, but we don't do that yet
at all.
2013-02-11 11:38:23 +01:00
Sylvain Munaut cfaec3a2f6 format: Add support for the TI calypso/locosto dumped buffer format
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-02-25 15:31:54 +01:00
Sylvain Munaut a0c4d21bf6 [4/4] HR support: Add hooks in gapk to use libgsmhr for encoding/decoding
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-12 20:47:30 +01:00
Sylvain Munaut 456758c808 format: Add support for Raw PCM Signed 16 bits Little Endian
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-11 22:58:20 +01:00
Sylvain Munaut 9843418a33 procqueue: Add Codec tasks
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-11 20:45:24 +01:00
Sylvain Munaut 792d04135e procqueue: Add format conversion tasks
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-11 20:45:24 +01:00
Sylvain Munaut d9fb0e37c8 procqueue: Add file related tasks
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-11 20:45:24 +01:00
Sylvain Munaut 3c0a4fba8a procqueue: Add some mechanism to queue 'processing items' on the frames
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-11 20:45:24 +01:00
Sylvain Munaut 8552b9dc0c codec/efr: Add support for encoding/decoding using OpenCore AMR NB
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-11 20:26:41 +01:00
Sylvain Munaut dc5b38b991 codec/fr: Add support for encoding/decoding using libgsm
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-11 20:26:41 +01:00
Sylvain Munaut 723df06dff format: Add support for .amr files encapsulating EFR data
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-11 20:26:41 +01:00
Sylvain Munaut 6c96cc28b3 format: Add support for the file read/written by the Racal 6103E ms test set
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-11 20:26:41 +01:00
Sylvain Munaut f905983b05 format: Add support for the 3GPP HR reference vocoder file/frame formats
Yes ... they use a different format for the decoder input than for the
encoder output ...

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-05 16:41:47 +01:00
Sylvain Munaut 5e380d0726 format: Add support for classic .gsm file/frame format
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-05 16:41:47 +01:00
Sylvain Munaut 0f7e52dbb5 format: Add initial format framework
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-05 16:41:47 +01:00
Sylvain Munaut 553b3b6002 Add dependency to libosmocodec (part of libosmocore)
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-10-29 11:49:33 +02:00
Sylvain Munaut cca11553e5 codec: Add preliminary codecs definitions for HR/FR/EFR
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-10-29 11:49:33 +02:00
Sylvain Munaut 96b1c3b2b4 Initial skeleton import
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-10-24 10:22:06 +02:00