summaryrefslogtreecommitdiff
path: root/pjmedia/include
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2009-04-06 17:05:34 +0000
committerNanang Izzuddin <nanang@teluu.com>2009-04-06 17:05:34 +0000
commitbbdeaae143a7707d8dcf8a5ff77f06d342ea1393 (patch)
tree7f101218de16cc9c192997458e9a93259b6788d3 /pjmedia/include
parent0ed6c3bf457e0dbd887f8e1e4cb7154bbdb87ab1 (diff)
Ticket #762: Major updates on jitter buffer:
- Updated loop condition in put_frame() to avoid possibility of infinite loop. - Added JB capabilities to handle sequence restart & jump. - Updated jitter calculation, e.g: reset max_hist_level after updating prefetch, avoid updating prefetch when burst level is exceeding max_burst. - Updated shrinking method to be less agressive (only shrink JB when JB size is twice larger than burst level). - Updated the way JB switching status from 'initializing' to 'processing' by waiting for some OP switch cycles. - Few simplifications in framelist process, e.g: replacing fields 'empty' & 'tail' with 'size'. - Minor updates: comments, shortened framelist field names, added some JB states for reporting/monitoring purpose. git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2578 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia/include')
-rw-r--r--pjmedia/include/pjmedia/jbuf.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/pjmedia/include/pjmedia/jbuf.h b/pjmedia/include/pjmedia/jbuf.h
index 0c9299cc..4088e359 100644
--- a/pjmedia/include/pjmedia/jbuf.h
+++ b/pjmedia/include/pjmedia/jbuf.h
@@ -66,19 +66,28 @@ typedef enum pjmedia_jb_frame_type pjmedia_jb_frame_type;
/**
- * This structure describes jitter buffer current status.
+ * This structure describes jitter buffer state.
*/
struct pjmedia_jb_state
{
+ /* Setting */
unsigned frame_size; /**< Individual frame size, in bytes. */
- unsigned prefetch; /**< Current prefetch value, in frames */
unsigned min_prefetch; /**< Minimum allowed prefetch, in frms. */
unsigned max_prefetch; /**< Maximum allowed prefetch, in frms. */
+
+ /* Status */
+ unsigned prefetch; /**< Current prefetch value, in frames */
unsigned size; /**< Current buffer size, in frames. */
+
+ /* Statistic */
unsigned avg_delay; /**< Average delay, in ms. */
unsigned min_delay; /**< Minimum delay, in ms. */
unsigned max_delay; /**< Maximum delay, in ms. */
- unsigned dev_delay; /**< Standard deviation of delay, in ms. */
+ unsigned dev_delay; /**< Standard deviation of delay, in ms.*/
+ unsigned avg_burst; /**< Average burst, in frames. */
+ unsigned lost; /**< Number of lost frames. */
+ unsigned discard; /**< Number of discarded frames. */
+ unsigned empty; /**< Number of empty on GET events. */
};