Skip to content
Snippets Groups Projects
Commit 55279bfd authored by Jean Aunis's avatar Jean Aunis Committed by Friendly Automation
Browse files

translate.c: Take sampling rate into account when checking codec's buffer size

Up/down sampling changes the number of samples produced by a translation.
This must be taken into account when checking the codec's buffer size.

ASTERISK-29328

Change-Id: I9aebe2f8788e00321a7f5c47aa97c617f39e9055
parent 531eb65c
No related branches found
No related tags found
3 merge requests!138Merge branch asterisk-20.3.0 into devel properly,!123Merge asterisk '20.3.0' into devel,!118Draft: manager: AOC-S support for AOCMessage
......@@ -408,12 +408,18 @@ static int framein(struct ast_trans_pvt *pvt, struct ast_frame *f)
}
}
if (pvt->t->buffer_samples) { /* do not pass empty frames to callback */
int src_srate = pvt->t->src_codec.sample_rate;
int dst_srate = pvt->t->dst_codec.sample_rate;
ast_assert(src_srate > 0);
if (f->datalen == 0) { /* perform native PLC if available */
/* If the codec has native PLC, then do that */
if (!pvt->t->native_plc)
return 0;
}
if (pvt->samples + f->samples > pvt->t->buffer_samples) {
if (pvt->samples + (f->samples * dst_srate / src_srate) > pvt->t->buffer_samples) {
ast_log(LOG_WARNING, "Out of buffer space\n");
return -1;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment