@supraio/client-daemon-js 0.0.1-mz-webcodecs.4 → 0.0.1-mz-webcodecs.5

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
@@ -136178,24 +136178,24 @@ $packages["github.com/nuberu/webgl"] = (function() {
136178
136178
  /* */ if ($assertType(_ref, sliceType$9, true)[1]) { $s = 10; continue; }
136179
136179
  /* */ $s = 11; continue;
136180
136180
  /* if ($assertType(_ref, sliceType, true)[1]) { */ case 1:
136181
- s$5[0] = _ref.$val;
136182
- h = ($pointerOfStructConversion(((s$5.$ptr || (s$5.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$5)))), ptrType));
136181
+ s$1[0] = _ref.$val;
136182
+ h = ($pointerOfStructConversion(((s$1.$ptr || (s$1.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$1)))), ptrType));
136183
136183
  $s = -1; return ((h)).$get();
136184
136184
  /* } else if ($assertType(_ref, sliceType$1, true)[1]) { */ case 2:
136185
- s$6[0] = _ref.$val;
136186
- h$1 = ($pointerOfStructConversion(((s$6.$ptr || (s$6.$ptr = new ptrType$2(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$6)))), ptrType));
136185
+ s$5[0] = _ref.$val;
136186
+ h$1 = ($pointerOfStructConversion(((s$5.$ptr || (s$5.$ptr = new ptrType$2(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$5)))), ptrType));
136187
136187
  h$1.Len = $imul(h$1.Len, (2));
136188
136188
  h$1.Cap = $imul(h$1.Cap, (2));
136189
136189
  $s = -1; return ((h$1)).$get();
136190
136190
  /* } else if ($assertType(_ref, sliceType$2, true)[1]) { */ case 3:
136191
- s$7[0] = _ref.$val;
136192
- h$2 = ($pointerOfStructConversion(((s$7.$ptr || (s$7.$ptr = new ptrType$3(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$7)))), ptrType));
136191
+ s$2[0] = _ref.$val;
136192
+ h$2 = ($pointerOfStructConversion(((s$2.$ptr || (s$2.$ptr = new ptrType$3(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$2)))), ptrType));
136193
136193
  h$2.Len = $imul(h$2.Len, (4));
136194
136194
  h$2.Cap = $imul(h$2.Cap, (4));
136195
136195
  $s = -1; return ((h$2)).$get();
136196
136196
  /* } else if ($assertType(_ref, sliceType$3, true)[1]) { */ case 4:
136197
- s$1[0] = _ref.$val;
136198
- h$3 = ($pointerOfStructConversion(((s$1.$ptr || (s$1.$ptr = new ptrType$4(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$1)))), ptrType));
136197
+ s$3[0] = _ref.$val;
136198
+ h$3 = ($pointerOfStructConversion(((s$3.$ptr || (s$3.$ptr = new ptrType$4(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$3)))), ptrType));
136199
136199
  h$3.Len = $imul(h$3.Len, (8));
136200
136200
  h$3.Cap = $imul(h$3.Cap, (8));
136201
136201
  $s = -1; return ((h$3)).$get();
