From 3ed135b78b92452ef740eac399735098fb481ae5 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Mon, 14 Sep 2026 09:04:55 -0400 Subject: [PATCH] MT#65420 move marker bit to upper struct Change-Id: I93b78c2573665f2be73f1000242531cb1999906f --- daemon/codec.c | 13 ++++++------- lib/codeclib.h | 1 + 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/daemon/codec.c b/daemon/codec.c index 9666e5fbf..b82832cdb 100644 --- a/daemon/codec.c +++ b/daemon/codec.c @@ -239,8 +239,7 @@ struct transcode_packet { unsigned long ts; str *payload; struct codec_handler *handler; - bool marker:1, - bypass_seq:1; + bool bypass_seq; tc_code (*packet_func)(struct codec_ssrc_handler *, struct codec_ssrc_handler *, struct transcode_packet *, struct media_packet *); int (*dup_func)(struct codec_ssrc_handler *, struct codec_ssrc_handler *, struct transcode_packet *, @@ -2268,7 +2267,7 @@ static int __handler_func_sequencer(struct media_packet *mp, struct transcode_pa packet->payload = str_dup(&mp->payload); uint32_t packet_ts = ntohl(mp->rtp->timestamp); packet->ts = packet_ts; - packet->marker = (mp->rtp->m_pt & 0x80) ? true : false; + packet->p.marker = (mp->rtp->m_pt & 0x80) ? true : false; atomic64_inc_na(&ssrc_in->stats->packets); atomic64_add_na(&ssrc_in->stats->bytes, mp->payload.len); @@ -2666,11 +2665,11 @@ skip: memcpy(buf + sizeof(struct rtp_header), packet->payload->s, packet->payload->len); if (packet->bypass_seq) // inject original seq codec_output_rtp(mp, &ch->csch, packet->handler ? : h, buf, packet->payload->len, packet->ts, - (struct rtp_markers) { .marker = packet->marker }, + (struct rtp_markers) { .marker = packet->p.marker }, packet->p.seq, -1, payload_type, ts_delay); else // use our own sequencing input_ch->codec_output_rtp_seq(mp, &ch->csch, packet->handler ? : h, buf, packet->payload->len, packet->ts, - (struct rtp_markers) { .marker = packet->marker }, + (struct rtp_markers) { .marker = packet->p.marker }, payload_type, ts_delay); mp->ssrc_out->seq_diff++; @@ -2793,7 +2792,7 @@ static tc_code packet_dtmf(struct codec_ssrc_handler *ch, struct codec_ssrc_hand dup->bypass_seq = false; dup->ts = ts; if (is_dtmf == 1) - dup->marker = true; + dup->p.marker = true; tc_code ret = TCC_OK; @@ -4880,7 +4879,7 @@ static tc_code __rtp_decode_direct(struct codec_ssrc_handler *ch, struct codec_s packet->payload, packet->ts, &mp->ptime, - packet->marker, + packet->p.marker, ch->handler->packet_decoded, ch, mp); code = ret == 0 ? TCC_OK : TCC_ERR; diff --git a/lib/codeclib.h b/lib/codeclib.h index b1db1e743..ae6d6d4d2 100644 --- a/lib/codeclib.h +++ b/lib/codeclib.h @@ -422,6 +422,7 @@ struct encoder_s { struct seq_packet_s { int seq; + bool marker; }; struct packet_sequencer_s { seq_packet_t *packets[128]; // should be 2^n