Merged revisions 111245 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r111245 | qwell | 2008-03-26 18:26:33 -0500 (Wed, 26 Mar 2008) | 9 lines

Remove excessive smoother optimization that was causing audio glitches (small "pops")
 after (about 200ms later) an "incorrectly" sized frame was received.

While it would be very nice to keep this as optimized as possible, it makes no sense
 for the smoother to be dropping random bits of audio like this.  Isn't that the
 whole point of a smoother?

Closes issue #12093.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@111246 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Jason Parker 2008-03-26 23:27:33 +00:00
parent 4c2531989a
commit f59c496a81
1 changed files with 1 additions and 17 deletions

View File

@ -85,7 +85,6 @@ struct ast_smoother {
int size;
int format;
int readdata;
int optimizablestream;
int flags;
float samplesperbyte;
struct ast_frame f;
@ -182,23 +181,8 @@ int __ast_smoother_feed(struct ast_smoother *s, struct ast_frame *f, int swap)
ast_swapcopy_samples(f->data, f->data, f->samples);
s->opt = f;
return 0;
} else {
s->optimizablestream++;
if (s->optimizablestream > 10) {
/* For the past 10 rounds, we have input and output
frames of the correct size for this smoother, yet
we were unable to optimize because there was still
some cruft left over. Lets just drop the cruft so
we can move to a fully optimized path */
if (swap)
ast_swapcopy_samples(f->data, f->data, f->samples);
s->len = 0;
s->opt = f;
return 0;
}
}
} else
s->optimizablestream = 0;
}
if (s->flags & AST_SMOOTHER_FLAG_G729) {
if (s->len % 10) {
ast_log(LOG_NOTICE, "Dropping extra frame of G.729 since we already have a VAD frame at the end\n");