From 565464f29cc7dced21cc5836ffef3b6a5408f8b9 Mon Sep 17 00:00:00 2001 From: Sami Spets <savasp@utu.fi> Date: Thu, 21 Nov 2019 09:57:50 +0200 Subject: [PATCH] Debugging the Websocket player --- web-service/server/src/public/js/bundle.js | 112 +++++++++--------- web-service/server/src/public/js/index.js | 20 +--- .../server/src/public/js/lib/VideoPlayer.js | 92 +++++++------- 3 files changed, 110 insertions(+), 114 deletions(-) diff --git a/web-service/server/src/public/js/bundle.js b/web-service/server/src/public/js/bundle.js index f8da7e137..0ad0a5707 100644 --- a/web-service/server/src/public/js/bundle.js +++ b/web-service/server/src/public/js/bundle.js @@ -4663,23 +4663,9 @@ createPeer = () => { connectToStream = () => { console.log(current_data.uri) - const deocdedURI = decodeURIComponent(current_data.uri); - peer.bind(deocdedURI, (latency, streampckg, pckg) => { - console.log(pckg[0]) - console.log("PAKETTI 5", [pckg[5]]) - if(pckg[0] === 0){ - player.playback(pckg[5]); - // const newBlob = new Blob( [pckg[5]], {type: "image/jpeg"}); - // const canvas = document.getElementById("ftlab-stream-video"); - // let modified = canvas.getContext("2d"); - // let image = new Image(); - // image.onload = () => { - // modified.drawImage(image, 0, 0) - // } - // image.src = URL.createObjectURL(newBlob) - } - }) - peer.send("get_stream", (current_data.uri, 10, 0, current_data.uri)) + const uri = current_data.uri + const decodedURI = decodeURIComponent(current_data.uri); + player.playback(peer, decodedURI, uri); } closeStream = () => { @@ -4821,7 +4807,10 @@ VideoPlayer.prototype._display_image = function(image) { }); }; -VideoPlayer.prototype._handle_onload = function(frame) { + + + +VideoPlayer.prototype._handle_onload = function(peer, decodedURI, uri) { var that = this; this._set_status("initializing"); @@ -4830,33 +4819,26 @@ VideoPlayer.prototype._handle_onload = function(frame) { that._display_image(image); image.free(); }); - - // var data = frame; - // var pos = 0; - // var remaining = data.byteLength; var ratio = null; var filters = false; + - var decode = function() { - if (!that.running) { - return; - } - + var decode = function(pckg) { + if (!that.running) { return; } + console.log("DECODE FUNKKARI ALKU") var err; - // if (remaining === 0) { - // err = decoder.flush(); - // } else { - // var l = 4096; - // if (l > remaining) { - // l = remaining; - // } - - let tmp = frame - // var tmp = new Uint8Array(data, pos, l); - err = decoder.push_data(tmp); - // pos += l; - // remaining -= l; - // } + if (pckg == null) { return; } + else{ + + try { + var tmp = pckg + err = decoder.push_data(tmp); + } catch(err) { + console.log(err); + err = decoder.flush(); + return; + } + } if (!libde265.de265_isOK(err)) { that._set_error(err, libde265.de265_get_error_text(err)); return; @@ -4875,7 +4857,8 @@ VideoPlayer.prototype._handle_onload = function(frame) { decoder.decode(function(err) { switch(err) { case libde265.DE265_ERROR_WAITING_FOR_INPUT_DATA: - // setTimeout(decode, 0); + console.log("DE265_ERROR_WAITING_FOR_INPUT_DATA"); + setTimeout(decode(null), 0); return; default: @@ -4885,32 +4868,47 @@ VideoPlayer.prototype._handle_onload = function(frame) { } } - // if (remaining > 0 || decoder.has_more()) { - // // setTimeout(decode, 0); - // return; - // } + if (decoder.has_more()) { + console.log("has more"); + setTimeout(decode(null), 0); + return; + } decoder.free(); that.stop(); }); - }; - decode(); - // setTimeout(decode, 0); + console.log("DECODE FUNKKARIN LOPPU") + } + + + peer.bind(decodedURI, (latency, streampckg, pckg) => { + console.log(pckg[0]) + if(pckg[0] === 0){ + decode([pckg[5]]); + }; + }) + // Start the transaction + peer.send("get_stream", (uri, 10, 0, uri)); }; /** @expose */ -VideoPlayer.prototype.playback = function(pckg) { - // this._reset(); - // var request = new XMLHttpRequest(); - // request.open("get", url, true); - // request.responseType = "arraybuffer"; +VideoPlayer.prototype.playback = function(peer, decodedURI, uri) { + this._reset(); + + console.log(peer); + console.log(uri) + this._handle_onload(peer, decodedURI, uri) // var that = this; - // request.onload = function(event) { - this._handle_onload(pckg); + + // peer.sock.onopen = function() { + // console.log("Stream open"); + // that._handle_onload(ws); // }; + + // ws.onclose = function() { console.log("Connection closed."); } this._set_status("loading"); this.running = true; - // request.send(); + console.log("piippiip") }; /** @expose */ diff --git a/web-service/server/src/public/js/index.js b/web-service/server/src/public/js/index.js index 813dee8a4..540e2ba83 100644 --- a/web-service/server/src/public/js/index.js +++ b/web-service/server/src/public/js/index.js @@ -143,23 +143,9 @@ createPeer = () => { connectToStream = () => { console.log(current_data.uri) - const deocdedURI = decodeURIComponent(current_data.uri); - peer.bind(deocdedURI, (latency, streampckg, pckg) => { - console.log(pckg[0]) - console.log("PAKETTI 5", [pckg[5]]) - if(pckg[0] === 0){ - player.playback(pckg[5]); - // const newBlob = new Blob( [pckg[5]], {type: "image/jpeg"}); - // const canvas = document.getElementById("ftlab-stream-video"); - // let modified = canvas.getContext("2d"); - // let image = new Image(); - // image.onload = () => { - // modified.drawImage(image, 0, 0) - // } - // image.src = URL.createObjectURL(newBlob) - } - }) - peer.send("get_stream", (current_data.uri, 10, 0, current_data.uri)) + const uri = current_data.uri + const decodedURI = decodeURIComponent(current_data.uri); + player.playback(peer, decodedURI, uri); } closeStream = () => { diff --git a/web-service/server/src/public/js/lib/VideoPlayer.js b/web-service/server/src/public/js/lib/VideoPlayer.js index acf62b8bf..c7ed3ef00 100644 --- a/web-service/server/src/public/js/lib/VideoPlayer.js +++ b/web-service/server/src/public/js/lib/VideoPlayer.js @@ -84,7 +84,10 @@ VideoPlayer.prototype._display_image = function(image) { }); }; -VideoPlayer.prototype._handle_onload = function(frame) { + + + +VideoPlayer.prototype._handle_onload = function(peer, decodedURI, uri) { var that = this; this._set_status("initializing"); @@ -93,33 +96,26 @@ VideoPlayer.prototype._handle_onload = function(frame) { that._display_image(image); image.free(); }); - - // var data = frame; - // var pos = 0; - // var remaining = data.byteLength; var ratio = null; var filters = false; + - var decode = function() { - if (!that.running) { - return; - } - + var decode = function(pckg) { + if (!that.running) { return; } + console.log("DECODE FUNKKARI ALKU") var err; - // if (remaining === 0) { - // err = decoder.flush(); - // } else { - // var l = 4096; - // if (l > remaining) { - // l = remaining; - // } - - let tmp = frame - // var tmp = new Uint8Array(data, pos, l); - err = decoder.push_data(tmp); - // pos += l; - // remaining -= l; - // } + if (pckg == null) { return; } + else{ + + try { + var tmp = pckg + err = decoder.push_data(tmp); + } catch(err) { + console.log(err); + err = decoder.flush(); + return; + } + } if (!libde265.de265_isOK(err)) { that._set_error(err, libde265.de265_get_error_text(err)); return; @@ -138,7 +134,8 @@ VideoPlayer.prototype._handle_onload = function(frame) { decoder.decode(function(err) { switch(err) { case libde265.DE265_ERROR_WAITING_FOR_INPUT_DATA: - // setTimeout(decode, 0); + console.log("DE265_ERROR_WAITING_FOR_INPUT_DATA"); + setTimeout(decode(null), 0); return; default: @@ -148,32 +145,47 @@ VideoPlayer.prototype._handle_onload = function(frame) { } } - // if (remaining > 0 || decoder.has_more()) { - // // setTimeout(decode, 0); - // return; - // } + if (decoder.has_more()) { + console.log("has more"); + setTimeout(decode(null), 0); + return; + } decoder.free(); that.stop(); }); - }; - decode(); - // setTimeout(decode, 0); + console.log("DECODE FUNKKARIN LOPPU") + } + + + peer.bind(decodedURI, (latency, streampckg, pckg) => { + console.log(pckg[0]) + if(pckg[0] === 0){ + decode([pckg[5]]); + }; + }) + // Start the transaction + peer.send("get_stream", (uri, 10, 0, uri)); }; /** @expose */ -VideoPlayer.prototype.playback = function(pckg) { - // this._reset(); - // var request = new XMLHttpRequest(); - // request.open("get", url, true); - // request.responseType = "arraybuffer"; +VideoPlayer.prototype.playback = function(peer, decodedURI, uri) { + this._reset(); + + console.log(peer); + console.log(uri) + this._handle_onload(peer, decodedURI, uri) // var that = this; - // request.onload = function(event) { - this._handle_onload(pckg); + + // peer.sock.onopen = function() { + // console.log("Stream open"); + // that._handle_onload(ws); // }; + + // ws.onclose = function() { console.log("Connection closed."); } this._set_status("loading"); this.running = true; - // request.send(); + console.log("piippiip") }; /** @expose */ -- GitLab