]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-11954: JB: change complete frames marker
authorDragos Oancea <dragos@signalwire.com>
Tue, 5 Mar 2019 19:09:25 +0000 (19:09 +0000)
committerDragos Oancea <dragos@signalwire.com>
Thu, 25 Jul 2019 13:01:52 +0000 (13:01 +0000)
src/switch_jitterbuffer.c

index 8eabe61aba0e6017f4caf669f94ed5b2be49b96f..18e6f68ed026b9f3127470d773476a06dcd9ca40 100644 (file)
@@ -24,6 +24,7 @@
  * Contributor(s):
  *
  * Anthony Minessale II <anthm@freeswitch.org>
+ * Dragos Oancea <dragos@freeswitch.org>
  *
  * 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;
                }