Merge codec_consistency branch. This should make sample usage much happier.
authorJason Parker <jparker@digium.com>
Fri, 17 Oct 2008 21:35:23 +0000 (21:35 +0000)
committerJason Parker <jparker@digium.com>
Fri, 17 Oct 2008 21:35:23 +0000 (21:35 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@150729 65c4cc65-6c06-0410-ace0-fbb531ad65f3

37 files changed:
codecs/adpcm_slin_ex.h [deleted file]
codecs/codec_a_mu.c
codecs/codec_adpcm.c
codecs/codec_alaw.c
codecs/codec_g722.c
codecs/codec_g726.c
codecs/codec_gsm.c
codecs/codec_ilbc.c
codecs/codec_lpc10.c
codecs/codec_resample.c
codecs/codec_speex.c
codecs/codec_ulaw.c
codecs/ex_adpcm.h [new file with mode: 0644]
codecs/ex_alaw.h [moved from codecs/ulaw_slin_ex.h with 54% similarity]
codecs/ex_g722.h [new file with mode: 0644]
codecs/ex_g726.h [new file with mode: 0644]
codecs/ex_gsm.h [new file with mode: 0644]
codecs/ex_ilbc.h [new file with mode: 0644]
codecs/ex_lpc10.h [new file with mode: 0644]
codecs/ex_speex.h [new file with mode: 0644]
codecs/ex_ulaw.h [new file with mode: 0644]
codecs/g722_slin_ex.h [deleted file]
codecs/g726_slin_ex.h [deleted file]
codecs/gsm_slin_ex.h [deleted file]
codecs/ilbc_slin_ex.h [deleted file]
codecs/lpc10_slin_ex.h [deleted file]
codecs/slin_adpcm_ex.h [deleted file]
codecs/slin_g722_ex.h [deleted file]
codecs/slin_g726_ex.h [deleted file]
codecs/slin_gsm_ex.h [deleted file]
codecs/slin_ilbc_ex.h [deleted file]
codecs/slin_lpc10_ex.h [deleted file]
codecs/slin_resample_ex.h [deleted file]
codecs/slin_speex_ex.h [deleted file]
codecs/slin_ulaw_ex.h [deleted file]
codecs/speex_slin_ex.h [deleted file]
include/asterisk/slin.h [new file with mode: 0644]

diff --git a/codecs/adpcm_slin_ex.h b/codecs/adpcm_slin_ex.h
deleted file mode 100644 (file)
index c3f86c7..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*! \file
- * adpcm_slin_ex.h --
- *
- * \brief      4-bit ADPCM data, 20 milliseconds worth at 8 kHz.
- *
- * Source: g723.example
- *
- * Copyright (C) 2001-2005, Digium, Inc.
- *
- * Distributed under the terms of the GNU General Public License
- *
- */
-
-static unsigned char adpcm_slin_ex[] = {
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-};
index cf03547..9b2e408 100644 (file)
@@ -38,9 +38,9 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 static unsigned char mu2a[256];
 static unsigned char a2mu[256];
 
-/* Sample frame data (Mu data is okay) */
-
-#include "ulaw_slin_ex.h"
+/* Sample frame data */
+#include "ex_ulaw.h"
+#include "ex_alaw.h"
 
 /*! \brief convert frame data and store into the buffer */
 static int alawtoulaw_framein(struct ast_trans_pvt *pvt, struct ast_frame *f)
@@ -74,43 +74,12 @@ static int ulawtoalaw_framein(struct ast_trans_pvt *pvt, struct ast_frame *f)
        return 0;
 }
 
-/*
- * alawToLin_Sample. Just random data, somehow...
- */
-static struct ast_frame *alawtoulaw_sample(void)
-{
-       static struct ast_frame f;
-       f.frametype = AST_FRAME_VOICE;
-       f.subclass = AST_FORMAT_ALAW;
-       f.datalen = sizeof(ulaw_slin_ex);
-       f.samples = sizeof(ulaw_slin_ex);
-       f.mallocd = 0;
-       f.offset = 0;
-       f.src = __PRETTY_FUNCTION__;
-       f.data.ptr = ulaw_slin_ex; /* XXX what ? */
-       return &f;
-}
-
-static struct ast_frame *ulawtoalaw_sample(void)
-{
-       static struct ast_frame f;
-       f.frametype = AST_FRAME_VOICE;
-       f.subclass = AST_FORMAT_ULAW;
-       f.datalen = sizeof(ulaw_slin_ex);
-       f.samples = sizeof(ulaw_slin_ex);
-       f.mallocd = 0;
-       f.offset = 0;
-       f.src = __PRETTY_FUNCTION__;
-       f.data.ptr = ulaw_slin_ex;
-       return &f;
-}
-
 static struct ast_translator alawtoulaw = {
        .name = "alawtoulaw",
        .srcfmt = AST_FORMAT_ALAW,
        .dstfmt = AST_FORMAT_ULAW,
        .framein = alawtoulaw_framein,
-       .sample = alawtoulaw_sample,
+       .sample = alaw_sample,
        .buffer_samples = BUFFER_SAMPLES,
        .buf_size = BUFFER_SAMPLES,
 };
@@ -120,7 +89,7 @@ static struct ast_translator ulawtoalaw = {
        .srcfmt = AST_FORMAT_ULAW,
        .dstfmt = AST_FORMAT_ALAW,
        .framein = ulawtoalaw_framein,
-       .sample = ulawtoalaw_sample,
+       .sample = ulaw_sample,
        .buffer_samples = BUFFER_SAMPLES,
        .buf_size = BUFFER_SAMPLES,
 };
index 2090115..d43ed44 100644 (file)
@@ -44,9 +44,8 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #define BUFFER_SAMPLES   8096  /* size for the translation buffers */
 
 /* Sample frame data */
