@supraio/client-daemon-js 0.0.0-mznacl.298 → 0.0.0-mznacl.300

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Binary file
@@ -190078,85 +190078,132 @@ $packages["github.com/supraio/client-daemon/pkg/x264/h264decoder"] = (function()
190078
190078
  $pkg.$init = $init;
190079
190079
  return $pkg;
190080
190080
  })();
190081
+ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/jsdecoder"] = (function() {
190082
+ var $pkg = {}, $init, js, ptrType, sliceType, initiateReset, jsNaClDecoder, ResetBeforeNextDecode, ShouldResetOnNextDecode, MarkResetDone, IsAvailable, CreateJsNaClDecoder, GetJsNaClDecoder, RemoveJsNaClDecoder;
190083
+ js = $packages["syscall/js"];
190084
+ ptrType = $ptrType(js.Value);
190085
+ sliceType = $sliceType($emptyInterface);
190086
+ ResetBeforeNextDecode = function() {
190087
+ initiateReset = true;
190088
+ };
190089
+ $pkg.ResetBeforeNextDecode = ResetBeforeNextDecode;
190090
+ ShouldResetOnNextDecode = function() {
190091
+ return initiateReset;
190092
+ };
190093
+ $pkg.ShouldResetOnNextDecode = ShouldResetOnNextDecode;
190094
+ MarkResetDone = function() {
190095
+ initiateReset = false;
190096
+ };
190097
+ $pkg.MarkResetDone = MarkResetDone;
190098
+ IsAvailable = function() {
190099
+ return !$clone($clone(js.Global(), js.Value).Get("createNaClDecoder"), js.Value).IsUndefined();
190100
+ };
190101
+ $pkg.IsAvailable = IsAvailable;
190102
+ CreateJsNaClDecoder = function() {
190103
+ var {_r, createdJsNaClDecoder, $s, $r, $c} = $restore(this, {});
190104
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190105
+ createdJsNaClDecoder = [createdJsNaClDecoder];
190106
+ if (!(jsNaClDecoder === ptrType.nil)) {
190107
+ $panic(new $String("JsNaClDecoder already created"));
190108
+ }
190109
+ _r = $clone(js.Global(), js.Value).Call("createNaClDecoder", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190110
+ createdJsNaClDecoder[0] = $clone(_r, js.Value);
190111
+ jsNaClDecoder = createdJsNaClDecoder[0];
190112
+ $s = -1; return jsNaClDecoder;
190113
+ /* */ } return; } var $f = {$blk: CreateJsNaClDecoder, $c: true, $r, _r, createdJsNaClDecoder, $s};return $f;
190114
+ };
190115
+ $pkg.CreateJsNaClDecoder = CreateJsNaClDecoder;
190116
+ GetJsNaClDecoder = function() {
190117
+ return jsNaClDecoder;
190118
+ };
190119
+ $pkg.GetJsNaClDecoder = GetJsNaClDecoder;
190120
+ RemoveJsNaClDecoder = function() {
190121
+ jsNaClDecoder = ptrType.nil;
190122
+ };
190123
+ $pkg.RemoveJsNaClDecoder = RemoveJsNaClDecoder;
190124
+ $init = function() {
190125
+ $pkg.$init = function() {};
190126
+ /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
190127
+ $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190128
+ jsNaClDecoder = ptrType.nil;
190129
+ initiateReset = false;
190130
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190131
+ };
190132
+ $pkg.$init = $init;
190133
+ return $pkg;
190134
+ })();
190081
190135
  $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder"] = (function() {
190082
- var $pkg = {}, $init, errs, jshelper, general, js, NaClDecoder, ptrType, sliceType, sliceType$1, ptrType$1, initiateReset, IsAvailable, NewDecoder, Reset, IsResetting, MarkResetDone;
190136
+ var $pkg = {}, $init, errs, jshelper, general, jsdecoder, js, NaClDecoder, sliceType, ptrType, sliceType$1, ptrType$1, IsAvailable, NewDecoder;
190083
190137
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
190084
190138
  jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
190085
190139
  general = $packages["github.com/supraio/client-daemon/pkg/x264/general"];
190140
+ jsdecoder = $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/jsdecoder"];
190086
190141
  js = $packages["syscall/js"];
190087
- NaClDecoder = $pkg.NaClDecoder = $newType(0, $kindStruct, "nacldecoder.NaClDecoder", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder", true, function(jsNaClDecoder_) {
190142
+ NaClDecoder = $pkg.NaClDecoder = $newType(0, $kindStruct, "nacldecoder.NaClDecoder", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder", true, function(initialized_) {
190088
190143
  this.$val = this;
190089
190144
  if (arguments.length === 0) {
190090
- this.jsNaClDecoder = ptrType.nil;
190145
+ this.initialized = false;
190091
190146
  return;
190092
190147
  }
190093
- this.jsNaClDecoder = jsNaClDecoder_;
190148
+ this.initialized = initialized_;
190094
190149
  });
190095
- ptrType = $ptrType(js.Value);
190096
190150
  sliceType = $sliceType($emptyInterface);
190151
+ ptrType = $ptrType(js.Value);
190097
190152
  sliceType$1 = $sliceType($Uint8);
190098
190153
  ptrType$1 = $ptrType(NaClDecoder);
190099
190154
  IsAvailable = function() {
190100
- return !$clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value).IsUndefined();
190155
+ return jsdecoder.IsAvailable();
190101
190156
  };
