summaryrefslogtreecommitdiff
path: root/main/codec_builtin.c
diff options
context:
space:
mode:
authorAlexander Traud <pabstraud@compuserve.com>2016-07-19 20:14:21 +0200
committerAlexander Traud <pabstraud@compuserve.com>2016-08-24 10:41:58 +0200
commit2e79f52d7116e5529ab78972cee8081b6ffe6878 (patch)
tree6f497fd8eb15a2d02fb24efd944e2bd383555a3e /main/codec_builtin.c
parent943bb48b59435e00131cbd56b075f73f57d10e87 (diff)
codecs: Add Codec 2 mode 2400.
ASTERISK-26217 #close Change-Id: I1e45d8084683fab5f2b272bf35f4a149cea8b8d6
Diffstat (limited to 'main/codec_builtin.c')
-rw-r--r--main/codec_builtin.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/main/codec_builtin.c b/main/codec_builtin.c
index 50fbf555c..6fc0fd896 100644
--- a/main/codec_builtin.c
+++ b/main/codec_builtin.c
@@ -107,6 +107,30 @@ static struct ast_codec g723 = {
.get_length = g723_length,
};
+static int codec2_samples(struct ast_frame *frame)
+{
+ return 160 * (frame->datalen / 6);
+}
+
+static int codec2_length(unsigned int samples)
+{
+ return (samples / 160) * 6;
+}
+
+static struct ast_codec codec2 = {
+ .name = "codec2",
+ .description = "Codec 2",
+ .type = AST_MEDIA_TYPE_AUDIO,
+ .sample_rate = 8000,
+ .minimum_ms = 20,
+ .maximum_ms = 300,
+ .default_ms = 20,
+ .minimum_bytes = 6,
+ .samples_count = codec2_samples,
+ .get_length = codec2_length,
+ .smooth = 1,
+};
+
static int none_samples(struct ast_frame *frame)
{
return frame->datalen;
@@ -863,6 +887,7 @@ int ast_codec_builtin_init(void)
{
int res = 0;
+ res |= CODEC_REGISTER_AND_CACHE(codec2);
res |= CODEC_REGISTER_AND_CACHE(g723);
res |= CODEC_REGISTER_AND_CACHE(ulaw);
res |= CODEC_REGISTER_AND_CACHE(alaw);