- Timestamp:
- Dec 10, 2010 11:04:30 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/branches/projects/2.0-dev/pjsip-apps/src/pjsystest/systest.c
r3306 r3392 651 651 pjmedia_frame frm; 652 652 short *buf; 653 unsigned i, samples_per_frame, read, len;653 unsigned i, clock_rate, samples_per_frame, read, len; 654 654 unsigned start_pos; 655 655 pj_bool_t first; … … 661 661 *lat_max = 0; 662 662 663 samples_per_frame = wav->info.samples_per_frame; 663 samples_per_frame = PJMEDIA_PIA_SPF(&wav->info); 664 clock_rate = PJMEDIA_PIA_SRATE(&wav->info); 664 665 frm.buf = pj_pool_alloc(pool, samples_per_frame * 2); 665 666 frm.size = samples_per_frame * 2; … … 678 679 } 679 680 680 if (read < 2 * wav->info.clock_rate) {681 if (read < 2 * clock_rate) { 681 682 systest_perror("The WAV file is too short", PJ_SUCCESS); 682 683 return -1; … … 686 687 * (keypad press, etc.) 687 688 */ 688 pjmedia_zero_samples(buf, wav->info.clock_rate / 2);689 pjmedia_zero_samples(buf, clock_rate / 2); 689 690 690 691 /* Loop to calculate latency */ 691 692 start_pos = 0; 692 693 first = PJ_TRUE; 693 while (start_pos < len/2 - wav->info.clock_rate) {694 while (start_pos < len/2 - clock_rate) { 694 695 int max_signal = 0; 695 696 unsigned max_signal_pos = start_pos; … … 699 700 700 701 /* Get the largest signal in the next 0.7s */ 701 for (i=start_pos; i<start_pos + wav->info.clock_rate * 700 / 1000; ++i) {702 for (i=start_pos; i<start_pos + clock_rate * 700 / 1000; ++i) { 702 703 if (abs(buf[i]) > max_signal) { 703 704 max_signal = abs(buf[i]); … … 707 708 708 709 /* Advance 10ms from max_signal_pos */ 709 pos = max_signal_pos + 10 * wav->info.clock_rate / 1000;710 pos = max_signal_pos + 10 * clock_rate / 1000; 710 711 711 712 /* Get the largest signal in the next 800ms */ 712 713 max_signal = 0; 713 714 max_echo_pos = pos; 714 for (i=pos; i<pos+ wav->info.clock_rate * 8 / 10; ++i) {715 for (i=pos; i<pos+clock_rate * 8 / 10; ++i) { 715 716 if (abs(buf[i]) > max_signal) { 716 717 max_signal = abs(buf[i]); … … 719 720 } 720 721 721 lat = (max_echo_pos - max_signal_pos) * 1000 / wav->info.clock_rate;722 lat = (max_echo_pos - max_signal_pos) * 1000 / clock_rate; 722 723 723 724 #if 0 724 725 PJ_LOG(4,(THIS_FILE, "Signal at %dms, echo at %d ms, latency %d ms", 725 max_signal_pos * 1000 / wav->info.clock_rate,726 max_echo_pos * 1000 / wav->info.clock_rate,726 max_signal_pos * 1000 / clock_rate, 727 max_echo_pos * 1000 / clock_rate, 727 728 lat)); 728 729 #endif … … 737 738 /* Advance next loop */ 738 739 if (first) { 739 start_pos = max_signal_pos + wav->info.clock_rate * 9 / 10;740 start_pos = max_signal_pos + clock_rate * 9 / 10; 740 741 first = PJ_FALSE; 741 742 } else { 742 start_pos += wav->info.clock_rate;743 start_pos += clock_rate; 743 744 } 744 745 }
Note: See TracChangeset
for help on using the changeset viewer.