diff options
Diffstat (limited to 'pjsip-apps/src/samples')
-rw-r--r-- | pjsip-apps/src/samples/debug.c | 2 | ||||
-rw-r--r-- | pjsip-apps/src/samples/sndinfo.c | 41 |
2 files changed, 41 insertions, 2 deletions
diff --git a/pjsip-apps/src/samples/debug.c b/pjsip-apps/src/samples/debug.c index 7e295392..44523301 100644 --- a/pjsip-apps/src/samples/debug.c +++ b/pjsip-apps/src/samples/debug.c @@ -27,5 +27,5 @@ * E.g.: * #include "playfile.c" */ -#include "resampleplay.c" +#include "playfile.c" diff --git a/pjsip-apps/src/samples/sndinfo.c b/pjsip-apps/src/samples/sndinfo.c index 7c9f599e..07e5df66 100644 --- a/pjsip-apps/src/samples/sndinfo.c +++ b/pjsip-apps/src/samples/sndinfo.c @@ -75,11 +75,37 @@ static void enum_devices(void) static int play_counter; static int rec_counter; +static int min_delay = 0xFFFF, max_delay; +static char play_delays[1000]; static pj_status_t play_cb(void *user_data, pj_uint32_t timestamp, void *output, unsigned size) { + static pj_time_val last_cb; + ++play_counter; + + if (last_cb.sec == 0 && last_cb.msec == 0) { + pj_gettimeofday(&last_cb); + } else { + pj_time_val now, saved; + int delay; + + pj_gettimeofday(&now); + saved = now; + PJ_TIME_VAL_SUB(now, last_cb); + delay = PJ_TIME_VAL_MSEC(now); + + if (delay < min_delay) + min_delay = delay; + if (delay > max_delay) + max_delay = delay; + + last_cb = saved; + + play_delays[play_counter-1] = delay; + } + return PJ_SUCCESS; } @@ -98,7 +124,7 @@ static void app_perror(const char *title, pj_status_t status) printf( "%s: %s (err=%d)\n", title, errmsg, status); } - + static int open_device(int dev_id, pjmedia_dir dir, int clock_rate, int nchannel, int bits) { @@ -106,6 +132,7 @@ static int open_device(int dev_id, pjmedia_dir dir, unsigned nsamples; pjmedia_snd_stream *strm; const char *dirtype; + unsigned i; switch (dir) { case PJMEDIA_DIR_CAPTURE: @@ -165,6 +192,18 @@ static int open_device(int dev_id, pjmedia_dir dir, } puts("Success."); + + printf("Delay: "); + for (i=0; i<play_counter; ++i) + printf("%d ", play_delays[i]); + + puts(""); + if (dir & PJMEDIA_DIR_PLAYBACK) { + printf("Callback interval: min interval=%d ms, max interval=%d ms\n", + min_delay, max_delay); + } + + return 0; } |