summaryrefslogtreecommitdiff
path: root/js/vendor/gif-encode
diff options
context:
space:
mode:
Diffstat (limited to 'js/vendor/gif-encode')
-rw-r--r--js/vendor/gif-encode/client.js31
1 files changed, 16 insertions, 15 deletions
diff --git a/js/vendor/gif-encode/client.js b/js/vendor/gif-encode/client.js
index 128c93d..8116bf0 100644
--- a/js/vendor/gif-encode/client.js
+++ b/js/vendor/gif-encode/client.js
@@ -18,11 +18,14 @@ var DO_UPLOAD = true;
function GifEncoder(){
var base = this;
- this.working = false;
+ this.working = false;
var canvases = [];
var contexts = [];
var frames = [];
var delays = [];
+ var width = 0;
+ var height = 0;
+ var frames_done = 0;
var initted = Date.now();
var started = Date.now();
@@ -38,12 +41,7 @@ function GifEncoder(){
workers.hire("encode", receiveEncode);
var reset = this.reset = function(){
- canvases = [];
- contexts = [];
- frames = [];
- delays = [];
- width = 0;
- height = 0;
+ resetFrames()
neuquant = null;
colortab = null;
base.quantized = false
@@ -55,8 +53,9 @@ function GifEncoder(){
delays = [];
width = 0;
height = 0;
+ frames_done = 0;
}
-
+
this.on = function(){
base.tube.on.apply(base.tube, arguments)
};
@@ -70,7 +69,7 @@ function GifEncoder(){
canvases.push(canvas);
contexts.push(ctx);
delays.push(delay);
-
+
if (canvases.length == 1) {
width = canvas.width;
height = canvas.height;
@@ -144,8 +143,9 @@ function GifEncoder(){
var encode = this.encode = function (nq, ct) {
nq = nq || neuquant
ct = ct || colortab
-
+
started = Date.now();
+ frames_done = 0;
console.log('working .... ');
var i = 0;
@@ -156,7 +156,7 @@ function GifEncoder(){
var ctx = contexts[i];
var imdata = ctx.getImageData(0, 0, width, height).data;
var delay = delays[i];
-
+
workers.work({
task: 'encode',
frame_index: i,
@@ -173,8 +173,7 @@ function GifEncoder(){
setTimeout(sendWork, 16);
}
function doneSending(){
- base.tube("doneSending")
- // ui.doneEncodingPicture();
+ base.tube("done_sending")
}
sendWork();
}
@@ -182,8 +181,10 @@ function GifEncoder(){
function receiveEncode(e){
var frame_index = e.data["frame_index"];
var frame_data = e.data["frame_data"];
-
+
frames[frame_index] = frame_data;
+
+ base.tube("encoded-frame", frames.length, canvases.length)
for (var j = 0; j < canvases.length; j++) {
if (frames[j] == null) {
return;
@@ -193,7 +194,7 @@ function GifEncoder(){
var binary_gif = frames.join('');
var base64_gif = window.btoa(binary_gif);
var data_url = 'data:image/gif;base64,'+base64_gif;
-
+
base.working = false;
// photo.setAttribute('src', data_url);