diff --git a/translate.c b/translate.c index 6433fc537638c4e2c5e019910819965fe5cd0803..2c69d5cc80e3ed5e417dd1b77870c6ae29e7f586 100755 --- a/translate.c +++ b/translate.c @@ -137,6 +137,7 @@ struct ast_frame *ast_translate(struct ast_trans_pvt *path, struct ast_frame *f, { struct ast_trans_pvt *p; struct ast_frame *out; + struct timeval delivery; p = path; /* Feed the first frame into the first translator */ p->step->framein(p->state, f); @@ -179,6 +180,8 @@ struct ast_frame *ast_translate(struct ast_trans_pvt *path, struct ast_frame *f, path->nextin.tv_sec++; } } + delivery.tv_sec = f->delivery.tv_sec; + delivery.tv_usec = f->delivery.tv_usec; if (consume) ast_frfree(f); while(p) { @@ -191,7 +194,7 @@ struct ast_frame *ast_translate(struct ast_trans_pvt *path, struct ast_frame *f, if (p->next) p->next->step->framein(p->next->state, out); else { - if (f->delivery.tv_sec || f->delivery.tv_usec) { + if (delivery.tv_sec || delivery.tv_usec) { /* Use next predicted outgoing timestamp */ out->delivery.tv_sec = path->nextout.tv_sec; out->delivery.tv_usec = path->nextout.tv_usec;