[asterisk-commits] mmichelson: branch 1.4 r267539 - in /branches/1.4: codecs/ include/asterisk/ ...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Thu Jun 3 12:39:21 CDT 2010
Author: mmichelson
Date: Thu Jun 3 12:39:18 2010
New Revision: 267539
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=267539
Log:
1.4 version of the dead PLC code fix.
Modified:
branches/1.4/codecs/codec_adpcm.c
branches/1.4/codecs/codec_alaw.c
branches/1.4/codecs/codec_dahdi.c
branches/1.4/codecs/codec_g726.c
branches/1.4/codecs/codec_gsm.c
branches/1.4/codecs/codec_lpc10.c
branches/1.4/codecs/codec_ulaw.c
branches/1.4/include/asterisk/translate.h
branches/1.4/main/translate.c
Modified: branches/1.4/codecs/codec_adpcm.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.4/codecs/codec_adpcm.c?view=diff&rev=267539&r1=267538&r2=267539
==============================================================================
--- branches/1.4/codecs/codec_adpcm.c (original)
+++ branches/1.4/codecs/codec_adpcm.c Thu Jun 3 12:39:18 2010
@@ -335,7 +335,6 @@
.desc_size = sizeof(struct adpcm_decoder_pvt),
.buffer_samples = BUFFER_SAMPLES,
.buf_size = BUFFER_SAMPLES * 2,
- .plc_samples = 160,
};
static struct ast_translator lintoadpcm = {
@@ -350,26 +349,9 @@
.buf_size = BUFFER_SAMPLES/ 2, /* 2 samples per byte */
};
-static void parse_config(void)
-{
- struct ast_config *cfg = ast_config_load("codecs.conf");
- struct ast_variable *var;
- if (cfg == NULL)
- return;
- for (var = ast_variable_browse(cfg, "plc"); var ; var = var->next) {
- if (!strcasecmp(var->name, "genericplc")) {
- adpcmtolin.useplc = ast_true(var->value) ? 1 : 0;
- if (option_verbose > 2)
- ast_verbose(VERBOSE_PREFIX_3 "codec_adpcm: %susing generic PLC\n", adpcmtolin.useplc ? "" : "not ");
- }
- }
- ast_config_destroy(cfg);
-}
-
/*! \brief standard module glue */
static int reload(void)
{
- parse_config();
return 0;
}
@@ -387,7 +369,6 @@
{
int res;
- parse_config();
res = ast_register_translator(&adpcmtolin);
if (!res)
res = ast_register_translator(&lintoadpcm);
Modified: branches/1.4/codecs/codec_alaw.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.4/codecs/codec_alaw.c?view=diff&rev=267539&r1=267538&r2=267539
==============================================================================
--- branches/1.4/codecs/codec_alaw.c (original)
+++ branches/1.4/codecs/codec_alaw.c Thu Jun 3 12:39:18 2010
@@ -121,7 +121,6 @@
.sample = alawtolin_sample,
.buffer_samples = BUFFER_SAMPLES,
.buf_size = BUFFER_SAMPLES * 2,
- .plc_samples = 160,
};
static struct ast_translator lintoalaw = {
@@ -134,27 +133,10 @@
.buf_size = BUFFER_SAMPLES,
};
-static void parse_config(void)
-{
- struct ast_variable *var;
- struct ast_config *cfg = ast_config_load("codecs.conf");
- if (!cfg)
- return;
- for (var = ast_variable_browse(cfg, "plc"); var; var = var->next) {
- if (!strcasecmp(var->name, "genericplc")) {
- alawtolin.useplc = ast_true(var->value) ? 1 : 0;
- if (option_verbose > 2)
- ast_verbose(VERBOSE_PREFIX_3 "codec_alaw: %susing generic PLC\n", alawtolin.useplc ? "" : "not ");
- }
- }
- ast_config_destroy(cfg);
-}
-
/*! \brief standard module stuff */
static int reload(void)
{
- parse_config();
return 0;
}
@@ -172,7 +154,6 @@
{
int res;
- parse_config();
res = ast_register_translator(&alawtolin);
if (!res)
res = ast_register_translator(&lintoalaw);
Modified: branches/1.4/codecs/codec_dahdi.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.4/codecs/codec_dahdi.c?view=diff&rev=267539&r1=267538&r2=267539
==============================================================================
--- branches/1.4/codecs/codec_dahdi.c (original)
+++ branches/1.4/codecs/codec_dahdi.c Thu Jun 3 12:39:18 2010
@@ -64,8 +64,6 @@
#define G723_SAMPLES 240
#define G729_SAMPLES 160
-
-static unsigned int global_useplc = 0;
static struct channel_usage {
int total;
@@ -513,29 +511,14 @@
if (is_encoder(zt)) {
zt->t.framein = dahdi_encoder_framein;
zt->t.frameout = dahdi_encoder_frameout;
-#if 0
- zt->t.buffer_samples = 0;
-#endif
} else {
zt->t.framein = dahdi_decoder_framein;
zt->t.frameout = dahdi_decoder_frameout;
-#if 0
- if (AST_FORMAT_G723_1 == zt->t.srcfmt) {
- zt->t.plc_samples = G723_SAMPLES;
- } else {
- zt->t.plc_samples = G729_SAMPLES;
- }
- zt->t.buffer_samples = zt->t.plc_samples * 8;
-#endif
}
zt->t.destroy = dahdi_destroy;
zt->t.buffer_samples = 0;
zt->t.newpvt = dahdi_new;
zt->t.sample = fakesrc_sample;
-#if 0
- zt->t.useplc = global_useplc;
-#endif
- zt->t.useplc = 0;
zt->t.native_plc = 0;
zt->t.desc_size = sizeof(struct codec_dahdi_pvt);
@@ -585,26 +568,6 @@
free(cur);
}
AST_LIST_UNLOCK(&translators);
-}
-
-static void parse_config(void)
-{
- struct ast_variable *var;
- struct ast_config *cfg = ast_config_load("codecs.conf");
-
- if (!cfg)
- return;
-
- for (var = ast_variable_browse(cfg, "plc"); var; var = var->next) {
- if (!strcasecmp(var->name, "genericplc")) {
- global_useplc = ast_true(var->value);
- if (option_verbose > 2)
- ast_verbose(VERBOSE_PREFIX_3 "codec_zap: %susing generic PLC\n",
- global_useplc ? "" : "not ");
- }
- }
-
- ast_config_destroy(cfg);
}
static void build_translators(struct format_map *map, unsigned int dstfmts, unsigned int srcfmts)
@@ -681,15 +644,6 @@
static int reload(void)
{
- struct translator *cur;
-
- parse_config();
-
- AST_LIST_LOCK(&translators);
- AST_LIST_TRAVERSE(&translators, cur, entry)
- cur->t.useplc = global_useplc;
- AST_LIST_UNLOCK(&translators);
-
return 0;
}
@@ -704,7 +658,6 @@
static int load_module(void)
{
ast_ulaw_init();
- parse_config();
find_transcoders();
ast_cli_register_multiple(cli, sizeof(cli) / sizeof(cli[0]));
Modified: branches/1.4/codecs/codec_g726.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.4/codecs/codec_g726.c?view=diff&rev=267539&r1=267538&r2=267539
==============================================================================
--- branches/1.4/codecs/codec_g726.c (original)
+++ branches/1.4/codecs/codec_g726.c Thu Jun 3 12:39:18 2010
@@ -818,7 +818,6 @@
.desc_size = sizeof(struct g726_coder_pvt),
.buffer_samples = BUFFER_SAMPLES,
.buf_size = BUFFER_SAMPLES * 2,
- .plc_samples = 160,
};
static struct ast_translator lintog726 = {
@@ -843,7 +842,6 @@
.desc_size = sizeof(struct g726_coder_pvt),
.buffer_samples = BUFFER_SAMPLES,
.buf_size = BUFFER_SAMPLES * 2,
- .plc_samples = 160,
};
static struct ast_translator lintog726aal2 = {
@@ -858,28 +856,8 @@
.buf_size = BUFFER_SAMPLES / 2,
};
-static void parse_config(void)
-{
- struct ast_variable *var;
- struct ast_config *cfg = ast_config_load("codecs.conf");
-
- if (!cfg)
- return;
- for (var = ast_variable_browse(cfg, "plc"); var; var = var->next) {
- if (!strcasecmp(var->name, "genericplc")) {
- g726tolin.useplc = ast_true(var->value) ? 1 : 0;
- if (option_verbose > 2)
- ast_verbose(VERBOSE_PREFIX_3 "codec_g726: %susing generic PLC\n",
- g726tolin.useplc ? "" : "not ");
- }
- }
- ast_config_destroy(cfg);
-}
-
static int reload(void)
{
- parse_config();
-
return 0;
}
@@ -899,9 +877,6 @@
static int load_module(void)
{
int res = 0;
-
-
- parse_config();
res |= ast_register_translator(&g726tolin);
res |= ast_register_translator(&lintog726);
Modified: branches/1.4/codecs/codec_gsm.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.4/codecs/codec_gsm.c?view=diff&rev=267539&r1=267538&r2=267539
==============================================================================
--- branches/1.4/codecs/codec_gsm.c (original)
+++ branches/1.4/codecs/codec_gsm.c Thu Jun 3 12:39:18 2010
@@ -218,7 +218,6 @@
.buffer_samples = BUFFER_SAMPLES,
.buf_size = BUFFER_SAMPLES * 2,
.desc_size = sizeof (struct gsm_translator_pvt ),
- .plc_samples = GSM_SAMPLES,
};
static struct ast_translator lintogsm = {
@@ -234,27 +233,9 @@
.buf_size = (BUFFER_SAMPLES * GSM_FRAME_LEN + GSM_SAMPLES - 1)/GSM_SAMPLES,
};
-
-static void parse_config(void)
-{
- struct ast_variable *var;
- struct ast_config *cfg = ast_config_load("codecs.conf");
- if (!cfg)
- return;
- for (var = ast_variable_browse(cfg, "plc"); var; var = var->next) {
- if (!strcasecmp(var->name, "genericplc")) {
- gsmtolin.useplc = ast_true(var->value) ? 1 : 0;
- if (option_verbose > 2)
- ast_verbose(VERBOSE_PREFIX_3 "codec_gsm: %susing generic PLC\n", gsmtolin.useplc ? "" : "not ");
- }
- }
- ast_config_destroy(cfg);
-}
-
/*! \brief standard module glue */
static int reload(void)
{
- parse_config();
return 0;
}
@@ -273,7 +254,6 @@
{
int res;
- parse_config();
res = ast_register_translator(&gsmtolin);
if (!res)
res=ast_register_translator(&lintogsm);
Modified: branches/1.4/codecs/codec_lpc10.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.4/codecs/codec_lpc10.c?view=diff&rev=267539&r1=267538&r2=267539
==============================================================================
--- branches/1.4/codecs/codec_lpc10.c (original)
+++ branches/1.4/codecs/codec_lpc10.c Thu Jun 3 12:39:18 2010
@@ -243,7 +243,6 @@
.sample = lpc10tolin_sample,
.desc_size = sizeof(struct lpc10_coder_pvt),
.buffer_samples = BUFFER_SAMPLES,
- .plc_samples = LPC10_SAMPLES_PER_FRAME,
.buf_size = BUFFER_SAMPLES * 2,
};
@@ -261,27 +260,8 @@
.buf_size = LPC10_BYTES_IN_COMPRESSED_FRAME * (1 + BUFFER_SAMPLES / LPC10_SAMPLES_PER_FRAME),
};
-static void parse_config(void)
-{
- struct ast_variable *var;
- struct ast_config *cfg = ast_config_load("codecs.conf");
- if (!cfg)
- return;
- for (var = ast_variable_browse(cfg, "plc"); var; var = var->next) {
- if (!strcasecmp(var->name, "genericplc")) {
- lpc10tolin.useplc = ast_true(var->value) ? 1 : 0;
- if (option_verbose > 2)
- ast_verbose(VERBOSE_PREFIX_3 "codec_lpc10: %susing generic PLC\n",
- lpc10tolin.useplc ? "" : "not ");
- }
- }
- ast_config_destroy(cfg);
-}
-
static int reload(void)
{
- parse_config();
-
return 0;
}
@@ -300,7 +280,6 @@
{
int res;
- parse_config();
res=ast_register_translator(&lpc10tolin);
if (!res)
res=ast_register_translator(&lintolpc10);
Modified: branches/1.4/codecs/codec_ulaw.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.4/codecs/codec_ulaw.c?view=diff&rev=267539&r1=267538&r2=267539
==============================================================================
--- branches/1.4/codecs/codec_ulaw.c (original)
+++ branches/1.4/codecs/codec_ulaw.c Thu Jun 3 12:39:18 2010
@@ -130,7 +130,6 @@
.sample = ulawtolin_sample,
.buffer_samples = BUFFER_SAMPLES,
.buf_size = BUFFER_SAMPLES * 2,
- .plc_samples = 160,
};
/*!
@@ -147,26 +146,8 @@
.buffer_samples = BUFFER_SAMPLES,
};
-static void parse_config(void)
-{
- struct ast_variable *var;
- struct ast_config *cfg = ast_config_load("codecs.conf");
- if (!cfg)
- return;
- for (var = ast_variable_browse(cfg, "plc"); var; var = var->next) {
- if (!strcasecmp(var->name, "genericplc")) {
- ulawtolin.useplc = ast_true(var->value) ? 1 : 0;
- if (option_verbose > 2)
- ast_verbose(VERBOSE_PREFIX_3 "codec_ulaw: %susing generic PLC\n", ulawtolin.useplc ? "" : "not ");
- }
- }
- ast_config_destroy(cfg);
-}
-
static int reload(void)
{
- parse_config();
-
return 0;
}
@@ -184,7 +165,6 @@
{
int res;
- parse_config();
res = ast_register_translator(&ulawtolin);
if (!res)
res = ast_register_translator(&lintoulaw);
Modified: branches/1.4/include/asterisk/translate.h
URL: http://svnview.digium.com/svn/asterisk/branches/1.4/include/asterisk/translate.h?view=diff&rev=267539&r1=267538&r2=267539
==============================================================================
--- branches/1.4/include/asterisk/translate.h (original)
+++ branches/1.4/include/asterisk/translate.h Thu Jun 3 12:39:18 2010
@@ -60,10 +60,6 @@
* or deallocation, nor any locking, because all of this is done in
* the generic code.
*
- * Translators using generic plc (packet loss concealment) should
- * supply a non-zero plc_samples indicating the size (in samples)
- * of artificially generated frames and incoming data.
- * Generic plc is only available for dstfmt = SLINEAR
*/
struct ast_translator {
const char name[80]; /*!< Name of translator */
@@ -102,8 +98,8 @@
int buf_size;
int desc_size; /*!< size of private descriptor in pvt->pvt, if any */
- int plc_samples; /*!< set to the plc block size if used, 0 otherwise */
- int useplc; /*!< current status of plc, changed at runtime */
+ int plc_samples; /* Unused. Kept for ABI purposes */
+ int useplc; /* Unused. Kept for ABI purposes */
int native_plc; /*!< true if the translator can do native plc */
struct ast_module *module; /* opaque reference to the parent module */
Modified: branches/1.4/main/translate.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.4/main/translate.c?view=diff&rev=267539&r1=267538&r2=267539
==============================================================================
--- branches/1.4/main/translate.c (original)
+++ branches/1.4/main/translate.c Thu Jun 3 12:39:18 2010
@@ -94,22 +94,19 @@
/*!
* \brief Allocate the descriptor, required outbuf space,
- * and possibly also plc and desc.
+ * and possibly desc.
*/
static void *newpvt(struct ast_translator *t)
{
struct ast_trans_pvt *pvt;
int len;
- int useplc = t->plc_samples > 0 && t->useplc; /* cache, because it can change on the fly */
char *ofs;
/*
* compute the required size adding private descriptor,
- * plc, buffer, AST_FRIENDLY_OFFSET.
+ * buffer, AST_FRIENDLY_OFFSET.
*/
len = sizeof(*pvt) + t->desc_size;
- if (useplc)
- len += sizeof(plc_state_t);
if (t->buf_size)
len += AST_FRIENDLY_OFFSET + t->buf_size;
pvt = ast_calloc(1, len);
@@ -121,10 +118,6 @@
pvt->pvt = ofs;
ofs += t->desc_size;
}
- if (useplc) { /* then plc state */
- pvt->plc = (plc_state_t *)ofs;
- ofs += sizeof(plc_state_t);
- }
if (t->buf_size) /* finally buffer and header */
pvt->outbuf = ofs + AST_FRIENDLY_OFFSET;
/* call local init routine, if present */
@@ -146,10 +139,9 @@
ast_module_unref(t->module);
}
-/*! \brief framein wrapper, deals with plc and bound checks. */
+/*! \brief framein wrapper, deals with bound checks. */
static int framein(struct ast_trans_pvt *pvt, struct ast_frame *f)
{
- int16_t *dst = (int16_t *)pvt->outbuf;
int ret;
int samples = pvt->samples; /* initial value */
@@ -163,18 +155,8 @@
ast_log(LOG_WARNING, "no samples for %s\n", pvt->t->name);
}
if (pvt->t->buffer_samples) { /* do not pass empty frames to callback */
- if (f->datalen == 0) { /* perform PLC with nominal framesize of 20ms/160 samples */
- if (pvt->plc) {
- int l = pvt->t->plc_samples;
- if (pvt->samples + l > pvt->t->buffer_samples) {
- ast_log(LOG_WARNING, "Out of buffer space\n");
- return -1;
- }
- l = plc_fillin(pvt->plc, dst + pvt->samples, l);
- pvt->samples += l;
- pvt->datalen = pvt->samples * 2; /* SLIN has 2bytes for 1sample */
- }
- /* We don't want generic PLC. If the codec has native PLC, then do that */
+ if (f->datalen == 0) { /* perform native PLC if available */
+ /* If the codec has native PLC, then do that */
if (!pvt->t->native_plc)
return 0;
}
@@ -187,13 +169,6 @@
* it otherwise.
*/
ret = pvt->t->framein(pvt, f);
- /* possibly store data for plc */
- if (!ret && pvt->plc) {
- int l = pvt->t->plc_samples;
- if (pvt->samples < l)
- l = pvt->samples;
- plc_rx(pvt->plc, dst + pvt->samples - l, l);
- }
/* diagnostic ... */
if (pvt->samples == samples)
ast_log(LOG_WARNING, "%s did not update samples %d\n",
@@ -690,16 +665,7 @@
ast_log(LOG_WARNING, "Invalid translator path: (%s codec is not valid)\n", t->srcfmt == -1 ? "starting" : "ending");
return -1;
}
- if (t->plc_samples) {
- if (t->buffer_samples < t->plc_samples) {
- ast_log(LOG_WARNING, "plc_samples %d buffer_samples %d\n",
- t->plc_samples, t->buffer_samples);
- return -1;
- }
- if (t->dstfmt != powerof(AST_FORMAT_SLINEAR))
- ast_log(LOG_WARNING, "plc_samples %d format %x\n",
- t->plc_samples, t->dstfmt);
- }
+
if (t->srcfmt >= MAX_FORMAT) {
ast_log(LOG_WARNING, "Source format %s is larger than MAX_FORMAT\n", ast_getformatname(t->srcfmt));
return -1;
More information about the asterisk-commits
mailing list