From 740bdb429587d2959cdf377d9b0d4083093ba67d Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Fri, 5 Nov 2021 12:46:35 -0400 Subject: [PATCH] TT#136957 reset SSRC sequencers when going to transcoding Change-Id: I98110a3d298b4ef7884ddfe2fdc931b338d40dc7 --- daemon/codec.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/daemon/codec.c b/daemon/codec.c index 683212127..42cd04516 100644 --- a/daemon/codec.c +++ b/daemon/codec.c @@ -317,6 +317,10 @@ static void __make_passthrough_ssrc(struct codec_handler *handler) { handler->passthrough = 1; } +static void __reset_sequencer(void *p, void *dummy) { + struct ssrc_entry_call *s = p; + s->sequencer.seq = -1; +} static void __make_transcoder(struct codec_handler *handler, struct rtp_payload_type *dest, GHashTable *output_transcoders, int dtmf_payload_type, int pcm_dtmf_detect, int cn_payload_type) @@ -390,6 +394,8 @@ reset: g_atomic_int_inc(&stats_entry->num_transcoders); + ssrc_hash_foreach(handler->media->monologue->ssrc_hash, __reset_sequencer, NULL); + check_output:; // check if we have multiple decoders transcoding to the same output PT struct codec_handler *output_handler = NULL;