From ed635a64600c0e5426804ac68664503211200115 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Thu, 9 Nov 2023 11:53:42 -0500 Subject: [PATCH] MT#55283 retain codec tracker status for answers In case of repeated answers without additional offer in between, we shouldn't reset the codec tracker status at the end of the codec answer routine, so that we end up with the same state during the next answer. Change-Id: I54f6136cc5684473553b4862c13ea9f4a3dcfe99 --- daemon/codec.c | 8 ++++++++ 1 file changed, 8 insertions(+) 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); }