-
-#include "slin_adpcm_ex.h"
-#include "adpcm_slin_ex.h"
+#include "asterisk/slin.h"
+#include "ex_adpcm.h"
 
 /*
  * Step size index shift table 
@@ -285,43 +284,12 @@ static struct ast_frame *lintoadpcm_frameout(struct ast_trans_pvt *pvt)
 }
 
 
-/*! \brief AdpcmToLin_Sample */
-static struct ast_frame *adpcmtolin_sample(void)
-{
-       static struct ast_frame f;
-       f.frametype = AST_FRAME_VOICE;
-       f.subclass = AST_FORMAT_ADPCM;
-       f.datalen = sizeof(adpcm_slin_ex);
-       f.samples = sizeof(adpcm_slin_ex) * 2;
-       f.mallocd = 0;
-       f.offset = 0;
-       f.src = __PRETTY_FUNCTION__;
-       f.data.ptr = adpcm_slin_ex;
-       return &f;
-}
-
-/*! \brief LinToAdpcm_Sample */
-static struct ast_frame *lintoadpcm_sample(void)
-{
-       static struct ast_frame f;
-       f.frametype = AST_FRAME_VOICE;
-       f.subclass = AST_FORMAT_SLINEAR;
-       f.datalen = sizeof(slin_adpcm_ex);
-       /* Assume 8000 Hz */
-       f.samples = sizeof(slin_adpcm_ex) / 2;
-       f.mallocd = 0;
-       f.offset = 0;
-       f.src = __PRETTY_FUNCTION__;
-       f.data.ptr = slin_adpcm_ex;
-       return &f;
-}
-
 static struct ast_translator adpcmtolin = {
        .name = "adpcmtolin",
        .srcfmt = AST_FORMAT_ADPCM,
        .dstfmt = AST_FORMAT_SLINEAR,
        .framein = adpcmtolin_framein,
-       .sample = adpcmtolin_sample,
+       .sample = adpcm_sample,
        .desc_size = sizeof(struct adpcm_decoder_pvt),
        .buffer_samples = BUFFER_SAMPLES,
        .buf_size = BUFFER_SAMPLES * 2,
@@ -334,7 +302,7 @@ static struct ast_translator lintoadpcm = {
        .dstfmt = AST_FORMAT_ADPCM,
        .framein = lintoadpcm_framein,
        .frameout = lintoadpcm_frameout,
-       .sample = lintoadpcm_sample,
+       .sample = slin8_sample,
        .desc_size = sizeof (struct adpcm_encoder_pvt),
        .buffer_samples = BUFFER_SAMPLES,
        .buf_size = BUFFER_SAMPLES/ 2,  /* 2 samples per byte */
index 04d4048..4ca8978 100644 (file)
@@ -35,10 +35,9 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 
 #define BUFFER_SAMPLES   8096  /* size for the translation buffers */
 
-/* Sample frame data (Mu data is okay) */
-
-#include "slin_ulaw_ex.h"
-#include "ulaw_slin_ex.h"
+/* Sample frame data */
+#include "asterisk/slin.h"
+#include "ex_alaw.h"
 
 /*! \brief decode frame into lin and fill output buffer. */
 static int alawtolin_framein(struct ast_trans_pvt *pvt, struct ast_frame *f)
@@ -72,42 +71,12 @@ static int lintoalaw_framein(struct ast_trans_pvt *pvt, struct ast_frame *f)
        return 0;
 }
 
-/*! \brief alawToLin_Sample */
-static struct ast_frame *alawtolin_sample(void)
-{
-       static struct ast_frame f;
-       f.frametype = AST_FRAME_VOICE;
-       f.subclass = AST_FORMAT_ALAW;
-       f.datalen = sizeof(ulaw_slin_ex);
-       f.samples = sizeof(ulaw_slin_ex);
-       f.mallocd = 0;
-       f.offset = 0;
-       f.src = __PRETTY_FUNCTION__;
-       f.data.ptr = ulaw_slin_ex;
-       return &f;
-}
-
-/*! \brief LinToalaw_Sample */
-static struct ast_frame *lintoalaw_sample(void)
-{
-       static struct ast_frame f;
-       f.frametype = AST_FRAME_VOICE;
-       f.subclass = AST_FORMAT_SLINEAR;
-       f.datalen = sizeof(slin_ulaw_ex);
-       f.samples = sizeof(slin_ulaw_ex) / 2;
-       f.mallocd = 0;
-       f.offset = 0;
-       f.src = __PRETTY_FUNCTION__;
-       f.data.ptr = slin_ulaw_ex;
-       return &f;
-}
-
 static struct ast_translator alawtolin = {
        .name = "alawtolin",
        .srcfmt = AST_FORMAT_ALAW,
        .dstfmt = AST_FORMAT_SLINEAR,
        .framein = alawtolin_framein,
-       .sample = alawtolin_sample,
+       .sample = alaw_sample,
        .buffer_samples = BUFFER_SAMPLES,
        .buf_size = BUFFER_SAMPLES * 2,
        .plc_samples = 160,
@@ -118,7 +87,7 @@ static struct ast_translator lintoalaw = {
        .srcfmt = AST_FORMAT_SLINEAR,
        .dstfmt = AST_FORMAT_ALAW,
        .framein = lintoalaw_framein,
-       .sample = lintoalaw_sample,
+       .sample = slin8_sample,
        .buffer_samples = BUFFER_SAMPLES,
        .buf_size = BUFFER_SAMPLES,
 };
index 41e1780..bdd175e 100644 (file)
@@ -46,11 +46,11 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #define BUFFER_SAMPLES   8096  /* size for the translation buffers */
 #define BUF_SHIFT      5
 
-/* Sample frame data */
-
 #include "g722/g722.h"
-#include "slin_g722_ex.h"
-#include "g722_slin_ex.h"
+
+/* Sample frame data */
+#include "asterisk/slin.h"
+#include "ex_g722.h"
 
 struct g722_encoder_pvt {
        g722_encode_state_t g722;
@@ -132,69 +132,13 @@ static int lintog722_framein(struct ast_trans_pvt *pvt, struct ast_frame *f)
        return 0;
 }
 
-static struct ast_frame *g722tolin_sample(void)
-{
-       static struct ast_frame f = {
-               .frametype = AST_FRAME_VOICE,
-               .subclass = AST_FORMAT_G722,
-               .datalen = sizeof(g722_slin_ex),
-               .samples = sizeof(g722_slin_ex) * 2,
-               .src = __PRETTY_FUNCTION__,
-               .data.ptr = g722_slin_ex,
-       };
-
-       return &f;
-}
-
-static struct ast_frame *g722tolin16_sample(void)
-{
-       static struct ast_frame f = {
-               .frametype = AST_FRAME_VOICE,
-               .subclass = AST_FORMAT_G722,
-               .datalen = sizeof(g722_slin_ex),
-               .samples = sizeof(g722_slin_ex) * 2,
-               .src = __PRETTY_FUNCTION__,
-               .data.ptr = g722_slin_ex,
-       };
-
-       return &f;
-}
-
-static struct ast_frame *lintog722_sample (void)
-{
-       static struct ast_frame f = {
-               .frametype = AST_FRAME_VOICE,
-               .subclass = AST_FORMAT_SLINEAR,
-               .datalen = sizeof(slin_g722_ex),
-               .samples = ARRAY_LEN(slin_g722_ex),
-               .src = __PRETTY_FUNCTION__,
-               .data.ptr = slin_g722_ex,
-       };
-
-       return &f;
-}
-
-static struct ast_frame *lin16tog722_sample (void)
-{
-       static struct ast_frame f = {
-               .frametype = AST_FRAME_VOICE,
-               .subclass = AST_FORMAT_SLINEAR16,
-               .datalen = sizeof(slin_g722_ex),
-               .samples = ARRAY_LEN(slin_g722_ex),
-               .src = __PRETTY_FUNCTION__,
-               .data.ptr = slin_g722_ex,
-       };
-
-       return &f;
-}
-
 static struct ast_translator g722tolin = {
        .name = "g722tolin",
        .srcfmt = AST_FORMAT_G722,
        .dstfmt = AST_FORMAT_SLINEAR,
        .newpvt = g722tolin_new,        /* same for both directions */
        .framein = g722tolin_framein,
-       .sample = g722tolin_sample,
+       .sample = g722_sample,
        .desc_size = sizeof(struct g722_decoder_pvt),
        .buffer_samples = BUFFER_SAMPLES / sizeof(int16_t),
        .buf_size = BUFFER_SAMPLES,
@@ -207,7 +151,7 @@ static struct ast_translator lintog722 = {
        .dstfmt = AST_FORMAT_G722,
        .newpvt = lintog722_new,        /* same for both directions */
        .framein = lintog722_framein,
-       .sample = lintog722_sample,
+       .sample = slin8_sample,
        .desc_size = sizeof(struct g722_encoder_pvt),
        .buffer_samples = BUFFER_SAMPLES * 2,
        .buf_size = BUFFER_SAMPLES,
@@ -219,7 +163,7 @@ static struct ast_translator g722tolin16 = {
        .dstfmt = AST_FORMAT_SLINEAR16,
        .newpvt = g722tolin16_new,      /* same for both directions */
        .framein = g722tolin_framein,
-       .sample = g722tolin16_sample,
+       .sample = g722_sample,
        .desc_size = sizeof(struct g722_decoder_pvt),
        .buffer_samples = BUFFER_SAMPLES / sizeof(int16_t),
        .buf_size = BUFFER_SAMPLES,
@@ -232,7 +176,7 @@ static struct ast_translator lin16tog722 = {
        .dstfmt = AST_FORMAT_G722,
        .newpvt = lin16tog722_new,      /* same for both directions */
        .framein = lintog722_framein,
-       .sample = lin16tog722_sample,
+       .sample = slin16_sample,
        .desc_size = sizeof(struct g722_encoder_pvt),
        .buffer_samples = BUFFER_SAMPLES * 2,
        .buf_size = BUFFER_SAMPLES,
index 38d461a..cce448f 100644 (file)
@@ -58,9 +58,8 @@ typedef long long sint64;
 #define BUF_SHIFT      5
 
 /* Sample frame data */
-
-#include "slin_g726_ex.h"
-#include "g726_slin_ex.h"
+#include "asterisk/slin.h"
+#include "ex_g726.h"
 
 /*
  * The following is the definition of the state structure
@@ -786,41 +785,13 @@ static int g726tog726aal2_framein(struct ast_trans_pvt *pvt, struct ast_frame *f
        return 0;
 }
 
-static struct ast_frame *g726tolin_sample(void)
-{
-       static struct ast_frame f = {
-               .frametype = AST_FRAME_VOICE,
-               .subclass = AST_FORMAT_G726,
-               .datalen = sizeof(g726_slin_ex),
-               .samples = sizeof(g726_slin_ex) * 2,    /* 2 samples per byte */
-               .src = __PRETTY_FUNCTION__,
-               .data.ptr = g726_slin_ex,
-       };
-
-       return &f;
-}
-
-static struct ast_frame *lintog726_sample (void)
-{
-       static struct ast_frame f = {
-               .frametype = AST_FRAME_VOICE,
-               .subclass = AST_FORMAT_SLINEAR,
-               .datalen = sizeof(slin_g726_ex),
-               .samples = sizeof(slin_g726_ex) / 2,    /* 1 sample per 2 bytes */
-               .src = __PRETTY_FUNCTION__,
-               .data.ptr = slin_g726_ex,
-       };
-
-       return &f;
-}
-
 static struct ast_translator g726tolin = {
        .name = "g726tolin",
        .srcfmt = AST_FORMAT_G726,
        .dstfmt = AST_FORMAT_SLINEAR,
        .newpvt = lintog726_new,        /* same for both directions */
        .framein = g726tolin_framein,
-       .sample = g726tolin_sample,
+       .sample = g726_sample,
        .desc_size = sizeof(struct g726_coder_pvt),
        .buffer_samples = BUFFER_SAMPLES,
        .buf_size = BUFFER_SAMPLES * 2,
@@ -833,7 +804,7 @@ static struct ast_translator lintog726 = {
        .dstfmt = AST_FORMAT_G726,
        .newpvt = lintog726_new,        /* same for both directions */
        .framein = lintog726_framein,
-       .sample = lintog726_sample,
+       .sample = slin8_sample,
        .desc_size = sizeof(struct g726_coder_pvt),
        .buffer_samples = BUFFER_SAMPLES,
        .buf_size = BUFFER_SAMPLES/2,
@@ -845,7 +816,7 @@ static struct ast_translator g726aal2tolin = {
        .dstfmt = AST_FORMAT_SLINEAR,
        .newpvt = lintog726_new,        /* same for both directions */
        .framein = g726aal2tolin_framein,
-       .sample = g726tolin_sample,
+       .sample = g726_sample,
        .desc_size = sizeof(struct g726_coder_pvt),
        .buffer_samples = BUFFER_SAMPLES,
        .buf_size = BUFFER_SAMPLES * 2,
@@ -858,7 +829,7 @@ static struct ast_translator lintog726aal2 = {
        .dstfmt = AST_FORMAT_G726_AAL2,
        .newpvt = lintog726_new,        /* same for both directions */
        .framein = lintog726aal2_framein,
-       .sample = lintog726_sample,
+       .sample = slin8_sample,
        .desc_size = sizeof(struct g726_coder_pvt),
        .buffer_samples = BUFFER_SAMPLES,
        .buf_size = BUFFER_SAMPLES / 2,
@@ -869,7 +840,7 @@ static struct ast_translator g726tog726aal2 = {
        .srcfmt = AST_FORMAT_G726,
        .dstfmt = AST_FORMAT_G726_AAL2,
        .framein = g726tog726aal2_framein,      /* same for both directions */
-       .sample = lintog726_sample,
+       .sample = g726_sample,
        .buffer_samples = BUFFER_SAMPLES,
        .buf_size = BUFFER_SAMPLES,
 };
@@ -879,7 +850,7 @@ static struct ast_translator g726aal2tog726 = {
        .srcfmt = AST_FORMAT_G726_AAL2,
        .dstfmt = AST_FORMAT_G726,
        .framein = g726tog726aal2_framein,      /* same for both directions */
-       .sample = lintog726_sample,
+       .sample = g726_sample,
        .buffer_samples = BUFFER_SAMPLES,
        .buf_size = BUFFER_SAMPLES,
 };
index 1664632..03ea4bc 100644 (file)
@@ -47,15 +47,15 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 
 #include "../formats/msgsm.h"
 
-/* Sample frame data */
-#include "slin_gsm_ex.h"
-#include "gsm_slin_ex.h"
-
 #define BUFFER_SAMPLES 8000
 #define GSM_SAMPLES    160
 #define        GSM_FRAME_LEN   33
 #define        MSGSM_FRAME_LEN 65
 
+/* Sample frame data */
+#include "asterisk/slin.h"
+#include "ex_gsm.h"
+
 struct gsm_translator_pvt {    /* both gsm2lin and lin2gsm */
        gsm gsm;
        int16_t buf[BUFFER_SAMPLES];    /* lin2gsm, temporary storage */
@@ -68,36 +68,6 @@ static int gsm_new(struct ast_trans_pvt *pvt)
        return (tmp->gsm = gsm_create()) ? 0 : -1;
 }
 
-static struct ast_frame *lintogsm_sample(void)
-{
-       static struct ast_frame f;
-       f.frametype = AST_FRAME_VOICE;
-       f.subclass = AST_FORMAT_SLINEAR;
-       f.datalen = sizeof(slin_gsm_ex);
-       /* Assume 8000 Hz */
-       f.samples = sizeof(slin_gsm_ex)/2;
-       f.mallocd = 0;
-       f.offset = 0;
-       f.src = __PRETTY_FUNCTION__;
-       f.data.ptr = slin_gsm_ex;
-       return &f;
-}
-
-static struct ast_frame *gsmtolin_sample(void)
-{
-       static struct ast_frame f;
-       f.frametype = AST_FRAME_VOICE;
-       f.subclass = AST_FORMAT_GSM;
-       f.datalen = sizeof(gsm_slin_ex);
-       /* All frames are 20 ms long */
-       f.samples = GSM_SAMPLES;
-       f.mallocd = 0;
-       f.offset = 0;
-       f.src = __PRETTY_FUNCTION__;
-       f.data.ptr = gsm_slin_ex;
-       return &f;
-}
-
 /*! \brief decode and store in outbuf. */
 static int gsmtolin_framein(struct ast_trans_pvt *pvt, struct ast_frame *f)
 {
@@ -203,7 +173,7 @@ static struct ast_translator gsmtolin = {
        .newpvt = gsm_new,
        .framein = gsmtolin_framein,
        .destroy = gsm_destroy_stuff,
-       .sample = gsmtolin_sample,
+       .sample = gsm_sample,
        .buffer_samples = BUFFER_SAMPLES,
        .buf_size = BUFFER_SAMPLES * 2,
        .desc_size = sizeof (struct gsm_translator_pvt ),
@@ -218,7 +188,7 @@ static struct ast_translator lintogsm = {
        .framein = lintogsm_framein,
        .frameout = lintogsm_frameout,
        .destroy = gsm_destroy_stuff,
-       .sample = lintogsm_sample,
+       .sample = slin8_sample,
        .desc_size = sizeof (struct gsm_translator_pvt ),
        .buf_size = (BUFFER_SAMPLES * GSM_FRAME_LEN + GSM_SAMPLES - 1)/GSM_SAMPLES,
 };
index 4914392..c01b2f7 100644 (file)
@@ -40,10 +40,6 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "ilbc/iLBC_encode.h"
 #include "ilbc/iLBC_decode.h"
 
-/* Sample frame data */
-#include "slin_ilbc_ex.h"
-#include "ilbc_slin_ex.h"
-
 #define USE_ILBC_ENHANCER      0
 #define ILBC_MS                        30
 /* #define ILBC_MS                     20 */
@@ -52,6 +48,10 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #define        ILBC_SAMPLES    240     /* 30ms at 8000 hz */
 #define        BUFFER_SAMPLES  8000
 
+/* Sample frame data */
+#include "asterisk/slin.h"
+#include "ex_ilbc.h"
+
 struct ilbc_coder_pvt {
        iLBC_Enc_Inst_t enc;
        iLBC_Dec_Inst_t dec;
@@ -77,35 +77,6 @@ static int ilbctolin_new(struct ast_trans_pvt *pvt)
        return 0;
 }
 
-static struct ast_frame *lintoilbc_sample(void)
-{
-       static struct ast_frame f;
-       f.frametype = AST_FRAME_VOICE;
-       f.subclass = AST_FORMAT_SLINEAR;
-       f.datalen = sizeof(slin_ilbc_ex);
-       f.samples = sizeof(slin_ilbc_ex)/2;
-       f.mallocd = 0;
-       f.offset = 0;
-       f.src = __PRETTY_FUNCTION__;
-       f.data.ptr = slin_ilbc_ex;
-       return &f;
-}
-
-static struct ast_frame *ilbctolin_sample(void)
-{
-       static struct ast_frame f;
-       f.frametype = AST_FRAME_VOICE;
-       f.subclass = AST_FORMAT_ILBC;
-       f.datalen = sizeof(ilbc_slin_ex);
-       /* All frames are 30 ms long */
-       f.samples = ILBC_SAMPLES;
-       f.mallocd = 0;
-       f.offset = 0;
-       f.src = __PRETTY_FUNCTION__;
-       f.data.ptr = ilbc_slin_ex;
-       return &f;
-}
-
 /*! \brief decode a frame and store in outbuf */
 static int ilbctolin_framein(struct ast_trans_pvt *pvt, struct ast_frame *f)
 {
@@ -194,7 +165,7 @@ static struct ast_translator ilbctolin = {
        .dstfmt = AST_FORMAT_SLINEAR,
        .newpvt = ilbctolin_new,
        .framein = ilbctolin_framein,
-       .sample = ilbctolin_sample,
+       .sample = ilbc_sample,
        .desc_size = sizeof(struct ilbc_coder_pvt),
        .buf_size = BUFFER_SAMPLES * 2,
        .native_plc = 1,
@@ -207,7 +178,7 @@ static struct ast_translator lintoilbc = {
        .newpvt = lintoilbc_new,
        .framein = lintoilbc_framein,
        .frameout = lintoilbc_frameout,
-       .sample = lintoilbc_sample,
+       .sample = slin8_sample,
        .desc_size = sizeof(struct ilbc_coder_pvt),
        .buf_size = (BUFFER_SAMPLES * ILBC_FRAME_LEN + ILBC_SAMPLES - 1) / ILBC_SAMPLES,
 };
index 9237f70..33ccbb2 100644 (file)
@@ -39,8 +39,8 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "lpc10/lpc10.h"
 
 /* Sample frame data */
-#include "slin_lpc10_ex.h"
-#include "lpc10_slin_ex.h"
+#include "asterisk/slin.h"
+#include "ex_lpc10.h"
 
 /* We use a very strange format here...  I have no idea why...  The frames are 180
    samples long, which isn't even an even number of milliseconds...  Not only that
@@ -75,37 +75,6 @@ static int lpc10_dec_new(struct ast_trans_pvt *pvt)
        return (tmp->lpc10.dec = create_lpc10_decoder_state()) ? 0 : -1;
 }
 
-static struct ast_frame *lintolpc10_sample(void)
-{
-       static struct ast_frame f;
-       f.frametype = AST_FRAME_VOICE;
-       f.subclass = AST_FORMAT_SLINEAR;
-       f.datalen = sizeof(slin_lpc10_ex);
-       /* Assume 8000 Hz */
-       f.samples = LPC10_SAMPLES_PER_FRAME;
-       f.mallocd = 0;
-       f.offset = 0;
-       f.src = __PRETTY_FUNCTION__;
-       f.data.ptr = slin_lpc10_ex;
-       return &f;
-}
-
-static struct ast_frame *lpc10tolin_sample(void)
-{
-       static struct ast_frame f;
-       f.frametype = AST_FRAME_VOICE;
-       f.subclass = AST_FORMAT_LPC10;
-       f.datalen = sizeof(lpc10_slin_ex);
-       /* All frames are 22 ms long (maybe a little more -- why did he choose
-          LPC10_SAMPLES_PER_FRAME sample frames anyway?? */
-       f.samples = LPC10_SAMPLES_PER_FRAME;
-       f.mallocd = 0;
-       f.offset = 0;
-       f.src = __PRETTY_FUNCTION__;
-       f.data.ptr = lpc10_slin_ex;
-       return &f;
-}
-
 static void extract_bits(INT32 *bits, unsigned char *c)
 {
        int x;
@@ -229,7 +198,7 @@ static struct ast_translator lpc10tolin = {
        .newpvt = lpc10_dec_new,
        .framein = lpc10tolin_framein,
        .destroy = lpc10_destroy,
-       .sample = lpc10tolin_sample,
+       .sample = lpc10_sample,
        .desc_size = sizeof(struct lpc10_coder_pvt),
        .buffer_samples = BUFFER_SAMPLES,
        .plc_samples = LPC10_SAMPLES_PER_FRAME,
@@ -244,7 +213,7 @@ static struct ast_translator lintolpc10 = {
        .framein = lintolpc10_framein,
        .frameout = lintolpc10_frameout,
        .destroy = lpc10_destroy,
-       .sample = lintolpc10_sample,
+       .sample = slin8_sample,
        .desc_size = sizeof(struct lpc10_coder_pvt),
        .buffer_samples = BUFFER_SAMPLES,
        .buf_size = LPC10_BYTES_IN_COMPRESSED_FRAME * (1 + BUFFER_SAMPLES / LPC10_SAMPLES_PER_FRAME),
index 3086729..834fb46 100644 (file)
@@ -49,7 +49,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/module.h"
 #include "asterisk/translate.h"
 
-#include "slin_resample_ex.h"
+#include "asterisk/slin.h"
 
 #define RESAMPLER_QUALITY 1
 
@@ -69,9 +69,9 @@ static int slin16_to_slin8_new(struct ast_trans_pvt *pvt)
 {
        struct slin16_to_slin8_pvt *resamp_pvt = pvt->pvt;
 
-       resamp_pvt->resample_factor = 0.5;
+       resamp_pvt->resample_factor = 8000.0 / 16000.0;
 
-       if (!(resamp_pvt->resampler = resample_open(RESAMPLER_QUALITY, 0.5, 0.5)))
+       if (!(resamp_pvt->resampler = resample_open(RESAMPLER_QUALITY, resamp_pvt->resample_factor, resamp_pvt->resample_factor)))
                return -1;
 
        return 0;
@@ -81,9 +81,9 @@ static int slin8_to_slin16_new(struct ast_trans_pvt *pvt)
 {
        struct slin8_to_slin16_pvt *resamp_pvt = pvt->pvt;
 
-       resamp_pvt->resample_factor = 2.0;
+       resamp_pvt->resample_factor = 16000.0 / 8000.0;
 
-       if (!(resamp_pvt->resampler = resample_open(RESAMPLER_QUALITY, 2.0, 2.0)))
+       if (!(resamp_pvt->resampler = resample_open(RESAMPLER_QUALITY, resamp_pvt->resample_factor, resamp_pvt->resample_factor)))
                return -1;
 
        return 0;
@@ -168,34 +168,6 @@ static int slin8_to_slin16_framein(struct ast_trans_pvt *pvt, struct ast_frame *
        return resample_frame(pvt, resampler, resample_factor, f);
 }
 
-static struct ast_frame *slin16_to_slin8_sample(void)
-{
-       static struct ast_frame f = {
-               .frametype = AST_FRAME_VOICE,
-               .subclass = AST_FORMAT_SLINEAR16,
-               .datalen = sizeof(slin16_slin8_ex),
-               .samples = ARRAY_LEN(slin16_slin8_ex),
-               .src = __PRETTY_FUNCTION__,
-               .data.ptr = slin16_slin8_ex,
-       };
-
-       return &f;
-}
-
-static struct ast_frame *slin8_to_slin16_sample(void)
-{
-       static struct ast_frame f = {
-               .frametype = AST_FRAME_VOICE,
-               .subclass = AST_FORMAT_SLINEAR,
-               .datalen = sizeof(slin8_slin16_ex),
-               .samples = ARRAY_LEN(slin8_slin16_ex),
-               .src = __PRETTY_FUNCTION__,
-               .data.ptr = slin8_slin16_ex,
-       };
-
-       return &f;
-}
-
 static struct ast_translator slin16_to_slin8 = {
        .name = "slin16_to_slin8",
        .srcfmt = AST_FORMAT_SLINEAR16,
@@ -203,7 +175,7 @@ static struct ast_translator slin16_to_slin8 = {
        .newpvt = slin16_to_slin8_new,
        .destroy = slin16_to_slin8_destroy,
        .framein = slin16_to_slin8_framein,
-       .sample = slin16_to_slin8_sample,
+       .sample = slin16_sample,
        .desc_size = sizeof(struct slin16_to_slin8_pvt),
        .buffer_samples = (OUTBUF_SIZE / sizeof(int16_t)),
        .buf_size = OUTBUF_SIZE,
@@ -216,7 +188,7 @@ static struct ast_translator slin8_to_slin16 = {
        .newpvt = slin8_to_slin16_new,
        .destroy = slin8_to_slin16_destroy,
        .framein = slin8_to_slin16_framein,
-       .sample = slin8_to_slin16_sample,
+       .sample = slin8_sample,
        .desc_size = sizeof(struct slin8_to_slin16_pvt),
        .buffer_samples = (OUTBUF_SIZE / sizeof(int16_t)),
        .buf_size = OUTBUF_SIZE,
index 961aaa6..844feed 100644 (file)
@@ -53,10 +53,6 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/config.h"
 #include "asterisk/utils.h"
 
-/* Sample frame data */
-#include "slin_speex_ex.h"
-#include "speex_slin_ex.h"
-
 /* codec variables */
 static int quality = 3;
 static int complexity = 2;
@@ -84,6 +80,10 @@ static float pp_dereverb_level = 0.3;
 #define        BUFFER_SAMPLES  8000
 #define        SPEEX_SAMPLES   160
 
+/* Sample frame data */
+#include "asterisk/slin.h"
+#include "ex_speex.h"
+
 struct speex_coder_pvt {
        void *speex;
        SpeexBits bits;
@@ -154,36 +154,6 @@ static int speextolin_new(struct ast_trans_pvt *pvt)
        return 0;
 }
 
-static struct ast_frame *lintospeex_sample(void)
-{
-       static struct ast_frame f;
-       f.frametype = AST_FRAME_VOICE;
-       f.subclass = AST_FORMAT_SLINEAR;
-       f.datalen = sizeof(slin_speex_ex);
-       /* Assume 8000 Hz */
-       f.samples = sizeof(slin_speex_ex)/2;
-       f.mallocd = 0;
-       f.offset = 0;
-       f.src = __PRETTY_FUNCTION__;
-       f.data.ptr = slin_speex_ex;
-       return &f;
-}
-
-static struct ast_frame *speextolin_sample(void)
-{
-       static struct ast_frame f;
-       f.frametype = AST_FRAME_VOICE;
-       f.subclass = AST_FORMAT_SPEEX;
-       f.datalen = sizeof(speex_slin_ex);
-       /* All frames are 20 ms long */
-       f.samples = SPEEX_SAMPLES;
-       f.mallocd = 0;
-       f.offset = 0;
-       f.src = __PRETTY_FUNCTION__;
-       f.data.ptr = speex_slin_ex;
-       return &f;
-}
-
 /*! \brief convert and store into outbuf */
 static int speextolin_framein(struct ast_trans_pvt *pvt, struct ast_frame *f)
 {
@@ -346,7 +316,7 @@ static struct ast_translator speextolin = {
        .newpvt = speextolin_new,
        .framein = speextolin_framein,
        .destroy = speextolin_destroy,
-       .sample = speextolin_sample,
+       .sample = speex_sample,
        .desc_size = sizeof(struct speex_coder_pvt),
        .buffer_samples = BUFFER_SAMPLES,
        .buf_size = BUFFER_SAMPLES * 2,
@@ -361,7 +331,7 @@ static struct ast_translator lintospeex = {
        .framein = lintospeex_framein,
        .frameout = lintospeex_frameout,
        .destroy = lintospeex_destroy,
-       .sample = lintospeex_sample,
+       .sample = slin8_sample,
        .desc_size = sizeof(struct speex_coder_pvt),
        .buffer_samples = BUFFER_SAMPLES,
        .buf_size = BUFFER_SAMPLES * 2, /* XXX maybe a lot less ? */
index 799b963..4d1c8a1 100644 (file)
@@ -36,9 +36,8 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #define BUFFER_SAMPLES   8096  /* size for the translation buffers */
 
 /* Sample frame data */
-
-#include "slin_ulaw_ex.h"
-#include "ulaw_slin_ex.h"
+#include "asterisk/slin.h"
+#include "ex_ulaw.h"
 
 /*! \brief convert and store samples in outbuf */
 static int ulawtolin_framein(struct ast_trans_pvt *pvt, struct ast_frame *f)
@@ -73,40 +72,6 @@ static int lintoulaw_framein(struct ast_trans_pvt *pvt, struct ast_frame *f)
        return 0;
 }
 
-/*!  * \brief ulawToLin_Sample */
-static struct ast_frame *ulawtolin_sample(void)
-{
-       static struct ast_frame f;
-       f.frametype = AST_FRAME_VOICE;
-       f.subclass = AST_FORMAT_ULAW;
-       f.datalen = sizeof(ulaw_slin_ex);
-       f.samples = sizeof(ulaw_slin_ex);
-       f.mallocd = 0;
-       f.offset = 0;
-       f.src = __PRETTY_FUNCTION__;
-       f.data.ptr = ulaw_slin_ex;
-       return &f;
-}
-
-/*!
- * \brief LinToulaw_Sample
- */
-
-static struct ast_frame *lintoulaw_sample(void)
-{
-       static struct ast_frame f;
-       f.frametype = AST_FRAME_VOICE;
-       f.subclass = AST_FORMAT_SLINEAR;
-       f.datalen = sizeof(slin_ulaw_ex);
-       /* Assume 8000 Hz */
-       f.samples = sizeof(slin_ulaw_ex) / 2;
-       f.mallocd = 0;
-       f.offset = 0;
-       f.src = __PRETTY_FUNCTION__;
-       f.data.ptr = slin_ulaw_ex;
-       return &f;
-}
-
 /*!
  * \brief The complete translator for ulawToLin.
  */
@@ -116,7 +81,7 @@ static struct ast_translator ulawtolin = {
        .srcfmt = AST_FORMAT_ULAW,
        .dstfmt = AST_FORMAT_SLINEAR,
        .framein = ulawtolin_framein,
-       .sample = ulawtolin_sample,
+       .sample = ulaw_sample,
        .buffer_samples = BUFFER_SAMPLES,
        .buf_size = BUFFER_SAMPLES * 2,
        .plc_samples = 160,
@@ -131,7 +96,7 @@ static struct ast_translator lintoulaw = {
        .srcfmt = AST_FORMAT_SLINEAR,
        .dstfmt = AST_FORMAT_ULAW,
        .framein = lintoulaw_framein,
-       .sample = lintoulaw_sample,
+       .sample = slin8_sample,
        .buf_size = BUFFER_SAMPLES,
        .buffer_samples = BUFFER_SAMPLES,
 };
diff --git a/codecs/ex_adpcm.h b/codecs/ex_adpcm.h
new file mode 100644 (file)
index 0000000..e1db64c
--- /dev/null
@@ -0,0 +1,32 @@
+/*! \file
+ * \brief 4-bit ADPCM data
+ *
+ * Copyright (C) 2008, Digium, Inc.
+ *
+ * Distributed under the terms of the GNU General Public License
+ *
+ */
+
+static uint8_t ex_adpcm[] = {
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static struct ast_frame *adpcm_sample(void)
+{
+       static struct ast_frame f = {
+               .frametype = AST_FRAME_VOICE,
+               .subclass = AST_FORMAT_ADPCM,
+               .datalen = sizeof(ex_adpcm),
+               .samples = ARRAY_LEN(ex_adpcm) * 2,
+               .mallocd = 0,
+               .offset = 0,
+               .src = __PRETTY_FUNCTION__,
+               .data.ptr = ex_adpcm,
+       };
+
+       return &f;
+}
similarity index 54%
rename from codecs/ulaw_slin_ex.h
rename to codecs/ex_alaw.h
index a125568..66a904c 100644 (file)
@@ -1,17 +1,13 @@
 /*! \file
- * \brief ulaw_slin_ex.h --
+ * \brief 8-bit data
  *
- *     4-bit ADPCM data, 20 milliseconds worth at 8 kHz.
- *
- * Source: g723.example
- *
- * Copyright (C) 2001-2005, Digium Inc.
+ * Copyright (C) 2008, Digium, Inc.
  *
  * Distributed under the terms of the GNU General Public License
  *
  */
 
-static unsigned char ulaw_slin_ex[] = {
+static uint8_t ex_alaw[] = {
        0x00, 0x03, 0x06, 0x09, 0x0c, 0x0f, 0x12, 0x15,
        0x10, 0x18, 0x1b, 0x1e, 0x21, 0x24, 0x27, 0x2a,
        0x20, 0x2d, 0x30, 0x33, 0x36, 0x39, 0x3c, 0x3f,
@@ -21,5 +17,21 @@ static unsigned char ulaw_slin_ex[] = {
        0x60, 0x81, 0x84, 0x87, 0x8a, 0x8d, 0x90, 0x93,
        0x70, 0x96, 0x99, 0x9c, 0x9f, 0xa2, 0xa5, 0xa8,
        0x80, 0xab, 0xae, 0xb1, 0xb4, 0xb7, 0xba, 0xbd,
-       0x90, 0xc0, 0xc3, 0xc6, 0xc9, 0xcc, 0xcf, 0xd2
+       0x90, 0xc0, 0xc3, 0xc6, 0xc9, 0xcc, 0xcf, 0xd2,
 };
+
+static struct ast_frame *alaw_sample(void)
+{
+       static struct ast_frame f = {
+               .frametype = AST_FRAME_VOICE,
+               .subclass = AST_FORMAT_ALAW,
+               .datalen = sizeof(ex_alaw),
+               .samples = ARRAY_LEN(ex_alaw),
+               .mallocd = 0,
+               .offset = 0,
+               .src = __PRETTY_FUNCTION__,
+               .data.ptr = ex_alaw,
+       };
+
+       return &f;
+}
diff --git a/codecs/ex_g722.h b/codecs/ex_g722.h
new file mode 100644 (file)
index 0000000..8b0b0ff
--- /dev/null
@@ -0,0 +1,47 @@
+/*! \file
+ * \brief 8-bit data
+ *
+ * Copyright (C) 2008, Digium, Inc.
+ *
+ * Distributed under the terms of the GNU General Public License
+ *
+ */
+
+static uint8_t ex_g722[] = {
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static struct ast_frame *g722_sample(void)
+{
+       static struct ast_frame f = {
+               .frametype = AST_FRAME_VOICE,
+               .subclass = AST_FORMAT_G722,
+               .datalen = sizeof(ex_g722),
+               .samples = ARRAY_LEN(ex_g722),
+               .mallocd = 0,
+               .offset = 0,
+               .src = __PRETTY_FUNCTION__,
+               .data.ptr = ex_g722,
+       };
+
+       return &f;
+}
diff --git a/codecs/ex_g726.h b/codecs/ex_g726.h
new file mode 100644 (file)
index 0000000..d74844d
--- /dev/null
@@ -0,0 +1,32 @@
+/*! \file
+ * \brief 4-bit G.726 data
+ *
+ * Copyright (C) 2008, Digium, Inc.
+ *
+ * Distributed under the terms of the GNU General Public License
+ *
+ */
+
+static uint8_t ex_g726[] = {
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static struct ast_frame *g726_sample(void)
+{
+       static struct ast_frame f = {
+               .frametype = AST_FRAME_VOICE,
+               .subclass = AST_FORMAT_G726,
+               .datalen = sizeof(ex_g726),
+               .samples = ARRAY_LEN(ex_g726) * 2, /* 2 samples per byte */
+               .mallocd = 0,
+               .offset = 0,
+               .src = __PRETTY_FUNCTION__,
+               .data.ptr = ex_g726,
+       };
+
+       return &f;
+}
diff --git a/codecs/ex_gsm.h b/codecs/ex_gsm.h
new file mode 100644 (file)
index 0000000..c918013
--- /dev/null
@@ -0,0 +1,32 @@
+/*! \file
+ * \brief 8-bit raw data
+ *
+ * Copyright (C) 2008, Digium, Inc.
+ *
+ * Distributed under the terms of the GNU General Public License
+ *
+ */
+
+static uint8_t ex_gsm[] = {
+       0xda, 0xa6, 0xac, 0x2d, 0xa3, 0x50, 0x00, 0x49, 0x24, 0x92,
+       0x49, 0x24, 0x50, 0x40, 0x49, 0x24, 0x92, 0x37, 0x24, 0x52,
+       0x00, 0x49, 0x24, 0x92, 0x47, 0x24, 0x50, 0x80, 0x46, 0xe3,
+       0x6d, 0xb8, 0xdc,
+};
+
+static struct ast_frame *gsm_sample(void)
+{
+       static struct ast_frame f = {
+               .frametype = AST_FRAME_VOICE,
+               .subclass = AST_FORMAT_GSM,
+               .datalen = sizeof(ex_gsm),
+               /* All frames are 20 ms long */
+               .samples = GSM_SAMPLES,
+               .mallocd = 0,
+               .offset = 0,
+               .src = __PRETTY_FUNCTION__,
+               .data.ptr = ex_gsm,
+       };
+
+       return &f;
+}
diff --git a/codecs/ex_ilbc.h b/codecs/ex_ilbc.h
new file mode 100644 (file)
index 0000000..c72b1f2
--- /dev/null
@@ -0,0 +1,33 @@
+/*! \file
+ * \brief Raw 8-bit data
+ *
+ * Copyright (C) 2008, Digium, Inc.
+ *
+ * Distributed under the terms of the GNU General Public License
+ *
+ */
+
+static uint8_t ex_ilbc[] = {
+       0xff, 0xa0, 0xff, 0xfa, 0x0f, 0x60, 0x12, 0x11, 0xa2, 0x47, 
+       0x22, 0x8c, 0x00, 0x00, 0x01, 0x02, 0x80, 0x43, 0xa0, 0x40, 
+       0x33, 0xff, 0xcf, 0xc0, 0xf3, 0xf3, 0x3f, 0x8f, 0x3f, 0xff, 
+       0xff, 0xff, 0xff, 0xfc, 0xf9, 0xe5, 0x55, 0x78, 0x0b, 0xca, 
+       0xe1, 0x27, 0x94, 0x7b, 0xa8, 0x91, 0x2c, 0x36, 0x08, 0x56,
+};
+
+static struct ast_frame *ilbc_sample(void)
+{
+       static struct ast_frame f = {
+               .frametype = AST_FRAME_VOICE,
+               .subclass = AST_FORMAT_ILBC,
+               .datalen = sizeof(ex_ilbc),
+               /* All frames are 30 ms long */
+               .samples = ILBC_SAMPLES,
+               .mallocd = 0,
+               .offset = 0,
+               .src = __PRETTY_FUNCTION__,
+               .data.ptr = ex_ilbc,
+       };
+
+       return &f;
+}
diff --git a/codecs/ex_lpc10.h b/codecs/ex_lpc10.h
new file mode 100644 (file)
index 0000000..a44791b
--- /dev/null
@@ -0,0 +1,30 @@
+/*! \file
+ * \brief
+ *
+ * Copyright (C) 2008, Digium, Inc.
+ *
+ * Distributed under the terms of the GNU General Public License
+ *
+ */
+
+static uint8_t ex_lpc10[] = {
+       0x01, 0x08, 0x31, 0x08, 0x31, 0x80, 0x30,
+};
+
+static struct ast_frame *lpc10_sample(void)
+{
+       static struct ast_frame f = {
+               .frametype = AST_FRAME_VOICE,
+               .subclass = AST_FORMAT_LPC10,
+               .datalen = sizeof(ex_lpc10),
+               /* All frames are 22 ms long (maybe a little more -- why did he choose
+                  LPC10_SAMPLES_PER_FRAME sample frames anyway?? */
+               .samples = LPC10_SAMPLES_PER_FRAME,
+               .mallocd = 0,
+               .offset = 0,
+               .src = __PRETTY_FUNCTION__,
+               .data.ptr = ex_lpc10,
+       };
+
+       return &f;
+}
diff --git a/codecs/ex_speex.h b/codecs/ex_speex.h
new file mode 100644 (file)
index 0000000..61bd4ca
--- /dev/null
@@ -0,0 +1,32 @@
+/*! \file
+ * \brief Random Data
+ *
+ * Copyright (C) 2008, Digium, Inc.
+ *
+ * Distributed under the terms of the GNU General Public License
+ *
+ */
+
+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, 
+       0x98, 0x7f, 0xff, 0xff, 0xff, 0xe8, 0xff, 0xf7, 0x80,
+};
+
+static struct ast_frame *speex_sample(void)
+{
+       static struct ast_frame f = {
+               .frametype = AST_FRAME_VOICE,
+               .subclass = AST_FORMAT_SPEEX,
+               .datalen = sizeof(ex_speex),
+               /* All frames are 20 ms long */
+               .samples = SPEEX_SAMPLES,
+               .mallocd = 0,
+               .offset = 0,
+               .src = __PRETTY_FUNCTION__,
+               .data.ptr = ex_speex,
+       };
+
+       return &f;
+}
diff --git a/codecs/ex_ulaw.h b/codecs/ex_ulaw.h
new file mode 100644 (file)
index 0000000..a34c270
--- /dev/null
@@ -0,0 +1,37 @@
+/*! \file
+ * \brief 8-bit data
+ *
+ * Copyright (C) 2008, Digium, Inc.
+ *
+ * Distributed under the terms of the GNU General Public License
+ *
+ */
+
+static uint8_t ex_ulaw[] = {
+       0x00, 0x03, 0x06, 0x09, 0x0c, 0x0f, 0x12, 0x15,
+       0x10, 0x18, 0x1b, 0x1e, 0x21, 0x24, 0x27, 0x2a,
+       0x20, 0x2d, 0x30, 0x33, 0x36, 0x39, 0x3c, 0x3f,
+       0x30, 0x42, 0x45, 0x48, 0x4b, 0x4e, 0x51, 0x54,
+       0x40, 0x57, 0x5a, 0x5d, 0x60, 0x63, 0x66, 0x69,
+       0x50, 0x6c, 0x6f, 0x72, 0x75, 0x78, 0x7b, 0x7e,
+       0x60, 0x81, 0x84, 0x87, 0x8a, 0x8d, 0x90, 0x93,
+       0x70, 0x96, 0x99, 0x9c, 0x9f, 0xa2, 0xa5, 0xa8,
+       0x80, 0xab, 0xae, 0xb1, 0xb4, 0xb7, 0xba, 0xbd,
+       0x90, 0xc0, 0xc3, 0xc6, 0xc9, 0xcc, 0xcf, 0xd2,
+};
+
+static struct ast_frame *ulaw_sample(void)
+{
+       static struct ast_frame f = {
+               .frametype = AST_FRAME_VOICE,
+               .subclass = AST_FORMAT_ULAW,
+               .datalen = sizeof(ex_ulaw),
+               .samples = ARRAY_LEN(ex_ulaw),
+               .mallocd = 0,
+               .offset = 0,
+               .src = __PRETTY_FUNCTION__,
+               .data.ptr = ex_ulaw,
+       };
+
+       return &f;
+}
diff --git a/codecs/g722_slin_ex.h b/codecs/g722_slin_ex.h
deleted file mode 100644 (file)
index f8d3de5..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*! \file
- * \brief g722_slin_ex.h --
- *
- *     4-bit ADPCM data, 20 milliseconds worth at 8 kHz.
- *
- * Source: g723.example
- *
- * Copyright (C) 2001-2005, Digium Inc.
- *
- * Distributed under the terms of the GNU General Public License
- *
- */
-
-static unsigned char g722_slin_ex[] = {
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-};
diff --git a/codecs/g726_slin_ex.h b/codecs/g726_slin_ex.h
deleted file mode 100644 (file)
index 80cbf00..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*! \file
- * adpcm_slin_ex.h --
- *
- * \brief      4-bit G.726 data, 20 milliseconds worth at 8 kHz.
- *
- * Source: g726.example
- *
- * Copyright (C) 2001-2005, Digium, Inc.
- *
- * Distributed under the terms of the GNU General Public License
- *
- */
-
-static unsigned char g726_slin_ex[] = {
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-};
diff --git a/codecs/gsm_slin_ex.h b/codecs/gsm_slin_ex.h
deleted file mode 100644 (file)
index 2f001ab..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/*! \file
-  * \brief 8-bit raw data
-  *
-  * Source: gsm.example
-  *
-  * Copyright (C) 1999-2005, Digium Inc.
-  *
-  * Distributed under the terms of the GNU General Public License
-  *
-  */
-
-static unsigned char gsm_slin_ex[] = {
-0xda, 0xa6, 0xac, 0x2d, 0xa3, 0x50, 000, 0x49, 0x24, 0x92, 
-0x49, 0x24, 0x50, 0x40, 0x49, 0x24, 0x92, 0x37, 0x24, 0x52, 
-000, 0x49, 0x24, 0x92, 0x47, 0x24, 0x50, 0x80, 0x46, 0xe3, 
-0x6d, 0xb8, 0xdc };
diff --git a/codecs/ilbc_slin_ex.h b/codecs/ilbc_slin_ex.h
deleted file mode 100644 (file)
index b9f4bd4..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/*! \file
-  * \brief Raw 8-bit data
-  *
-  * Source: ilbc.out
-  *
-  * Copyright (C) 1999-2005, Digium Inc.
-  *
-  * Distributed under the terms of the GNU General Public License
-  *
-  */
-
-static unsigned char ilbc_slin_ex[] = {
-0xff, 0xa0, 0xff, 0xfa, 0xf, 0x60, 0x12, 0x11, 0xa2, 0x47, 
-0x22, 0x8c, 00, 00, 0x1, 0x2, 0x80, 0x43, 0xa0, 0x40, 
-0x33, 0xff, 0xcf, 0xc0, 0xf3, 0xf3, 0x3f, 0x8f, 0x3f, 0xff, 
-0xff, 0xff, 0xff, 0xfc, 0xf9, 0xe5, 0x55, 0x78, 0xb, 0xca, 
-0xe1, 0x27, 0x94, 0x7b, 0xa8, 0x91, 0x2c, 0x36, 0x8, 0x56 };
diff --git a/codecs/lpc10_slin_ex.h b/codecs/lpc10_slin_ex.h
deleted file mode 100644 (file)
index cf9f059..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*! \file
-  * \brief 8-bit raw data
-  *
-  * Source: example.lpc10
-  *
-  * Copyright (C) 1999-2005, Digium Inc.
-  *
-  * Distributed under the terms of the GNU General Public License
-  *
-  */
-
-static unsigned char lpc10_slin_ex[] = {
-0x1, 0x8, 0x31, 0x8, 0x31, 0x80, 0x30 };
diff --git a/codecs/slin_adpcm_ex.h b/codecs/slin_adpcm_ex.h
deleted file mode 100644 (file)
index 801549a..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*! \file
- * \brief slin_adpcm_ex.h --
- *
- *     Signed 16-bit audio data, 10 milliseconds worth at 8 kHz.
- *
- * Source: g723.example
- *
- * Copyright (C) 2001-2005, Digium Inc.
- *
- * Distributed under the terms of the GNU General Public License
- *
- */
-
-static signed short slin_adpcm_ex[] = {
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
-};
diff --git a/codecs/slin_g722_ex.h b/codecs/slin_g722_ex.h
deleted file mode 100644 (file)
index 4e6aea8..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*! \file
- * \brief slin_g722_ex.h --
- *
- *     Signed 16-bit audio data, 10 milliseconds worth at 8 kHz.
- *
- * Source: g723.example
- *
- * Copyright (C) 2001-2005, Digium Inc.
- *
- * Distributed under the terms of the GNU General Public License
- *
- */
-
-static signed short slin_g722_ex[] = {
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
-};
diff --git a/codecs/slin_g726_ex.h b/codecs/slin_g726_ex.h
deleted file mode 100644 (file)
index 8dad39c..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*! \file
- * \brief slin_adpcm_ex.h --
- *
- *     Signed 16-bit audio data, 10 milliseconds worth at 8 kHz.
- *
- * Source: g726.example
- *
- * Copyright (C) 2001-2005, Digium Inc.
- *
- * Distributed under the terms of the GNU General Public License
- *
- */
-
-static signed short slin_g726_ex[] = {
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
-};
diff --git a/codecs/slin_gsm_ex.h b/codecs/slin_gsm_ex.h
deleted file mode 100644 (file)
index 7ac2818..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/*! \file
-  * \brief Signed 16-bit audio data
-  *
-  * Source: gsm.example
-  *
-  * Copyright (C) 1999-2005, Digium Inc.
-  *
-  * Distributed under the terms of the GNU General Public License
-  *
-  */
-
-static signed short slin_gsm_ex[] = {
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 0xfff8, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 0x0008, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-0x0008, 000000, 000000, 000000, 0xfff8, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 0x0008, 000000, 000000, 000000 };
diff --git a/codecs/slin_ilbc_ex.h b/codecs/slin_ilbc_ex.h
deleted file mode 100644 (file)
index b89655c..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/*! \file
-  * \brief Signed 16-bit audio data
-  *
-  * Source: gsm.example
-  *
-  * Copyright (C) 1999-2005, Digium Inc
-  *
-  * Distributed under the terms of the GNU General Public License
-  *
-  */
-
-static signed short slin_ilbc_ex[] = {
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 0xfff8, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 0x0008, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-0x0008, 000000, 000000, 000000, 0xfff8, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 0x0008, 000000, 000000, 000000 };
diff --git a/codecs/slin_lpc10_ex.h b/codecs/slin_lpc10_ex.h
deleted file mode 100644 (file)
index 169e9a9..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*! \file
-  * \brief Signed 16-bit audio data
-  *
-  * Source: example.slin
-  *
-  * Copyright (C) 1999-2005, Digium Inc.
-  *
-  * Distributed under the terms of the GNU General Public License
-  *
-  */
-
-static signed short slin_lpc10_ex[] = {
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 
-000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000 };
diff --git a/codecs/slin_resample_ex.h b/codecs/slin_resample_ex.h
deleted file mode 100644 (file)
index 701654e..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*! \file
- * \brief slin_resample_ex.h --
- *
- * Copyright (C) 2007, Digium Inc.
- *
- * Distributed under the terms of the GNU General Public License
- */
-
-static signed short slin16_slin8_ex[] = {
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
-};
-
-static signed short slin8_slin16_ex[] = {
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
-};
diff --git a/codecs/slin_speex_ex.h b/codecs/slin_speex_ex.h
deleted file mode 100644 (file)
index 0c6258c..0000000
+++ /dev/null
@@ -1,262 +0,0 @@
-/*! \file
- * \brief Signed 16-bit audio data, 500ms of speech at 8kHz to ensure no DTX triggered
- *
- * Source: speex.example
- *
- * Copyright (C) 1999-2005, Digium Inc.
- *
- * Distributed under the terms of the GNU General Public License
- *
- */
-
-static signed short slin_speex_ex[] = {
-0x4a00, 0xa700, 0x6d00, 0x4900, 0x5800, 0x3e00, 0x1b00, 0x1400, 0xf9ff, 0xe4ff, 0x0a00, 0xf0ff, 0xbbff, 0x0200, 0x0800, 0xd6ff,
-0xf1ff, 0x1200, 0x0500, 0x1000, 0x0f00, 0x0700, 0x4100, 0x2800, 0xf4ff, 0x2900, 0x3100, 0xf4ff, 0xefff, 0xdaff, 0xdaff, 0xc2ff,
-0xa5ff, 0xccff, 0xd4ff, 0xc7ff, 0xe6ff, 0x0600, 0x0c00, 0x1900, 0x1200, 0x0d00, 0x2900, 0x1e00, 0xf4ff, 0x0000, 0x1200, 0xf5ff,
-0xe5ff, 0x0000, 0x0000, 0xf1ff, 0x0300, 0x0b00, 0xfdff, 0x0500, 0x0f00, 0x0600, 0x0d00, 0x0f00, 0x0000, 0xfdff, 0xfcff, 0xe5ff,
-0xdcff, 0xe0ff, 0xafff, 0xb2ff, 0xe4ff, 0xceff, 0xe2ff, 0x0000, 0x1600, 0x2600, 0x2400, 0x3f00, 0x4a00, 0x3d00, 0x2b00, 0x2f00,
-0x4300, 0x1000, 0x0300, 0x0700, 0xe9ff, 0xf3ff, 0xebff, 0xd9ff, 0xe5ff, 0xf9ff, 0xeeff, 0xe9ff, 0x0500, 0x0a00, 0x0300, 0x0800,
-0x1800, 0x1c00, 0x1000, 0x1300, 0x0d00, 0x0400, 0x0200, 0xf9ff, 0xe4ff, 0xe6ff, 0xe0ff, 0xd9ff, 0xecff, 0xf2ff, 0xe8ff, 0xfdff,
-0x1100, 0x0d00, 0x0b00, 0x1100, 0x1100, 0x1200, 0x0c00, 0x0400, 0x0900, 0x0d00, 0x0100, 0xfdff, 0x0000, 0xfdff, 0x0000, 0xffff,
-0xf5ff, 0xfcff, 0x0600, 0xfeff, 0x0000, 0x0300, 0x1300, 0x1700, 0x0300, 0x0700, 0xf0ff, 0xe1ff, 0xd7ff, 0xd1ff, 0xc6ff, 0xc2ff,
-0xf2ff, 0xf0ff, 0xecff, 0x0700, 0x3200, 0x2d00, 0x0400, 0x2200, 0x2900, 0x1900, 0x2400, 0x0500, 0x1900, 0x1f00, 0xfeff, 0x0d00,
-0x0600, 0xebff, 0xf5ff, 0x0600, 0xebff, 0xe3ff, 0x0c00, 0x0d00, 0xefff, 0x1100, 0x3a00, 0x0700, 0x1700, 0x2f00, 0xf7ff, 0x0700,
-0x2600, 0xd9ff, 0xb8ff, 0xeaff, 0xbeff, 0x9eff, 0xc7ff, 0xccff, 0xc4ff, 0xeeff, 0x0000, 0xfdff, 0x1200, 0x1d00, 0x3100, 0x3600,
-0x2d00, 0x3c00, 0x4700, 0x3000, 0x2000, 0x2300, 0x1800, 0x0900, 0xffff, 0xeaff, 0xe7ff, 0xe8ff, 0xd3ff, 0xc5ff, 0xe1ff, 0xedff,
-0xe4ff, 0xfaff, 0xe3ff, 0xacff, 0xcdff, 0xd4ff, 0xabff, 0xa6ff, 0xdaff, 0x0500, 0xf1ff, 0xfaff, 0x3800, 0x7000, 0x4100, 0x1c00,
-0x4b00, 0x5300, 0x3a00, 0x2a00, 0x1400, 0x2000, 0x1c00, 0x1500, 0x0500, 0xf6ff, 0x0000, 0x1300, 0xfaff, 0xe9ff, 0x0000, 0x0a00,
-0xfcff, 0xfaff, 0x1000, 0x1200, 0x0900, 0x0c00, 0x0400, 0x0000, 0x0800, 0xffff, 0xe7ff, 0xe2ff, 0xe6ff, 0xd5ff, 0xdaff, 0xe0ff,
-0xdcff, 0xeeff, 0x0200, 0xfbff, 0x0000, 0x1000, 0x1100, 0x1500, 0x1900, 0x1400, 0x1900, 0x1c00, 0x1500, 0x1000, 0x0d00, 0x0b00,
-0x0700, 0x0200, 0xf6ff, 0xf5ff, 0xf9ff, 0xecff, 0xe8ff, 0xeeff, 0xf4ff, 0xf4ff, 0xeeff, 0xecff, 0xebff, 0xd7ff, 0xd8ff, 0xeaff,
-0xe0ff, 0xddff, 0x0100, 0x0500, 0xf8ff, 0x1800, 0x2d00, 0x1d00, 0x1a00, 0x2100, 0x1f00, 0x1f00, 0x1a00, 0x0f00, 0x0300, 0x0d00,
-0x0e00, 0xfeff, 0x0000, 0xfeff, 0x0000, 0x0000, 0xf1ff, 0xfaff, 0x0a00, 0x0100, 0xf5ff, 0x0300, 0x0e00, 0x0300, 0x0200, 0x0000,
-0x0800, 0x0700, 0xf8ff, 0xf5ff, 0xf1ff, 0xefff, 0xe9ff, 0xe0ff, 0xe0ff, 0xedff, 0xf0ff, 0xedff, 0xfcff, 0xffff, 0xfdff, 0x0a00,
-0x0f00, 0x0e00, 0x0f00, 0x1700, 0x1400, 0x0700, 0x0500, 0x0800, 0x0000, 0x0200, 0x0400, 0xfaff, 0xffff, 0x0200, 0xfaff, 0xfbff,
-0x0300, 0x0400, 0x0400, 0x0100, 0xe7ff, 0xd4ff, 0xdbff, 0xe2ff, 0xe0ff, 0xd0ff, 0xe7ff, 0x0700, 0xf2ff, 0x0000, 0x2d00, 0x2000,
-0x1800, 0x2c00, 0x1f00, 0x2600, 0x2200, 0x0e00, 0x0e00, 0x0000, 0x0400, 0x0800, 0x0300, 0xfbff, 0x0500, 0x1d00, 0x0000, 0xfbff,
-0x2e00, 0x2500, 0x0600, 0x1c00, 0x2600, 0x1600, 0x0e00, 0x0200, 0xf9ff, 0x0000, 0xe1ff, 0xc0ff, 0xd5ff, 0xc9ff, 0xb6ff, 0xbcff,
-0xccff, 0xc9ff, 0xcbff, 0xe5ff, 0xeaff, 0xf0ff, 0xfeff, 0x0000, 0x0b00, 0x1f00, 0x2000, 0x1b00, 0x2000, 0x2400, 0x1800, 0x1200,
-0x1700, 0x0c00, 0x0b00, 0x0d00, 0xfdff, 0xf5ff, 0x0000, 0xf9ff, 0xefff, 0xfaff, 0xf7ff, 0xf0ff, 0xe7ff, 0xcbff, 0xd1ff, 0xedff,
-0xf5ff, 0xfcff, 0xfeff, 0x1e00, 0x3200, 0x2200, 0x3800, 0x4f00, 0x3800, 0x2c00, 0x4000, 0x3e00, 0x2e00, 0x2900, 0x1200, 0x0500,
-0x0700, 0x0000, 0xf2ff, 0xf2ff, 0xf8ff, 0xf5ff, 0xf7ff, 0xeaff, 0xefff, 0x0100, 0xfcff, 0xf9ff, 0x0000, 0x0700, 0xf9ff, 0xf2ff,
-0xf9ff, 0xf0ff, 0xf1ff, 0xe7ff, 0xddff, 0xe1ff, 0xddff, 0xd9ff, 0xdaff, 0xe1ff, 0xe2ff, 0xe5ff, 0xe5ff, 0xf0ff, 0xfaff, 0xf4ff,
-0xfdff, 0x1100, 0x0e00, 0x0e00, 0x1800, 0x1600, 0x1200, 0x1400, 0x1500, 0x1200, 0x0b00, 0x0600, 0x0c00, 0x0500, 0x0100, 0x0b00,
-0x0200, 0xfaff, 0xffff, 0xf9ff, 0xe8ff, 0xd0ff, 0xc9ff, 0xd5ff, 0xe0ff, 0xe6ff, 0xedff, 0xf5ff, 0x1100, 0x1300, 0x1f00, 0x3600,
-0x2900, 0x2200, 0x2c00, 0x3700, 0x2d00, 0x2000, 0x1a00, 0x0800, 0xfaff, 0xfcff, 0xf6ff, 0xf2ff, 0xebff, 0xf7ff, 0x0200, 0xf1ff,
-0xf5ff, 0x0d00, 0x0900, 0xf9ff, 0x1000, 0x2000, 0x0a00, 0xf9ff, 0xffff, 0xf9ff, 0xf2ff, 0xeeff, 0xdbff, 0xd8ff, 0xdbff, 0xdaff,
-0xdaff, 0xdfff, 0xe6ff, 0xecff, 0xedff, 0xf0ff, 0x0500, 0x0900, 0x0400, 0x0f00, 0x2600, 0x2700, 0x2200, 0x2b00, 0x1700, 0x1100,
-0x2a00, 0x2200, 0x0c00, 0x0200, 0x0100, 0x0200, 0xfeff, 0xfaff, 0xf7ff, 0xf3ff, 0xf1ff, 0xf5ff, 0xf6ff, 0xe8ff, 0xd3ff, 0xcdff,
-0xdbff, 0xebff, 0xedff, 0xf0ff, 0xfbff, 0x1400, 0x1700, 0x2000, 0x3400, 0x2700, 0x1a00, 0x2100, 0x2e00, 0x2900, 0x1e00, 0x0c00,
-0xfbff, 0xfbff, 0xf9ff, 0xf3ff, 0xf4ff, 0xe8ff, 0xecff, 0x0300, 0xf8ff, 0xf4ff, 0x0100, 0x0600, 0xf7ff, 0x0900, 0x1e00, 0x0f00,
-0x0900, 0x0700, 0x0000, 0x0000, 0x0000, 0xf5ff, 0xebff, 0xefff, 0xf3ff, 0xeeff, 0xf0ff, 0xf1ff, 0xefff, 0xf0ff, 0xf6ff, 0xfcff,
-0xf9ff, 0xf8ff, 0xfbff, 0x0300, 0x0900, 0x0800, 0x0900, 0x0100, 0x0200, 0x0c00, 0x0e00, 0x0300, 0xfdff, 0xfcff, 0xfbff, 0xfbff,
-0xf9ff, 0xf3ff, 0xf3ff, 0xecff, 0xf6ff, 0xfbff, 0xf4ff, 0xecff, 0xd6ff, 0xdcff, 0xf1ff, 0xf1ff, 0xeeff, 0xf6ff, 0x0600, 0x0a00,
-0x1000, 0x1e00, 0x1b00, 0x1100, 0x1800, 0x2800, 0x2500, 0x2600, 0x1c00, 0x0e00, 0x0900, 0x0e00, 0x0800, 0x0200, 0xfaff, 0xf5ff,
-0x0300, 0xf8ff, 0xfcff, 0x0500, 0x0500, 0x0000, 0xfaff, 0x0b00, 0x1c00, 0x0d00, 0xfdff, 0x0200, 0x0100, 0xfbff, 0xf5ff, 0xe8ff,
-0xe8ff, 0xecff, 0xdaff, 0xd1ff, 0xddff, 0xdeff, 0xd8ff, 0xdeff, 0xedff, 0xf3ff, 0xf8ff, 0x0100, 0x1100, 0x2300, 0x2800, 0x3100,
-0x3200, 0x3500, 0x3a00, 0x3e00, 0x3400, 0x2700, 0x2100, 0x1400, 0x0900, 0xf7ff, 0xfaff, 0xf3ff, 0xe2ff, 0xeaff, 0xe3ff, 0xdfff,
-0xd7ff, 0xc9ff, 0xdaff, 0xe4ff, 0xe0ff, 0xe4ff, 0xefff, 0xf4ff, 0xf6ff, 0x0000, 0x0100, 0x0000, 0x0600, 0x0c00, 0x0c00, 0x1000,
-0x1900, 0x1600, 0x1500, 0x1600, 0x1100, 0x1400, 0x1200, 0x1300, 0x0900, 0x0d00, 0x1400, 0x0e00, 0x1900, 0x1400, 0x0900, 0x0600,
-0x1600, 0x1900, 0x0800, 0x0300, 0x0000, 0xf5ff, 0xedff, 0xeaff, 0xdbff, 0xdcff, 0xcbff, 0xb7ff, 0xbfff, 0xc3ff, 0xc2ff, 0xbfff,
-0xcbff, 0xdaff, 0xe7ff, 0xf9ff, 0x0600, 0x1b00, 0x2c00, 0x2900, 0x3d00, 0x4b00, 0x4700, 0x4b00, 0x4a00, 0x4300, 0x3700, 0x3300,
-0x1f00, 0x1400, 0x1000, 0x0f00, 0x0c00, 0x0000, 0xf6ff, 0xe7ff, 0xe7ff, 0xdeff, 0xd3ff, 0xe1ff, 0xdeff, 0xd9ff, 0xe0ff, 0xe8ff,
-0xf1ff, 0xeaff, 0xe8ff, 0xf5ff, 0xf7ff, 0xf6ff, 0xf7ff, 0xf4ff, 0xf8ff, 0xfcff, 0x0100, 0xfcff, 0xf7ff, 0x0100, 0x0600, 0x0100,
-0x0700, 0x0200, 0x0c00, 0x1000, 0x0e00, 0x1c00, 0x1a00, 0x1a00, 0x1800, 0x2200, 0x1f00, 0x1600, 0x1700, 0x0b00, 0xfbff, 0xfcff,
-0xeaff, 0xd6ff, 0xdfff, 0xcbff, 0xc0ff, 0xc0ff, 0xbcff, 0xc1ff, 0xc5ff, 0xd1ff, 0xdaff, 0xecff, 0xffff, 0xfeff, 0x1000, 0x2700,
-0x2400, 0x2400, 0x3800, 0x3600, 0x3100, 0x3300, 0x2800, 0x2000, 0x1e00, 0x1d00, 0x0800, 0x0400, 0x1600, 0x0900, 0x0000, 0x0d00,
-0x0100, 0xefff, 0xf1ff, 0xedff, 0xe0ff, 0xe6ff, 0xf5ff, 0xe1ff, 0xdaff, 0xf3ff, 0xf6ff, 0xeeff, 0xf1ff, 0xf9ff, 0xfbff, 0x0000,
-0x0700, 0x0900, 0x0d00, 0x1c00, 0x1d00, 0x1b00, 0x1a00, 0x2500, 0x2500, 0x1a00, 0x1600, 0x0e00, 0x0c00, 0x0b00, 0x0500, 0x0100,
-0x0200, 0x0000, 0xfbff, 0xfcff, 0xfdff, 0xfcff, 0xfcff, 0xf9ff, 0xf6ff, 0xf3ff, 0xeaff, 0xe6ff, 0xecff, 0xe8ff, 0xdfff, 0xe6ff,
-0xddff, 0xdaff, 0xecff, 0xefff, 0xf2ff, 0xfdff, 0x0100, 0xffff, 0x0800, 0x1700, 0x1000, 0x1300, 0x2100, 0x1b00, 0x1800, 0x1a00,
-0x1200, 0x1000, 0x2000, 0x1100, 0x0000, 0x0700, 0x0500, 0xfdff, 0xfcff, 0x0300, 0xf2ff, 0xeaff, 0xe1ff, 0xcdff, 0xd2ff, 0xe0ff,
-0xe0ff, 0xd5ff, 0xdfff, 0xf3ff, 0xf7ff, 0xfcff, 0x1100, 0x1800, 0x1900, 0x2100, 0x2600, 0x2800, 0x2900, 0x2d00, 0x2400, 0x1b00,
-0x1a00, 0x1000, 0x0800, 0x0500, 0xfcff, 0xf1ff, 0xf4ff, 0xf6ff, 0xf2ff, 0xf6ff, 0xffff, 0xffff, 0x0000, 0x0a00, 0x0a00, 0xfbff,
-0x0200, 0x0700, 0xf9ff, 0xf2ff, 0xeaff, 0xedff, 0xdfff, 0xd9ff, 0xe3ff, 0xd8ff, 0xdbff, 0xddff, 0xe2ff, 0xefff, 0xf6ff, 0xffff,
-0x0000, 0x0d00, 0x1500, 0x1600, 0x2200, 0x2800, 0x2700, 0x2900, 0x3700, 0x2d00, 0x2500, 0x2c00, 0x2900, 0x1100, 0x0600, 0xfdff,
-0xedff, 0xeaff, 0xddff, 0xcfff, 0xc9ff, 0xc0ff, 0xa8ff, 0xa8ff, 0xbeff, 0xceff, 0xd6ff, 0xe1ff, 0xf4ff, 0x1000, 0x1100, 0x1e00,
-0x3e00, 0x3c00, 0x3c00, 0x3d00, 0x3e00, 0x3300, 0x3000, 0x2b00, 0x1300, 0x0b00, 0x0600, 0xfaff, 0xf6ff, 0xf4ff, 0xe9ff, 0xedff,
-0x0000, 0xf8ff, 0xfbff, 0x0400, 0x0300, 0x0a00, 0x1400, 0x1300, 0x0100, 0x0b00, 0x0400, 0xf9ff, 0xf8ff, 0xeeff, 0xe9ff, 0xdeff,
-0xe1ff, 0xdaff, 0xd7ff, 0xe5ff, 0xd2ff, 0xd3ff, 0xe3ff, 0xe7ff, 0xedff, 0xf5ff, 0x0000, 0x0600, 0x1300, 0x1f00, 0x1c00, 0x2600,
-0x2b00, 0x3100, 0x2d00, 0x3100, 0x2e00, 0x2600, 0x1900, 0x1100, 0x0400, 0xf3ff, 0xf3ff, 0xdcff, 0xdbff, 0xddff, 0xd2ff, 0xccff,
-0xbbff, 0xc3ff, 0xe4ff, 0xf4ff, 0xf6ff, 0xfbff, 0x1600, 0x2100, 0x1600, 0x2000, 0x2500, 0x1b00, 0x2700, 0x2100, 0x1400, 0x0d00,
-0x1300, 0x0800, 0xfbff, 0xf8ff, 0xecff, 0xeeff, 0x0000, 0xefff, 0xeeff, 0xfcff, 0x0000, 0xfeff, 0x0600, 0x0700, 0x0200, 0x1400,
-0x1600, 0x0700, 0x0d00, 0x1400, 0x0e00, 0x0900, 0x0b00, 0x0500, 0xfaff, 0x0600, 0x0000, 0xf2ff, 0xfaff, 0xf6ff, 0xe9ff, 0xecff,
-0xecff, 0xe2ff, 0xe7ff, 0xf3ff, 0xf6ff, 0xf4ff, 0x0000, 0x0000, 0xffff, 0x1400, 0x0f00, 0x0f00, 0x1500, 0x1400, 0x1100, 0x1200,
-0x0c00, 0x0400, 0x0500, 0xffff, 0x0200, 0xfbff, 0xf5ff, 0xfeff, 0xf5ff, 0xe5ff, 0xe3ff, 0xe4ff, 0xe6ff, 0x0a00, 0xffff, 0xf3ff,
-0x0900, 0x0d00, 0xfbff, 0x0700, 0x0c00, 0xffff, 0x1200, 0x1e00, 0xfdff, 0x0700, 0x1c00, 0x1200, 0x0f00, 0x1200, 0x1500, 0xfbff,
-0x1200, 0x2300, 0xf9ff, 0x0300, 0x0d00, 0xf2ff, 0xf2ff, 0xf5ff, 0xd8ff, 0xd0ff, 0xddff, 0xd8ff, 0xc4ff, 0xdbff, 0xe0ff, 0xd6ff,
-0xecff, 0xd8ff, 0xf7ff, 0x1100, 0xffff, 0x1500, 0x2a00, 0x1c00, 0x1800, 0x2200, 0x1500, 0x0800, 0x1d00, 0x1600, 0x0800, 0x1300,
-0x0500, 0xecff, 0x1100, 0x0a00, 0x1700, 0x0900, 0xffff, 0x2700, 0x1b00, 0x0b00, 0x1400, 0x1200, 0xecff, 0x1000, 0x1800, 0xdfff,
-0xfbff, 0xf1ff, 0x9bff, 0x90ff, 0x97ff, 0x81ff, 0xf2ff, 0xf9ff, 0x8cff, 0xcbff, 0x3300, 0x0200, 0x1300, 0x4f00, 0x1600, 0x2700,
-0x7400, 0x4000, 0x2a00, 0x4e00, 0x4b00, 0x1800, 0x2b00, 0x3900, 0x1c00, 0x2500, 0x1000, 0xf1ff, 0xf9ff, 0xf5ff, 0xdbff, 0xdbff,
-0x0000, 0x0b00, 0xd7ff, 0xcbff, 0xecff, 0xdfff, 0xebff, 0xe5ff, 0xafff, 0xdfff, 0xe5ff, 0xbeff, 0xc9ff, 0x0000, 0xe0ff, 0xcdff,
-0x1d00, 0x1b00, 0xefff, 0x1c00, 0x2100, 0x1100, 0x3200, 0x3400, 0x1d00, 0x2d00, 0x2600, 0x3b00, 0x3600, 0x4200, 0x0a00, 0x0000,
-0x5f00, 0x4000, 0x0000, 0x1000, 0x2800, 0xeaff, 0xd9ff, 0xcdff, 0xf8ff, 0x8400, 0xc1ff, 0xbefe, 0x56ff, 0x7fff, 0xe5fe, 0xf5ff,
-0x3600, 0x4aff, 0x24ff, 0x6800, 0xdf00, 0x1600, 0x6d00, 0x7b00, 0xf200, 0xd500, 0x0700, 0x2300, 0x3500, 0x0600, 0xeaff, 0xd1ff,
-0x95ff, 0xd5ff, 0x0300, 0xbcff, 0xe0ff, 0x0000, 0x2500, 0x3100, 0xdf00, 0x6700, 0x0300, 0x6900, 0x2a00, 0x3f00, 0x0400, 0x7dff,
-0x58ff, 0xb2ff, 0x7bff, 0x71ff, 0xa1ff, 0x7dff, 0xd0ff, 0x1700, 0x0000, 0x0700, 0x5900, 0x4b00, 0x4b00, 0x4700, 0xf8ff, 0x4300,
-0x5e00, 0x0d00, 0xdaff, 0x1300, 0x0e00, 0x0f00, 0x2d00, 0xeaff, 0x1400, 0x6200, 0x3a00, 0xe3ff, 0x0c00, 0x1600, 0xfbff, 0xe8ff,
-0xfbff, 0x6700, 0xe3ff, 0x8eff, 0xf2fe, 0x25fe, 0x9bfe, 0x54ff, 0x94ff, 0x94ff, 0x7dff, 0x3000, 0x9401, 0xce01, 0x5601, 0x0e01,
-0xd300, 0x4f01, 0xdf00, 0x6fff, 0x25ff, 0x79ff, 0x5eff, 0x51ff, 0xd4ff, 0xbaff, 0x1b00, 0xbe00, 0x4a00, 0xf3ff, 0x2800, 0x4500,
-0x5e00, 0x1800, 0x84ff, 0x8aff, 0xc7ff, 0xc2ff, 0x8aff, 0xd7fe, 0x16ff, 0x0000, 0x1300, 0xf7ff, 0xbcff, 0xc3ff, 0x5500, 0x7c00,
-0x5a00, 0x5400, 0x2d00, 0x2d00, 0x2b00, 0xf9ff, 0xfcff, 0x0500, 0xddff, 0x1d00, 0x6600, 0x7a00, 0x9200, 0x3700, 0x0e00, 0x5600,
-0x2500, 0xcfff, 0xfdff, 0xe3ff, 0xc5ff, 0xcdff, 0x00ff, 0x67ff, 0xb100, 0x3200, 0x3200, 0xc800, 0xcdff, 0xaaff, 0x4dff, 0x42fd,
-0xc4fd, 0x3500, 0x2a00, 0x99ff, 0x1d00, 0xe500, 0x4e02, 0xf802, 0x6f01, 0xd4ff, 0x4f00, 0x7300, 0x88ff, 0x20ff, 0x81fe, 0x9afe,
-0xb2ff, 0x6800, 0x9100, 0x9700, 0x3001, 0x5500, 0xf4ff, 0xa400, 0xb2ff, 0xdeff, 0x1500, 0x05ff, 0x4fff, 0xe6ff, 0xaaff, 0xc9ff,
-0x0000, 0xafff, 0xeeff, 0x8200, 0x1800, 0xc7ff, 0xf1ff, 0xd5ff, 0x3000, 0x1d00, 0x50ff, 0x89ff, 0x82ff, 0x7cff, 0x2000, 0x1d00,
-0x0d00, 0x9500, 0x8c00, 0x2d00, 0x5b00, 0x2200, 0xf8ff, 0x6700, 0x7800, 0x3e00, 0xa800, 0x9100, 0xbfff, 0xccff, 0xdaff, 0x9bff,
-0x8400, 0x98ff, 0xa4fe, 0xddff, 0x1200, 0x2e00, 0xf100, 0x3500, 0x73ff, 0x99ff, 0xd1fd, 0x97fd, 0x0500, 0x7800, 0x3400, 0xc700,
-0xfc00, 0x8201, 0x6002, 0x8201, 0xb5ff, 0xaeff, 0xa5ff, 0x15ff, 0x90ff, 0x53ff, 0xccfe, 0x8eff, 0x9d00, 0xef00, 0x0601, 0xf300,
-0xa4ff, 0x5cff, 0x0b00, 0xfcff, 0x0d00, 0xd9ff, 0x3cff, 0x60ff, 0x5400, 0x3400, 0x2b00, 0x4800, 0xbbff, 0x0300, 0x5a00, 0xf5ff,
-0xc7ff, 0xe5ff, 0x91ff, 0xfeff, 0x0000, 0x51ff, 0xa8ff, 0x57ff, 0x74ff, 0x3a00, 0x6500, 0x5400, 0x0e00, 0x2900, 0x3800, 0x3d00,
-0x3300, 0x1100, 0x4400, 0x7200, 0x5c00, 0x6f00, 0x4c00, 0xc8ff, 0xa6ff, 0xc4ff, 0x9bff, 0x6a00, 0x1000, 0xccfe, 0xc6ff, 0x7e00,
-0x8aff, 0x6b00, 0xae00, 0x7bff, 0x71ff, 0xa0fd, 0x05fd, 0xc5ff, 0x5001, 0x1801, 0x9a01, 0x3f01, 0x1701, 0xc102, 0xd901, 0x83ff,
-0x35ff, 0xa7fe, 0x52fe, 0x98ff, 0x9eff, 0xcbfe, 0x90ff, 0xe100, 0x4801, 0xa001, 0x5101, 0x59ff, 0x04ff, 0xc3ff, 0x1800, 0x4400,
-0xe7ff, 0x22ff, 0x1dff, 0x4000, 0x2c00, 0x4b00, 0x7800, 0xa3ff, 0xd9ff, 0x7b00, 0x1a00, 0xb7ff, 0xb4ff, 0x70ff, 0xb6ff, 0x2200,
-0xc9ff, 0x35ff, 0xaeff, 0x2b00, 0x4700, 0x5100, 0xe6ff, 0x1100, 0x5900, 0x0500, 0xf0ff, 0x2300, 0x5b00, 0xbd00, 0xec00, 0xc500,
-0x8200, 0x93ff, 0x39ff, 0xafff, 0xbfff, 0x5200, 0x9cff, 0x49fe, 0x7fff, 0xa600, 0xfcff, 0xaa00, 0x7000, 0xf8fe, 0x64fe, 0xf7fc,
-0x73fd, 0x2100, 0xa001, 0xe501, 0x4a02, 0x3701, 0xe500, 0x7402, 0x6601, 0xb5ff, 0x5eff, 0x69fe, 0x40fe, 0xc8ff, 0xe6ff, 0x1cff,
-0xd1ff, 0xc900, 0x6601, 0xdf01, 0xf300, 0x67ff, 0xdcfe, 0x50ff, 0x2500, 0x7400, 0x0900, 0x42ff, 0x32ff, 0xe2ff, 0x2e00, 0x8700,
-0x2800, 0x84ff, 0xd4ff, 0x5a00, 0x1000, 0xc1ff, 0xafff, 0x62ff, 0xa7ff, 0x2700, 0x1100, 0xc5ff, 0xe2ff, 0xeeff, 0xb8ff, 0x3200,
-0x8b00, 0x0d00, 0x2600, 0x7b00, 0xf4ff, 0x6dff, 0x3d00, 0x9600, 0x8800, 0x2201, 0xa500, 0xf1ff, 0xe7ff, 0x9fff, 0x70ff, 0xe9ff,
-0x3a00, 0x5fff, 0xe8fe, 0x52ff, 0x0f00, 0x8e00, 0xb300, 0x3800, 0x1aff, 0x77fe, 0x13fd, 0x9afc, 0x6dff, 0xe301, 0x5602, 0x9902,
-0x3b01, 0xa6ff, 0x1501, 0x1a02, 0xa300, 0xebff, 0x1aff, 0xe6fd, 0x09ff, 0x6700, 0x5800, 0xefff, 0x4500, 0xd100, 0x6601, 0x5301,
-0x5600, 0x0eff, 0x9dfe, 0x91ff, 0x2400, 0x8500, 0xd7ff, 0xeffe, 0x39ff, 0xddff, 0x8c00, 0xa500, 0x0c00, 0x86ff, 0xd0ff, 0x2f00,
-0x1200, 0xf1ff, 0xbfff, 0x88ff, 0xd1ff, 0x4900, 0x2100, 0xbcff, 0xb1ff, 0x9aff, 0xf1ff, 0x8300, 0x6400, 0x3b00, 0x3e00, 0x2400,
-0xa3ff, 0x0000, 0x8200, 0x4b00, 0xa800, 0xe600, 0x0300, 0x2cff, 0x82ff, 0x0b00, 0x4300, 0x5600, 0xa9ff, 0xcdfe, 0x15ff, 0x6700,
-0xed00, 0x8a00, 0xe3ff, 0x74fe, 0xe3fc, 0xd1fc, 0x98fe, 0x2601, 0x7b02, 0x8d02, 0x8001, 0x3f00, 0xd300, 0x9501, 0xfe00, 0xeeff,
-0x50ff, 0x67fe, 0x81fe, 0xe8ff, 0x4900, 0x1200, 0x6800, 0xc000, 0xc200, 0x0c01, 0xb100, 0x7bff, 0x2fff, 0x91ff, 0xd6ff, 0xfeff,
-0xfeff, 0x63ff, 0x35ff, 0x0700, 0x7100, 0x6600, 0x4400, 0xceff, 0x9cff, 0x1100, 0x4500, 0xdfff, 0xabff, 0x96ff, 0x96ff, 0x1000,
-0x5b00, 0x0f00, 0xc2ff, 0xe3ff, 0xfdff, 0x3a00, 0x9000, 0x4c00, 0x1400, 0xe6ff, 0xe2ff, 0xc0ff, 0xf3ff, 0x4300, 0x1a00, 0x5100,
-0x7300, 0x3100, 0xc2ff, 0xebff, 0x5a00, 0x1e00, 0xafff, 0x3aff, 0x3cff, 0x80ff, 0x5a00, 0xf500, 0xffff, 0x57ff, 0x39ff, 0xe8fd,
-0x65fd, 0x65ff, 0x7d01, 0xfb01, 0x5b02, 0x7501, 0x9aff, 0x6000, 0x7701, 0x6b00, 0x94ff, 0x31ff, 0xe2fd, 0x85fe, 0x9300, 0xab00,
-0x4900, 0x9300, 0x5900, 0x3b00, 0x0701, 0x9000, 0x47ff, 0x4eff, 0x6cff, 0xedff, 0x5c00, 0x0000, 0x33ff, 0x81ff, 0x6200, 0x7400,
-0x9b00, 0x3400, 0x67ff, 0x94ff, 0x3100, 0x2800, 0xfeff, 0xfdff, 0xa3ff, 0x9fff, 0x2100, 0x2400, 0xebff, 0xf5ff, 0xe4ff, 0xe0ff,
-0x3f00, 0x5100, 0x1600, 0x1a00, 0xe7ff, 0xe0ff, 0xd4ff, 0x0000, 0x1200, 0x0500, 0x5b00, 0xc200, 0x5000, 0xcbff, 0x3b00, 0xe5ff,
-0x9fff, 0xf0ff, 0xd4ff, 0x76ff, 0x40ff, 0x2200, 0x8c00, 0x0f00, 0x5700, 0x5fff, 0xdffc, 0xfbfc, 0xe8ff, 0xc501, 0xa202, 0xbc02,
-0x6300, 0x49ff, 0x0b01, 0x7001, 0x6f00, 0xe2ff, 0x72fe, 0x84fd, 0x7dff, 0xcc00, 0x7300, 0x7c00, 0x5e00, 0xf1ff, 0xa200, 0x2101,
-0xd4ff, 0x46ff, 0x5eff, 0x82ff, 0x4800, 0x7d00, 0xd2ff, 0x71ff, 0xe3ff, 0x1b00, 0x7b00, 0x5c00, 0xc4ff, 0x84ff, 0x76ff, 0xe5ff,
-0x2b00, 0x3500, 0x1500, 0xe2ff, 0x99ff, 0x73ff, 0x9bff, 0xc7ff, 0xc8ff, 0x0000, 0x2d00, 0x4100, 0x3400, 0x2600, 0xf1ff, 0xd6ff,
-0x0900, 0x1300, 0xe0ff, 0x5c00, 0xbc00, 0x4700, 0x2500, 0xd5ff, 0x5eff, 0xb5ff, 0x4800, 0x3200, 0x0a00, 0x5bff, 0x91ff, 0x9b00,
-0x7000, 0x6400, 0x0800, 0xa7fd, 0x41fc, 0x8dfe, 0x3c01, 0x0102, 0x4b03, 0x0002, 0x58ff, 0x8b00, 0xc401, 0xad00, 0x5c00, 0x7aff,
-0x8efd, 0x85fe, 0x5600, 0x4000, 0x5700, 0xd200, 0xa700, 0xd400, 0xbb01, 0x7500, 0x1bff, 0x11ff, 0x47ff, 0x0700, 0x7500, 0x3c00,
-0x67ff, 0x05ff, 0x91ff, 0x4300, 0x6700, 0x3300, 0x1200, 0x94ff, 0x8dff, 0x1e00, 0xd6ff, 0x98ff, 0xafff, 0x9bff, 0x55ff, 0x97ff,
-0xaeff, 0x86ff, 0xc1ff, 0x2f00, 0x5200, 0x7100, 0x7600, 0xfdff, 0x9fff, 0xc3ff, 0xe5ff, 0xd9ff, 0x1500, 0x7e00, 0x3c00, 0x8200,
-0x5900, 0x60ff, 0x8cff, 0x1e00, 0x3400, 0x4300, 0x3800, 0x1dff, 0xbffe, 0xd2ff, 0xcf00, 0xff00, 0x5c00, 0x36ff, 0xd4fd, 0x85fc,
-0x18fe, 0xa301, 0x2e02, 0xfc01, 0x9d02, 0xf400, 0x4400, 0xbf01, 0xea00, 0x40ff, 0x83ff, 0x05ff, 0x5afe, 0xc5ff, 0x5100, 0xa4ff,
-0x8f00, 0x8501, 0x2501, 0x2e01, 0xd300, 0x21ff, 0xe0fe, 0xd1ff, 0x0400, 0x5a00, 0xd2ff, 0x62ff, 0xcfff, 0xc0ff, 0xfbff, 0x2b00,
-0xf9ff, 0xd6ff, 0xf7ff, 0xfbff, 0xb7ff, 0xc6ff, 0x2eff, 0x52ff, 0x3900, 0x1500, 0xc2ff, 0xf0ff, 0xc6ff, 0xccff, 0x7f00, 0x9500,
-0x0200, 0x0b00, 0x0000, 0x98ff, 0xa3ff, 0xb9ff, 0xacff, 0x4600, 0x8a00, 0x9300, 0x1300, 0x94ff, 0xd4ff, 0x2a00, 0x1301, 0xce00,
-0x78ff, 0xa7fe, 0xa1fe, 0x76ff, 0xe200, 0xfe00, 0xecff, 0xadff, 0x6fff, 0xe4fd, 0x2afd, 0x51ff, 0x3f01, 0x8c01, 0x9202, 0xac01,
-0xf4ff, 0x0d01, 0x7601, 0x0800, 0xd5ff, 0xafff, 0x9cfe, 0x2dff, 0x2200, 0x85ff, 0xbdff, 0xd500, 0xc000, 0xd300, 0x2701, 0x0700,
-0x12ff, 0xb6ff, 0xf5ff, 0xebff, 0x7900, 0xc7ff, 0x4dff, 0x5c00, 0x9800, 0xf9ff, 0xa4ff, 0xa4ff, 0x6bff, 0xafff, 0x2a00, 0xceff,
-0xc2ff, 0xc6ff, 0xb9ff, 0x3600, 0x5a00, 0xdbff, 0xa1ff, 0xe1ff, 0x1500, 0x3e00, 0x5d00, 0x0400, 0xccff, 0x2000, 0x1900, 0xa7ff,
-0x77ff, 0x9dff, 0xfdff, 0x4a00, 0xcd00, 0x0300, 0x8bff, 0x0000, 0xf0ff, 0xa100, 0xbf00, 0xdaff, 0x04ff, 0x2aff, 0x76ff, 0xe1ff,
-0x8b00, 0x8100, 0x3700, 0x4700, 0x2fff, 0x1ffd, 0xd7fd, 0x6a00, 0x6c01, 0x9301, 0x9c01, 0x5900, 0x3c00, 0x9f01, 0x6201, 0xbfff,
-0x28ff, 0x69ff, 0x63ff, 0xf5ff, 0x0a00, 0x2cff, 0x91ff, 0x9e00, 0x1c01, 0x0d01, 0x7900, 0xa9ff, 0x3aff, 0x2b00, 0x3500, 0xc4ff,
-0xc5ff, 0x77ff, 0xb8ff, 0x9600, 0xaa00, 0xd4ff, 0x97ff, 0xdfff, 0xc3ff, 0x1a00, 0xf9ff, 0x65ff, 0x81ff, 0xa7ff, 0xd0ff, 0x2a00,
-0x0600, 0x0800, 0x2d00, 0xebff, 0x2000, 0x6d00, 0x6a00, 0x5900, 0x5700, 0x0c00, 0x85ff, 0x9bff, 0xe4ff, 0x0400, 0x4000, 0xd7ff,
-0x0f00, 0x1f00, 0xf2ff, 0xb800, 0x6c00, 0xacff, 0x59ff, 0x2eff, 0x5fff, 0x1f00, 0x5200, 0x1f00, 0x2700, 0x3e00, 0xcdfe, 0x09fd,
-0x87fd, 0x2300, 0x0802, 0x8401, 0x2f01, 0x7c00, 0x9c00, 0x0302, 0xb301, 0x8fff, 0xc2fe, 0x25ff, 0x0000, 0x6e00, 0xabff, 0xedfe,
-0x54ff, 0xa800, 0xa301, 0x4801, 0x1900, 0x8eff, 0xf2ff, 0x7000, 0x6c00, 0xc6ff, 0x02ff, 0x34ff, 0x0000, 0x6c00, 0x4f00, 0x55ff,
-0x65ff, 0x3c00, 0x4d00, 0x1d00, 0x81ff, 0x49ff, 0xaaff, 0x2300, 0x1600, 0xaaff, 0x92ff, 0xb7ff, 0x7100, 0x4900, 0xf8ff, 0x4900,
-0x5700, 0x9f00, 0xa100, 0x5b00, 0xb6ff, 0x8bff, 0x0700, 0x3300, 0x3e00, 0xa2ff, 0x99ff, 0x2e00, 0x1200, 0x9500, 0x9200, 0xceff,
-0x99ff, 0xa9ff, 0x77ff, 0x5fff, 0xc7ff, 0x1c00, 0x1b00, 0x5400, 0x9fff, 0xd8fd, 0xe8fc, 0xaefe, 0x7301, 0x8a01, 0xd700, 0x6b00,
-0x6600, 0xfa01, 0x9d02, 0x5e00, 0xddfe, 0x75ff, 0x1f00, 0x8500, 0x6dff, 0x3ffe, 0xc4fe, 0x7200, 0x5401, 0xe600, 0x2900, 0xd8ff,
-0x6900, 0xe800, 0x9400, 0xd8ff, 0x45ff, 0x6aff, 0xedff, 0xf4ff, 0xf3ff, 0x8cff, 0x7aff, 0x1e00, 0x3a00, 0xfcff, 0xc7ff, 0xbbff,
-0xd1ff, 0x1300, 0x1c00, 0xc1ff, 0xbfff, 0xd6ff, 0x1300, 0x5100, 0xf7ff, 0x77ff, 0xe4ff, 0x9000, 0xa400, 0x9a00, 0x5300, 0xacff,
-0xa5ff, 0x3a00, 0x3800, 0x0000, 0xe2ff, 0xe3ff, 0x4300, 0xc400, 0x5e00, 0x90ff, 0xb4ff, 0x3a00, 0xf6ff, 0x8eff, 0x86ff, 0xcbfe,
-0x49ff, 0xe400, 0x7f00, 0x5cff, 0x80fe, 0x61fd, 0x78fe, 0xf601, 0x4001, 0xabff, 0xc500, 0xe000, 0xf201, 0x0c03, 0x7e00, 0x6ffe,
-0xceff, 0x7100, 0xd0ff, 0x6dff, 0x5cfe, 0x4afe, 0x5800, 0x6d01, 0x0e00, 0xc7ff, 0x2e00, 0x2a00, 0xc800, 0xe500, 0x89ff, 0x3cff,
-0x5900, 0x1a00, 0xcfff, 0x0b00, 0x71ff, 0x87ff, 0x7000, 0x3100, 0x95ff, 0xe1ff, 0x0000, 0xe9ff, 0x4700, 0x0300, 0x7aff, 0xf1ff,
-0x3700, 0xc9ff, 0xfcff, 0x0000, 0xd0ff, 0x6800, 0x9500, 0xdfff, 0xfaff, 0xe7ff, 0xe9ff, 0x9600, 0x1700, 0xbbff, 0x0b00, 0x5300,
-0x9000, 0x9c00, 0x1900, 0x97ff, 0xd7ff, 0x6100, 0x2400, 0xbdfe, 0xe0fe, 0xb0ff, 0xb0ff, 0x6400, 0x5500, 0x0dff, 0xdafe, 0x38fe,
-0xe1fd, 0x6200, 0x3801, 0xeaff, 0xe200, 0xf901, 0xd901, 0x4802, 0x8001, 0x25ff, 0xd7ff, 0xfa00, 0x7bff, 0xc8fe, 0xe4fe, 0x76fe,
-0xb4ff, 0xa800, 0xd5ff, 0xa7ff, 0x4d00, 0x6d00, 0x6e00, 0xb600, 0xe3ff, 0xc3ff, 0x6600, 0x1b00, 0xa3ff, 0xc0ff, 0xbaff, 0x90ff,
-0x0a00, 0x1c00, 0x99ff, 0x0900, 0x5000, 0xd6ff, 0x0e00, 0x7400, 0x1f00, 0xf5ff, 0x0d00, 0xc3ff, 0xe6ff, 0x4400, 0xebff, 0x9dff,
-0xdfff, 0x5a00, 0x1c00, 0x80ff, 0xd4ff, 0x1f00, 0x1200, 0x4e00, 0x6f00, 0xd900, 0x7d00, 0x9aff, 0xdbff, 0x4000, 0x2300, 0xd1ff,
-0xa3ff, 0x89ff, 0x74ff, 0xbdff, 0xb5ff, 0xe8ff, 0x4900, 0x0b00, 0xc6ff, 0x5aff, 0x6dfe, 0xc6fe, 0x3400, 0x6700, 0x2300, 0x9500,
-0xa300, 0x2901, 0x0a02, 0xf200, 0x7fff, 0x3800, 0x7e00, 0xedff, 0xb8ff, 0x0fff, 0xeafe, 0xdeff, 0x4500, 0xdcff, 0xcaff, 0x0d00,
-0x3d00, 0x7b00, 0x7c00, 0xffff, 0xf5ff, 0x2600, 0x1500, 0xe2ff, 0xd8ff, 0xc6ff, 0xb8ff, 0xf7ff, 0xf6ff, 0xd4ff, 0xf7ff, 0x1300,
-0xf7ff, 0x0800, 0xf3ff, 0xbbff, 0xb5ff, 0xfcff, 0xcaff, 0xc4ff, 0xfcff, 0xd2ff, 0xfeff, 0x2500, 0x2000, 0x0400, 0x0000, 0x0200,
-0x1000, 0x1e00, 0x1900, 0x2a00, 0x1600, 0x2e00, 0x5500, 0x1b00, 0x1f00, 0x1200, 0x2600, 0x6600, 0x3700, 0xfbff, 0x2200, 0x1300,
-0xffff, 0xfbff, 0xcaff, 0x97ff, 0x9eff, 0x95ff, 0x9aff, 0xceff, 0xa2ff, 0x6fff, 0xabff, 0x0000, 0x2400, 0x0c00, 0xf2ff, 0x0f00,
-0x6100, 0x7500, 0x4200, 0xfeff, 0x1c00, 0x5a00, 0x4a00, 0x2300, 0x0b00, 0x0f00, 0x0900, 0x1900, 0xfcff, 0xe0ff, 0xfdff, 0x1200,
-0x1100, 0x1200, 0x1700, 0x1800, 0x1500, 0x1500, 0x0500, 0xf7ff, 0xf9ff, 0x0800, 0xffff, 0x0300, 0x0000, 0xccff, 0xdaff, 0x0200,
-0xe5ff, 0xa7ff, 0x9cff, 0xb4ff, 0xd0ff, 0xcaff, 0xdbff, 0xc9ff, 0xd3ff, 0x0a00, 0x0500, 0x0600, 0x1500, 0x1400, 0x2d00, 0x5900,
-0x3000, 0x0900, 0x1300, 0x0800, 0x2000, 0x3600, 0x0500, 0x0000, 0xf6ff, 0x0700, 0x1900, 0xf5ff, 0x1000, 0x1300, 0xcdff, 0xbdff,
-0xd7ff, 0xe0ff, 0xd6ff, 0xe6ff, 0xbfff, 0xdfff, 0x3500, 0x1700, 0x0000, 0x2900, 0x4c00, 0x4600, 0x4500, 0x4a00, 0x2100, 0x3c00,
-0x4000, 0x0a00, 0xeeff, 0xedff, 0xe6ff, 0xe1ff, 0xe0ff, 0xeeff, 0x0100, 0x0a00, 0x1300, 0x0900, 0x0500, 0x0c00, 0x0600, 0xf2ff,
-0xecff, 0xe1ff, 0xe3ff, 0xe2ff, 0xe6ff, 0xe6ff, 0xf8ff, 0x0500, 0x0200, 0x0800, 0xe2ff, 0xdfff, 0x0000, 0x0300, 0xffff, 0x0000,
-0x1200, 0x1300, 0x0600, 0x0c00, 0xfcff, 0x1200, 0x1000, 0xfcff, 0x0800, 0x0900, 0xfbff, 0xf6ff, 0xfeff, 0xfbff, 0xfeff, 0xf1ff,
-0xfbff, 0x0400, 0x0600, 0x1700, 0x2500, 0x0e00, 0xdbff, 0xb8ff, 0xc9ff, 0xcfff, 0xb2ff, 0xbeff, 0xcdff, 0xc7ff, 0xe2ff, 0x0500,
-0x2400, 0x1600, 0x2300, 0x3900, 0x4c00, 0x5400, 0x4200, 0x3a00, 0x3100, 0x3e00, 0x2e00, 0x0800, 0xf6ff, 0xf2ff, 0xf7ff, 0xfaff,
-0xf7ff, 0xf3ff, 0x0600, 0x0f00, 0x0300, 0xffff, 0xf9ff, 0xe6ff, 0x0a00, 0x1f00, 0x0a00, 0x0300, 0xf8ff, 0xecff, 0xf2ff, 0xfdff,
-0xccff, 0xbbff, 0xe5ff, 0xe6ff, 0xb3ff, 0xc7ff, 0x0000, 0xfaff, 0xf2ff, 0x0d00, 0x1000, 0x0e00, 0x2300, 0x1c00, 0x0f00, 0x1c00,
-0x1700, 0x0b00, 0x1000, 0x0c00, 0x0400, 0x0100, 0x0200, 0x0300, 0x0000, 0xfdff, 0x0300, 0x0500, 0x0700, 0x0a00, 0x0600, 0x0400,
-0x0100, 0xf5ff, 0xecff, 0xf2ff, 0xf5ff, 0xecff, 0x0200, 0xfdff, 0xe0ff, 0x0800, 0x1b00, 0x0300, 0x0000, 0x0700, 0x0500, 0x0400,
-0x0100, 0xf0ff, 0xefff, 0x0100, 0xfcff, 0xfaff, 0x0700, 0x0600, 0x0e00, 0x1500, 0x0800, 0x0500, 0x0d00, 0x1100, 0x0800, 0x0a00,
-0x0600, 0xf8ff, 0xfdff, 0x0400, 0x2200, 0x2800, 0x1500, 0x0f00, 0x1800, 0x0e00, 0xfcff, 0xf9ff, 0xefff, 0xe5ff, 0xc5ff, 0xb4ff,
-0xc3ff, 0xcfff, 0xcbff, 0xcdff, 0xe4ff, 0xf7ff, 0x0300, 0x1300, 0xffff, 0xf8ff, 0x0e00, 0x0900, 0xfeff, 0xfeff, 0xfeff, 0xfbff,
-0x0300, 0x0a00, 0x0a00, 0x0f00, 0x1100, 0x0d00, 0x0800, 0x0e00, 0x1600, 0x0d00, 0x0900, 0x0900, 0x0100, 0x0200, 0x0000, 0xebff,
-0xfbff, 0x0200, 0xdeff, 0xf8ff, 0x0c00, 0xf8ff, 0xefff, 0x0100, 0x0000, 0x0200, 0x0500, 0x0f00, 0x1900, 0x2400, 0x2d00, 0x1b00,
-0x1500, 0x1b00, 0x1e00, 0x1200, 0x0100, 0x0000, 0xfeff, 0x0200, 0x0400, 0xfeff, 0xfaff, 0x0200, 0x0b00, 0x1d00, 0x2e00, 0x0100,
-0xf7ff, 0x0d00, 0x0300, 0xf7ff, 0xfbff, 0xf5ff, 0xeaff, 0xe8ff, 0xc9ff, 0xccff, 0xe2ff, 0xe2ff, 0xdeff, 0xe5ff, 0xf0ff, 0xfaff,
-0x0900, 0x0700, 0xe8ff, 0xedff, 0x0300, 0xfdff, 0xf3ff, 0xf8ff, 0x0e00, 0x0b00, 0x1800, 0x1200, 0x0100, 0x0f00, 0x1300, 0x1100,
-0x0e00, 0x1700, 0x1500, 0x0800, 0x0500, 0xf1ff, 0xe5ff, 0xe3ff, 0xd9ff, 0xceff, 0xc6ff, 0xbeff, 0xe5ff, 0xf2ff, 0xebff, 0xf1ff,
-0x0200, 0xffff, 0x0900, 0x1000, 0x1000, 0x1300, 0x2a00, 0x3700, 0x2c00, 0x3000, 0x3000, 0x2300, 0x2100, 0x2500, 0x1d00, 0x1700,
-0x1b00, 0x1800, 0x1800, 0x1900, 0x0f00, 0x0a00, 0x1300, 0x1e00, 0x1600, 0x0f00, 0xffff, 0x0200, 0xf2ff, 0xe3ff, 0xdfff, 0xdbff,
-0xd5ff, 0xc2ff, 0xb8ff, 0xb3ff, 0xbaff, 0xc4ff, 0xc9ff, 0xd1ff, 0xe4ff, 0xfcff, 0xfbff, 0xfeff, 0x0c00, 0x0c00, 0x1300, 0x2200,
-0x2300, 0x2100, 0x2b00, 0x3700, 0x2c00, 0x2d00, 0x2d00, 0x2300, 0x2800, 0x2300, 0x1300, 0x1800, 0x1000, 0xedff, 0xe1ff, 0xd6ff,
-0xbcff, 0xb8ff, 0xb3ff, 0x98ff, 0x9bff, 0xb7ff, 0xcfff, 0xd6ff, 0xe5ff, 0xecff, 0xf5ff, 0x0000, 0x0600, 0x1600, 0x1100, 0x1a00,
-0x3100, 0x3700, 0x3800, 0x3700, 0x3b00, 0x3900, 0x3700, 0x3200, 0x3400, 0x3600, 0x2e00, 0x2800, 0x2700, 0x1e00, 0x1800, 0x1800,
-0x1000, 0x1400, 0x0900, 0xfcff, 0xf7ff, 0xf1ff, 0xe4ff, 0xd7ff, 0xd7ff, 0xd2ff, 0xc1ff, 0xc1ff, 0xc8ff, 0xc3ff, 0xc5ff, 0xd6ff,
-0xddff, 0xdfff, 0xf0ff, 0x0000, 0x0300, 0x0300, 0x0900, 0x0a00, 0x1700, 0x2200, 0x1700, 0x2000, 0x3100, 0x3200, 0x3300, 0x2e00,
-0x2800, 0x1d00, 0x2600, 0x2200, 0x1800, 0x1300, 0x0200, 0xf0ff, 0xd3ff, 0xc8ff, 0xc0ff, 0xbbff, 0xbbff, 0xb4ff, 0xaaff, 0xbaff,
-0xd7ff, 0xe9ff, 0xf2ff, 0xfcff, 0x0500, 0x1000, 0x1900, 0x1a00, 0x2100, 0x1b00, 0x1d00, 0x2a00, 0x1d00, 0x1000, 0x0b00, 0x0c00,
-0x0b00, 0x0600, 0x0100, 0x0400, 0x0900, 0x0900, 0x0600, 0x0500, 0x0800, 0x0f00, 0x1100, 0xfcff, 0x0900, 0x0c00, 0x0400, 0x0500,
-0x0000, 0xf8ff, 0xf3ff, 0xf7ff, 0xefff, 0xe7ff, 0xeeff, 0xf1ff, 0xf2ff, 0xf5ff, 0xfbff, 0xfdff, 0xffff, 0x0000, 0x0100, 0x0000,
-0xfeff, 0xffff, 0x0000, 0x0000, 0x0100, 0xffff, 0x0000, 0x0400, 0x0500, 0x0200, 0xffff, 0x0000, 0xfeff, 0xfcff, 0xfbff, 0xf7ff,
-0xf3ff, 0xf1ff, 0xf6ff, 0xf1ff, 0xf4ff, 0xf7ff, 0xfaff, 0xfeff, 0x0700, 0x0e00, 0x1300, 0x1e00, 0x2000, 0x2200, 0x2000, 0x2200,
-0x1d00, 0x1c00, 0x1d00, 0x1b00, 0x1600, 0x1b00, 0x1900, 0x1200, 0x0d00, 0x0a00, 0x0500, 0x0000, 0xebff, 0xddff, 0xe1ff, 0xe0ff,
-0xddff, 0xdcff, 0xdeff, 0xdeff, 0xe6ff, 0xebff, 0xeeff, 0xf4ff, 0xffff, 0x0100, 0x0a00, 0x0b00, 0x0100, 0x0600, 0x1600, 0x0e00,
-0x0a00, 0x1100, 0x1500, 0x1000, 0x1000, 0x0d00, 0x0b00, 0x0900, 0x0500, 0xfbff, 0xffff, 0x0200, 0x0000, 0x0100, 0x0100, 0x0200,
-0xfbff, 0x0000, 0xfaff, 0xf4ff, 0xedff, 0xedff, 0xe9ff, 0xe4ff, 0xe2ff, 0xdeff, 0xdbff, 0xe0ff, 0xe0ff, 0xe3ff, 0xe9ff, 0xf3ff,
-0xf7ff, 0x0700, 0x0b00, 0x0000, 0x0f00, 0x1b00, 0x1700, 0x1600, 0x2100, 0x2600, 0x2700, 0x2e00, 0x2600, 0x2300, 0x2000, 0x1800,
-0x0e00, 0x0b00, 0x0200, 0x0300, 0xf3ff, 0xe2ff, 0xe0ff, 0xe0ff, 0xe1ff, 0xdeff, 0xe3ff, 0xe4ff, 0xf2ff, 0xf1ff, 0xfcff, 0xf9ff,
-0xf8ff, 0x0000, 0x0300, 0x0900, 0x0a00, 0x0e00, 0x0300, 0x0600, 0x0400, 0x0400, 0x0100, 0x0200, 0x0000, 0x0000, 0xffff, 0xfcff,
-0x0100, 0x0100, 0x0300, 0x0400, 0x0800, 0x0500, 0x0500, 0x0000, 0xfaff, 0xffff, 0x0100, 0xfcff, 0xfeff, 0x0000, 0xfcff, 0xf6ff,
-0xf5ff, 0xf3ff, 0xf3ff, 0xf0ff, 0xf7ff, 0xfcff, 0x0100, 0x0e00, 0x1800, 0x1900, 0x1d00, 0x2800, 0x2400, 0x2000, 0x2400, 0x2000,
-0x1400, 0x0d00, 0x0000, 0xf9ff, 0xeeff, 0xe7ff, 0xe6ff, 0xe3ff, 0xe0ff, 0xdbff, 0xe6ff, 0xeeff, 0xf4ff, 0xfdff, 0xfeff, 0xffff,
-0x0000, 0x0400, 0x0000, 0x0500, 0x0500, 0x0900, 0x0500, 0x0600, 0x0c00, 0x0d00, 0x1200, 0x0c00, 0x0d00, 0x0a00, 0x0d00, 0x0b00,
-0x0500, 0x0100, 0x0100, 0xfeff, 0xfdff, 0xfaff, 0xfaff, 0xfaff, 0xfbff, 0xf9ff, 0xf8ff, 0xf8ff, 0xf7ff, 0xf8ff, 0xf6ff, 0xf3ff,
-0xf8ff, 0xf6ff, 0xf4ff, 0xf2ff, 0xf1ff, 0xefff, 0xf5ff, 0xf3ff, 0xf6ff, 0xfcff, 0xfdff, 0xfcff, 0xffff, 0x0100, 0x0000, 0x0000,
-0x0400, 0x1000, 0x1000, 0x1300, 0x1700, 0x1e00, 0x1400, 0x1200, 0x1400, 0x0e00, 0x1400, 0x1100, 0x0600, 0xfbff, 0xf3ff, 0xe9ff,
-0xebff, 0xe8ff, 0xe2ff, 0xe7ff, 0xebff, 0xf1ff, 0xf5ff, 0xfeff, 0x0100, 0xffff, 0xfaff, 0xfdff, 0xfeff, 0xfeff, 0xfeff, 0xffff,
-0x0900, 0x0c00, 0x1100, 0x1400, 0x1100, 0x1200, 0x0d00, 0x0b00, 0x0f00, 0x0f00, 0x0a00, 0x0600, 0xfeff, 0x0000, 0xfeff, 0xf9ff,
-0xfcff, 0xfaff, 0xf8ff, 0xfbff, 0xfeff, 0xf9ff, 0xfcff, 0xf7ff, 0xfbff, 0xf5ff, 0xfcff, 0x0900, 0x0000, 0x0a00, 0x0600, 0xfeff,
-0xfbff, 0x1700, 0x1000, 0x0800, 0x1100, 0x0800, 0xf2ff, 0x0400, 0x0300, 0x0000, 0x1d00, 0x1b00, 0x0b00, 0xf1ff, 0xd8ff, 0xddff,
-0xeeff, 0xdfff, 0xd0ff, 0xf0ff, 0xf3ff, 0xf4ff, 0x0300, 0x1000, 0xf9ff, 0xf3ff, 0x1000, 0x1e00, 0x0e00, 0xfdff, 0xfaff, 0xfdff,
-0x1100, 0xfeff, 0x1d00, 0x3100, 0x0300, 0xf8ff, 0x0c00, 0x1700, 0x1300, 0x0200, 0xfdff, 0x0900, 0x0800, 0xf8ff, 0xf9ff, 0xfaff,
-0xf3ff, 0x0400, 0xfcff, 0xf5ff, 0x0100, 0xfaff, 0xe3ff, 0xe4ff, 0xf8ff, 0x0000, 0x0300, 0xf1ff, 0xe1ff, 0x0000, 0xf7ff, 0xf4ff,
-0xefff, 0xdfff, 0x0900, 0x1600, 0xe0ff, 0xf5ff, 0x1500, 0x0900, 0xfdff, 0x0300, 0x1200, 0x1900, 0xffff, 0x0e00, 0x3e00, 0x3400,
-0xe3ff, 0xfbff, 0x2c00, 0xfdff, 0xe5ff, 0x0300, 0x0800, 0x0200, 0xe5ff, 0xe0ff, 0x0900, 0x1500, 0xdeff, 0xe1ff, 0xf8ff, 0xe0ff,
-0xddff, 0x1500, 0x1f00, 0xecff, 0x0c00, 0x6aff, 0x0700, 0x2600, 0xecfe, 0xac01, 0x8500, 0xa9fe, 0xa200, 0x6700, 0xb8ff, 0x8f00,
-0xf9ff, 0xa1ff, 0xd100, 0xc1fe, 0x8900, 0x4a01, 0x6dfe, 0xf9ff, 0x1301, 0xb1ff, 0xbaff, 0xac00, 0x1401, 0x7bfe, 0x16ff, 0x8e01,
-0x92ff, 0x03ff, 0x7202, 0xedff, 0x58fe, 0x6b00, 0x0300, 0xc6ff, 0x5600, 0xadff, 0xd5ff, 0xe800, 0x85ff, 0x16ff, 0xd000, 0x2600,
-0xacff, 0x3f00, 0x47fe, 0x6000, 0x3b02, 0xc1fe, 0x56fe, 0x3001, 0xc2ff, 0xfffe, 0xf4ff, 0x2400, 0x5000, 0x1f00, 0x38ff, 0x0200,
-0x6800, 0xc800, 0x45ff, 0xb1ff, 0xeb00, 0x0100, 0xaaff, 0x0f00, 0x7f00, 0x2400, 0x8d00, 0xa5ff, 0x0600, 0xa501, 0xa5ff, 0x67ff,
-0xb700, 0x0e00, 0xa6ff, 0xe1ff, 0x0c00, 0xf4ff, 0xf1ff, 0x29ff, 0x0cff, 0xb1ff, 0x2fff, 0xfffe, 0xe0ff, 0x1900, 0xe1ff, 0x1600,
-0x5b00, 0x6200, 0x7d00, 0x1f00, 0x1300, 0x6100, 0x4500, 0xf3ff, 0xb400, 0x7800, 0x5d00, 0x1600, 0x4500, 0x4700, 0x1200, 0x0a00,
-0xd5ff, 0x5a00, 0x3400, 0xf4ff, 0x3600, 0xbeff, 0xe1ff, 0x0300, 0xb6ff, 0xa5ff, 0xc2ff, 0x98ff, 0xc5ff, 0x2100, 0xdbff, 0x2d00,
-0x1400, 0xd4ff, 0x2e00, 0x0a00, 0xfaff, 0x0a00, 0x0300, 0xd9ff, 0xc3ff, 0x6600, 0x1d00, 0x80ff, 0x0700, 0x2300, 0x0eff, 0xacff,
-0x0500, 0xacff, 0x1400, 0x4600, 0x5000, 0x6400, 0xad00, 0x4900, 0x2c00, 0x7900, 0x3000, 0xc7ff, 0xbbff, 0x8cff, 0xa3ff, 0x5800,
-0xcfff, 0xddfe, 0x8fff, 0xc3ff, 0x78fe, 0x51ff, 0xceff, 0x62ff, 0x2b00, 0xbd00, 0x7300, 0xe000, 0x7901, 0x8900, 0x6e00, 0xf000,
-0x5100, 0xd5ff, 0xcfff, 0xacff, 0xe1ff, 0xc400, 0x71ff, 0xbffd, 0xacff, 0xfdff, 0x5dfe, 0x43ff, 0xa000, 0x9b00, 0xab00, 0x1f01,
-0x0b01, 0x7e01, 0x1f01, 0xddff, 0xfcff, 0x3200, 0x3fff, 0x16ff, 0x1500, 0xc7ff, 0xddfe, 0x64ff, 0xe6fe, 0x4efe, 0x26ff, 0x4dff,
-0x30ff, 0x2800, 0x2401, 0xe300, 0x6301, 0xdf01, 0xa801, 0xb001, 0x5701, 0xc500, 0x8100, 0x3600, 0xa7ff, 0xd6ff, 0x6100, 0x0eff,
-0x82fe, 0x9eff, 0xa8ff, 0x03ff, 0x97ff, 0x7300, 0x8200, 0x6600, 0x6000, 0x6700, 0x7c00, 0xdeff, 0x2fff, 0x57ff, 0x83ff, 0x26ff,
-0xf3fe, 0x37ff, 0x49ff, 0xe6fe, 0x04ff, 0x66ff, 0x8dff, 0xa6ff, 0x0100, 0x8300, 0xbc00, 0xf200, 0x2501, 0x6301, 0x6601, 0x2b01,
-0xed00, 0xbe00, 0x6400, 0x2400, 0x2f00, 0x0d00, 0xe0ff, 0xe5ff, 0xbeff, 0xc4ff, 0x0e00, 0x0600, 0xebff, 0xfbff, 0xd1ff, 0xa5ff,
-0x7eff, 0x48ff, 0x2dff, 0x35ff, 0x19ff, 0x62ff, 0x30ff, 0x40ff, 0xbfff, 0x6fff, 0x7eff, 0x0600, 0xe4ff, 0xbaff, 0x4000, 0xae00,
-0x8f00, 0x8500, 0xab00, 0xd500, 0xa900, 0x5800, 0x4d00, 0x4a00, 0x1f00, 0xe3ff, 0xd5ff, 0x0500, 0x0e00, 0x5eff, 0xbfff, 0x9500 };
diff --git a/codecs/slin_ulaw_ex.h b/codecs/slin_ulaw_ex.h
deleted file mode 100644 (file)
index 083acef..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*! \file
- * \brief slin_ulaw_ex.h --
- *
- *     Signed 16-bit audio data, 10 milliseconds worth at 8 kHz.
- *
- * Source: g723.example
- *
- * Copyright (C) 2001-2005, Digium Inc.
- *
- * Distributed under the terms of the GNU General Public License
- *
- */
-
-static signed short slin_ulaw_ex[] = {
-       0xcac0, 0xcdeb, 0xd116, 0xd441, 0xd76c, 0xda97, 0xddc2, 0xe0ed,
-       0x0000, 0x032b, 0x0656, 0x0981, 0x0cac, 0x0fd7, 0x1302, 0x162d,
-       0x1958, 0x1c83, 0x1fae, 0x22d9, 0x2604, 0x292f, 0x2c5a, 0x2f85,
-       0x32b0, 0x35db, 0x3906, 0x3c31, 0x3f5c, 0x4287, 0x45b2, 0x48dd,
-       0xb168, 0xb493, 0xb7be, 0xbae9, 0xbe14, 0xc13f, 0xc46a, 0xc795,
-       0xe418, 0xe743, 0xea6e, 0xed99, 0xf0c4, 0xf3ef, 0xf71a, 0xfa45,
-       0x9810, 0x9b3b, 0x9e66, 0xa191, 0xa4bc, 0xa7e7, 0xab12, 0xae3d,
-       0x4c08, 0x4f33, 0x525e, 0x5589, 0x58b4, 0x5bdf, 0x5f0a, 0x6235,
-       0x6560, 0x688b, 0x6bb6, 0x6ee1, 0x720c, 0x7537, 0x7862, 0x7b8d,
-       0x7eb8, 0x81e3, 0x850e, 0x8839, 0x8b64, 0x8e8f, 0x91ba, 0x94e5,
-};
diff --git a/codecs/speex_slin_ex.h b/codecs/speex_slin_ex.h
deleted file mode 100644 (file)
index 4047437..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/*! \file
-  * \brief Random Data data
-  *
-  * Source: speex.raw
-  *
-  * Copyright (C) 1999-2005, Digium Inc.
-  *
-  * Distributed under the terms of the GNU General Public License
-  *
-  */
-
-static unsigned char speex_slin_ex[] = {
-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 };
diff --git a/include/asterisk/slin.h b/include/asterisk/slin.h
new file mode 100644 (file)
index 0000000..c1f33b9
--- /dev/null
@@ -0,0 +1,115 @@
+/*
+ * Asterisk -- An open source telephony toolkit.
+ *
+ * Copyright (C) 2007, Digium, Inc.
+ *
+ * Russell Bryant <russell@digium.com>
+ *
+ * See http://www.asterisk.org for more information about
+ * the Asterisk project. Please do not directly contact
+ * any of the maintainers of this project for assistance;
+ * the project provides a web site, mailing lists and IRC
+ * channels for your use.
+ *
+ * This program is free software, distributed under the terms of
+ * the GNU General Public License Version 2. See the LICENSE file
+ * at the top of the source tree.
+ */
+
+static uint8_t ex_slin8[] = {
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static uint8_t ex_slin16[] = {
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static inline struct ast_frame *slin8_sample(void)
+{
+       static struct ast_frame f = {
+               .frametype = AST_FRAME_VOICE,
+               .subclass = AST_FORMAT_SLINEAR,
+               .datalen = sizeof(ex_slin8),
+               .samples = ARRAY_LEN(ex_slin8) / 2,
+               .mallocd = 0,
+               .offset = 0,
+               .src = __PRETTY_FUNCTION__,
+               .data.ptr = ex_slin8,
+       };
+
+       return &f;
+}
+
+static inline struct ast_frame *slin16_sample(void)
+{
+       static struct ast_frame f = {
+               .frametype = AST_FRAME_VOICE,
+               .subclass = AST_FORMAT_SLINEAR16,
+               .datalen = sizeof(ex_slin16),
+               .samples = ARRAY_LEN(ex_slin16) / 2,
+               .mallocd = 0,
+               .offset = 0,
+               .src = __PRETTY_FUNCTION__,
+               .data.ptr = ex_slin16,
+       };
+
+       return &f;
+}