aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xtranslate.c6
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[])