190102
190157
  $pkg.IsAvailable = IsAvailable;
190103
190158
  NewDecoder = function(header) {
190104
190159
  var header;
190105
- return new NaClDecoder.ptr(ptrType.nil);
190160
+ return new NaClDecoder.ptr(false);
190106
190161
  };
190107
190162
  $pkg.NewDecoder = NewDecoder;
190108
190163
  NaClDecoder.ptr.prototype.initialize = function(param) {
190109
- var {$24r, $24r$1, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, config, err, graphics3DContext, initPromise, initResult, jsNaClDecoder, m, param, $s, $r, $c} = $restore(this, {param});
190164
+ var {$24r, $24r$1, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, config, err, graphics3DContext, initPromise, initResult, m, param, $s, $r, $c} = $restore(this, {param});
190110
190165
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190111
- jsNaClDecoder = [jsNaClDecoder];
190112
190166
  m = this;
190113
- jsNaClDecoder[0] = $clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value);
190114
- /* */ if ($clone(jsNaClDecoder[0], js.Value).IsUndefined()) { $s = 1; continue; }
190115
- /* */ $s = 2; continue;
190116
- /* if ($clone(jsNaClDecoder[0], js.Value).IsUndefined()) { */ case 1:
190117
- _r = errs.Errorf("Cannot get naclDecoder object from global scope", sliceType.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190118
- $panic(_r);
190119
- /* } */ case 2:
190120
- _r$1 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190121
- config = $clone(_r$1, js.Value);
190122
- _r$2 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190123
- graphics3DContext = $clone(_r$2, js.Value);
190167
+ _r = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190168
+ config = $clone(_r, js.Value);
190169
+ _r$1 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190170
+ graphics3DContext = $clone(_r$1, js.Value);
190124
190171
  $clone(config, js.Value).Set("graphics3DContext", new graphics3DContext.constructor.elem(graphics3DContext));
190125
190172
  $clone(config, js.Value).Set("profile", new $Int(0));
190126
190173
  $clone(config, js.Value).Set("acceleration", new $Int(2));
190127
190174
  $clone(config, js.Value).Set("minPictureCount", new $Int(0));
190128
- _r$3 = $clone(jsNaClDecoder[0], js.Value).Call("initialize", new sliceType([new config.constructor.elem(config)])); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190129
- initPromise = $clone(_r$3, js.Value);
190130
- _r$4 = jshelper.Await($clone(initPromise, js.Value)); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190131
- _tuple = _r$4;
190175
+ _r$2 = $clone(jsdecoder.GetJsNaClDecoder(), js.Value).Call("initialize", new sliceType([new config.constructor.elem(config)])); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190176
+ initPromise = $clone(_r$2, js.Value);
190177
+ _r$3 = jshelper.Await($clone(initPromise, js.Value)); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190178
+ _tuple = _r$3;
190132
190179
  initResult = _tuple[0];
190133
190180
  err = _tuple[1];
190134
- /* */ if (!(err === ptrType.nil)) { $s = 8; continue; }
190135
- /* */ $s = 9; continue;
190136
- /* if (!(err === ptrType.nil)) { */ case 8:
190137
- _r$5 = jshelper.GetError(err); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190138
- _r$6 = _r$5.Error(); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
190139
- _arg = new $String(_r$6);
190140
- _r$7 = errs.Errorf("Failed to initialize NaCl Decoder: %s", new sliceType([_arg])); /* */ $s = 12; case 12: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
190141
- $24r = [ptrType.nil, _r$7];
190142
- $s = 13; case 13: return $24r;
190143
- /* } */ case 9:
190144
- /* */ if (!(($clone(initResult, js.Value).Float() === 0))) { $s = 14; continue; }
190145
- /* */ $s = 15; continue;
190146
- /* if (!(($clone(initResult, js.Value).Float() === 0))) { */ case 14:
190147
- _r$8 = errs.Errorf("Failed to initialize NaCl Decoder: %f", new sliceType([new $Float64($clone(initResult, js.Value).Float())])); /* */ $s = 16; case 16: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
190148
- $24r$1 = [ptrType.nil, _r$8];
190149
- $s = 17; case 17: return $24r$1;
190150
- /* } */ case 15:
190151
- $s = -1; return [jsNaClDecoder[0], $ifaceNil];
190152
- /* */ } return; } var $f = {$blk: NaClDecoder.ptr.prototype.initialize, $c: true, $r, $24r, $24r$1, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, config, err, graphics3DContext, initPromise, initResult, jsNaClDecoder, m, param, $s};return $f;
190181
+ /* */ if (!(err === ptrType.nil)) { $s = 5; continue; }
190182
+ /* */ $s = 6; continue;
190183
+ /* if (!(err === ptrType.nil)) { */ case 5:
190184
+ _r$4 = jshelper.GetError(err); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190185
+ _r$5 = _r$4.Error(); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190186
+ _arg = new $String(_r$5);
190187
+ _r$6 = errs.Errorf("Failed to initialize NaCl Decoder: %s", new sliceType([_arg])); /* */ $s = 9; case 9: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
190188
+ $24r = _r$6;
190189
+ $s = 10; case 10: return $24r;
190190
+ /* } */ case 6:
190191
+ /* */ if (!(($clone(initResult, js.Value).Float() === 0))) { $s = 11; continue; }
190192
+ /* */ $s = 12; continue;
190193
+ /* if (!(($clone(initResult, js.Value).Float() === 0))) { */ case 11:
190194
+ _r$7 = errs.Errorf("Failed to initialize NaCl Decoder: %f", new sliceType([new $Float64($clone(initResult, js.Value).Float())])); /* */ $s = 13; case 13: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
190195
+ $24r$1 = _r$7;
190196
+ $s = 14; case 14: return $24r$1;
190197
+ /* } */ case 12:
190198
+ $s = -1; return $ifaceNil;
190199
+ /* */ } return; } var $f = {$blk: NaClDecoder.ptr.prototype.initialize, $c: true, $r, $24r, $24r$1, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, config, err, graphics3DContext, initPromise, initResult, m, param, $s};return $f;
190153
190200
  };
