From 97c9900b59e3cefdba1ce728f64af402c3f05db5 Mon Sep 17 00:00:00 2001 From: "Kevin P. Fleming" Date: Fri, 28 Oct 2005 21:49:27 +0000 Subject: add API call to properly sum two frames of SLINEAR data git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6883 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- frame.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'frame.c') diff --git a/frame.c b/frame.c index 39bed2e01..5952b1d74 100755 --- a/frame.c +++ b/frame.c @@ -1271,3 +1271,25 @@ int ast_frame_adjust_volume(struct ast_frame *f, int adjustment) return 0; } + +int ast_frame_slinear_sum(struct ast_frame *f1, struct ast_frame *f2) +{ + int count; + short *data1, *data2; + + if ((f1->frametype != AST_FRAME_VOICE) || (f1->subclass != AST_FORMAT_SLINEAR)) + return -1; + + if ((f2->frametype != AST_FRAME_VOICE) || (f2->subclass != AST_FORMAT_SLINEAR)) + return -1; + + if (f1->samples != f2->samples) + return -1; + + for (count = 0, data1 = f1->data, data2 = f2->data; + count < f1->samples; + count++, data1++, data2++) + ast_slinear_saturated_add(data1, *data2); + + return 0; +} -- cgit v1.2.3