|
|
|
@ -2751,7 +2751,7 @@ out: |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static bool __dtx_drift_shift(struct dtx_buffer *dtxb, struct dtx_packet *dtxp, unsigned long ts, |
|
|
|
static bool __dtx_drift_shift(struct dtx_buffer *dtxb, unsigned long ts, |
|
|
|
long tv_diff, long ts_diff, |
|
|
|
struct codec_ssrc_handler *ch) |
|
|
|
{ |
|
|
|
@ -2796,7 +2796,7 @@ static bool __dtx_drift_shift(struct dtx_buffer *dtxb, struct dtx_packet *dtxp, |
|
|
|
|
|
|
|
return discard; |
|
|
|
} |
|
|
|
static bool __dtx_drift_drop(struct dtx_buffer *dtxb, struct dtx_packet *dtxp, unsigned long ts, |
|
|
|
static bool __dtx_drift_drop(struct dtx_buffer *dtxb, unsigned long ts, |
|
|
|
long tv_diff, long ts_diff, |
|
|
|
struct codec_ssrc_handler *ch) |
|
|
|
{ |
|
|
|
@ -2832,15 +2832,13 @@ static bool __dtx_drift_drop(struct dtx_buffer *dtxb, struct dtx_packet *dtxp, u |
|
|
|
|
|
|
|
return discard; |
|
|
|
} |
|
|
|
static bool __dtx_handle_drift(struct dtx_buffer *dtxb, struct dtx_packet *dtxp, unsigned long ts, |
|
|
|
static bool __dtx_handle_drift(struct dtx_buffer *dtxb, unsigned long ts, |
|
|
|
long tv_diff, long ts_diff, |
|
|
|
struct codec_ssrc_handler *ch) |
|
|
|
{ |
|
|
|
if (!dtxp) |
|
|
|
return false; |
|
|
|
if (rtpe_config.dtx_shift) |
|
|
|
return __dtx_drift_shift(dtxb, dtxp, ts, tv_diff, ts_diff, ch); |
|
|
|
return __dtx_drift_drop(dtxb, dtxp, ts, tv_diff, ts_diff, ch); |
|
|
|
return __dtx_drift_shift(dtxb, ts, tv_diff, ts_diff, ch); |
|
|
|
return __dtx_drift_drop(dtxb, ts, tv_diff, ts_diff, ch); |
|
|
|
} |
|
|
|
static void __dtx_send_later(struct codec_timer *ct) { |
|
|
|
struct dtx_buffer *dtxb = (void *) ct; |
|
|
|
@ -2939,7 +2937,7 @@ static void __dtx_send_later(struct codec_timer *ct) { |
|
|
|
if (!dtxp) // we need to do DTX |
|
|
|
break; |
|
|
|
|
|
|
|
bool discard = __dtx_handle_drift(dtxb, dtxp, ts, tv_diff, ts_diff, ch); |
|
|
|
bool discard = __dtx_handle_drift(dtxb, ts, tv_diff, ts_diff, ch); |
|
|
|
|
|
|
|
if (!discard) |
|
|
|
break; |
|
|
|
|