From 1c8088a4a0abaa14970264831f09dc356dc953a5 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Mon, 5 Oct 2015 13:00:33 -0500 Subject: [PATCH] tweaks --- html5/verto/video_demo/index.html | 1 + html5/verto/video_demo/verto.js | 110 +++++++++++++++--------- src/mod/endpoints/mod_verto/mod_verto.c | 29 ++++--- 3 files changed, 88 insertions(+), 52 deletions(-) diff --git a/html5/verto/video_demo/index.html b/html5/verto/video_demo/index.html index 6c42ff1ad5..276b75b36b 100644 --- a/html5/verto/video_demo/index.html +++ b/html5/verto/video_demo/index.html @@ -361,6 +361,7 @@ if ($('#devices').is(':visible')) { +
diff --git a/html5/verto/video_demo/verto.js b/html5/verto/video_demo/verto.js index 1c935dcb3e..a0e2d6f6c8 100644 --- a/html5/verto/video_demo/verto.js +++ b/html5/verto/video_demo/verto.js @@ -197,7 +197,46 @@ function check_vid() { return use_vid; } -// Attach audio output device to video element using device/sink ID. +function do_speed_test(fn) +{ + goto_page("bwtest"); + + vertoHandle.rpcClient.speedTest(1024 * 256, function(e, obj) { + //console.error("Up: " + obj.upKPS, "Down: ", obj.downKPS); + var vid = "default"; + if (outgoingBandwidth === "default") { + outgoingBandwidth = Math.ceil(obj.upKPS * .75).toString(); + + $("#vqual_hd").prop("checked", true); + vid = "1280x720"; + + if (outgoingBandwidth < 1024) { + $("#vqual_vga").prop("checked", true); + vid = "640x480"; + } + if (outgoingBandwidth < 512) { + $("#vqual_qvga").prop("checked", true); + vid = "320x240"; + } + } + + if (incomingBandwidth === "default") { + incomingBandwidth = Math.ceil(obj.downKPS * .75).toString(); + } + + console.info(outgoingBandwidth, incomingBandwidth); + + $("#bwinfo").html("Bandwidth: " + "Up: " + obj.upKPS + " Down: " + obj.downKPS + " Vid: " + vid + ""); + + if (fn) { + fn(); + } + }); +} + + +// Attach audio output device to video element using device/sink ID. + function attachSinkId(element, sinkId) { if (typeof element.sinkId !== 'undefined') { element.setSinkId(sinkId) @@ -559,54 +598,34 @@ var callbacks = { ringing = false; if (success) { - vertoHandle.rpcClient.speedTest(1024 * 256, function(e, obj) { - //console.error("Up: " + obj.upKPS, "Down: ", obj.downKPS); - var vid = "default"; - if (outgoingBandwidth === "default") { - outgoingBandwidth = Math.ceil(obj.upKPS * .75).toString(); - - $("#vqual_hd").prop("checked", true); - vid = "1280x720"; - if (outgoingBandwidth < 1024) { - $("#vqual_vga").prop("checked", true); - vid = "640x480"; - } - if (outgoingBandwidth < 512) { - $("#vqual_qvga").prop("checked", true); - vid = "320x240"; - } - } - - if (incomingBandwidth === "default") { - incomingBandwidth = Math.ceil(obj.downKPS * .75).toString(); - } - - console.info(outgoingBandwidth, incomingBandwidth); - - $("#bwinfo").html("Bandwidth: " + "Up: " + obj.upKPS + " Down: " + obj.downKPS + " Vid: " + vid + ""); + do_speed_test(function() { + online(true); goto_page("main"); + $("input[type='radio']").checkboxradio("refresh"); $("input[type='checkbox']").checkboxradio("refresh"); + + + /* + verto.subscribe("presence", { + handler: function(v, e) { + console.error("PRESENCE:", e); + } + }); + */ + + if (!window.location.hash) { + goto_page("main"); + } + + if (autocall) { + autocall = false; + docall(); + } }); - - /* - verto.subscribe("presence", { - handler: function(v, e) { - console.error("PRESENCE:", e); - } - }); - */ - if (!window.location.hash) { - goto_page("main"); - } - - if (autocall) { - autocall = false; - docall(); - } } else { goto_page("main"); goto_dialog("login-error"); @@ -1512,6 +1531,13 @@ function init() { $("#errordisplay").html(""); }); + $("#speedbtn").click(function() { + do_speed_test(function() { + goto_page("main"); + }); + $("#errordisplay").html(""); + }); + $("#loginbtn").click(function() { online(false); vertoHandle.loginData({ diff --git a/src/mod/endpoints/mod_verto/mod_verto.c b/src/mod/endpoints/mod_verto/mod_verto.c index 02f1f0ebb8..d159013ec6 100644 --- a/src/mod/endpoints/mod_verto/mod_verto.c +++ b/src/mod/endpoints/mod_verto/mod_verto.c @@ -1866,6 +1866,7 @@ static void client_run(jsock_t *jsock) char *p = s+4; int loops = 0; int rem = 0; + int dur = 0, j = 0; if (!(size = atoi(p))) { continue; @@ -1884,21 +1885,29 @@ static void client_run(jsock_t *jsock) switch_snprintf(repl, sizeof(repl), "#SPU %ld", (b - a) / 1000); ws_write_frame(&jsock->ws, WSOC_TEXT, repl, strlen(repl)); - loops = size / 1024; rem = size % 1024; switch_snprintf(repl, sizeof(repl), "#SPB "); memset(repl+4, '.', 1024); - a = switch_time_now(); - for (i = 0; i < loops; i++) { - ws_write_frame(&jsock->ws, WSOC_TEXT, repl, 1024); - } - if (rem) { - ws_write_frame(&jsock->ws, WSOC_TEXT, repl, rem); - } - b = switch_time_now(); - switch_snprintf(repl, sizeof(repl), "#SPD %ld", ((b - a) / 1000) - 200); + for (j = 0; j < 10 ; j++) { + int ddur = 0; + a = switch_time_now(); + for (i = 0; i < loops; i++) { + ws_write_frame(&jsock->ws, WSOC_TEXT, repl, 1024); + } + if (rem) { + ws_write_frame(&jsock->ws, WSOC_TEXT, repl, rem); + } + b = switch_time_now(); + ddur += ((b - a) / 1000); + dur += ddur; + + } + + dur /= j+1; + + switch_snprintf(repl, sizeof(repl), "#SPD %d", dur); ws_write_frame(&jsock->ws, WSOC_TEXT, repl, strlen(repl)); } }