diff --git a/src/ext/lib/ar-detect/ArDetector.js b/src/ext/lib/ar-detect/ArDetector.js index 8c0c55c..9976501 100644 --- a/src/ext/lib/ar-detect/ArDetector.js +++ b/src/ext/lib/ar-detect/ArDetector.js @@ -492,6 +492,13 @@ class ArDetector { this.conf.resizer.setAr({type: AspectRatio.Automatic, ratio: trueAr}, {type: AspectRatio.Automatic, ratio: trueAr}); } + clearImageData(id) { + if (ArrayBuffer.transfer) { + ArrayBuffer.transfer(id, 0); + } + id = undefined; + } + frameCheck(){ if(! this.video){ this.logger.log('error', 'debug', `%c[ArDetect::frameCheck] <@${this.arid}> Video went missing. Destroying current instance of videoData.`); @@ -581,6 +588,7 @@ class ArDetector { this.logger.log('info', 'arDetect_verbose', `%c[ArDetect::frameCheck] Letterbox not detected in fast test. Letterbox is either gone or we manually corrected aspect ratio. Nothing will be done.`, "color: #fa3"); + this.clearImageData(imageData); return; } @@ -598,6 +606,7 @@ class ArDetector { // if both succeed, then aspect ratio hasn't changed. if (!guardLineOut.imageFail && !guardLineOut.blackbarFail) { this.logger.log('info', 'arDetect_verbose', `%c[ArDetect::frameCheck] guardLine tests were successful. (no imagefail and no blackbarfail)\n`, "color: #afa", guardLineOut); + this.clearImageData(imageData); return; } @@ -617,6 +626,7 @@ class ArDetector { this.guardLine.reset(); this.noLetterboxCanvasReset = true; + this.clearImageData(imageData); return; } @@ -643,6 +653,7 @@ class ArDetector { triggerTimeout = this.getTimeout(baseTimeout, startTime); this.scheduleFrameCheck(triggerTimeout); + this.clearImageData(imageData); return; } } @@ -664,6 +675,8 @@ class ArDetector { // rob ni bil zaznan, zato ne naredimo ničesar. // no edge was detected. Let's leave things as they were this.logger.log('info', 'arDetect_verbose', `%c[ArDetect::frameCheck] Edge wasn't detected with findBars`, "color: #fa3", edgePost, "EdgeStatus.AR_KNOWN:", EdgeStatus.AR_KNOWN); + + this.clearImageData(imageData); return; } diff --git a/src/ext/lib/ar-detect/GuardLine.js b/src/ext/lib/ar-detect/GuardLine.js index ca03448..de95cf6 100644 --- a/src/ext/lib/ar-detect/GuardLine.js +++ b/src/ext/lib/ar-detect/GuardLine.js @@ -34,7 +34,7 @@ class GuardLine { // to odstrani vse neveljavne nastavitve in vse možnosti, ki niso smiselne // this removes any configs with invalid values or values that dont make sense if (bbTop < 0 || bbBottom >= this.conf.canvas.height ){ - throw "INVALID_SETTINGS_IN_GUARDLINE" + throw {error: "INVALID_SETTINGS_IN_GUARDLINE", bbTop, bbBottom} } this.blackbar = {