|
|
|
|
@ -2913,7 +2913,7 @@ static void __dtx_send_later(struct codec_timer *ct) {
|
|
|
|
|
dtxp = g_queue_peek_head(&dtxb->packets);
|
|
|
|
|
if (dtxp) {
|
|
|
|
|
// inspect head packet and check TS, see if it's ready to be decoded
|
|
|
|
|
ts = dtxp->packet->ts;
|
|
|
|
|
ts = dtxp->packet ? dtxp->packet->ts : dtxb->head_ts;
|
|
|
|
|
ts_diff = ts - dtxb->head_ts;
|
|
|
|
|
long long ts_diff_us = (long long) ts_diff * 1000000 / dtxb->clockrate;
|
|
|
|
|
|
|
|
|
|
@ -2944,10 +2944,13 @@ static void __dtx_send_later(struct codec_timer *ct) {
|
|
|
|
|
media_packet_copy(&dtxb->last_mp, &dtxp->mp);
|
|
|
|
|
media_packet_copy(&mp_copy, &dtxp->mp);
|
|
|
|
|
if (dtxb->head_ts)
|
|
|
|
|
ts_diff = dtxp->packet->ts - dtxb->head_ts;
|
|
|
|
|
ts_diff = dtxp->packet ? dtxp->packet->ts - dtxb->head_ts : 0;
|
|
|
|
|
else
|
|
|
|
|
ts_diff = dtxb->tspp; // first packet
|
|
|
|
|
ts = dtxb->head_ts = dtxp->packet->ts;
|
|
|
|
|
if (dtxp->packet)
|
|
|
|
|
ts = dtxb->head_ts = dtxp->packet->ts;
|
|
|
|
|
else
|
|
|
|
|
ts = dtxb->head_ts;
|
|
|
|
|
tv_diff = timeval_diff(&rtpe_now, &mp_copy.tv);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
|