aboutsummaryrefslogtreecommitdiffstats
path: root/codecs
diff options
context:
space:
mode:
authordvossel <dvossel@f38db490-d61c-443f-a65b-d21fe96a405b>2010-06-21 21:58:33 +0000
committerdvossel <dvossel@f38db490-d61c-443f-a65b-d21fe96a405b>2010-06-21 21:58:33 +0000
commit5bbab86675b1a9bcc540aecd923363371b7b9b6e (patch)
treed441f2cbcb649a6aef8bbaa815c9ed2ed9ab32c4 /codecs
parentfcbb9abe3e4d7f793a1148b6dcbc5e66c1211c39 (diff)
add speex 16khz sample frame so codec cost can be calculated
(closes issue #17534) Reported by: fabled Patches: speex-wb-sample.diff uploaded by fabled (license 448) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@271625 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'codecs')
-rw-r--r--codecs/codec_speex.c4
-rw-r--r--codecs/ex_speex.h37
2 files changed, 36 insertions, 5 deletions
diff --git a/codecs/codec_speex.c b/codecs/codec_speex.c
index 85f231f9b..2bfdec228 100644
--- a/codecs/codec_speex.c
+++ b/codecs/codec_speex.c
@@ -363,7 +363,7 @@ static struct ast_translator speexwbtolin16 = {
.newpvt = speexwbtolin16_new,
.framein = speextolin_framein,
.destroy = speextolin_destroy,
- .sample = speex_sample,
+ .sample = speex16_sample,
.desc_size = sizeof(struct speex_coder_pvt),
.buffer_samples = BUFFER_SAMPLES,
.buf_size = BUFFER_SAMPLES * 2,
@@ -378,7 +378,7 @@ static struct ast_translator lin16tospeexwb = {
.framein = lintospeex_framein,
.frameout = lintospeex_frameout,
.destroy = lintospeex_destroy,
- .sample = slin8_sample,
+ .sample = slin16_sample,
.desc_size = sizeof(struct speex_coder_pvt),
.buffer_samples = BUFFER_SAMPLES,
.buf_size = BUFFER_SAMPLES * 2, /* XXX maybe a lot less ? */
diff --git a/codecs/ex_speex.h b/codecs/ex_speex.h
index 36c91ae4c..60ccf092e 100644
--- a/codecs/ex_speex.h
+++ b/codecs/ex_speex.h
@@ -8,9 +8,9 @@
*/
static uint8_t ex_speex[] = {
- 0x2e, 0x8e, 0x0f, 0x9a, 0x20, 0000, 0x01, 0x7f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x91, 0000, 0xbf, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xdc, 0x80, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x2e, 0x8e, 0x0f, 0x9a, 0x20, 0000, 0x01, 0x7f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x91, 0000, 0xbf, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xdc, 0x80, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x98, 0x7f, 0xff, 0xff, 0xff, 0xe8, 0xff, 0xf7, 0x80,
};
@@ -30,3 +30,34 @@ static struct ast_frame *speex_sample(void)
return &f;
}
+
+static uint8_t ex_speex16[] = {
+ 0x3f, 0x78, 0x89, 0x14, 0x4a, 0x00, 0x00, 0x7f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x92,
+ 0x06, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xc0, 0x30, 0x5f, 0xff, 0xfd, 0xbb, 0xee,
+ 0x30, 0x56, 0xff, 0xf8, 0x74, 0x54, 0x31, 0xe6, 0xfe, 0x71,
+ 0xdc, 0xca, 0x44, 0x6a, 0x43, 0x75, 0xae, 0x31, 0x7a, 0x50,
+ 0xd9, 0xfc, 0x93, 0x13, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab,
+ 0xab, 0xab, 0xab, 0xab, 0x3a, 0xba, 0xba, 0xba, 0xba, 0xba,
+ 0xba, 0xba, 0xba, 0xba, 0xb0, 0xab, 0xab, 0xab, 0xd9, 0x37,
+ 0xab, 0xab, 0xb4, 0x34, 0xe9, 0x0b, 0xd4, 0x2f, 0x13, 0x4c,
+ 0xf0, 0xef, 0x8d, 0xdd, 0x99, 0xc7
+};
+
+static struct ast_frame *speex16_sample(void)
+{
+ static struct ast_frame f = {
+ .frametype = AST_FRAME_VOICE,
+ .subclass.codec = AST_FORMAT_SPEEX16,
+ .datalen = sizeof(ex_speex16),
+ /* All frames are 20 ms long */
+ .samples = SPEEX_SAMPLES,
+ .mallocd = 0,
+ .offset = 0,
+ .src = __PRETTY_FUNCTION__,
+ .data.ptr = ex_speex16,
+ };
+
+ return &f;
+}