Skip to content
Snippets Groups Projects
Commit 97c9900b authored by Kevin P. Fleming's avatar Kevin P. Fleming
Browse files

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
parent 8dad624c
No related branches found
No related tags found
No related merge requests found
......@@ -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;
}
......@@ -427,6 +427,17 @@ static inline int ast_codec_interp_len(int format)
*/
int ast_frame_adjust_volume(struct ast_frame *f, int adjustment);
/*!
\brief Sums two frames of audio samples.
\param f1 The first frame (which will contain the result)
\param f2 The second frame
\return 0 for success, non-zero for an error
The frames must be AST_FRAME_VOICE and must contain AST_FORMAT_SLINEAR samples,
and must contain the same number of samples.
*/
int ast_frame_slinear_sum(struct ast_frame *f1, struct ast_frame *f2);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment