Harald Welte
495c694781
print meaningful error messages if something goes wrong in main/pq
2017-05-28 14:30:05 +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
494d92c3c7
more API documentation
2017-05-28 10:44:10 +02:00
Harald Welte
5912848d2e
prepare gapk for dealing with variable-length frames
...
The existing architecture was modelled around fixed-length codec frame
sizes, which of course fails with multi-rate codecs such as AMR.
2017-05-28 10:44:06 +02:00
Harald Welte
62688b60c2
introduce #defines for canonical length + use them
2017-05-28 10:20:26 +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
07d691314c
RTP: give meaningful error messages if something fails
...
In fact, it should probably be better to silently ignore all those
errors as opposed to aborting the entire processing queue? But that's
for another patch...
2017-05-28 01:56:33 +02:00
Harald Welte
f3d2ad6a19
add some more comments throughout the code
2017-05-27 16:42:14 +02:00
Sylvain Munaut
d192d8c017
benchmark: Fix cpuid clobbering
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2016-01-01 13:17:37 +01:00
Sylvain Munaut
db94df5f9c
main: Fixup the help screen
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2015-12-30 13:06:40 +01:00
Sylvain Munaut
c0f0342596
libgsmhr: Make it safe to decode/encode different streams at once
...
Basically the reference code has a bunch of global state.
With some minimal patchihg (previous commit) we can ensure that all
that state is within .bss
So what we do it to save/restore the bss section between calls of the
reference code so we can process several in // and we don't have to
completely fix all reference to global state in the reference codec.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2015-12-30 11:55:03 +01:00
Sylvain Munaut
5e2e0442e0
libgsmhr: Add some code cleanup / speedup patches for reference codec
...
Mostly this will help witht the upcoming bss switcheroo patch
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2015-12-30 11:55:03 +01:00
Sylvain Munaut
59a6c2dc62
libgsmhr: Use patch instead of 'sed'
...
Patches are without function-name and without context to minimize what
we have to include.
The current patchset does exactly what the previous 'sed' did, but this
will make it easier to add more.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2015-12-30 11:55:03 +01:00
Sylvain Munaut
04a705f419
libgsmhr: Fix parallel build dependency
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2015-12-30 11:55:03 +01:00
Sylvain Munaut
cddc91428f
libgsmhr: fix Makefile.am dependency on source download
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2015-12-30 11:44:37 +01:00
Sylvain Munaut
8966846f3e
libgsmhr/fetch_sources: Only use the filename and not any path
...
There shouldn't be any but somebody might be nasty :p
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2015-12-30 11:44:37 +01:00
Sylvain Munaut
ac967d20fd
build: Don't build static libraries
...
They won't be supported anyway when using the 'bss switcheroo' hack
for libgsmhr
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2015-12-30 11:44:37 +01:00
Sylvain Munaut
ea1c6c61f4
build: Use autotools 'subdir-objects' option
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2015-12-30 11:44:37 +01:00
Sylvain Munaut
d392a89cc8
benchmark: Make sure to print to stderr
...
stdout can be used for data output ...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2015-12-30 10:45:22 +01:00
Harald Welte
d72b0f654f
ensure all gapk header files are included in 'dist'
2015-11-05 21:41:09 +01:00
Harald Welte
bb782d98f3
Fix dist / distcheck targets by including fetch_sources.py in EXTRA_DIST
2015-11-05 21:37:57 +01:00
Harald Welte
0790f03eb9
add git-version-gen to auto-generate version from git repo tags
2015-11-05 21:25:32 +01: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
8b5e0c7b81
libgsmhr: Update source location
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2013-12-13 15:41:07 +01: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
e7e12cc9aa
gapk: make sure the output file is closed/flushed on ctrl+c
...
This is useful particularly in case you are reading from RTP and writing
to a file, and don't want truncated codec frames in your file.
2013-02-11 11:47:56 +01: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
Harald Welte
f7f0c91ca8
gapk main: move fh_in and fh_out to sub-structures in a union
...
this is done in preparation to provide something else but file
input/output.
2013-02-11 09:26:36 +01:00
Sylvain Munaut
db837250de
codec: Fix opencore nb include path
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2012-12-08 19:14:11 +01:00
Sylvain Munaut
19428ca7bf
autotools: Add AC_LANG_SOURCE required for autotools >= 2.68
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-09-30 12:15:12 +02:00
Sylvain Munaut
e2c5719d74
format/fmt_ti: Add support for EFR variant
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-02-25 18:12:25 +01:00
Sylvain Munaut
b1525d67fe
format/fmt_ti: Add support for HR variant
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-02-25 16:58:36 +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
3c9c2fb6ee
Fix error in configure.ac preventing compiling without opencore-amrnb
...
Obvious typo ...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-13 00:19:09 +01:00
Sylvain Munaut
f624d18067
codec: Fix EFR codec encoder function. Return value is #bytes
...
32 is the normal value
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-12 20:53:53 +01:00
Sylvain Munaut
477f5cdefc
Update gitignore
2010-11-12 20:47:30 +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
f7d6f3c828
[3/4] HR support: Add actual wrapper code to call reference code
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-12 20:47:30 +01:00
Sylvain Munaut
aa55d30d20
[2/4] HR support: Add logic to fetch reference source code and build it
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-12 20:47:30 +01:00
Sylvain Munaut
0d2a82c312
[1/4] HR support: Add autotools skeleton for libgsmhr
...
Not functional yet, just the autotools magic to make a library
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-12 20:36:14 +01:00
Sylvain Munaut
4604976a5f
Add a real main method to does the job
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-11 22:58:57 +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
24b761218f
format: Add function to get format by name
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-11 20:26:41 +01:00
Sylvain Munaut
ef7ada56ce
codec: Add fields in struct codec_desc to support encoding/decoding
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-11 20:26:41 +01:00