diff options
author | Nanang Izzuddin <nanang@teluu.com> | 2009-04-06 17:05:34 +0000 |
---|---|---|
committer | Nanang Izzuddin <nanang@teluu.com> | 2009-04-06 17:05:34 +0000 |
commit | bbdeaae143a7707d8dcf8a5ff77f06d342ea1393 (patch) | |
tree | 7f101218de16cc9c192997458e9a93259b6788d3 /pjmedia/include | |
parent | 0ed6c3bf457e0dbd887f8e1e4cb7154bbdb87ab1 (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.h | 15 |
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. */ }; |