Harald Welte
d045f1766f
procqueue.c: Logging unficiation (always use the [x] prefix)
2017-05-28 20:06:01 +02:00
Harald Welte
6c7fd7958c
codac_amr: Remove printf() left from debugging/testing
2017-05-28 19:44:26 +02:00
Harald Welte
0c655bce25
direct all log statements to stderr to avoid breaking stdout data out
...
The tool has the capability to be used in a pipe, so stdout should
recevie nothing else but actual codec/pcm data.
2017-05-28 19:44:26 +02:00
Harald Welte
7bdf34cc09
fmt_ti: fix lsb/msb mix-up in ti_hr_from_canon()
...
I noticed that ti-hr format doesn't pass an encode-decode-playback test,
and discussion with tnt resulted in the following conclusion:
19:29 <@tnt> looking at fr and efr, it's always msb_xxx
19:30 <@tnt> and if I ever used it, then most likely it was for decoding
meaning ti_hr_to_canon would have been used and not the
other way around.
2017-05-28 19:33:05 +02:00
Harald Welte
076d41aa79
print_help(): Fix formatting of help text
2017-05-28 16:22:43 +02: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
526fc6e5e9
Fix HR codec block sizes
...
The ETSI reference codec actually uses an array of 20/22 16bit values
rather than a "canonical" format. The conversion is what fmt_hr_ref.c
is doing. However, codec_hr.c must then subsequently not check for the
canonical input/output sizes, but those specific to it.
2017-05-28 16:18:09 +02:00
Harald Welte
bd42eba35d
Print some useful information while putting together the procqueue
2017-05-28 14:30:05 +02:00
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
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
db94df5f9c
main: Fixup the help screen
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2015-12-30 13:06:40 +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
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
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
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
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
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
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
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