diff --git a/daemon/codec.c b/daemon/codec.c index a429376eb..2108569cc 100644 --- a/daemon/codec.c +++ b/daemon/codec.c @@ -4629,6 +4629,13 @@ static struct codec_tracker *codec_tracker_init(void) { return NULL; #endif } +static void codec_tracker_move(struct codec_tracker **dst, struct codec_tracker **src) { +#ifdef WITH_TRANSCODING + codec_tracker_destroy(dst); + *dst = *src; + *src = NULL; +#endif +} static void codec_touched_real(struct codec_store *cs, struct rtp_payload_type *pt) { #ifdef WITH_TRANSCODING if (pt->codec_def && pt->codec_def->supplemental) @@ -5526,6 +5533,7 @@ void codec_store_answer(struct codec_store *dst, struct codec_store *src, struct } out: + codec_tracker_move(&dst->tracker, &orig_dst.tracker); codec_store_cleanup(&orig_dst); }