diff --git a/daemon/codec.c b/daemon/codec.c index 47157e934..8e1571659 100644 --- a/daemon/codec.c +++ b/daemon/codec.c @@ -4631,6 +4631,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) @@ -5528,6 +5535,7 @@ void codec_store_answer(struct codec_store *dst, struct codec_store *src, sdp_ng } out: + codec_tracker_move(&dst->tracker, &orig_dst.tracker); codec_store_cleanup(&orig_dst); }