diff options
Diffstat (limited to 'js/vendor/gif-encode')
| -rw-r--r-- | js/vendor/gif-encode/client.js | 11 | ||||
| -rw-r--r-- | js/vendor/gif-encode/worker.js | 6 |
2 files changed, 16 insertions, 1 deletions
diff --git a/js/vendor/gif-encode/client.js b/js/vendor/gif-encode/client.js index 271cbb0..a11a8c8 100644 --- a/js/vendor/gif-encode/client.js +++ b/js/vendor/gif-encode/client.js @@ -8,7 +8,7 @@ var FPS = 12; var DELAY = Math.floor( 1000 / FPS ); // Number of WebWorkers to create -var WORKERS = 4; +var WORKERS = 6; // Number of frames to use to build the gif palette (takes longest) var FRAMES_TO_QUANTIZE = 4; @@ -128,6 +128,13 @@ function GifEncoder(){ base.receiveWork = function(e){ e.data.task in tasks && tasks[e.data.task](e); } + base.fire = function(){ + for (var i in ww) { + ww[i].postMessage("close"); + } + ww = [] + base.init() + } base.init(); } @@ -223,6 +230,8 @@ function GifEncoder(){ console.log((Date.now() - started), "processed frames"); console.log((Date.now() - initted), "done"); + + workers.fire() } // function upload (base64_gif) { diff --git a/js/vendor/gif-encode/worker.js b/js/vendor/gif-encode/worker.js index b2f32d4..2a69592 100644 --- a/js/vendor/gif-encode/worker.js +++ b/js/vendor/gif-encode/worker.js @@ -10,6 +10,9 @@ self.onmessage = function(event) { case 'quantize': quantize(data); break; + case 'close': + self.close(); + break; } } @@ -84,5 +87,8 @@ function encode (data) { frame_data: encoder.stream().getData() }); // on the page, search for the GIF89a to see the frame_index + + delete encoder; + delete data; }; |
