diff options
Diffstat (limited to 'translate.c')
-rwxr-xr-x | translate.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/translate.c b/translate.c index 0c5b1ddbf..2d1ab42f3 100755 --- a/translate.c +++ b/translate.c @@ -227,7 +227,7 @@ static void calc_cost(struct ast_translator *t) } gettimeofday(&start, NULL); /* Call the encoder until we've processed one second of time */ - while(sofar < 1000) { + while(sofar < 8000) { f = t->sample(); if (!f) { ast_log(LOG_WARNING, "Translator '%s' failed to produce a sample frame.\n", t->name); @@ -238,7 +238,7 @@ static void calc_cost(struct ast_translator *t) t->framein(pvt, f); ast_frfree(f); while((out = t->frameout(pvt))) { - sofar += out->timelen; + sofar += out->samples; ast_frfree(out); } } @@ -246,6 +246,8 @@ static void calc_cost(struct ast_translator *t) t->destroy(pvt); cost = (finish.tv_sec - start.tv_sec) * 1000 + (finish.tv_usec - start.tv_usec) / 1000; t->cost = cost; + if (!t->cost) + t->cost = 1; } static int show_translation(int fd, int argc, char *argv[]) |