From 5ffe28187f765ed5623adfd4eca3e4574e2c41be 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 (cherry picked from commit d0c59a3badf1b52756685be2e8fe2d9dbea9564f) --- daemon/codec.c | 8 ++++++++ 1 file changed, 8 insertions(+) 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); }