190154
190201
  NaClDecoder.prototype.initialize = function(param) { return this.$val.initialize(param); };
190155
190202
  NaClDecoder.ptr.prototype.reset = function() {
190156
190203
  var {$24r, $24r$1, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, err, m, resetPromise, resetResult, $s, $r, $c} = $restore(this, {});
190157
190204
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190158
190205
  m = this;
190159
- _r = $clone(m.jsNaClDecoder, js.Value).Call("reset", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190206
+ _r = $clone(jsdecoder.GetJsNaClDecoder(), js.Value).Call("reset", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190160
190207
  resetPromise = $clone(_r, js.Value);
190161
190208
  _r$1 = jshelper.Await($clone(resetPromise, js.Value)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190162
190209
  _tuple = _r$1;
@@ -190183,69 +190230,105 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder"] = (function()
190183
190230
  /* */ } return; } var $f = {$blk: NaClDecoder.ptr.prototype.reset, $c: true, $r, $24r, $24r$1, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, err, m, resetPromise, resetResult, $s};return $f;
190184
190231
  };
190185
190232
  NaClDecoder.prototype.reset = function() { return this.$val.reset(); };
190233
+ NaClDecoder.ptr.prototype.destroy = function() {
190234
+ var {$24r, _arg, _r, _r$1, _r$2, _r$3, _r$4, _tuple, destroyPromise, err, m, $s, $r, $c} = $restore(this, {});
190235
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190236
+ m = this;
190237
+ _r = $clone(jsdecoder.GetJsNaClDecoder(), js.Value).Call("destroy", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190238
+ destroyPromise = $clone(_r, js.Value);
190239
+ _r$1 = jshelper.Await($clone(destroyPromise, js.Value)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190240
+ _tuple = _r$1;
190241
+ err = _tuple[1];
190242
+ /* */ if (!(err === ptrType.nil)) { $s = 3; continue; }
190243
+ /* */ $s = 4; continue;
190244
+ /* if (!(err === ptrType.nil)) { */ case 3:
190245
+ _r$2 = jshelper.GetError(err); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190246
+ _r$3 = _r$2.Error(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190247
+ _arg = new $String(_r$3);
190248
+ _r$4 = errs.Errorf("Failed to destroy NaCl Decoder: %s", new sliceType([_arg])); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190249
+ $24r = _r$4;
190250
+ $s = 8; case 8: return $24r;
190251
+ /* } */ case 4:
190252
+ $s = -1; return $ifaceNil;
190253
+ /* */ } return; } var $f = {$blk: NaClDecoder.ptr.prototype.destroy, $c: true, $r, $24r, _arg, _r, _r$1, _r$2, _r$3, _r$4, _tuple, destroyPromise, err, m, $s};return $f;
190254
+ };
190255
+ NaClDecoder.prototype.destroy = function() { return this.$val.destroy(); };
190186
190256
  NaClDecoder.ptr.prototype.Decode = function(nal, outputBuffer) {
190187
- var {$24r, $24r$1, _arg, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, decodeArgs, decodePromise, decodeResult, err, err$1, err$2, jsNaClDecoder, m, nal, outputBuffer, pictureBuffer, pictureUint8Array, $s, $r, $c} = $restore(this, {nal, outputBuffer});
190257
+ var {$24r, $24r$1, _arg, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, decodeArgs, decodePromise, decodeResult, err, err$1, err$2, jsNaClDecoder, m, nal, outputBuffer, pictureBuffer, pictureUint8Array, $s, $r, $c} = $restore(this, {nal, outputBuffer});
190188
190258
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190189
190259
  m = this;
190190
- /* */ if (IsResetting()) { $s = 1; continue; }
190260
+ /* */ if (jsdecoder.ShouldResetOnNextDecode()) { $s = 1; continue; }
190191
190261
  /* */ $s = 2; continue;
190192
- /* if (IsResetting()) { */ case 1:
190262
+ /* if (jsdecoder.ShouldResetOnNextDecode()) { */ case 1:
190193
190263
  _r = m.reset(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190194
190264
  err = _r;
190195
190265
  /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 4; continue; }
190196
190266
  /* */ $s = 5; continue;
190197
190267
  /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 4:
190198
190268
  $r = errs.Print("Failed to reset NaCl Decoder", err); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190269
+ _r$1 = m.destroy(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190270
+ err = _r$1;
190271
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 8; continue; }
190272
+ /* */ $s = 9; continue;
190273
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 8:
190274
+ $r = errs.Print("Failed to destroy NaCl Decoder", err); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190275
+ /* } */ case 9:
190276
+ jsdecoder.RemoveJsNaClDecoder();
190199
190277
  /* } */ case 5:
190200
- m.jsNaClDecoder = ptrType.nil;
190201
- MarkResetDone();
190278
+ m.initialized = false;
190279
+ jsdecoder.MarkResetDone();
190202
190280
  /* } */ case 2:
190203
- /* */ if (m.jsNaClDecoder === ptrType.nil) { $s = 7; continue; }
190204
- /* */ $s = 8; continue;
190205
- /* if (m.jsNaClDecoder === ptrType.nil) { */ case 7:
190206
- _r$1 = m.initialize(nal); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190207
- _tuple = _r$1;
190208
- jsNaClDecoder = _tuple[0];
190209
- err$1 = _tuple[1];
190281
+ jsNaClDecoder = jsdecoder.GetJsNaClDecoder();
190282
+ /* */ if (jsNaClDecoder === ptrType.nil) { $s = 11; continue; }
190283
+ /* */ $s = 12; continue;
190284
+ /* if (jsNaClDecoder === ptrType.nil) { */ case 11:
190285
+ _r$2 = jsdecoder.CreateJsNaClDecoder(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190286
+ jsNaClDecoder = _r$2;
190287
+ /* } */ case 12:
190288
+ /* */ if (!m.initialized) { $s = 14; continue; }
190289
+ /* */ $s = 15; continue;
190290
+ /* if (!m.initialized) { */ case 14:
190291
+ _r$3 = m.initialize(nal); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190292
+ err$1 = _r$3;
190210
190293
  if (!($interfaceIsEqual(err$1, $ifaceNil))) {
190211
190294
  $s = -1; return err$1;
190212
190295
  }
190213
- m.jsNaClDecoder = jsNaClDecoder;
190214
- /* } */ case 8:
190215
- _r$2 = $clone($clone(js.Global(), js.Value).Get("ArrayBuffer"), js.Value).New(new sliceType([new $Int(nal.$length)])); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190216
- pictureBuffer = $clone(_r$2, js.Value);
190217
- _r$3 = $clone($clone(js.Global(), js.Value).Get("Uint8Array"), js.Value).New(new sliceType([new pictureBuffer.constructor.elem(pictureBuffer)])); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190218
- pictureUint8Array = $clone(_r$3, js.Value);
190296
+ m.initialized = true;
190297
+ /* } */ case 15:
190298
+ _r$4 = $clone($clone(js.Global(), js.Value).Get("ArrayBuffer"), js.Value).New(new sliceType([new $Int(nal.$length)])); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190299
+ pictureBuffer = $clone(_r$4, js.Value);
190300
+ _r$5 = $clone($clone(js.Global(), js.Value).Get("Uint8Array"), js.Value).New(new sliceType([new pictureBuffer.constructor.elem(pictureBuffer)])); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190301
+ pictureUint8Array = $clone(_r$5, js.Value);
190219
190302
  js.CopyBytesToJS($clone(pictureUint8Array, js.Value), nal);
190220
- _r$4 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190221
- decodeArgs = $clone(_r$4, js.Value);
190303
+ _r$6 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
190304
+ decodeArgs = $clone(_r$6, js.Value);
190222
190305
  $clone(decodeArgs, js.Value).Set("decodeId", new $Int(0));
190223
190306
  $clone(decodeArgs, js.Value).Set("data", new pictureBuffer.constructor.elem(pictureBuffer));
190224
- _r$5 = $clone(m.jsNaClDecoder, js.Value).Call("decode", new sliceType([new decodeArgs.constructor.elem(decodeArgs)])); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190225
- decodePromise = $clone(_r$5, js.Value);
190226
- _r$6 = jshelper.Await($clone(decodePromise, js.Value)); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
190227
- _tuple$1 = _r$6;
190228
- decodeResult = _tuple$1[0];
190229
- err$2 = _tuple$1[1];
190230
- /* */ if (!(err$2 === ptrType.nil)) { $s = 15; continue; }
190231
- /* */ $s = 16; continue;
190232
- /* if (!(err$2 === ptrType.nil)) { */ case 15:
190233
- _r$7 = jshelper.GetError(err$2); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
190234
- _r$8 = _r$7.Error(); /* */ $s = 18; case 18: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
190235
- _arg = new $String(_r$8);
190236
- _r$9 = errs.Errorf("Failed to decode frame: %s", new sliceType([_arg])); /* */ $s = 19; case 19: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
190237
- $24r = _r$9;
190238
- $s = 20; case 20: return $24r;
190239
- /* } */ case 16:
190240
- /* */ if (!(($clone(decodeResult, js.Value).Float() === 0))) { $s = 21; continue; }
190241
- /* */ $s = 22; continue;
190242
- /* if (!(($clone(decodeResult, js.Value).Float() === 0))) { */ case 21:
190243
- _r$10 = errs.Errorf("Failed to decode frame with code: %f", new sliceType([new $Float64($clone(decodeResult, js.Value).Float())])); /* */ $s = 23; case 23: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
190244
- $24r$1 = _r$10;
190245
- $s = 24; case 24: return $24r$1;
190246
- /* } */ case 22:
190307
+ _r$7 = $clone(jsNaClDecoder, js.Value).Call("decode", new sliceType([new decodeArgs.constructor.elem(decodeArgs)])); /* */ $s = 20; case 20: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
190308
+ decodePromise = $clone(_r$7, js.Value);
190309
+ _r$8 = jshelper.Await($clone(decodePromise, js.Value)); /* */ $s = 21; case 21: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
190310
+ _tuple = _r$8;
190311
+ decodeResult = _tuple[0];
190312
+ err$2 = _tuple[1];
190313
+ /* */ if (!(err$2 === ptrType.nil)) { $s = 22; continue; }
190314
+ /* */ $s = 23; continue;
190315
+ /* if (!(err$2 === ptrType.nil)) { */ case 22:
190316
+ _r$9 = jshelper.GetError(err$2); /* */ $s = 24; case 24: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
190317
+ _r$10 = _r$9.Error(); /* */ $s = 25; case 25: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
190318
+ _arg = new $String(_r$10);
190319
+ _r$11 = errs.Errorf("Failed to decode frame: %s", new sliceType([_arg])); /* */ $s = 26; case 26: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
190320
+ $24r = _r$11;
190321
+ $s = 27; case 27: return $24r;
190322
+ /* } */ case 23:
190323
+ /* */ if (!(($clone(decodeResult, js.Value).Float() === 0))) { $s = 28; continue; }
190324
+ /* */ $s = 29; continue;
190325
+ /* if (!(($clone(decodeResult, js.Value).Float() === 0))) { */ case 28:
190326
+ _r$12 = errs.Errorf("Failed to decode frame with code: %f", new sliceType([new $Float64($clone(decodeResult, js.Value).Float())])); /* */ $s = 30; case 30: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
190327
+ $24r$1 = _r$12;
190328
+ $s = 31; case 31: return $24r$1;
190329
+ /* } */ case 29:
190247
190330
  $s = -1; return $ifaceNil;
190248
- /* */ } return; } var $f = {$blk: NaClDecoder.ptr.prototype.Decode, $c: true, $r, $24r, $24r$1, _arg, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, decodeArgs, decodePromise, decodeResult, err, err$1, err$2, jsNaClDecoder, m, nal, outputBuffer, pictureBuffer, pictureUint8Array, $s};return $f;
190331
+ /* */ } return; } var $f = {$blk: NaClDecoder.ptr.prototype.Decode, $c: true, $r, $24r, $24r$1, _arg, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, decodeArgs, decodePromise, decodeResult, err, err$1, err$2, jsNaClDecoder, m, nal, outputBuffer, pictureBuffer, pictureUint8Array, $s};return $f;
190249
190332
  };
