diff --git a/daemon/codec.c b/daemon/codec.c index 26bb37a62..9417b8173 100644 --- a/daemon/codec.c +++ b/daemon/codec.c @@ -3777,14 +3777,11 @@ static bool __dtx_drift_drop(struct dtx_buffer *dtxb, unsigned long ts, return discard; } -static bool __dtx_handle_drift(struct dtx_buffer *dtxb, unsigned long ts, + +static bool (*__dtx_handle_drift)(struct dtx_buffer *dtxb, unsigned long ts, int64_t tv_diff, int64_t ts_diff, - struct codec_ssrc_handler *ch) -{ - if (rtpe_config.dtx_shift_us) - return __dtx_drift_shift(dtxb, ts, tv_diff, ts_diff, ch); - return __dtx_drift_drop(dtxb, ts, tv_diff, ts_diff, ch); -} + struct codec_ssrc_handler *ch); + static void __dtx_send_later(struct codec_timer *ct) { struct dtx_buffer *dtxb = (void *) ct; struct media_packet mp_copy = {0,}; @@ -6472,6 +6469,11 @@ void codecs_init(void) { if (tcc->preference) have_codec_preferences = true; } + + if (rtpe_config.dtx_shift_us) + __dtx_handle_drift = __dtx_drift_shift; + else + __dtx_handle_drift = __dtx_drift_drop; #endif } void codecs_cleanup(void) {