mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-02 19:16:15 +00:00
Merged revisions 65877 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r65877 | qwell | 2007-05-24 11:14:02 -0400 (Thu, 24 May 2007) | 4 lines Fix handling of zero-length frames when a codec is capable of native PLC. Issue 9183, patch by Mihai. ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@65903 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1 +1 @@
|
||||
30
|
||||
31
|
||||
|
@@ -203,6 +203,7 @@ static struct ast_translator ilbctolin = {
|
||||
.sample = ilbctolin_sample,
|
||||
.desc_size = sizeof(struct ilbc_coder_pvt),
|
||||
.buf_size = BUFFER_SAMPLES * 2,
|
||||
.native_plc = 1,
|
||||
};
|
||||
|
||||
static struct ast_translator lintoilbc = {
|
||||
|
@@ -358,6 +358,7 @@ static struct ast_translator speextolin = {
|
||||
.desc_size = sizeof(struct speex_coder_pvt),
|
||||
.buffer_samples = BUFFER_SAMPLES,
|
||||
.buf_size = BUFFER_SAMPLES * 2,
|
||||
.native_plc = 1,
|
||||
};
|
||||
|
||||
static struct ast_translator lintospeex = {
|
||||
|
@@ -104,6 +104,7 @@ struct ast_translator {
|
||||
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 native_plc; /*!< true if the translator can do native plc */
|
||||
|
||||
struct ast_module *module; /* opaque reference to the parent module */
|
||||
|
||||
|
@@ -174,7 +174,9 @@ static int framein(struct ast_trans_pvt *pvt, struct ast_frame *f)
|
||||
pvt->samples += l;
|
||||
pvt->datalen = pvt->samples * 2; /* SLIN has 2bytes for 1sample */
|
||||
}
|
||||
return 0;
|
||||
/* We don't want generic PLC. If the codec has native PLC, then do that */
|
||||
if (!pvt->t->native_plc)
|
||||
return 0;
|
||||
}
|
||||
if (pvt->samples + f->samples > pvt->t->buffer_samples) {
|
||||
ast_log(LOG_WARNING, "Out of buffer space\n");
|
||||
|
Reference in New Issue
Block a user