|
|
@ -975,14 +975,14 @@ static int ast_rtp_raw_write(struct ast_rtp_instance *instance, struct ast_frame
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
pred = rtp->lastotexttimestamp + frame->samples;
|
|
|
|
pred = rtp->lastotexttimestamp + frame->samples;
|
|
|
|
/* Re-calculate last TS */
|
|
|
|
/* Re-calculate last TS */
|
|
|
|
rtp->lastts = rtp->lastts + ms * 90;
|
|
|
|
rtp->lastts = rtp->lastts + ms;
|
|
|
|
/* If it's close to our prediction, go for it */
|
|
|
|
/* If it's close to our prediction, go for it */
|
|
|
|
if (ast_tvzero(frame->delivery)) {
|
|
|
|
if (ast_tvzero(frame->delivery)) {
|
|
|
|
if (abs(rtp->lastts - pred) < 7200) {
|
|
|
|
if (abs(rtp->lastts - pred) < 7200) {
|
|
|
|
rtp->lastts = pred;
|
|
|
|
rtp->lastts = pred;
|
|
|
|
rtp->lastotexttimestamp += frame->samples;
|
|
|
|
rtp->lastotexttimestamp += frame->samples;
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
ast_debug(3, "Difference is %d, ms is %d (%d), pred/ts/samples %d/%d/%d\n", abs(rtp->lastts - pred), ms, ms * 90, rtp->lastts, pred, frame->samples);
|
|
|
|
ast_debug(3, "Difference is %d, ms is %d, pred/ts/samples %d/%d/%d\n", abs(rtp->lastts - pred), ms, rtp->lastts, pred, frame->samples);
|
|
|
|
rtp->lastotexttimestamp = rtp->lastts;
|
|
|
|
rtp->lastotexttimestamp = rtp->lastts;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|