From f982b2b931cde9d82e8396d5d562cf17a3ee03c5 Mon Sep 17 00:00:00 2001 From: Dragos Oancea Date: Tue, 5 Mar 2019 19:09:25 +0000 Subject: [PATCH] FS-11954: JB: change complete frames marker --- src/switch_jitterbuffer.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/switch_jitterbuffer.c b/src/switch_jitterbuffer.c index 8eabe61aba..18e6f68ed0 100644 --- a/src/switch_jitterbuffer.c +++ b/src/switch_jitterbuffer.c @@ -24,6 +24,7 @@ * Contributor(s): * * Anthony Minessale II + * Dragos Oancea * * switch_jitterbuffer.c -- Audio/Video Jitter Buffer * @@ -51,6 +52,8 @@ typedef struct switch_jb_node_s { uint8_t bad_hits; struct switch_jb_node_s *prev; struct switch_jb_node_s *next; + /* used for counting the number of partial or complete frames currently in the JB */ + switch_bool_t complete_frame_mark; } switch_jb_node_t; struct switch_jb_s { @@ -300,8 +303,9 @@ static inline void hide_node(switch_jb_node_t *node, switch_bool_t pop) } if (switch_core_inthash_delete(jb->node_hash, node->packet.header.seq)) { - if (node->packet.header.version == 1 && jb->type == SJB_VIDEO) { + if (node->complete_frame_mark && jb->type == SJB_VIDEO) { jb->complete_frames--; + node->complete_frame_mark = FALSE; } } @@ -688,7 +692,7 @@ static inline void add_node(switch_jb_t *jb, switch_rtp_packet_t *packet, switch jb->packet_count = 0; } - node->packet.header.version = 1; + node->complete_frame_mark = TRUE; } else if (!jb->write_init) { jb->highest_wrote_ts = packet->header.ts; }