From 205f03db73193edca9ab214d691b33a783f2e6a9 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Thu, 6 Jul 2023 12:21:43 -0400 Subject: [PATCH] MT#56861 fix RTP header pointer When we're duplicating the packet contents, we must also update the RTP header pointer accordingly. Fixup for fa819e3a73 Change-Id: I66117b2ad15a9adfaabaa1dbc67179bb1817f5e9 --- daemon/codec.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/daemon/codec.c b/daemon/codec.c index fe23cbca6..3019ef664 100644 --- a/daemon/codec.c +++ b/daemon/codec.c @@ -1626,7 +1626,8 @@ static void codec_add_raw_packet_common(struct media_packet *mp, unsigned int cl if (mp->rtp && mp->ssrc_out) { ssrc_ctx_hold(mp->ssrc_out); p->ssrc_out = mp->ssrc_out; - p->rtp = mp->rtp; + if (!p->rtp) + p->rtp = mp->rtp; } g_queue_push_tail(&mp->packets_out, p); } @@ -1640,6 +1641,7 @@ static void codec_add_raw_packet_dup(struct media_packet *mp, unsigned int clock struct codec_packet *p = g_slice_alloc0(sizeof(*p)); str_init_dup_str(&p->s, &mp->raw); p->free_func = free; + p->rtp = (struct rtp_header *) p->s.s; codec_add_raw_packet_common(mp, clockrate, p); } static bool handler_silence_block(struct codec_handler *h, struct media_packet *mp) {