@@ -136203,32 +136203,32 @@ $packages["github.com/nuberu/webgl"] = (function() {
136203
136203
  s$10 = _ref.$val;
136204
136204
  $s = -1; return s$10;
136205
136205
  /* } else if ($assertType(_ref, sliceType$5, true)[1]) { */ case 6:
136206
- s$2[0] = _ref.$val;
136207
- h$4 = ($pointerOfStructConversion(((s$2.$ptr || (s$2.$ptr = new ptrType$5(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$2)))), ptrType));
136206
+ s$6[0] = _ref.$val;
136207
+ h$4 = ($pointerOfStructConversion(((s$6.$ptr || (s$6.$ptr = new ptrType$5(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$6)))), ptrType));
136208
136208
  h$4.Len = $imul(h$4.Len, (2));
136209
136209
  h$4.Cap = $imul(h$4.Cap, (2));
136210
136210
  $s = -1; return ((h$4)).$get();
136211
136211
  /* } else if ($assertType(_ref, sliceType$6, true)[1]) { */ case 7:
136212
- s$8[0] = _ref.$val;
136213
- h$5 = ($pointerOfStructConversion(((s$8.$ptr || (s$8.$ptr = new ptrType$6(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$8)))), ptrType));
136212
+ s$7[0] = _ref.$val;
136213
+ h$5 = ($pointerOfStructConversion(((s$7.$ptr || (s$7.$ptr = new ptrType$6(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$7)))), ptrType));
136214
136214
  h$5.Len = $imul(h$5.Len, (4));
136215
136215
  h$5.Cap = $imul(h$5.Cap, (4));
136216
136216
  $s = -1; return ((h$5)).$get();
136217
136217
  /* } else if ($assertType(_ref, sliceType$7, true)[1]) { */ case 8:
136218
- s$3[0] = _ref.$val;
136219
- h$6 = ($pointerOfStructConversion(((s$3.$ptr || (s$3.$ptr = new ptrType$7(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$3)))), ptrType));
136218
+ s$8[0] = _ref.$val;
136219
+ h$6 = ($pointerOfStructConversion(((s$8.$ptr || (s$8.$ptr = new ptrType$7(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$8)))), ptrType));
136220
136220
  h$6.Len = $imul(h$6.Len, (8));
136221
136221
  h$6.Cap = $imul(h$6.Cap, (8));
136222
136222
  $s = -1; return ((h$6)).$get();
136223
136223
  /* } else if ($assertType(_ref, sliceType$8, true)[1]) { */ case 9:
136224
- s$4[0] = _ref.$val;
136225
- h$7 = ($pointerOfStructConversion(((s$4.$ptr || (s$4.$ptr = new ptrType$8(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$4)))), ptrType));
136224
+ s$9[0] = _ref.$val;
136225
+ h$7 = ($pointerOfStructConversion(((s$9.$ptr || (s$9.$ptr = new ptrType$8(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$9)))), ptrType));
136226
136226
  h$7.Len = $imul(h$7.Len, (4));
136227
136227
  h$7.Cap = $imul(h$7.Cap, (4));
136228
136228
  $s = -1; return ((h$7)).$get();
136229
136229
  /* } else if ($assertType(_ref, sliceType$9, true)[1]) { */ case 10:
136230
- s$9[0] = _ref.$val;
136231
- h$8 = ($pointerOfStructConversion(((s$9.$ptr || (s$9.$ptr = new ptrType$9(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$9)))), ptrType));
136230
+ s$4[0] = _ref.$val;
136231
+ h$8 = ($pointerOfStructConversion(((s$4.$ptr || (s$4.$ptr = new ptrType$9(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$4)))), ptrType));
136232
136232
  h$8.Len = $imul(h$8.Len, (8));
136233
136233
  h$8.Cap = $imul(h$8.Cap, (8));
136234
136234
  $s = -1; return ((h$8)).$get();
@@ -143248,26 +143248,27 @@ $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
143248
143248
  return $pkg;
143249
143249
  })();
143250
143250
  $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"] = (function() {
143251
- var $pkg = {}, $init, webgl, errs, jshelper, general, canvasdriver, js, Decoder, sliceType, ptrType, sliceType$1, ptrType$1, sliceType$2, ptrType$2, NewDecoder;
143251
+ var $pkg = {}, $init, hex, webgl, errs, jshelper, general, canvasdriver, js, Decoder, sliceType, ptrType, sliceType$1, ptrType$1, sliceType$2, ptrType$2, funcType, NewDecoder;
143252
+ hex = $packages["encoding/hex"];
143252
143253
  webgl = $packages["github.com/nuberu/webgl"];
143253
143254
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
143254
143255
  jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
143255
143256
  general = $packages["github.com/supraio/client-daemon/pkg/x264/general"];
143256
143257
  canvasdriver = $packages["golang.org/x/exp/shiny/driver/canvasdriver"];
143257
143258
  js = $packages["syscall/js"];
