summaryrefslogtreecommitdiff
path: root/pjsip-apps/src/samples/level.c
diff options
context:
space:
mode:
Diffstat (limited to 'pjsip-apps/src/samples/level.c')
-rw-r--r--pjsip-apps/src/samples/level.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/pjsip-apps/src/samples/level.c b/pjsip-apps/src/samples/level.c
index 4d4d7ee0..2183675c 100644
--- a/pjsip-apps/src/samples/level.c
+++ b/pjsip-apps/src/samples/level.c
@@ -72,7 +72,7 @@ static int app_perror( const char *sender, const char *title,
*/
int main(int argc, char *argv[])
{
- enum { NSAMPLES = 160, COUNT=100 };
+ enum { NSAMPLES = 640, COUNT=100 };
pj_caching_pool cp;
pjmedia_endpt *med_endpt;
pj_pool_t *pool;
@@ -123,10 +123,19 @@ int main(int argc, char *argv[])
return 1;
}
+ if (file_port->info.samples_per_frame > NSAMPLES) {
+ app_perror(THIS_FILE, "WAV clock rate is too big", PJ_EINVAL);
+ return 1;
+ }
+
+ puts("Time\tPCMU\tLinear");
+ puts("------------------------");
+
for (i=0; i<COUNT; ++i) {
pj_int16_t framebuf[NSAMPLES];
pjmedia_frame frm;
pj_int32_t level32;
+ unsigned ms;
int level;
frm.buf = framebuf;
@@ -134,10 +143,14 @@ int main(int argc, char *argv[])
pjmedia_port_get_frame(file_port, &frm);
- level32 = pjmedia_calc_avg_signal( framebuf, NSAMPLES );
+ level32 = pjmedia_calc_avg_signal(framebuf,
+ file_port->info.samples_per_frame);
level = pjmedia_linear2ulaw(level32) ^ 0xFF;
- printf("%d ", level);
+ ms = i * 1000 * file_port->info.samples_per_frame /
+ file_port->info.clock_rate;
+ printf("%03d.%03d\t%7d\t%7d\n",
+ ms/1000, ms%1000, level, level32);
}
puts("");