Changeset 1961 for pjproject/trunk/pjmedia/src/pjmedia/jbuf.c
- Timestamp:
- May 17, 2008 2:54:18 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjmedia/src/pjmedia/jbuf.c
r1942 r1961 25 25 #include <pj/assert.h> 26 26 #include <pj/log.h> 27 #include <pj/math.h> 27 28 #include <pj/string.h> 28 29 … … 67 68 int jb_max_prefetch; // Maximum allowable prefetch 68 69 int jb_status; // status is 'init' until the first 'put' operation 69 70 int jb_max_size; // Maximum frames buffered ever 70 pj_math_stat jb_delay; // Delay statistics of jitter buffer (in frame unit) 71 71 }; 72 72 … … 74 74 #define JB_STATUS_INITIALIZING 0 75 75 #define JB_STATUS_PROCESSING 1 76 77 #define PJ_ABS(x) ((x > 0) ? (x) : -(x))78 #define PJ_MAX(x, y) ((x > y) ? (x) : (y))79 #define PJ_MIN(x, y) ((x < y) ? (x) : (y))80 81 76 82 77 /* Enabling this would log the jitter buffer state about once per … … 314 309 jb->jb_max_count = max_count; 315 310 311 pj_math_stat_init(&jb->jb_delay); 312 316 313 *p_jb = jb; 317 314 return PJ_SUCCESS; … … 369 366 jb->jb_status = JB_STATUS_INITIALIZING; 370 367 jb->jb_max_hist_level = 0; 371 jb->jb_max_size = 0;372 368 373 369 jb_framelist_remove_head(&jb->jb_framelist, 374 370 jb_framelist_size(&jb->jb_framelist)); 371 372 pj_math_stat_init(&jb->jb_delay); 373 375 374 return PJ_SUCCESS; 376 375 } … … 389 388 /* Update jb_max_size */ 390 389 cur_size = jb_framelist_size(&jb->jb_framelist); 391 if (cur_size > jb->jb_max_size)392 jb->jb_max_size = cur_size;393 390 394 391 /* Only apply burst-level calculation on PUT operation since if VAD is … … 457 454 jb_framelist_remove_head(&jb->jb_framelist, diff); 458 455 456 pj_math_stat_update(&jb->jb_delay, cur_size - diff); 457 459 458 TRACE__((jb->name.ptr, 460 459 "JB shrinking %d frame(s), size=%d", diff, 461 460 jb_framelist_size(&jb->jb_framelist))); 461 } else { 462 pj_math_stat_update(&jb->jb_delay, cur_size); 462 463 } 463 464 … … 612 613 state->max_prefetch = jb->jb_max_prefetch; 613 614 state->size = jb_framelist_size(&jb->jb_framelist); 614 state->max_size = jb->jb_max_size; 615 state->avg_delay = jb->jb_delay.mean * jb->jb_frame_ptime; 616 state->min_delay = jb->jb_delay.min * jb->jb_frame_ptime; 617 state->max_delay = jb->jb_delay.max * jb->jb_frame_ptime; 618 state->dev_delay = pj_math_stat_get_stddev(&jb->jb_delay) * 619 jb->jb_frame_ptime; 615 620 616 621 return PJ_SUCCESS; 617 622 } 618
Note: See TracChangeset
for help on using the changeset viewer.