mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-06 12:36:58 +00:00
even though Asterisk explicitly requests that endpoints using G.729 do *not* use Annex B (silence detection and comfort noise generation) some do anyway; the transcoder card interface does not currently work properly with CNG frames, so trim off the CNG before sending the data
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@91870 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -146,6 +146,15 @@ static int zap_framein(struct ast_trans_pvt *pvt, struct ast_frame *f)
|
|||||||
/* Copy at front of buffer */
|
/* Copy at front of buffer */
|
||||||
hdr->srcoffset = 0;
|
hdr->srcoffset = 0;
|
||||||
|
|
||||||
|
/* if we get handed a G.729 frame that is not a multiple of
|
||||||
|
10 bytes (10 milliseconds), then it has a CNG frame and
|
||||||
|
we need to avoid sending that to the transcoder
|
||||||
|
*/
|
||||||
|
if ((f->subclass == AST_FORMAT_G729A) && ((f->datalen % 10) != 0)) {
|
||||||
|
f->datalen -= f->datalen % 10;
|
||||||
|
f->samples = f->datalen * 8;
|
||||||
|
}
|
||||||
|
|
||||||
if (hdr->srclen + f->datalen > sizeof(hdr->srcdata)) {
|
if (hdr->srclen + f->datalen > sizeof(hdr->srcdata)) {
|
||||||
ast_log(LOG_WARNING, "Out of space for codec translation!\n");
|
ast_log(LOG_WARNING, "Out of space for codec translation!\n");
|
||||||
return -1;
|
return -1;
|
||||||
|
Reference in New Issue
Block a user