190250
190333
  NaClDecoder.prototype.Decode = function(nal, outputBuffer) { return this.$val.Decode(nal, outputBuffer); };
190251
190334
  NaClDecoder.ptr.prototype.Release = function(outputBuffer) {
@@ -190253,28 +190336,16 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder"] = (function()
190253
190336
  m = this;
190254
190337
  };
190255
190338
  NaClDecoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
190256
- Reset = function() {
190257
- initiateReset = true;
190258
- };
190259
- $pkg.Reset = Reset;
190260
- IsResetting = function() {
190261
- return initiateReset;
190262
- };
190263
- $pkg.IsResetting = IsResetting;
190264
- MarkResetDone = function() {
190265
- initiateReset = false;
190266
- };
190267
- $pkg.MarkResetDone = MarkResetDone;
190268
- ptrType$1.methods = [{prop: "initialize", name: "initialize", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder", typ: $funcType([sliceType$1], [ptrType, $error], false)}, {prop: "reset", name: "reset", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder", typ: $funcType([], [$error], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$1, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}];
190269
- NaClDecoder.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder", [{prop: "jsNaClDecoder", name: "jsNaClDecoder", embedded: false, exported: false, typ: ptrType, tag: ""}]);
190339
+ ptrType$1.methods = [{prop: "initialize", name: "initialize", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder", typ: $funcType([sliceType$1], [$error], false)}, {prop: "reset", name: "reset", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder", typ: $funcType([], [$error], false)}, {prop: "destroy", name: "destroy", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder", typ: $funcType([], [$error], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$1, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}];
190340
+ NaClDecoder.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder", [{prop: "initialized", name: "initialized", embedded: false, exported: false, typ: $Bool, tag: ""}]);
190270
190341
  $init = function() {
190271
190342
  $pkg.$init = function() {};
190272
190343
  /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
190273
190344
  $r = errs.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190274
190345
  $r = jshelper.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190275
190346
  $r = general.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190276
- $r = js.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190277
- initiateReset = false;
190347
+ $r = jsdecoder.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190348
+ $r = js.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190278
190349
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190279
190350
  };
190280
190351
  $pkg.$init = $init;
@@ -191058,10 +191129,10 @@ $packages["github.com/supraio/client-daemon/pkg/x264"] = (function() {
191058
191129
  return $pkg;
191059
191130
  })();
191060
191131
  $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"] = (function() {
191061
- var $pkg = {}, $init, errs, jshelper, nacldecoder, dom, screen, f64, image, color, draw, log, sync, js, windowImpl, screenImpl, BufferImpl, sliceType, ptrType, ptrType$1, ptrType$2, ptrType$3, funcType, arrayType, ptrType$4, sliceType$1, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, newWindow, newScreenImpl, Main, main, newBuffer;
191132
+ var $pkg = {}, $init, errs, jshelper, jsdecoder, dom, screen, f64, image, color, draw, log, sync, js, windowImpl, screenImpl, BufferImpl, sliceType, ptrType, ptrType$1, ptrType$2, ptrType$3, funcType, arrayType, ptrType$4, sliceType$1, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, newWindow, newScreenImpl, Main, main, newBuffer;
191062
191133
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
191063
191134
  jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
191064
- nacldecoder = $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder"];
191135
+ jsdecoder = $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/jsdecoder"];
191065
191136
  dom = $packages["golang.org/x/exp/shiny/driver/util/dom"];
191066
191137
  screen = $packages["golang.org/x/exp/shiny/screen"];
191067
191138
  f64 = $packages["golang.org/x/image/math/f64"];
@@ -191071,19 +191142,19 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"] =
191071
191142
  log = $packages["log"];
191072
191143
  sync = $packages["sync"];
191073
191144
  js = $packages["syscall/js"];
191074
- windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "nacldriver.windowImpl", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", false, function(screen_, mutex_, jsNaClDecoder_, domEvents_, released_) {
191145
+ windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "nacldriver.windowImpl", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", false, function(screen_, mutex_, renderingInProgress_, domEvents_, released_) {
191075
191146
  this.$val = this;
191076
191147
  if (arguments.length === 0) {
191077
191148
  this.screen = ptrType.nil;
191078
191149
  this.mutex = ptrType$1.nil;
191079
- this.jsNaClDecoder = ptrType$2.nil;
191080
- this.domEvents = ptrType$3.nil;
191150
+ this.renderingInProgress = false;
191151
+ this.domEvents = ptrType$2.nil;
191081
191152
  this.released = false;
191082
191153
  return;
191083
191154
  }
191084
191155
  this.screen = screen_;
191085
191156
  this.mutex = mutex_;
191086
- this.jsNaClDecoder = jsNaClDecoder_;
191157
+ this.renderingInProgress = renderingInProgress_;
191087
191158
  this.domEvents = domEvents_;
191088
191159
  this.released = released_;
191089
191160
  });
@@ -191108,8 +191179,8 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"] =
191108
191179
  sliceType = $sliceType($emptyInterface);
191109
191180
  ptrType = $ptrType(screenImpl);
191110
191181
  ptrType$1 = $ptrType(sync.Mutex);
191111
- ptrType$2 = $ptrType(js.Value);
191112
- ptrType$3 = $ptrType(dom.DomEvents);
191182
+ ptrType$2 = $ptrType(dom.DomEvents);
191183
+ ptrType$3 = $ptrType(js.Value);
191113
191184
  funcType = $funcType([], [], false);
191114
191185
  arrayType = $arrayType(funcType, 0);
191115
191186
  ptrType$4 = $ptrType(image.RGBA);
@@ -191120,9 +191191,8 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"] =
191120
191191
  ptrType$8 = $ptrType(image.YCbCr);
191121
191192
  ptrType$9 = $ptrType(BufferImpl);
191122
191193
  newWindow = function(screen$1, opts) {
191123
- var {_r, _r$1, _r$2, domEvents, jsNaClDecoder, opts, screen$1, w, $s, $r, $c} = $restore(this, {screen$1, opts});
191194
+ var {_r, _r$1, domEvents, opts, screen$1, w, $s, $r, $c} = $restore(this, {screen$1, opts});
191124
191195
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191125
- jsNaClDecoder = [jsNaClDecoder];
191126
191196
  /* */ if (!(opts.Title === "")) { $s = 1; continue; }
191127
191197
  /* */ $s = 2; continue;
191128
191198
  /* if (!(opts.Title === "")) { */ case 1:
@@ -191130,17 +191200,10 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"] =
191130
191200
  _r$1 = $clone(_r, js.Value).Call("item", new sliceType([new $Int(0)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
191131
191201
  $r = $clone(_r$1, js.Value).Set("innerHTML", new $String(opts.Title)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191132
191202
  /* } */ case 2:
191133
- jsNaClDecoder[0] = $clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value);
191134
- /* */ if ($clone(jsNaClDecoder[0], js.Value).IsUndefined()) { $s = 6; continue; }
191135
- /* */ $s = 7; continue;
191136
- /* if ($clone(jsNaClDecoder[0], js.Value).IsUndefined()) { */ case 6:
191137
- _r$2 = errs.Errorf("Cannot get naclDecoder object from global scope", sliceType.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
191138
- $panic(_r$2);
191139
- /* } */ case 7:
191140
191203
  domEvents = dom.NewDomEvents();
191141
- w = new windowImpl.ptr(screen$1, new sync.Mutex.ptr(0, 0), jsNaClDecoder[0], domEvents, false);
191204
+ w = new windowImpl.ptr(screen$1, new sync.Mutex.ptr(0, 0), false, domEvents, false);
191142
191205
  $s = -1; return w;
191143
- /* */ } return; } var $f = {$blk: newWindow, $c: true, $r, _r, _r$1, _r$2, domEvents, jsNaClDecoder, opts, screen$1, w, $s};return $f;
191206
+ /* */ } return; } var $f = {$blk: newWindow, $c: true, $r, _r, _r$1, domEvents, opts, screen$1, w, $s};return $f;
191144
191207
  };
191145
191208
  windowImpl.ptr.prototype.Release = function() {
191146
191209
  var {w, $s, $deferred, $r, $c} = $restore(this, {});
@@ -191210,64 +191273,72 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"] =
191210
191273
  };
191211
191274
  windowImpl.prototype.Upload = function(dp, src, sr) { return this.$val.Upload(dp, src, sr); };
191212
191275
  windowImpl.ptr.prototype.UploadYCbCr = function(dp, src, sr) {
191213
- var {_arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, dp, err, err$1, picture, picturePromise, renderPromise, renderResult, sr, src, w, x, x$1, $s, $deferred, $r, $c} = $restore(this, {dp, src, sr});
191214
- /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
191276
+ var {_arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, dp, err, err$1, jsNaClDecoder, picture, picturePromise, renderPromise, renderResult, sr, src, w, x, x$1, $s, $r, $c} = $restore(this, {dp, src, sr});
191277
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191215
191278
  w = this;
191216
- $r = w.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191217
- $deferred.push([$methodVal(w.mutex, "Unlock"), []]);
191218
- /* */ if (w.released) { $s = 2; continue; }
191219
- /* */ $s = 3; continue;
191220
- /* if (w.released) { */ case 2:
191221
- $s = 4; case 4: return;
191222
- /* } */ case 3:
191223
- /* */ if (nacldecoder.IsResetting()) { $s = 5; continue; }
191224
- /* */ $s = 6; continue;
191225
- /* if (nacldecoder.IsResetting()) { */ case 5:
191226
- $s = 7; case 7: return;
191227
- /* } */ case 6:
191228
- _r = $clone(w.jsNaClDecoder, js.Value).Call("getPicture", sliceType.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191279
+ if (w.released) {
191280
+ $s = -1; return;
191281
+ }
191282
+ /* */ if (jsdecoder.ShouldResetOnNextDecode()) { $s = 1; continue; }
191283
+ /* */ $s = 2; continue;
191284
+ /* if (jsdecoder.ShouldResetOnNextDecode()) { */ case 1:
191285
+ $r = log.Println(new sliceType([new $String("NaClDecoder is resetting, skipping frame rendering")])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191286
+ $s = -1; return;
191287
+ /* } */ case 2:
191288
+ jsNaClDecoder = jsdecoder.GetJsNaClDecoder();
191289
+ /* */ if (jsNaClDecoder === ptrType$3.nil) { $s = 4; continue; }
191290
+ /* */ $s = 5; continue;
191291
+ /* if (jsNaClDecoder === ptrType$3.nil) { */ case 4:
191292
+ $r = log.Println(new sliceType([new $String("JsNaClDecoder is not created, skipping frame rendering")])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191293
+ $s = -1; return;
191294
+ /* } */ case 5:
191295
+ $r = w.mutex.Lock(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191296
+ _r = $clone(jsNaClDecoder, js.Value).Call("getPicture", sliceType.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191229
191297
  picturePromise = $clone(_r, js.Value);
191230
191298
  _r$1 = jshelper.Await($clone(picturePromise, js.Value)); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
191231
191299
  _tuple = _r$1;
191232
191300
  picture = _tuple[0];
191233
191301
  err = _tuple[1];
191234
- /* */ if (!(err === ptrType$2.nil)) { $s = 10; continue; }
191235
- /* */ $s = 11; continue;
191236
- /* if (!(err === ptrType$2.nil)) { */ case 10:
191237
- nacldecoder.Reset();
191238
- _r$2 = jshelper.GetError(err); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
191302
+ $r = w.mutex.Unlock(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191303
+ /* */ if (!(err === ptrType$3.nil)) { $s = 11; continue; }
191304
+ /* */ $s = 12; continue;
191305
+ /* if (!(err === ptrType$3.nil)) { */ case 11:
191306
+ jsdecoder.ResetBeforeNextDecode();
191307
+ _r$2 = jshelper.GetError(err); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
191239
191308
  _arg = _r$2;
191240
- $r = errs.Print("Failed to get picture: %s", _arg); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191241
- $s = 14; case 14: return;
191242
- /* } */ case 11:
191243
- /* */ if (!nacldecoder.IsResetting()) { $s = 15; continue; }
191309
+ $r = errs.Print("Failed to get picture: %s", _arg); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191310
+ $s = -1; return;
191311
+ /* } */ case 12:
191312
+ /* */ if (!jsdecoder.ShouldResetOnNextDecode() && !w.renderingInProgress) { $s = 15; continue; }
191244
191313
  /* */ $s = 16; continue;
191245
- /* if (!nacldecoder.IsResetting()) { */ case 15:
191246
- _r$3 = $clone(w.jsNaClDecoder, js.Value).Call("render", new sliceType([(x = picture, new x.constructor.elem(x))])); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
191314
+ /* if (!jsdecoder.ShouldResetOnNextDecode() && !w.renderingInProgress) { */ case 15:
191315
+ w.renderingInProgress = true;
191316
+ _r$3 = $clone(jsNaClDecoder, js.Value).Call("render", new sliceType([(x = picture, new x.constructor.elem(x))])); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
191247
191317
  renderPromise = $clone(_r$3, js.Value);
191248
191318
  _r$4 = jshelper.Await($clone(renderPromise, js.Value)); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
191249
191319
  _tuple$1 = _r$4;
191250
191320
  renderResult = _tuple$1[0];
191251
191321
  err$1 = _tuple$1[1];
191252
- /* */ if (!(err$1 === ptrType$2.nil)) { $s = 19; continue; }
191322
+ w.renderingInProgress = false;
191323
+ /* */ if (!(err$1 === ptrType$3.nil)) { $s = 19; continue; }
191253
191324
  /* */ $s = 20; continue;
191254
- /* if (!(err$1 === ptrType$2.nil)) { */ case 19:
191325
+ /* if (!(err$1 === ptrType$3.nil)) { */ case 19:
191255
191326
  _r$5 = jshelper.GetError(err$1); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
191256
191327
  _arg$1 = _r$5;
191257
191328
  $r = errs.Print("Failed to render frame: %s", _arg$1); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191258
- $s = 23; case 23: return;
191329
+ $s = -1; return;
191259
191330
  /* } */ case 20:
191260
- /* */ if (!(($clone(renderResult, js.Value).Float() === 0))) { $s = 24; continue; }
191261
- /* */ $s = 25; continue;
191262
- /* if (!(($clone(renderResult, js.Value).Float() === 0))) { */ case 24:
191263
- $r = log.Printf("Failed to render frame with code: %f\n", new sliceType([new $Float64($clone(renderResult, js.Value).Float())])); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191264
- $s = 27; case 27: return;
191265
- /* } */ case 25:
191331
+ /* */ if (!(($clone(renderResult, js.Value).Float() === 0))) { $s = 23; continue; }
191332
+ /* */ $s = 24; continue;
191333
+ /* if (!(($clone(renderResult, js.Value).Float() === 0))) { */ case 23:
191334
+ $r = log.Printf("Failed to render frame with code: %f\n", new sliceType([new $Float64($clone(renderResult, js.Value).Float())])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191335
+ $s = -1; return;
191336
+ /* } */ case 24:
191266
191337
  /* } */ case 16:
191267
- _r$6 = $clone(w.jsNaClDecoder, js.Value).Call("recyclePicture", new sliceType([(x$1 = picture, new x$1.constructor.elem(x$1))])); /* */ $s = 28; case 28: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
191338
+ _r$6 = $clone(jsNaClDecoder, js.Value).Call("recyclePicture", new sliceType([(x$1 = picture, new x$1.constructor.elem(x$1))])); /* */ $s = 26; case 26: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
191268
191339
  _r$6;
191269
191340
  $s = -1; return;
191270
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: windowImpl.ptr.prototype.UploadYCbCr, $c: true, $r, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, dp, err, err$1, picture, picturePromise, renderPromise, renderResult, sr, src, w, x, x$1, $s, $deferred};return $f; } }
191341
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.UploadYCbCr, $c: true, $r, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, dp, err, err$1, jsNaClDecoder, picture, picturePromise, renderPromise, renderResult, sr, src, w, x, x$1, $s};return $f;
191271
191342
  };
191272
191343
  windowImpl.prototype.UploadYCbCr = function(dp, src, sr) { return this.$val.UploadYCbCr(dp, src, sr); };
191273
191344
  windowImpl.ptr.prototype.Fill = function(dr, src, op) {
@@ -191416,7 +191487,7 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"] =
191416
191487
  ptrType$6.methods = [{prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "Publish", name: "Publish", pkg: "", typ: $funcType([], [screen.PublishResult], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "SendFirst", name: "SendFirst", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "NextEvent", name: "NextEvent", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Upload", name: "Upload", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "UploadYCbCr", name: "UploadYCbCr", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "Fill", name: "Fill", pkg: "", typ: $funcType([image.Rectangle, color.Color, draw.Op], [], false)}, {prop: "Draw", name: "Draw", pkg: "", typ: $funcType([f64.Aff3, screen.Texture, image.Rectangle, draw.Op, ptrType$5], [], false)}, {prop: "DrawUniform", name: "DrawUniform", pkg: "", typ: $funcType([f64.Aff3, color.Color, image.Rectangle, draw.Op, ptrType$5], [], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([image.Point, screen.Texture, image.Rectangle, draw.Op, ptrType$5], [], false)}, {prop: "Scale", name: "Scale", pkg: "", typ: $funcType([image.Rectangle, screen.Texture, image.Rectangle, draw.Op, ptrType$5], [], false)}];
191417
191488
  ptrType.methods = [{prop: "NewBuffer", name: "NewBuffer", pkg: "", typ: $funcType([image.Point], [screen.Buffer, $error], false)}, {prop: "NewTexture", name: "NewTexture", pkg: "", typ: $funcType([image.Point], [screen.Texture, $error], false)}, {prop: "NewWindow", name: "NewWindow", pkg: "", typ: $funcType([ptrType$7], [screen.Window, $error], false)}];
191418
191489
  ptrType$9.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [image.Point], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [image.Rectangle], false)}, {prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType$8], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}];
191419
- windowImpl.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "jsNaClDecoder", name: "jsNaClDecoder", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "domEvents", name: "domEvents", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}]);
191490
+ windowImpl.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "renderingInProgress", name: "renderingInProgress", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "domEvents", name: "domEvents", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}]);
191420
191491
  screenImpl.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}]);
191421
191492
  BufferImpl.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: image.Point, tag: ""}]);
191422
191493
  $init = function() {
@@ -191424,7 +191495,7 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"] =
191424
191495
  /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
191425
191496
  $r = errs.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191426
191497
  $r = jshelper.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191427
- $r = nacldecoder.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191498
+ $r = jsdecoder.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191428
191499
  $r = dom.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191429
191500
  $r = screen.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191430
191501
  $r = f64.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }