Adds pass-through support for codec CELT.

This patch adds pass-through support for CELT.  CELT
formats are defined in codecs.conf and can be configured
to any sample rate a CELT endpoint supports.  This patch also
addresses a crash in channel.c resulting from a frame list being
freed incorrectly.  This crash was discovered while testing a CELT
translator which had to split encoded audio into multiple frames.
The codec translator is not a part of this patch, but may be
contributed in the future.

Review: https://reviewboard.asterisk.org/r/1294/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@326855 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
David Vossel
2011-07-07 19:39:17 +00:00
parent b5609161e0
commit 513c680b8c
8 changed files with 122 additions and 32 deletions

View File

@@ -1011,6 +1011,10 @@ int ast_codec_get_samples(struct ast_frame *f)
} else {
return 160;
}
case AST_FORMAT_CELT:
/* TODO The assumes 20ms delivery right now, which is incorrect */
samples = ast_format_rate(&f->subclass.format) / 50;
break;
default:
ast_log(LOG_WARNING, "Unable to calculate samples for format %s\n", ast_getformatname(&f->subclass.format));
}