143258
- Decoder = $pkg.Decoder = $newType(0, $kindStruct, "webcodecs.Decoder", true, "github.com/supraio/client-daemon/pkg/x264/webcodecs", true, function(jsVideoDecoder_, resolves_, rejects_, wasKeyFrame_) {
143259
+ Decoder = $pkg.Decoder = $newType(0, $kindStruct, "webcodecs.Decoder", true, "github.com/supraio/client-daemon/pkg/x264/webcodecs", true, function(jsVideoDecoder_, resolves_, rejects_, releaseVideoDecoder_) {
143259
143260
  this.$val = this;
143260
143261
  if (arguments.length === 0) {
143261
143262
  this.jsVideoDecoder = ptrType.nil;
143262
143263
  this.resolves = sliceType.nil;
143263
143264
  this.rejects = sliceType.nil;
143264
- this.wasKeyFrame = false;
143265
+ this.releaseVideoDecoder = $throwNilPointerError;
143265
143266
  return;
143266
143267
  }
143267
143268
  this.jsVideoDecoder = jsVideoDecoder_;
143268
143269
  this.resolves = resolves_;
143269
143270
  this.rejects = rejects_;
143270
- this.wasKeyFrame = wasKeyFrame_;
143271
+ this.releaseVideoDecoder = releaseVideoDecoder_;
143271
143272
  });
143272
143273
  sliceType = $sliceType(js.Value);
143273
143274
  ptrType = $ptrType(js.Value);
@@ -143275,115 +143276,137 @@ $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"] = (function() {
143275
143276
  ptrType$1 = $ptrType(canvasdriver.BufferImpl);
143276
143277
  sliceType$2 = $sliceType($Uint8);
143277
143278
  ptrType$2 = $ptrType(Decoder);
143279
+ funcType = $funcType([], [], false);
143278
143280
  NewDecoder = function(header) {
143279
143281
  var header, rejects, resolves;
143280
143282
  resolves = new sliceType([]);
143281
143283
  rejects = new sliceType([]);
143282
- return new Decoder.ptr(ptrType.nil, resolves, rejects, false);
143284
+ return new Decoder.ptr(ptrType.nil, resolves, rejects, $throwNilPointerError);
143283
143285
  };
143284
143286
  $pkg.NewDecoder = NewDecoder;
143285
- Decoder.ptr.prototype.configure = function() {
143286
- var _r, _r$1, _r$2, _r$3, config, d, init, jsVideoDecoder, x, x$1, $s, $r;
143287
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; config = $f.config; d = $f.d; init = $f.init; jsVideoDecoder = $f.jsVideoDecoder; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143287
+ Decoder.ptr.prototype.configure = function(nal) {
143288
+ var _r, _r$1, _r$2, _r$3, config, d, errorCallback, h264CodecName, init, jsVideoDecoder, nal, outputCallback, $s, $r;
143289
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; config = $f.config; d = $f.d; errorCallback = $f.errorCallback; h264CodecName = $f.h264CodecName; init = $f.init; jsVideoDecoder = $f.jsVideoDecoder; nal = $f.nal; outputCallback = $f.outputCallback; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143288
143290
  d = [d];
143291
+ errorCallback = [errorCallback];
143289
143292
  jsVideoDecoder = [jsVideoDecoder];
143293
+ outputCallback = [outputCallback];
143290
143294
  d[0] = this;
143291
143295
  _r = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(new sliceType$1([])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
143292
143296
  init = $clone(_r, js.Value);
143293
- $r = $clone(init, js.Value).Set("output", (x = js.FuncOf((function(d, jsVideoDecoder) { return function $b(this$1, args) {
143294
- var _i, _r$1, _ref, args, resolve, this$1, x$1, $s, $r;
143295
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r$1 = $f._r$1; _ref = $f._ref; args = $f.args; resolve = $f.resolve; this$1 = $f.this$1; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143297
+ outputCallback[0] = $clone(js.FuncOf((function(d, errorCallback, jsVideoDecoder, outputCallback) { return function $b(this$1, args) {
143298
+ var _i, _r$1, _ref, args, resolve, this$1, x, $s, $r;
143299
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r$1 = $f._r$1; _ref = $f._ref; args = $f.args; resolve = $f.resolve; this$1 = $f.this$1; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143296
143300
  _ref = d[0].resolves;
143297
143301
  _i = 0;
143298
143302
  /* while (true) { */ case 1:
143299
143303
  /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
143300
143304
  resolve = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js.Value);
143301
- _r$1 = $clone(resolve, js.Value).Call("call", new sliceType$1([$ifaceNil, (x$1 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), new x$1.constructor.elem(x$1))])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
143305
+ _r$1 = $clone(resolve, js.Value).Call("call", new sliceType$1([$ifaceNil, (x = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), new x.constructor.elem(x))])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
143302
143306
  _r$1;
143303
143307
  _i++;
143304
143308
  /* } */ $s = 1; continue; case 2:
143305
143309
  d[0].resolves = new sliceType([]);
143306
143310
  d[0].rejects = new sliceType([]);
143307
143311
  $s = -1; return $ifaceNil;
143308
- /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._i = _i; $f._r$1 = _r$1; $f._ref = _ref; $f.args = args; $f.resolve = resolve; $f.this$1 = this$1; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f;
143309
- }; })(d, jsVideoDecoder)), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143310
- $r = $clone(init, js.Value).Set("error", (x$1 = js.FuncOf((function(d, jsVideoDecoder) { return function $b(this$1, args) {
143311
- var _i, _r$1, _ref, args, reject, this$1, x$2, $s, $r;
143312
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r$1 = $f._r$1; _ref = $f._ref; args = $f.args; reject = $f.reject; this$1 = $f.this$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143312
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._i = _i; $f._r$1 = _r$1; $f._ref = _ref; $f.args = args; $f.resolve = resolve; $f.this$1 = this$1; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
143313
+ }; })(d, errorCallback, jsVideoDecoder, outputCallback)), js.Func);
143314
+ errorCallback[0] = $clone(js.FuncOf((function(d, errorCallback, jsVideoDecoder, outputCallback) { return function $b(this$1, args) {
143315
+ var _i, _r$1, _ref, args, reject, this$1, x, $s, $r;
143316
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r$1 = $f._r$1; _ref = $f._ref; args = $f.args; reject = $f.reject; this$1 = $f.this$1; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143313
143317
  _ref = d[0].rejects;
143314
143318
  _i = 0;
143315
143319
  /* while (true) { */ case 1:
143316
143320
  /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
143317
143321
  reject = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js.Value);
143318
- _r$1 = $clone(reject, js.Value).Call("call", new sliceType$1([$ifaceNil, (x$2 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), new x$2.constructor.elem(x$2))])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
143322
+ _r$1 = $clone(reject, js.Value).Call("call", new sliceType$1([$ifaceNil, (x = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), new x.constructor.elem(x))])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
143319
143323
  _r$1;
143320
143324
  _i++;
143321
143325
  /* } */ $s = 1; continue; case 2:
143322
143326
  d[0].resolves = new sliceType([]);
143323
143327
  d[0].rejects = new sliceType([]);
143324
143328
  $s = -1; return $ifaceNil;
143325
- /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._i = _i; $f._r$1 = _r$1; $f._ref = _ref; $f.args = args; $f.reject = reject; $f.this$1 = this$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f;
143326
- }; })(d, jsVideoDecoder)), new x$1.constructor.elem(x$1))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143329
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._i = _i; $f._r$1 = _r$1; $f._ref = _ref; $f.args = args; $f.reject = reject; $f.this$1 = this$1; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
143330
+ }; })(d, errorCallback, jsVideoDecoder, outputCallback)), js.Func);
143331
+ $r = $clone(init, js.Value).Set("output", new outputCallback[0].constructor.elem(outputCallback[0])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143332
+ $r = $clone(init, js.Value).Set("error", new errorCallback[0].constructor.elem(errorCallback[0])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143327
143333
  _r$1 = $clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).New(new sliceType$1([new init.constructor.elem(init)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
143328
143334
  jsVideoDecoder[0] = $clone(_r$1, js.Value);
143335
+ h264CodecName = d[0].detectCodecName(nal);
143329
143336
  _r$2 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(new sliceType$1([])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
143330
143337
  config = $clone(_r$2, js.Value);
143331
- $r = $clone(config, js.Value).Set("codec", new $String("avc1.42c028")); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143338
+ $r = $clone(config, js.Value).Set("codec", new $String(h264CodecName)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143332
143339
  $r = $clone(config, js.Value).Set("optimizeForLatency", new $Bool(true)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143333
143340
  _r$3 = $clone(jsVideoDecoder[0], js.Value).Call("configure", new sliceType$1([new config.constructor.elem(config)])); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
143334
143341
  _r$3;
143335
143342
  d[0].jsVideoDecoder = jsVideoDecoder[0];
143336
- $s = -1; return;
143337
- /* */ } return; } if ($f === undefined) { $f = { $blk: Decoder.ptr.prototype.configure }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f.config = config; $f.d = d; $f.init = init; $f.jsVideoDecoder = jsVideoDecoder; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f;
143343
+ d[0].releaseVideoDecoder = (function(d, errorCallback, jsVideoDecoder, outputCallback) { return function() {
143344
+ d[0].jsVideoDecoder = ptrType.nil;
143345
+ d[0].releaseVideoDecoder = $throwNilPointerError;
143346
+ $clone(outputCallback[0], js.Func).Release();
143347
+ $clone(errorCallback[0], js.Func).Release();
143348
+ }; })(d, errorCallback, jsVideoDecoder, outputCallback);
143349
+ $s = -1; return;
143350
+ /* */ } return; } if ($f === undefined) { $f = { $blk: Decoder.ptr.prototype.configure }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f.config = config; $f.d = d; $f.errorCallback = errorCallback; $f.h264CodecName = h264CodecName; $f.init = init; $f.jsVideoDecoder = jsVideoDecoder; $f.nal = nal; $f.outputCallback = outputCallback; $f.$s = $s; $f.$r = $r; return $f;
143351
+ };
143352
+ Decoder.prototype.configure = function(nal) { return this.$val.configure(nal); };
143353
+ Decoder.ptr.prototype.detectCodecName = function(nal) {
143354
+ var codecName, d, nal;
143355
+ d = this;
143356
+ codecName = "avc1." + hex.EncodeToString($subslice(nal, 5, 8));
143357
+ return codecName;
143338
143358
  };
143339
- Decoder.prototype.configure = function() { return this.$val.configure(); };
143359
+ Decoder.prototype.detectCodecName = function(nal) { return this.$val.detectCodecName(nal); };
143340
143360
  Decoder.ptr.prototype.Decode = function(nal, outputBuffer) {
143341
143361
  var _arg, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, chunk, chunkOpts, d, err, errDec, errMessage, frame, frameData, framePromise, framePromiseCb, frameType, nal, outputBuffer, racePromise, timeoutPromise, timeoutPromiseCb, x, ycbcrJSImg, $s, $r;
143342
143362
  /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tuple = $f._tuple; chunk = $f.chunk; chunkOpts = $f.chunkOpts; d = $f.d; err = $f.err; errDec = $f.errDec; errMessage = $f.errMessage; frame = $f.frame; frameData = $f.frameData; framePromise = $f.framePromise; framePromiseCb = $f.framePromiseCb; frameType = $f.frameType; nal = $f.nal; outputBuffer = $f.outputBuffer; racePromise = $f.racePromise; timeoutPromise = $f.timeoutPromise; timeoutPromiseCb = $f.timeoutPromiseCb; x = $f.x; ycbcrJSImg = $f.ycbcrJSImg; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143343
143363
  d = [d];
143344
143364
  d[0] = this;
143345
143365
  frameType = "delta";
143346
- if ((((4 >= nal.$length ? ($throwRuntimeError("index out of range"), undefined) : nal.$array[nal.$offset + 4]) >> 0)) === 103) {
143347
- frameType = "key";
143348
- }
143349
- /* */ if (!(frameType === "key") && !d[0].wasKeyFrame) { $s = 1; continue; }
143366
+ /* */ if ((((4 >= nal.$length ? ($throwRuntimeError("index out of range"), undefined) : nal.$array[nal.$offset + 4]) >> 0)) === 103) { $s = 1; continue; }
143350
143367
  /* */ $s = 2; continue;
143351
- /* if (!(frameType === "key") && !d[0].wasKeyFrame) { */ case 1:
143352
- _r = errs.Errorf("Waiting for KEY frame", new sliceType$1([])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
143353
- $s = -1; return _r;
143368
+ /* if ((((4 >= nal.$length ? ($throwRuntimeError("index out of range"), undefined) : nal.$array[nal.$offset + 4]) >> 0)) === 103) { */ case 1:
143369
+ frameType = "key";
143370
+ /* */ if (d[0].jsVideoDecoder === ptrType.nil) { $s = 3; continue; }
143371
+ /* */ $s = 4; continue;
143372
+ /* if (d[0].jsVideoDecoder === ptrType.nil) { */ case 3:
143373
+ $r = d[0].configure(nal); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143374
+ /* } */ case 4:
143354
143375
  /* } */ case 2:
143355
- /* */ if (d[0].jsVideoDecoder === ptrType.nil) { $s = 4; continue; }
143356
- /* */ $s = 5; continue;
143357
- /* if (d[0].jsVideoDecoder === ptrType.nil) { */ case 4:
143358
- $r = d[0].configure(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143359
- /* } */ case 5:
143360
- _r$1 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(new sliceType$1([])); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
143376
+ /* */ if (d[0].jsVideoDecoder === ptrType.nil) { $s = 6; continue; }
143377
+ /* */ $s = 7; continue;
143378
+ /* if (d[0].jsVideoDecoder === ptrType.nil) { */ case 6:
143379
+ _r = errs.Errorf("Key frame with SPS & IDR is required at the beginning", new sliceType$1([])); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
143380
+ $s = -1; return _r;
143381
+ /* } */ case 7:
143382
+ _r$1 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(new sliceType$1([])); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
143361
143383
  chunkOpts = $clone(_r$1, js.Value);
143362
- _r$2 = webgl.TypedArrayOf(nal); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
143384
+ _r$2 = webgl.TypedArrayOf(nal); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
143363
143385
  frameData = $clone(_r$2, js.Value);
143364
- $r = $clone(chunkOpts, js.Value).Set("type", new $String(frameType)); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143365
- $r = $clone(chunkOpts, js.Value).Set("data", new frameData.constructor.elem(frameData)); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143366
- $r = $clone(chunkOpts, js.Value).Set("timestamp", new $Int(0)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143367
- $r = $clone(chunkOpts, js.Value).Set("duration", new $Int(10000000)); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143368
- _r$3 = $clone($clone(js.Global(), js.Value).Get("EncodedVideoChunk"), js.Value).New(new sliceType$1([new chunkOpts.constructor.elem(chunkOpts)])); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
143386
+ $r = $clone(chunkOpts, js.Value).Set("type", new $String(frameType)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143387
+ $r = $clone(chunkOpts, js.Value).Set("data", new frameData.constructor.elem(frameData)); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143388
+ $r = $clone(chunkOpts, js.Value).Set("timestamp", new $Int(0)); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143389
+ _r$3 = $clone($clone(js.Global(), js.Value).Get("EncodedVideoChunk"), js.Value).New(new sliceType$1([new chunkOpts.constructor.elem(chunkOpts)])); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
143369
143390
  chunk = $clone(_r$3, js.Value);
143370
- _r$4 = d[0].jsSafeDecode($clone(chunk, js.Value)); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
143391
+ _r$4 = d[0].jsSafeDecode($clone(chunk, js.Value)); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
143371
143392
  errDec = _r$4;
143372
- if (!($interfaceIsEqual(errDec, $ifaceNil))) {
143373
- if ($clone($clone(d[0].jsVideoDecoder, js.Value).Get("state"), js.Value).String() === "closed") {
143374
- d[0].jsVideoDecoder = ptrType.nil;
143375
- d[0].wasKeyFrame = false;
143376
- }
143393
+ /* */ if (!($interfaceIsEqual(errDec, $ifaceNil))) { $s = 16; continue; }
143394
+ /* */ $s = 17; continue;
143395
+ /* if (!($interfaceIsEqual(errDec, $ifaceNil))) { */ case 16:
143396
+ /* */ if ($clone($clone(d[0].jsVideoDecoder, js.Value).Get("state"), js.Value).String() === "closed") { $s = 18; continue; }
143397
+ /* */ $s = 19; continue;
143398
+ /* if ($clone($clone(d[0].jsVideoDecoder, js.Value).Get("state"), js.Value).String() === "closed") { */ case 18:
143399
+ $r = d[0].releaseVideoDecoder(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143400
+ /* } */ case 19:
143377
143401
  $s = -1; return errDec;
143378
- }
143379
- d[0].wasKeyFrame = true;
143402
+ /* } */ case 17:
143380
143403
  framePromiseCb = $clone(js.FuncOf((function(d) { return function(this$1, args) {
143381
143404
  var args, this$1;
143382
143405
  d[0].resolves = $append(d[0].resolves, (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]));
143383
143406
  d[0].rejects = $append(d[0].rejects, (1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]));
143384
143407
  return $ifaceNil;
143385
143408
  }; })(d)), js.Func);
143386
- _r$5 = $clone($clone(js.Global(), js.Value).Get("Promise"), js.Value).New(new sliceType$1([new framePromiseCb.constructor.elem(framePromiseCb)])); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
143409
+ _r$5 = $clone($clone(js.Global(), js.Value).Get("Promise"), js.Value).New(new sliceType$1([new framePromiseCb.constructor.elem(framePromiseCb)])); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
143387
143410
  framePromise = $clone(_r$5, js.Value);
143388
143411
  timeoutPromiseCb = $clone(js.FuncOf((function(d) { return function $b(this$1, args) {
143389
143412
  var _arg, _r$6, _r$7, args, this$1, x, $s, $r;
@@ -143395,30 +143418,30 @@ $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"] = (function() {
143395
143418
  $s = -1; return $ifaceNil;
143396
143419
  /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._arg = _arg; $f._r$6 = _r$6; $f._r$7 = _r$7; $f.args = args; $f.this$1 = this$1; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
143397
143420
  }; })(d)), js.Func);
143398
- _r$6 = $clone($clone(js.Global(), js.Value).Get("Promise"), js.Value).New(new sliceType$1([new timeoutPromiseCb.constructor.elem(timeoutPromiseCb)])); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
143421
+ _r$6 = $clone($clone(js.Global(), js.Value).Get("Promise"), js.Value).New(new sliceType$1([new timeoutPromiseCb.constructor.elem(timeoutPromiseCb)])); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
143399
143422
  timeoutPromise = $clone(_r$6, js.Value);
143400
- _r$7 = $clone($clone(js.Global(), js.Value).Get("Array"), js.Value).New(new sliceType$1([new framePromise.constructor.elem(framePromise), new timeoutPromise.constructor.elem(timeoutPromise)])); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
143423
+ _r$7 = $clone($clone(js.Global(), js.Value).Get("Array"), js.Value).New(new sliceType$1([new framePromise.constructor.elem(framePromise), new timeoutPromise.constructor.elem(timeoutPromise)])); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
143401
143424
  _arg = (x = _r$7, new x.constructor.elem(x));
143402
- _r$8 = $clone($clone(js.Global(), js.Value).Get("Promise"), js.Value).Call("race", new sliceType$1([_arg])); /* */ $s = 18; case 18: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
143425
+ _r$8 = $clone($clone(js.Global(), js.Value).Get("Promise"), js.Value).Call("race", new sliceType$1([_arg])); /* */ $s = 24; case 24: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
143403
143426
  racePromise = $clone(_r$8, js.Value);
143404
- _r$9 = jshelper.Await($clone(racePromise, js.Value)); /* */ $s = 19; case 19: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
143427
+ _r$9 = jshelper.Await($clone(racePromise, js.Value)); /* */ $s = 25; case 25: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
143405
143428
  _tuple = _r$9;
143406
143429
  frame = _tuple[0];
143407
143430
  err = _tuple[1];
143408
143431
  $clone(framePromiseCb, js.Func).Release();
143409
143432
  $clone(timeoutPromiseCb, js.Func).Release();
143410
- /* */ if (!(err === ptrType.nil)) { $s = 20; continue; }
143411
- /* */ $s = 21; continue;
143412
- /* if (!(err === ptrType.nil)) { */ case 20:
143433
+ /* */ if (!(err === ptrType.nil)) { $s = 26; continue; }
143434
+ /* */ $s = 27; continue;
143435
+ /* if (!(err === ptrType.nil)) { */ case 26:
143413
143436
  errMessage = "";
143414
143437
  if ($clone(err, js.Value).Type() === 4) {
143415
143438
  errMessage = $clone(err, js.Value).String();
143416
143439
  } else {
143417
143440
  errMessage = $clone($clone(err, js.Value).Get("message"), js.Value).String();
143418
143441
  }
143419
- _r$10 = errs.Errorf(errMessage, new sliceType$1([])); /* */ $s = 22; case 22: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
143442
+ _r$10 = errs.Errorf(errMessage, new sliceType$1([])); /* */ $s = 28; case 28: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
143420
143443
  $s = -1; return _r$10;
143421
- /* } */ case 21:
143444
+ /* } */ case 27:
143422
143445
  ycbcrJSImg = $assertType(outputBuffer, ptrType$1).YCbCrJS();
143423
143446
  ycbcrJSImg.CanvasImageSource = frame;
143424
143447
  $s = -1; return $ifaceNil;
@@ -143466,17 +143489,18 @@ $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"] = (function() {
143466
143489
  /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: Decoder.ptr.prototype.jsSafeDecode }; } $f._r = _r; $f.chunk = chunk; $f.d = d; $f.err = err; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
143467
143490
  };
143468
143491
  Decoder.prototype.jsSafeDecode = function(chunk) { return this.$val.jsSafeDecode(chunk); };
143469
- ptrType$2.methods = [{prop: "configure", name: "configure", pkg: "github.com/supraio/client-daemon/pkg/x264/webcodecs", typ: $funcType([], [], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$2, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}, {prop: "jsSafeDecode", name: "jsSafeDecode", pkg: "github.com/supraio/client-daemon/pkg/x264/webcodecs", typ: $funcType([js.Value], [$error], false)}];
143470
- Decoder.init("github.com/supraio/client-daemon/pkg/x264/webcodecs", [{prop: "jsVideoDecoder", name: "jsVideoDecoder", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "resolves", name: "resolves", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "rejects", name: "rejects", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "wasKeyFrame", name: "wasKeyFrame", embedded: false, exported: false, typ: $Bool, tag: ""}]);
143492
+ ptrType$2.methods = [{prop: "configure", name: "configure", pkg: "github.com/supraio/client-daemon/pkg/x264/webcodecs", typ: $funcType([sliceType$2], [], false)}, {prop: "detectCodecName", name: "detectCodecName", pkg: "github.com/supraio/client-daemon/pkg/x264/webcodecs", typ: $funcType([sliceType$2], [$String], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$2, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}, {prop: "jsSafeDecode", name: "jsSafeDecode", pkg: "github.com/supraio/client-daemon/pkg/x264/webcodecs", typ: $funcType([js.Value], [$error], false)}];
143493
+ Decoder.init("github.com/supraio/client-daemon/pkg/x264/webcodecs", [{prop: "jsVideoDecoder", name: "jsVideoDecoder", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "resolves", name: "resolves", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "rejects", name: "rejects", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "releaseVideoDecoder", name: "releaseVideoDecoder", embedded: false, exported: false, typ: funcType, tag: ""}]);
143471
143494
  $init = function() {
143472
143495
  $pkg.$init = function() {};
143473
143496
  /* */ 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:
143474
- $r = webgl.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143475
- $r = errs.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143476
- $r = jshelper.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143477
- $r = general.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143478
- $r = canvasdriver.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143479
- $r = js.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143497
+ $r = hex.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143498
+ $r = webgl.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143499
+ $r = errs.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143500
+ $r = jshelper.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143501
+ $r = general.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143502
+ $r = canvasdriver.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143503
+ $r = js.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143480
143504
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
143481
143505
  };
143482
143506
  $pkg.$init = $init;