uint16_t bad_seq; /* tentatively next expected sequence for resync */
uint16_t max_seq; /* next expected sequence */
+ uint16_t last_seq; /* sequence of the last dequeued packet */
block_t *blocks; /* re-ordered blocks queue */
void *opaque[0]; /* Per-source private payload data */
};
source->ssrc = ssrc;
source->max_seq = source->bad_seq = init_seq;
+ source->last_seq = init_seq - 1;
source->blocks = NULL;
/* Initializes all payload */
src->blocks = block->p_next;
block->p_next = NULL;
+ /* Discontinuity detection */
+ if (((src->last_seq + 1) & 0xffff) != rtp_seq (block))
+ block->i_flags |= BLOCK_FLAG_DISCONTINUITY;
+ src->last_seq = rtp_seq (block);
+
/* Match the payload type */
const rtp_pt_t *pt = NULL;
void *pt_data = NULL;