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

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.
@@ -22163,7 +22163,7 @@ $packages["github.com/gopherjs/gopherjs/nosync"] = (function() {
22163
22163
  return $pkg;
22164
22164
  })();
22165
22165
  $packages["time"] = (function() {
22166
- var $pkg = {}, $init, errors, js, nosync, runtime, syscall, js$1, runtimeTimer, ParseError, Timer, Time, Month, Weekday, Duration, Location, zone, zoneTrans, ruleKind, rule, sliceType, sliceType$1, ptrType, sliceType$2, structType, arrayType, sliceType$3, arrayType$1, arrayType$2, ptrType$2, chanType, funcType, arrayType$3, funcType$1, ptrType$3, ptrType$4, ptrType$5, chanType$1, ptrType$7, zoneSources, std0x, longDayNames, shortDayNames, shortMonthNames, longMonthNames, atoiError, errBad, errLeadingInt, unitMap, daysBefore, startNano, utcLoc, utcLoc$24ptr, localLoc, localLoc$24ptr, localOnce, errLocation, badData, x, init, runtimeNano, now, Sleep, startTimer, stopTimer, modTimer, resetTimer, initLocal, itoa, startsWithLowerCase, nextStdChunk, match, lookup, appendInt, atoi, formatNano, quote, isDigit, getnum, getnum3, cutspace, skip, Parse, ParseInLocation, parse, parseTimeZone, parseGMT, parseSignedOffset, parseNanoseconds, leadingInt, leadingFraction, ParseDuration, when, NewTimer, sendTime, After, AfterFunc, goFunc, absWeekday, absClock, fmtFrac, fmtInt, lessThanHalf, Until, absDate, daysIn, daysSinceEpoch, Now, unixTime, Unix, isLeap, norm, Date, div, FixedZone, tzset, tzsetName, tzsetOffset, tzsetRule, tzsetNum, tzruleTime;
22166
+ var $pkg = {}, $init, errors, js, nosync, runtime, syscall, js$1, runtimeTimer, ParseError, Timer, Time, Month, Weekday, Duration, Location, zone, zoneTrans, ruleKind, rule, sliceType, sliceType$1, ptrType, sliceType$2, structType, arrayType, sliceType$3, arrayType$1, arrayType$2, ptrType$2, chanType, funcType, arrayType$3, funcType$1, ptrType$3, ptrType$4, ptrType$5, chanType$1, ptrType$7, zoneSources, std0x, longDayNames, shortDayNames, shortMonthNames, longMonthNames, atoiError, errBad, errLeadingInt, unitMap, daysBefore, startNano, utcLoc, utcLoc$24ptr, localLoc, localLoc$24ptr, localOnce, errLocation, badData, x, init, runtimeNano, now, Sleep, startTimer, stopTimer, modTimer, resetTimer, initLocal, itoa, startsWithLowerCase, nextStdChunk, match, lookup, appendInt, atoi, formatNano, quote, isDigit, getnum, getnum3, cutspace, skip, Parse, ParseInLocation, parse, parseTimeZone, parseGMT, parseSignedOffset, parseNanoseconds, leadingInt, leadingFraction, ParseDuration, when, NewTimer, sendTime, After, AfterFunc, goFunc, absWeekday, absClock, fmtFrac, fmtInt, lessThanHalf, Since, Until, absDate, daysIn, daysSinceEpoch, Now, unixTime, Unix, isLeap, norm, Date, div, FixedZone, tzset, tzsetName, tzsetOffset, tzsetRule, tzsetNum, tzruleTime;
22167
22167
  errors = $packages["errors"];
22168
22168
  js = $packages["github.com/gopherjs/gopherjs/js"];
22169
22169
  nosync = $packages["github.com/gopherjs/gopherjs/nosync"];
@@ -24618,6 +24618,17 @@ $packages["time"] = (function() {
24618
24618
  }
24619
24619
  };
24620
24620
  Time.prototype.Sub = function(u) { return this.$val.Sub(u); };
24621
+ Since = function(t) {
24622
+ var now$1, t, x$1, x$2, x$3;
24623
+ now$1 = new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil);
24624
+ if (!((x$1 = (x$2 = t.wall, new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) {
24625
+ Time.copy(now$1, new Time.ptr(new $Uint64(2147483648, 0), (x$3 = runtimeNano(), new $Int64(x$3.$high - startNano.$high, x$3.$low - startNano.$low)), ptrType$2.nil));
24626
+ } else {
24627
+ Time.copy(now$1, Now());
24628
+ }
24629
+ return $clone(now$1, Time).Sub($clone(t, Time));
24630
+ };
24631
+ $pkg.Since = Since;
24621
24632
  Until = function(t) {
24622
24633
  var now$1, t, x$1, x$2, x$3;
24623
24634
  now$1 = new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil);
@@ -131811,7 +131822,7 @@ $packages["nhooyr.io/websocket"] = (function() {
131811
131822
  return $pkg;
131812
131823
  })();
131813
131824
  $packages["github.com/supraio/client-daemon/pkg/netpacket"] = (function() {
131814
- var $pkg = {}, $init, context, errs, websocket, time, ReaderWriterCloser, Driver, JsWebsocketConn, sliceType, sliceType$1, sliceType$2, ptrType, ptrType$1, connects, Create, init, ConnectJsWebsocket;
131825
+ var $pkg = {}, $init, context, errs, websocket, time, ReaderWriterCloser, Driver, JsWebsocketConn, sliceType, sliceType$1, sliceType$2, ptrType, ptrType$1, connects, maxPacketSizes, Create, GetMaxPacketSize, init, ConnectJsWebsocket;
131815
131826
  context = $packages["context"];
131816
131827
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
131817
131828
  websocket = $packages["nhooyr.io/websocket"];
@@ -131845,9 +131856,15 @@ $packages["github.com/supraio/client-daemon/pkg/netpacket"] = (function() {
131845
131856
  /* */ } return; } if ($f === undefined) { $f = { $blk: Create }; } $f._entry = _entry; $f._r = _r; $f._tuple = _tuple; $f.connect = connect; $f.driver = driver; $f.exists = exists; $f.$s = $s; $f.$r = $r; return $f;
131846
131857
  };
131847
131858
  $pkg.Create = Create;
131859
+ GetMaxPacketSize = function(driver) {
131860
+ var _entry, driver;
131861
+ return (_entry = maxPacketSizes[Driver.keyFor(driver)], _entry !== undefined ? _entry.v : 0);
131862
+ };
131863
+ $pkg.GetMaxPacketSize = GetMaxPacketSize;
131848
131864
  init = function() {
131849
- var _key;
131865
+ var _key, _key$1;
131850
131866
  _key = "js_websocket"; (connects || $throwRuntimeError("assignment to entry in nil map"))[Driver.keyFor(_key)] = { k: _key, v: ConnectJsWebsocket };
131867
+ _key$1 = "js_websocket"; (maxPacketSizes || $throwRuntimeError("assignment to entry in nil map"))[Driver.keyFor(_key$1)] = { k: _key$1, v: 32768 };
131851
131868
  };
131852
131869
  JsWebsocketConn.ptr.prototype.Write = function(data) {
131853
131870
  var _r, c, data, err, $s, $r;
@@ -131927,6 +131944,7 @@ $packages["github.com/supraio/client-daemon/pkg/netpacket"] = (function() {
131927
131944
  $r = websocket.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
131928
131945
  $r = time.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
131929
131946
  connects = $makeMap(Driver.keyFor, []);
131947
+ maxPacketSizes = $makeMap(Driver.keyFor, []);
131930
131948
  init();
131931
131949
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
131932
131950
  };
@@ -133449,11 +133467,47 @@ $packages["github.com/supraio/client-daemon/pkg/netclient"] = (function() {
133449
133467
  return $pkg;
133450
133468
  })();
133451
133469
  $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
133452
- var $pkg = {}, $init, log, time, Frame, Stats, ptrType, sliceType, sliceType$1, ptrType$1, NewStats;
133470
+ var $pkg = {}, $init, log, time, ClientStats, Frame, Stats, ptrType, sliceType, sliceType$1, ptrType$1, ptrType$2, mapType, NewStats;
133453
133471
  log = $packages["log"];
133454
133472
  time = $packages["time"];
133473
+ ClientStats = $pkg.ClientStats = $newType(0, $kindStruct, "stats.ClientStats", true, "github.com/supraio/client-daemon/pkg/stats", true, function(LatencyNano_, ServerTimestampAhead_, CurrentFramesCount_, LastFrameRate_, TotalFramesCount_, CurrentCorruptedFramesCount_, LastCorruptedFrameRate_, TotalCorruptedFramesCount_, CurrentLostFramesCount_, LastLostFrameRate_, TotalLostFramesCount_, LastFramesLatencyAverage_, LastFramesCollectionAverage_, LastFramesDecodeAverage_, LastFramesRenderAverage_) {
133474
+ this.$val = this;
133475
+ if (arguments.length === 0) {
133476
+ this.LatencyNano = new $Int64(0, 0);
133477
+ this.ServerTimestampAhead = new $Int64(0, 0);
133478
+ this.CurrentFramesCount = 0;
133479
+ this.LastFrameRate = 0;
133480
+ this.TotalFramesCount = 0;
133481
+ this.CurrentCorruptedFramesCount = 0;
133482
+ this.LastCorruptedFrameRate = 0;
133483
+ this.TotalCorruptedFramesCount = 0;
133484
+ this.CurrentLostFramesCount = 0;
133485
+ this.LastLostFrameRate = 0;
133486
+ this.TotalLostFramesCount = 0;
133487
+ this.LastFramesLatencyAverage = new $Int64(0, 0);
133488
+ this.LastFramesCollectionAverage = new $Int64(0, 0);
133489
+ this.LastFramesDecodeAverage = new $Int64(0, 0);
133490
+ this.LastFramesRenderAverage = new $Int64(0, 0);
133491
+ return;
133492
+ }
133493
+ this.LatencyNano = LatencyNano_;
133494
+ this.ServerTimestampAhead = ServerTimestampAhead_;
133495
+ this.CurrentFramesCount = CurrentFramesCount_;
133496
+ this.LastFrameRate = LastFrameRate_;
133497
+ this.TotalFramesCount = TotalFramesCount_;
133498
+ this.CurrentCorruptedFramesCount = CurrentCorruptedFramesCount_;
133499
+ this.LastCorruptedFrameRate = LastCorruptedFrameRate_;
133500
+ this.TotalCorruptedFramesCount = TotalCorruptedFramesCount_;
133501
+ this.CurrentLostFramesCount = CurrentLostFramesCount_;
133502
+ this.LastLostFrameRate = LastLostFrameRate_;
133503
+ this.TotalLostFramesCount = TotalLostFramesCount_;
133504
+ this.LastFramesLatencyAverage = LastFramesLatencyAverage_;
133505
+ this.LastFramesCollectionAverage = LastFramesCollectionAverage_;
133506
+ this.LastFramesDecodeAverage = LastFramesDecodeAverage_;
133507
+ this.LastFramesRenderAverage = LastFramesRenderAverage_;
133508
+ });
133455
133509
  Frame = $pkg.Frame = $newType(8, $kindInterface, "stats.Frame", true, "github.com/supraio/client-daemon/pkg/stats", true, null);
133456
- Stats = $pkg.Stats = $newType(0, $kindStruct, "stats.Stats", true, "github.com/supraio/client-daemon/pkg/stats", true, function(stopped_, lastFrameAt_, latencyNano_, serverTimestampAhead_, currentFramesCount_, lastFrameRate_, totalFramesCount_, currentCorruptedFramesCount_, lastCorruptedFrameRate_, totalCorruptedFramesCount_, currentLostFramesCount_, lastLostFrameRate_, totalLostFramesCount_, currentFramesLatencies_, lastFramesLatencyAverage_) {
133510
+ Stats = $pkg.Stats = $newType(0, $kindStruct, "stats.Stats", true, "github.com/supraio/client-daemon/pkg/stats", true, function(stopped_, lastFrameAt_, latencyNano_, serverTimestampAhead_, currentFramesCount_, lastFrameRate_, totalFramesCount_, currentCorruptedFramesCount_, lastCorruptedFrameRate_, totalCorruptedFramesCount_, currentLostFramesCount_, lastLostFrameRate_, totalLostFramesCount_, currentFramesLatencies_, lastFramesLatencyAverage_, frameCollectionStartedAt_, frameCollections_, lastFramesCollectionAverage_, frameDecodeStartedAt_, frameDecodes_, lastFramesDecodeAverage_, frameRenderStartedAt_, frameRenders_, lastFramesRenderAverage_) {
133457
133511
  this.$val = this;
133458
133512
  if (arguments.length === 0) {
133459
133513
  this.stopped = false;
@@ -133471,6 +133525,15 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
133471
133525
  this.totalLostFramesCount = 0;
133472
133526
  this.currentFramesLatencies = sliceType.nil;
133473
133527
  this.lastFramesLatencyAverage = new $Int64(0, 0);
133528
+ this.frameCollectionStartedAt = false;
133529
+ this.frameCollections = sliceType.nil;
133530
+ this.lastFramesCollectionAverage = new $Int64(0, 0);
133531
+ this.frameDecodeStartedAt = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil);
133532
+ this.frameDecodes = sliceType.nil;
133533
+ this.lastFramesDecodeAverage = new $Int64(0, 0);
133534
+ this.frameRenderStartedAt = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil);
133535
+ this.frameRenders = sliceType.nil;
133536
+ this.lastFramesRenderAverage = new $Int64(0, 0);
133474
133537
  return;
133475
133538
  }
133476
133539
  this.stopped = stopped_;
@@ -133488,18 +133551,35 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
133488
133551
  this.totalLostFramesCount = totalLostFramesCount_;
133489
133552
  this.currentFramesLatencies = currentFramesLatencies_;
133490
133553
  this.lastFramesLatencyAverage = lastFramesLatencyAverage_;
133554
+ this.frameCollectionStartedAt = frameCollectionStartedAt_;
133555
+ this.frameCollections = frameCollections_;
133556
+ this.lastFramesCollectionAverage = lastFramesCollectionAverage_;
133557
+ this.frameDecodeStartedAt = frameDecodeStartedAt_;
133558
+ this.frameDecodes = frameDecodes_;
133559
+ this.lastFramesDecodeAverage = lastFramesDecodeAverage_;
133560
+ this.frameRenderStartedAt = frameRenderStartedAt_;
133561
+ this.frameRenders = frameRenders_;
133562
+ this.lastFramesRenderAverage = lastFramesRenderAverage_;
133491
133563
  });
133492
133564
  ptrType = $ptrType(time.Location);
133493
133565
  sliceType = $sliceType($Int64);
133494
133566
  sliceType$1 = $sliceType($emptyInterface);
133495
- ptrType$1 = $ptrType(Stats);
133567
+ ptrType$1 = $ptrType(ClientStats);
133568
+ ptrType$2 = $ptrType(Stats);
133569
+ mapType = $mapType($Uint16, time.Time);
133496
133570
  NewStats = function() {
133497
133571
  var s;
133498
- s = new Stats.ptr(false, $clone(time.Now(), time.Time), new $Int64(0, 0), new $Int64(0, 0), 0, 0, 0, 0, 0, 0, 0, 0, 0, sliceType.nil, new $Int64(0, 0));
133572
+ s = new Stats.ptr(false, $clone(time.Now(), time.Time), new $Int64(0, 0), new $Int64(0, 0), 0, 0, 0, 0, 0, 0, 0, 0, 0, sliceType.nil, new $Int64(0, 0), {}, sliceType.nil, new $Int64(0, 0), new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), sliceType.nil, new $Int64(0, 0), new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), sliceType.nil, new $Int64(0, 0));
133499
133573
  $go($methodVal(s, "startCalculations"), []);
133500
133574
  return s;
133501
133575
  };
133502
133576
  $pkg.NewStats = NewStats;
133577
+ Stats.ptr.prototype.GetClientStats = function() {
133578
+ var s;
133579
+ s = this;
133580
+ return new ClientStats.ptr(s.latencyNano, s.serverTimestampAhead, s.currentFramesCount, s.lastFrameRate, s.totalFramesCount, s.currentCorruptedFramesCount, s.lastCorruptedFrameRate, s.totalCorruptedFramesCount, s.currentLostFramesCount, s.lastLostFrameRate, s.totalLostFramesCount, s.lastFramesLatencyAverage, s.lastFramesCollectionAverage, s.lastFramesDecodeAverage, s.lastFramesRenderAverage);
133581
+ };
133582
+ Stats.prototype.GetClientStats = function() { return this.$val.GetClientStats(); };
133503
133583
  Stats.ptr.prototype.SetLatency = function(latencyNano) {
133504
133584
  var latencyNano, s;
133505
133585
  s = this;
@@ -133537,6 +133617,51 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
133537
133617
  s.currentLostFramesCount = s.currentLostFramesCount + (((lostFramesCount >> 0))) >> 0;
133538
133618
  };
133539
133619
  Stats.prototype.NotifyLostFrame = function(lostFramesCount) { return this.$val.NotifyLostFrame(lostFramesCount); };
133620
+ Stats.ptr.prototype.NotifyFrameCollectionStarted = function(frameID) {
133621
+ var _key, frameID, s;
133622
+ s = this;
133623
+ _key = frameID; (s.frameCollectionStartedAt || $throwRuntimeError("assignment to entry in nil map"))[$Uint16.keyFor(_key)] = { k: _key, v: $clone(time.Now(), time.Time) };
133624
+ };
133625
+ Stats.prototype.NotifyFrameCollectionStarted = function(frameID) { return this.$val.NotifyFrameCollectionStarted(frameID); };
133626
+ Stats.ptr.prototype.NotifyFrameCollectionEnded = function(frameID) {
133627
+ var _entry, _tuple, exists, frameCollectionNano, frameCollectionStartedAt, frameID, s;
133628
+ s = this;
133629
+ _tuple = (_entry = s.frameCollectionStartedAt[$Uint16.keyFor(frameID)], _entry !== undefined ? [_entry.v, true] : [new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), false]);
133630
+ frameCollectionStartedAt = $clone(_tuple[0], time.Time);
133631
+ exists = _tuple[1];
133632
+ if (exists) {
133633
+ delete s.frameCollectionStartedAt[$Uint16.keyFor(frameID)];
133634
+ frameCollectionNano = time.Since($clone(frameCollectionStartedAt, time.Time)).Nanoseconds();
133635
+ s.frameCollections = $append(s.frameCollections, frameCollectionNano);
133636
+ }
133637
+ };
133638
+ Stats.prototype.NotifyFrameCollectionEnded = function(frameID) { return this.$val.NotifyFrameCollectionEnded(frameID); };
133639
+ Stats.ptr.prototype.NotifyFrameDecodeStarted = function() {
133640
+ var s;
133641
+ s = this;
133642
+ time.Time.copy(s.frameDecodeStartedAt, time.Now());
133643
+ };
133644
+ Stats.prototype.NotifyFrameDecodeStarted = function() { return this.$val.NotifyFrameDecodeStarted(); };
133645
+ Stats.ptr.prototype.NotifyFrameDecodeEnded = function() {
133646
+ var frameDecodeNano, s;
133647
+ s = this;
133648
+ frameDecodeNano = time.Since($clone(s.frameDecodeStartedAt, time.Time)).Nanoseconds();
133649
+ s.frameDecodes = $append(s.frameDecodes, frameDecodeNano);
133650
+ };
133651
+ Stats.prototype.NotifyFrameDecodeEnded = function() { return this.$val.NotifyFrameDecodeEnded(); };
133652
+ Stats.ptr.prototype.NotifyFrameRenderStarted = function() {
133653
+ var s;
133654
+ s = this;
133655
+ time.Time.copy(s.frameRenderStartedAt, time.Now());
133656
+ };
133657
+ Stats.prototype.NotifyFrameRenderStarted = function() { return this.$val.NotifyFrameRenderStarted(); };
133658
+ Stats.ptr.prototype.NotifyFrameRenderEnded = function() {
133659
+ var frameRenderNano, s;
133660
+ s = this;
133661
+ frameRenderNano = time.Since($clone(s.frameRenderStartedAt, time.Time)).Nanoseconds();
133662
+ s.frameRenders = $append(s.frameRenders, frameRenderNano);
133663
+ };
133664
+ Stats.prototype.NotifyFrameRenderEnded = function() { return this.$val.NotifyFrameRenderEnded(); };
133540
133665
  Stats.ptr.prototype.GetLastFrameAt = function() {
133541
133666
  var s;
133542
133667
  s = this;
@@ -133562,8 +133687,8 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
133562
133687
  };
133563
133688
  Stats.prototype.GetLostFrameRate = function() { return this.$val.GetLostFrameRate(); };
133564
133689
  Stats.ptr.prototype.startCalculations = function() {
133565
- var _i, _ref, latency, s, totalLatencies, x, $s, $r;
133566
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _ref = $f._ref; latency = $f.latency; s = $f.s; totalLatencies = $f.totalLatencies; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
133690
+ var _i, _i$1, _i$2, _i$3, _ref, _ref$1, _ref$2, _ref$3, collectionTime, decodeTime, latency, renderTime, s, totalCollectionTime, totalDecodeTime, totalLatencies, totalRenderTime, x, x$1, x$2, x$3, $s, $r;
133691
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _i$3 = $f._i$3; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; _ref$3 = $f._ref$3; collectionTime = $f.collectionTime; decodeTime = $f.decodeTime; latency = $f.latency; renderTime = $f.renderTime; s = $f.s; totalCollectionTime = $f.totalCollectionTime; totalDecodeTime = $f.totalDecodeTime; totalLatencies = $f.totalLatencies; totalRenderTime = $f.totalRenderTime; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
133567
133692
  s = this;
133568
133693
  /* while (true) { */ case 1:
133569
133694
  /* if (!(!s.stopped)) { break; } */ if(!(!s.stopped)) { $s = 2; continue; }
@@ -133589,25 +133714,65 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
133589
133714
  s.lastFramesLatencyAverage = $div64(totalLatencies, (new $Int64(0, s.currentFramesLatencies.$length)), false);
133590
133715
  s.currentFramesLatencies = new sliceType([]);
133591
133716
  }
133717
+ if (s.frameCollections.$length > 0) {
133718
+ totalCollectionTime = new $Int64(0, 0);
133719
+ _ref$1 = s.frameCollections;
133720
+ _i$1 = 0;
133721
+ while (true) {
133722
+ if (!(_i$1 < _ref$1.$length)) { break; }
133723
+ collectionTime = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]);
133724
+ totalCollectionTime = (x$1 = collectionTime, new $Int64(totalCollectionTime.$high + x$1.$high, totalCollectionTime.$low + x$1.$low));
133725
+ _i$1++;
133726
+ }
133727
+ s.lastFramesCollectionAverage = $div64(totalCollectionTime, (new $Int64(0, s.frameCollections.$length)), false);
133728
+ s.frameCollections = new sliceType([]);
133729
+ }
133730
+ if (s.frameDecodes.$length > 0) {
133731
+ totalDecodeTime = new $Int64(0, 0);
133732
+ _ref$2 = s.frameDecodes;
133733
+ _i$2 = 0;
133734
+ while (true) {
133735
+ if (!(_i$2 < _ref$2.$length)) { break; }
133736
+ decodeTime = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]);
133737
+ totalDecodeTime = (x$2 = decodeTime, new $Int64(totalDecodeTime.$high + x$2.$high, totalDecodeTime.$low + x$2.$low));
133738
+ _i$2++;
133739
+ }
133740
+ s.lastFramesDecodeAverage = $div64(totalDecodeTime, (new $Int64(0, s.frameDecodes.$length)), false);
133741
+ s.frameDecodes = new sliceType([]);
133742
+ }
133743
+ if (s.frameRenders.$length > 0) {
133744
+ totalRenderTime = new $Int64(0, 0);
133745
+ _ref$3 = s.frameRenders;
133746
+ _i$3 = 0;
133747
+ while (true) {
133748
+ if (!(_i$3 < _ref$3.$length)) { break; }
133749
+ renderTime = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]);
133750
+ totalRenderTime = (x$3 = renderTime, new $Int64(totalRenderTime.$high + x$3.$high, totalRenderTime.$low + x$3.$low));
133751
+ _i$3++;
133752
+ }
133753
+ s.lastFramesRenderAverage = $div64(totalRenderTime, (new $Int64(0, s.frameRenders.$length)), false);
133754
+ s.frameRenders = new sliceType([]);
133755
+ }
133592
133756
  $r = s.print(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
133593
133757
  $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
133594
133758
  /* } */ $s = 1; continue; case 2:
133595
133759
  $s = -1; return;
133596
- /* */ } return; } if ($f === undefined) { $f = { $blk: Stats.ptr.prototype.startCalculations }; } $f._i = _i; $f._ref = _ref; $f.latency = latency; $f.s = s; $f.totalLatencies = totalLatencies; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
133760
+ /* */ } return; } if ($f === undefined) { $f = { $blk: Stats.ptr.prototype.startCalculations }; } $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._i$3 = _i$3; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f._ref$3 = _ref$3; $f.collectionTime = collectionTime; $f.decodeTime = decodeTime; $f.latency = latency; $f.renderTime = renderTime; $f.s = s; $f.totalCollectionTime = totalCollectionTime; $f.totalDecodeTime = totalDecodeTime; $f.totalLatencies = totalLatencies; $f.totalRenderTime = totalRenderTime; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.$s = $s; $f.$r = $r; return $f;
133597
133761
  };
133598
133762
  Stats.prototype.startCalculations = function() { return this.$val.startCalculations(); };
133599
133763
  Stats.ptr.prototype.print = function() {
133600
133764
  var s, $s, $r;
133601
133765
  /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
133602
133766
  s = this;
133603
- $r = log.Printf("Frames/Corrupted/Lost - total: %d/%d/%d - %d/%d/%d, FrameLatency: %dms Latency/ServerAhead: %dms/%dms", new sliceType$1([new $Int(s.GetFrameRate()), new $Int(s.GetCorruptedFrameRate()), new $Int(s.GetLostFrameRate()), new $Int(s.totalFramesCount), new $Int(s.totalCorruptedFramesCount), new $Int(s.totalLostFramesCount), $div64(s.lastFramesLatencyAverage, new $Int64(0, 1000000), false), $div64(s.latencyNano, new $Int64(0, 1000000), false), $div64(s.serverTimestampAhead, new $Int64(0, 1000000), false)])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
133767
+ $r = log.Printf("Frames/Corrupted/Lost - total: %d/%d/%d - %d/%d/%d, FrameLatency/Collection/Decode/Render: %dms/%dms/%dms/%dms Latency/ServerAhead: %dms/%dms", new sliceType$1([new $Int(s.GetFrameRate()), new $Int(s.GetCorruptedFrameRate()), new $Int(s.GetLostFrameRate()), new $Int(s.totalFramesCount), new $Int(s.totalCorruptedFramesCount), new $Int(s.totalLostFramesCount), $div64(s.lastFramesLatencyAverage, new $Int64(0, 1000000), false), $div64(s.lastFramesCollectionAverage, new $Int64(0, 1000000), false), $div64(s.lastFramesDecodeAverage, new $Int64(0, 1000000), false), $div64(s.lastFramesRenderAverage, new $Int64(0, 1000000), false), $div64(s.latencyNano, new $Int64(0, 1000000), false), $div64(s.serverTimestampAhead, new $Int64(0, 1000000), false)])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
133604
133768
  $s = -1; return;
133605
133769
  /* */ } return; } if ($f === undefined) { $f = { $blk: Stats.ptr.prototype.print }; } $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
133606
133770
  };
133607
133771
  Stats.prototype.print = function() { return this.$val.print(); };
133608
- ptrType$1.methods = [{prop: "SetLatency", name: "SetLatency", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "SetServerTimestampAhead", name: "SetServerTimestampAhead", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "NotifyFrame", name: "NotifyFrame", pkg: "", typ: $funcType([Frame], [], false)}, {prop: "NotifyCorruptedFrame", name: "NotifyCorruptedFrame", pkg: "", typ: $funcType([$Uint16], [], false)}, {prop: "NotifyLostFrame", name: "NotifyLostFrame", pkg: "", typ: $funcType([$Uint16], [], false)}, {prop: "GetLastFrameAt", name: "GetLastFrameAt", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "GetFrameRate", name: "GetFrameRate", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetCorruptedFrameRate", name: "GetCorruptedFrameRate", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetLostFrameRate", name: "GetLostFrameRate", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "startCalculations", name: "startCalculations", pkg: "github.com/supraio/client-daemon/pkg/stats", typ: $funcType([], [], false)}, {prop: "print", name: "print", pkg: "github.com/supraio/client-daemon/pkg/stats", typ: $funcType([], [], false)}];
133772
+ ptrType$2.methods = [{prop: "GetClientStats", name: "GetClientStats", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "SetLatency", name: "SetLatency", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "SetServerTimestampAhead", name: "SetServerTimestampAhead", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "NotifyFrame", name: "NotifyFrame", pkg: "", typ: $funcType([Frame], [], false)}, {prop: "NotifyCorruptedFrame", name: "NotifyCorruptedFrame", pkg: "", typ: $funcType([$Uint16], [], false)}, {prop: "NotifyLostFrame", name: "NotifyLostFrame", pkg: "", typ: $funcType([$Uint16], [], false)}, {prop: "NotifyFrameCollectionStarted", name: "NotifyFrameCollectionStarted", pkg: "", typ: $funcType([$Uint16], [], false)}, {prop: "NotifyFrameCollectionEnded", name: "NotifyFrameCollectionEnded", pkg: "", typ: $funcType([$Uint16], [], false)}, {prop: "NotifyFrameDecodeStarted", name: "NotifyFrameDecodeStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameDecodeEnded", name: "NotifyFrameDecodeEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameRenderStarted", name: "NotifyFrameRenderStarted", pkg: "", typ: $funcType([], [], false)}, {prop: "NotifyFrameRenderEnded", name: "NotifyFrameRenderEnded", pkg: "", typ: $funcType([], [], false)}, {prop: "GetLastFrameAt", name: "GetLastFrameAt", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "GetFrameRate", name: "GetFrameRate", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetCorruptedFrameRate", name: "GetCorruptedFrameRate", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetLostFrameRate", name: "GetLostFrameRate", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "startCalculations", name: "startCalculations", pkg: "github.com/supraio/client-daemon/pkg/stats", typ: $funcType([], [], false)}, {prop: "print", name: "print", pkg: "github.com/supraio/client-daemon/pkg/stats", typ: $funcType([], [], false)}];
133773
+ ClientStats.init("", [{prop: "LatencyNano", name: "LatencyNano", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "ServerTimestampAhead", name: "ServerTimestampAhead", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "CurrentFramesCount", name: "CurrentFramesCount", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "LastFrameRate", name: "LastFrameRate", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "TotalFramesCount", name: "TotalFramesCount", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "CurrentCorruptedFramesCount", name: "CurrentCorruptedFramesCount", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "LastCorruptedFrameRate", name: "LastCorruptedFrameRate", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "TotalCorruptedFramesCount", name: "TotalCorruptedFramesCount", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "CurrentLostFramesCount", name: "CurrentLostFramesCount", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "LastLostFrameRate", name: "LastLostFrameRate", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "TotalLostFramesCount", name: "TotalLostFramesCount", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "LastFramesLatencyAverage", name: "LastFramesLatencyAverage", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastFramesCollectionAverage", name: "LastFramesCollectionAverage", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastFramesDecodeAverage", name: "LastFramesDecodeAverage", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "LastFramesRenderAverage", name: "LastFramesRenderAverage", embedded: false, exported: true, typ: $Int64, tag: ""}]);
133609
133774
  Frame.init([{prop: "GetTimestmap", name: "GetTimestmap", pkg: "", typ: $funcType([], [$Uint64], false)}]);
133610
- Stats.init("github.com/supraio/client-daemon/pkg/stats", [{prop: "stopped", name: "stopped", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "lastFrameAt", name: "lastFrameAt", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "latencyNano", name: "latencyNano", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "serverTimestampAhead", name: "serverTimestampAhead", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "currentFramesCount", name: "currentFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastFrameRate", name: "lastFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "totalFramesCount", name: "totalFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "currentCorruptedFramesCount", name: "currentCorruptedFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastCorruptedFrameRate", name: "lastCorruptedFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "totalCorruptedFramesCount", name: "totalCorruptedFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "currentLostFramesCount", name: "currentLostFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastLostFrameRate", name: "lastLostFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "totalLostFramesCount", name: "totalLostFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "currentFramesLatencies", name: "currentFramesLatencies", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "lastFramesLatencyAverage", name: "lastFramesLatencyAverage", embedded: false, exported: false, typ: $Int64, tag: ""}]);
133775
+ Stats.init("github.com/supraio/client-daemon/pkg/stats", [{prop: "stopped", name: "stopped", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "lastFrameAt", name: "lastFrameAt", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "latencyNano", name: "latencyNano", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "serverTimestampAhead", name: "serverTimestampAhead", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "currentFramesCount", name: "currentFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastFrameRate", name: "lastFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "totalFramesCount", name: "totalFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "currentCorruptedFramesCount", name: "currentCorruptedFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastCorruptedFrameRate", name: "lastCorruptedFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "totalCorruptedFramesCount", name: "totalCorruptedFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "currentLostFramesCount", name: "currentLostFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastLostFrameRate", name: "lastLostFrameRate", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "totalLostFramesCount", name: "totalLostFramesCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "currentFramesLatencies", name: "currentFramesLatencies", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "lastFramesLatencyAverage", name: "lastFramesLatencyAverage", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "frameCollectionStartedAt", name: "frameCollectionStartedAt", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "frameCollections", name: "frameCollections", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "lastFramesCollectionAverage", name: "lastFramesCollectionAverage", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "frameDecodeStartedAt", name: "frameDecodeStartedAt", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "frameDecodes", name: "frameDecodes", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "lastFramesDecodeAverage", name: "lastFramesDecodeAverage", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "frameRenderStartedAt", name: "frameRenderStartedAt", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "frameRenders", name: "frameRenders", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "lastFramesRenderAverage", name: "lastFramesRenderAverage", embedded: false, exported: false, typ: $Int64, tag: ""}]);
133611
133776
  $init = function() {
133612
133777
  $pkg.$init = function() {};
133613
133778
  /* */ 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:
@@ -136178,24 +136343,24 @@ $packages["github.com/nuberu/webgl"] = (function() {
136178
136343
  /* */ if ($assertType(_ref, sliceType$9, true)[1]) { $s = 10; continue; }
136179
136344
  /* */ $s = 11; continue;
136180
136345
  /* 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));
136346
+ s$8[0] = _ref.$val;
136347
+ h = ($pointerOfStructConversion(((s$8.$ptr || (s$8.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$8)))), ptrType));
136183
136348
  $s = -1; return ((h)).$get();
136184
136349
  /* } 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));
136350
+ s$9[0] = _ref.$val;
136351
+ h$1 = ($pointerOfStructConversion(((s$9.$ptr || (s$9.$ptr = new ptrType$2(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$9)))), ptrType));
136187
136352
  h$1.Len = $imul(h$1.Len, (2));
136188
136353
  h$1.Cap = $imul(h$1.Cap, (2));
136189
136354
  $s = -1; return ((h$1)).$get();
136190
136355
  /* } 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));
136356
+ s$3[0] = _ref.$val;
136357
+ h$2 = ($pointerOfStructConversion(((s$3.$ptr || (s$3.$ptr = new ptrType$3(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$3)))), ptrType));
136193
136358
  h$2.Len = $imul(h$2.Len, (4));
136194
136359
  h$2.Cap = $imul(h$2.Cap, (4));
136195
136360
  $s = -1; return ((h$2)).$get();
136196
136361
  /* } 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));
136362
+ s$4[0] = _ref.$val;
136363
+ h$3 = ($pointerOfStructConversion(((s$4.$ptr || (s$4.$ptr = new ptrType$4(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$4)))), ptrType));
136199
136364
  h$3.Len = $imul(h$3.Len, (8));
136200
136365
  h$3.Cap = $imul(h$3.Cap, (8));
136201
136366
  $s = -1; return ((h$3)).$get();
@@ -136203,32 +136368,32 @@ $packages["github.com/nuberu/webgl"] = (function() {
136203
136368
  s$10 = _ref.$val;
136204
136369
  $s = -1; return s$10;
136205
136370
  /* } 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));
136371
+ s$1[0] = _ref.$val;
136372
+ h$4 = ($pointerOfStructConversion(((s$1.$ptr || (s$1.$ptr = new ptrType$5(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$1)))), ptrType));
136208
136373
  h$4.Len = $imul(h$4.Len, (2));
136209
136374
  h$4.Cap = $imul(h$4.Cap, (2));
136210
136375
  $s = -1; return ((h$4)).$get();
136211
136376
  /* } 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));
136377
+ s$5[0] = _ref.$val;
136378
+ h$5 = ($pointerOfStructConversion(((s$5.$ptr || (s$5.$ptr = new ptrType$6(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$5)))), ptrType));
136214
136379
  h$5.Len = $imul(h$5.Len, (4));
136215
136380
  h$5.Cap = $imul(h$5.Cap, (4));
136216
136381
  $s = -1; return ((h$5)).$get();
136217
136382
  /* } 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));
136383
+ s$6[0] = _ref.$val;
136384
+ h$6 = ($pointerOfStructConversion(((s$6.$ptr || (s$6.$ptr = new ptrType$7(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$6)))), ptrType));
136220
136385
  h$6.Len = $imul(h$6.Len, (8));
136221
136386
  h$6.Cap = $imul(h$6.Cap, (8));
136222
136387
  $s = -1; return ((h$6)).$get();
136223
136388
  /* } 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));
136389
+ s$7[0] = _ref.$val;
136390
+ h$7 = ($pointerOfStructConversion(((s$7.$ptr || (s$7.$ptr = new ptrType$8(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$7)))), ptrType));
136226
136391
  h$7.Len = $imul(h$7.Len, (4));
136227
136392
  h$7.Cap = $imul(h$7.Cap, (4));
136228
136393
  $s = -1; return ((h$7)).$get();
136229
136394
  /* } 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));
136395
+ s$2[0] = _ref.$val;
136396
+ h$8 = ($pointerOfStructConversion(((s$2.$ptr || (s$2.$ptr = new ptrType$9(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$2)))), ptrType));
136232
136397
  h$8.Len = $imul(h$8.Len, (8));
136233
136398
  h$8.Cap = $imul(h$8.Cap, (8));
136234
136399
  $s = -1; return ((h$8)).$get();
@@ -143248,26 +143413,27 @@ $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
143248
143413
  return $pkg;
143249
143414
  })();
143250
143415
  $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;
143416
+ var $pkg = {}, $init, hex, webgl, errs, jshelper, general, canvasdriver, js, Decoder, sliceType, ptrType, sliceType$1, ptrType$1, sliceType$2, ptrType$2, funcType, NewDecoder;
143417
+ hex = $packages["encoding/hex"];
143252
143418
  webgl = $packages["github.com/nuberu/webgl"];
143253
143419
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
143254
143420
  jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
143255
143421
  general = $packages["github.com/supraio/client-daemon/pkg/x264/general"];
143256
143422
  canvasdriver = $packages["golang.org/x/exp/shiny/driver/canvasdriver"];
143257
143423
  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_) {
143424
+ Decoder = $pkg.Decoder = $newType(0, $kindStruct, "webcodecs.Decoder", true, "github.com/supraio/client-daemon/pkg/x264/webcodecs", true, function(jsVideoDecoder_, resolves_, rejects_, releaseVideoDecoder_) {
143259
143425
  this.$val = this;
143260
143426
  if (arguments.length === 0) {
143261
143427
  this.jsVideoDecoder = ptrType.nil;
143262
143428
  this.resolves = sliceType.nil;
143263
143429
  this.rejects = sliceType.nil;
143264
- this.wasKeyFrame = false;
143430
+ this.releaseVideoDecoder = $throwNilPointerError;
143265
143431
  return;
143266
143432
  }
143267
143433
  this.jsVideoDecoder = jsVideoDecoder_;
143268
143434
  this.resolves = resolves_;
143269
143435
  this.rejects = rejects_;
143270
- this.wasKeyFrame = wasKeyFrame_;
143436
+ this.releaseVideoDecoder = releaseVideoDecoder_;
143271
143437
  });
143272
143438
  sliceType = $sliceType(js.Value);
143273
143439
  ptrType = $ptrType(js.Value);
@@ -143275,115 +143441,137 @@ $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"] = (function() {
143275
143441
  ptrType$1 = $ptrType(canvasdriver.BufferImpl);
143276
143442
  sliceType$2 = $sliceType($Uint8);
143277
143443
  ptrType$2 = $ptrType(Decoder);
143444
+ funcType = $funcType([], [], false);
143278
143445
  NewDecoder = function(header) {
143279
143446
  var header, rejects, resolves;
143280
143447
  resolves = new sliceType([]);
143281
143448
  rejects = new sliceType([]);
143282
- return new Decoder.ptr(ptrType.nil, resolves, rejects, false);
143449
+ return new Decoder.ptr(ptrType.nil, resolves, rejects, $throwNilPointerError);
143283
143450
  };
143284
143451
  $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:
143452
+ Decoder.ptr.prototype.configure = function(nal) {
143453
+ var _r, _r$1, _r$2, _r$3, config, d, errorCallback, h264CodecName, init, jsVideoDecoder, nal, outputCallback, $s, $r;
143454
+ /* */ $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
143455
  d = [d];
143456
+ errorCallback = [errorCallback];
143289
143457
  jsVideoDecoder = [jsVideoDecoder];
143458
+ outputCallback = [outputCallback];
143290
143459
  d[0] = this;
143291
143460
  _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
143461
  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:
143462
+ outputCallback[0] = $clone(js.FuncOf((function(d, errorCallback, jsVideoDecoder, outputCallback) { return function $b(this$1, args) {
143463
+ var _i, _r$1, _ref, args, resolve, this$1, x, $s, $r;
143464
+ /* */ $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
143465
  _ref = d[0].resolves;
143297
143466
  _i = 0;
143298
143467
  /* while (true) { */ case 1:
143299
143468
  /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
143300
143469
  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; }
143470
+ _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
143471
  _r$1;
143303
143472
  _i++;
143304
143473
  /* } */ $s = 1; continue; case 2:
143305
143474
  d[0].resolves = new sliceType([]);
143306
143475
  d[0].rejects = new sliceType([]);
143307
143476
  $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:
143477
+ /* */ } 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;
143478
+ }; })(d, errorCallback, jsVideoDecoder, outputCallback)), js.Func);
143479
+ errorCallback[0] = $clone(js.FuncOf((function(d, errorCallback, jsVideoDecoder, outputCallback) { return function $b(this$1, args) {
143480
+ var _i, _r$1, _ref, args, reject, this$1, x, $s, $r;
143481
+ /* */ $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
143482
  _ref = d[0].rejects;
143314
143483
  _i = 0;
143315
143484
  /* while (true) { */ case 1:
143316
143485
  /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
143317
143486
  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; }
143487
+ _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
143488
  _r$1;
143320
143489
  _i++;
143321
143490
  /* } */ $s = 1; continue; case 2:
143322
143491
  d[0].resolves = new sliceType([]);
143323
143492
  d[0].rejects = new sliceType([]);
143324
143493
  $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; }
143494
+ /* */ } 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;
143495
+ }; })(d, errorCallback, jsVideoDecoder, outputCallback)), js.Func);
143496
+ $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; }
143497
+ $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
143498
  _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
143499
  jsVideoDecoder[0] = $clone(_r$1, js.Value);
143500
+ h264CodecName = d[0].detectCodecName(nal);
143329
143501
  _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
143502
  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; }
143503
+ $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
143504
  $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
143505
  _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
143506
  _r$3;
143335
143507
  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;
143508
+ d[0].releaseVideoDecoder = (function(d, errorCallback, jsVideoDecoder, outputCallback) { return function() {
143509
+ d[0].jsVideoDecoder = ptrType.nil;
143510
+ d[0].releaseVideoDecoder = $throwNilPointerError;
143511
+ $clone(outputCallback[0], js.Func).Release();
143512
+ $clone(errorCallback[0], js.Func).Release();
143513
+ }; })(d, errorCallback, jsVideoDecoder, outputCallback);
143514
+ $s = -1; return;
143515
+ /* */ } 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;
143516
+ };
143517
+ Decoder.prototype.configure = function(nal) { return this.$val.configure(nal); };
143518
+ Decoder.ptr.prototype.detectCodecName = function(nal) {
143519
+ var codecName, d, nal;
143520
+ d = this;
143521
+ codecName = "avc1." + hex.EncodeToString($subslice(nal, 5, 8));
143522
+ return codecName;
143338
143523
  };
143339
- Decoder.prototype.configure = function() { return this.$val.configure(); };
143524
+ Decoder.prototype.detectCodecName = function(nal) { return this.$val.detectCodecName(nal); };
143340
143525
  Decoder.ptr.prototype.Decode = function(nal, outputBuffer) {
143341
143526
  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
143527
  /* */ $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
143528
  d = [d];
143344
143529
  d[0] = this;
143345
143530
  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; }
143531
+ /* */ if ((((4 >= nal.$length ? ($throwRuntimeError("index out of range"), undefined) : nal.$array[nal.$offset + 4]) >> 0)) === 103) { $s = 1; continue; }
143350
143532
  /* */ $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;
143533
+ /* if ((((4 >= nal.$length ? ($throwRuntimeError("index out of range"), undefined) : nal.$array[nal.$offset + 4]) >> 0)) === 103) { */ case 1:
143534
+ frameType = "key";
143535
+ /* */ if (d[0].jsVideoDecoder === ptrType.nil) { $s = 3; continue; }
143536
+ /* */ $s = 4; continue;
143537
+ /* if (d[0].jsVideoDecoder === ptrType.nil) { */ case 3:
143538
+ $r = d[0].configure(nal); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143539
+ /* } */ case 4:
143354
143540
  /* } */ 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; }
143541
+ /* */ if (d[0].jsVideoDecoder === ptrType.nil) { $s = 6; continue; }
143542
+ /* */ $s = 7; continue;
143543
+ /* if (d[0].jsVideoDecoder === ptrType.nil) { */ case 6:
143544
+ _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; }
143545
+ $s = -1; return _r;
143546
+ /* } */ case 7:
143547
+ _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
143548
  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; }
143549
+ _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
143550
  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; }
143551
+ $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; }
143552
+ $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; }
143553
+ $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; }
143554
+ _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
143555
  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; }
143556
+ _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
143557
  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
- }
143558
+ /* */ if (!($interfaceIsEqual(errDec, $ifaceNil))) { $s = 16; continue; }
143559
+ /* */ $s = 17; continue;
143560
+ /* if (!($interfaceIsEqual(errDec, $ifaceNil))) { */ case 16:
143561
+ /* */ if ($clone($clone(d[0].jsVideoDecoder, js.Value).Get("state"), js.Value).String() === "closed") { $s = 18; continue; }
143562
+ /* */ $s = 19; continue;
143563
+ /* if ($clone($clone(d[0].jsVideoDecoder, js.Value).Get("state"), js.Value).String() === "closed") { */ case 18:
143564
+ $r = d[0].releaseVideoDecoder(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143565
+ /* } */ case 19:
143377
143566
  $s = -1; return errDec;
143378
- }
143379
- d[0].wasKeyFrame = true;
143567
+ /* } */ case 17:
143380
143568
  framePromiseCb = $clone(js.FuncOf((function(d) { return function(this$1, args) {
143381
143569
  var args, this$1;
143382
143570
  d[0].resolves = $append(d[0].resolves, (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]));
143383
143571
  d[0].rejects = $append(d[0].rejects, (1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]));
143384
143572
  return $ifaceNil;
143385
143573
  }; })(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; }
143574
+ _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
143575
  framePromise = $clone(_r$5, js.Value);
143388
143576
  timeoutPromiseCb = $clone(js.FuncOf((function(d) { return function $b(this$1, args) {
143389
143577
  var _arg, _r$6, _r$7, args, this$1, x, $s, $r;
@@ -143395,30 +143583,30 @@ $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"] = (function() {
143395
143583
  $s = -1; return $ifaceNil;
143396
143584
  /* */ } 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
143585
  }; })(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; }
143586
+ _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
143587
  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; }
143588
+ _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
143589
  _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; }
143590
+ _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
143591
  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; }
143592
+ _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
143593
  _tuple = _r$9;
143406
143594
  frame = _tuple[0];
143407
143595
  err = _tuple[1];
143408
143596
  $clone(framePromiseCb, js.Func).Release();
143409
143597
  $clone(timeoutPromiseCb, js.Func).Release();
143410
- /* */ if (!(err === ptrType.nil)) { $s = 20; continue; }
143411
- /* */ $s = 21; continue;
143412
- /* if (!(err === ptrType.nil)) { */ case 20:
143598
+ /* */ if (!(err === ptrType.nil)) { $s = 26; continue; }
143599
+ /* */ $s = 27; continue;
143600
+ /* if (!(err === ptrType.nil)) { */ case 26:
143413
143601
  errMessage = "";
143414
143602
  if ($clone(err, js.Value).Type() === 4) {
143415
143603
  errMessage = $clone(err, js.Value).String();
143416
143604
  } else {
143417
143605
  errMessage = $clone($clone(err, js.Value).Get("message"), js.Value).String();
143418
143606
  }
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; }
143607
+ _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
143608
  $s = -1; return _r$10;
143421
- /* } */ case 21:
143609
+ /* } */ case 27:
143422
143610
  ycbcrJSImg = $assertType(outputBuffer, ptrType$1).YCbCrJS();
143423
143611
  ycbcrJSImg.CanvasImageSource = frame;
143424
143612
  $s = -1; return $ifaceNil;
@@ -143466,17 +143654,18 @@ $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"] = (function() {
143466
143654
  /* */ } 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
143655
  };
143468
143656
  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: ""}]);
143657
+ 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)}];
143658
+ 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
143659
  $init = function() {
143472
143660
  $pkg.$init = function() {};
143473
143661
  /* */ 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; }
143662
+ $r = hex.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143663
+ $r = webgl.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143664
+ $r = errs.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143665
+ $r = jshelper.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143666
+ $r = general.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143667
+ $r = canvasdriver.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143668
+ $r = js.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143480
143669
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
143481
143670
  };
143482
143671
  $pkg.$init = $init;
@@ -143693,19 +143882,21 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
143693
143882
  this.timestamp = timestamp_;
143694
143883
  });
143695
143884
  FrameType = $pkg.FrameType = $newType(1, $kindUint8, "render.FrameType", true, "github.com/supraio/client-daemon/pkg/render", true, null);
143696
- FrameCollector = $pkg.FrameCollector = $newType(0, $kindStruct, "render.FrameCollector", true, "github.com/supraio/client-daemon/pkg/render", true, function(conn_, stats_, framesMap_, lastFullFrameID_) {
143885
+ FrameCollector = $pkg.FrameCollector = $newType(0, $kindStruct, "render.FrameCollector", true, "github.com/supraio/client-daemon/pkg/render", true, function(conn_, stats_, framesMap_, lastFullFrameID_, maxPacketSize_) {
143697
143886
  this.$val = this;
143698
143887
  if (arguments.length === 0) {
143699
143888
  this.conn = $ifaceNil;
143700
143889
  this.stats = ptrType.nil;
143701
143890
  this.framesMap = false;
143702
143891
  this.lastFullFrameID = 0;
143892
+ this.maxPacketSize = 0;
143703
143893
  return;
143704
143894
  }
143705
143895
  this.conn = conn_;
143706
143896
  this.stats = stats_;
143707
143897
  this.framesMap = framesMap_;
143708
143898
  this.lastFullFrameID = lastFullFrameID_;
143899
+ this.maxPacketSize = maxPacketSize_;
143709
143900
  });
143710
143901
  FrameMapItem = $pkg.FrameMapItem = $newType(0, $kindStruct, "render.FrameMapItem", true, "github.com/supraio/client-daemon/pkg/render", true, function(buffer_, frameType_, timestamp_, frameID_, total_, received_) {
143711
143902
  this.$val = this;
@@ -143745,7 +143936,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
143745
143936
  this.username = username_;
143746
143937
  this.processDir = processDir_;
143747
143938
  });
143748
- ScreenWindow = $pkg.ScreenWindow = $newType(0, $kindStruct, "render.ScreenWindow", true, "github.com/supraio/client-daemon/pkg/render", true, function(processInfoManager_, screenDriver_, screenHost_, metadataDriver_, metadataHost_, processPath_, clientID_, clientSecret_, screenID_, secure_, screenSize_, renderMutex_, timeoutDuration_, closed_, stats_, onClose_, window_, screen_, screenConn_, screenReconnecting_, metadataServer_, frameCollector_, x264Renderer_, screenSender_, metadataSender_, metadataResponsiveSender_, sizeHandler_, keyHandler_, mouseHandler_, healthchecker_, keyEventChan_, mouseEventChan_, sizeEventChan_, focusEventChan_, winCloseChannel_) {
143939
+ ScreenWindow = $pkg.ScreenWindow = $newType(0, $kindStruct, "render.ScreenWindow", true, "github.com/supraio/client-daemon/pkg/render", true, function(processInfoManager_, screenDriver_, screenHost_, metadataDriver_, metadataHost_, clientID_, clientSecret_, screenID_, secure_, screenSize_, renderMutex_, timeoutDuration_, closed_, stats_, onClose_, window_, screen_, screenConn_, screenReconnecting_, metadataServer_, frameCollector_, x264Renderer_, screenSender_, metadataSender_, metadataResponsiveSender_, sizeHandler_, keyHandler_, mouseHandler_, healthchecker_, keyEventChan_, mouseEventChan_, sizeEventChan_, focusEventChan_, winCloseChannel_) {
143749
143940
  this.$val = this;
143750
143941
  if (arguments.length === 0) {
143751
143942
  this.processInfoManager = ptrType$3.nil;
@@ -143753,7 +143944,6 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
143753
143944
  this.screenHost = "";
143754
143945
  this.metadataDriver = "";
143755
143946
  this.metadataHost = "";
143756
- this.processPath = "";
143757
143947
  this.clientID = "";
143758
143948
  this.clientSecret = "";
143759
143949
  this.screenID = "";
@@ -143790,7 +143980,6 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
143790
143980
  this.screenHost = screenHost_;
143791
143981
  this.metadataDriver = metadataDriver_;
143792
143982
  this.metadataHost = metadataHost_;
143793
- this.processPath = processPath_;
143794
143983
  this.clientID = clientID_;
143795
143984
  this.clientSecret = clientSecret_;
143796
143985
  this.screenID = screenID_;
@@ -143821,16 +144010,18 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
143821
144010
  this.focusEventChan = focusEventChan_;
143822
144011
  this.winCloseChannel = winCloseChannel_;
143823
144012
  });
143824
- X264FrameRenderer = $pkg.X264FrameRenderer = $newType(0, $kindStruct, "render.X264FrameRenderer", true, "github.com/supraio/client-daemon/pkg/render", true, function(screenBuffer_, window_, dec_) {
144013
+ X264FrameRenderer = $pkg.X264FrameRenderer = $newType(0, $kindStruct, "render.X264FrameRenderer", true, "github.com/supraio/client-daemon/pkg/render", true, function(screenBuffer_, window_, stats_, dec_) {
143825
144014
  this.$val = this;
143826
144015
  if (arguments.length === 0) {
143827
144016
  this.screenBuffer = $ifaceNil;
143828
144017
  this.window = $ifaceNil;
144018
+ this.stats = ptrType.nil;
143829
144019
  this.dec = ptrType$12.nil;
143830
144020
  return;
143831
144021
  }
143832
144022
  this.screenBuffer = screenBuffer_;
143833
144023
  this.window = window_;
144024
+ this.stats = stats_;
143834
144025
  this.dec = dec_;
143835
144026
  });
143836
144027
  ptrType = $ptrType(stats.Stats);
@@ -143866,16 +144057,17 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
143866
144057
  return f.timestamp;
143867
144058
  };
143868
144059
  Frame.prototype.GetTimestmap = function() { return this.$val.GetTimestmap(); };
143869
- NewFrameCollector = function(screenConn, stats$1, lastFrameID) {
143870
- var lastFrameID, screenConn, stats$1;
143871
- return new FrameCollector.ptr(screenConn, stats$1, $makeMap($Uint16.keyFor, []), lastFrameID);
144060
+ NewFrameCollector = function(screenConn, stats$1, lastFrameID, maxPacketSize) {
144061
+ var lastFrameID, maxPacketSize, screenConn, stats$1;
144062
+ return new FrameCollector.ptr(screenConn, stats$1, $makeMap($Uint16.keyFor, []), lastFrameID, maxPacketSize);
143872
144063
  };
143873
144064
  $pkg.NewFrameCollector = NewFrameCollector;
143874
144065
  FrameCollector.ptr.prototype.CollectFrame = function() {
143875
- var _entry, _key, _r, _tuple, _tuple$1, buffer, bufferLength, bufferSize, c, dataEndsAt, dataStartsAt, err, frameExists, frameID, frameMapItem, headerSize, packetBuffer, received, seq, total, $s, $r;
143876
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _key = $f._key; _r = $f._r; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; buffer = $f.buffer; bufferLength = $f.bufferLength; bufferSize = $f.bufferSize; c = $f.c; dataEndsAt = $f.dataEndsAt; dataStartsAt = $f.dataStartsAt; err = $f.err; frameExists = $f.frameExists; frameID = $f.frameID; frameMapItem = $f.frameMapItem; headerSize = $f.headerSize; packetBuffer = $f.packetBuffer; received = $f.received; seq = $f.seq; total = $f.total; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
144066
+ var _entry, _key, _r, _tuple, _tuple$1, buffer, bufferLength, bufferSize, c, dataEndsAt, dataPartSize, dataStartsAt, err, frameExists, frameID, frameMapItem, headerSize, packetBuffer, received, seq, total, $s, $r;
144067
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _key = $f._key; _r = $f._r; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; buffer = $f.buffer; bufferLength = $f.bufferLength; bufferSize = $f.bufferSize; c = $f.c; dataEndsAt = $f.dataEndsAt; dataPartSize = $f.dataPartSize; dataStartsAt = $f.dataStartsAt; err = $f.err; frameExists = $f.frameExists; frameID = $f.frameID; frameMapItem = $f.frameMapItem; headerSize = $f.headerSize; packetBuffer = $f.packetBuffer; received = $f.received; seq = $f.seq; total = $f.total; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143877
144068
  c = this;
143878
- packetBuffer = $makeSlice(sliceType, 508);
144069
+ packetBuffer = $makeSlice(sliceType, c.maxPacketSize);
144070
+ dataPartSize = c.maxPacketSize - 6 >> 0;
143879
144071
  /* while (true) { */ case 1:
143880
144072
  _r = c.conn.Read(packetBuffer); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
143881
144073
  _tuple = _r;
@@ -143892,7 +144084,8 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
143892
144084
  frameMapItem = _tuple$1[0];
143893
144085
  frameExists = _tuple$1[1];
143894
144086
  if (!frameExists || (seq === 0) || !((total === frameMapItem.total))) {
143895
- bufferSize = $imul(((total >> 0)), 502);
144087
+ c.stats.NotifyFrameCollectionStarted(frameID);
144088
+ bufferSize = $imul(((total >> 0)), dataPartSize);
143896
144089
  received = 0;
143897
144090
  frameMapItem = new FrameMapItem.ptr($makeSlice(sliceType, bufferSize), 0, new $Uint64(0, 0), frameID, total, received);
143898
144091
  _key = frameID; (c.framesMap || $throwRuntimeError("assignment to entry in nil map"))[$Uint16.keyFor(_key)] = { k: _key, v: frameMapItem };
@@ -143902,7 +144095,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
143902
144095
  headerSize = 15;
143903
144096
  }
143904
144097
  }
143905
- dataStartsAt = $imul(((seq >> 0)), 502);
144098
+ dataStartsAt = $imul(((seq >> 0)), dataPartSize);
143906
144099
  if (seq > 0) {
143907
144100
  dataStartsAt = dataStartsAt - 9 >> 0;
143908
144101
  }
@@ -143922,11 +144115,12 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
143922
144115
  }
143923
144116
  c.lastFullFrameID = frameID;
143924
144117
  delete c.framesMap[$Uint16.keyFor(frameID)];
144118
+ c.stats.NotifyFrameCollectionEnded(frameID);
143925
144119
  $s = -1; return [new Frame.ptr(frameMapItem.frameType, buffer, frameMapItem.timestamp), $ifaceNil];
143926
144120
  }
143927
144121
  /* } */ $s = 1; continue; case 2:
143928
144122
  $s = -1; return [ptrType$1.nil, $ifaceNil];
143929
- /* */ } return; } if ($f === undefined) { $f = { $blk: FrameCollector.ptr.prototype.CollectFrame }; } $f._entry = _entry; $f._key = _key; $f._r = _r; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.buffer = buffer; $f.bufferLength = bufferLength; $f.bufferSize = bufferSize; $f.c = c; $f.dataEndsAt = dataEndsAt; $f.dataStartsAt = dataStartsAt; $f.err = err; $f.frameExists = frameExists; $f.frameID = frameID; $f.frameMapItem = frameMapItem; $f.headerSize = headerSize; $f.packetBuffer = packetBuffer; $f.received = received; $f.seq = seq; $f.total = total; $f.$s = $s; $f.$r = $r; return $f;
144123
+ /* */ } return; } if ($f === undefined) { $f = { $blk: FrameCollector.ptr.prototype.CollectFrame }; } $f._entry = _entry; $f._key = _key; $f._r = _r; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.buffer = buffer; $f.bufferLength = bufferLength; $f.bufferSize = bufferSize; $f.c = c; $f.dataEndsAt = dataEndsAt; $f.dataPartSize = dataPartSize; $f.dataStartsAt = dataStartsAt; $f.err = err; $f.frameExists = frameExists; $f.frameID = frameID; $f.frameMapItem = frameMapItem; $f.headerSize = headerSize; $f.packetBuffer = packetBuffer; $f.received = received; $f.seq = seq; $f.total = total; $f.$s = $s; $f.$r = $r; return $f;
143930
144124
  };
143931
144125
  FrameCollector.prototype.CollectFrame = function() { return this.$val.CollectFrame(); };
143932
144126
  NewProcessInfoManager = function(username, processDir) {
@@ -144108,7 +144302,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
144108
144302
  $pkg.MainDriver = MainDriver;
144109
144303
  NewScreenWindow = function(processInfoManager, screenDriver, screenHost, metadataDriver, metadataHost, clientID, clientSecret, screenID, secure, screenSize, timeoutDuration) {
144110
144304
  var clientID, clientSecret, metadataDriver, metadataHost, processInfoManager, screenDriver, screenHost, screenID, screenSize, secure, timeoutDuration;
144111
- return new ScreenWindow.ptr(processInfoManager, screenDriver, screenHost, metadataDriver, metadataHost, "", clientID, clientSecret, screenID, secure, $clone(screenSize, image.Point), new sync.Mutex.ptr(0, 0), timeoutDuration, true, stats.NewStats(), sliceType$3.nil, $ifaceNil, $ifaceNil, $ifaceNil, false, ptrType$4.nil, ptrType$5.nil, ptrType$6.nil, $ifaceNil, $ifaceNil, ptrType$7.nil, ptrType$8.nil, ptrType$9.nil, ptrType$10.nil, ptrType$11.nil, new $Chan(key.Event, 0), new $Chan(mouse.Event, 0), new $Chan(size.Event, 0), new $Chan(focus.Event, 0), new $Chan($emptyInterface, 0));
144305
+ return new ScreenWindow.ptr(processInfoManager, screenDriver, screenHost, metadataDriver, metadataHost, clientID, clientSecret, screenID, secure, $clone(screenSize, image.Point), new sync.Mutex.ptr(0, 0), timeoutDuration, true, stats.NewStats(), sliceType$3.nil, $ifaceNil, $ifaceNil, $ifaceNil, false, ptrType$4.nil, ptrType$5.nil, ptrType$6.nil, $ifaceNil, $ifaceNil, ptrType$7.nil, ptrType$8.nil, ptrType$9.nil, ptrType$10.nil, ptrType$11.nil, new $Chan(key.Event, 0), new $Chan(mouse.Event, 0), new $Chan(size.Event, 0), new $Chan(focus.Event, 0), new $Chan($emptyInterface, 0));
144112
144306
  };
144113
144307
  $pkg.NewScreenWindow = NewScreenWindow;
144114
144308
  ScreenWindow.ptr.prototype.Start = function() {
@@ -144423,6 +144617,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
144423
144617
  w[0].sizeHandler = window.NewSizeHandler(w[0].sizeEventChan, w[0].metadataSender);
144424
144618
  w[0].sizeHandler.Start();
144425
144619
  $go($methodVal(w[0], "startTimestampSyncing"), []);
144620
+ $go($methodVal(w[0], "startStatsSyncing"), []);
144426
144621
  w[0].metadataServer.OnClose((function(w) { return function $b() {
144427
144622
  var _r$4, err$1, $s, $r;
144428
144623
  /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$4 = $f._r$4; err$1 = $f.err$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
@@ -144474,9 +144669,44 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
144474
144669
  /* */ } return; } if ($f === undefined) { $f = { $blk: ScreenWindow.ptr.prototype.startTimestampSyncing }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.latencyEnd = latencyEnd; $f.latencyNano = latencyNano; $f.latencyStart = latencyStart; $f.serverTimestamp = serverTimestamp; $f.serverTimestampAhead = serverTimestampAhead; $f.serverTimestampData = serverTimestampData; $f.w = w; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f;
144475
144670
  };
144476
144671
  ScreenWindow.prototype.startTimestampSyncing = function() { return this.$val.startTimestampSyncing(); };
144672
+ ScreenWindow.ptr.prototype.startStatsSyncing = function() {
144673
+ var _r, _r$1, _tuple, _tuple$1, clientStats, data, err, w, $s, $r;
144674
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; clientStats = $f.clientStats; data = $f.data; err = $f.err; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
144675
+ w = this;
144676
+ $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144677
+ /* while (true) { */ case 2:
144678
+ /* if (!(!w.closed)) { break; } */ if(!(!w.closed)) { $s = 3; continue; }
144679
+ clientStats = w.stats.GetClientStats();
144680
+ _r = json.Marshal(clientStats); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
144681
+ _tuple = _r;
144682
+ data = _tuple[0];
144683
+ err = _tuple[1];
144684
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 5; continue; }
144685
+ /* */ $s = 6; continue;
144686
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 5:
144687
+ $r = errs.Print("Stats serialize", err); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144688
+ $r = time.Sleep(new time.Duration(1, 705032704)); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144689
+ /* continue; */ $s = 2; continue;
144690
+ /* } */ case 6:
144691
+ _r$1 = w.metadataResponsiveSender.SendServerWaitResponse(48, data); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
144692
+ _tuple$1 = _r$1;
144693
+ err = _tuple$1[1];
144694
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 10; continue; }
144695
+ /* */ $s = 11; continue;
144696
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 10:
144697
+ $r = errs.Print("Stats sync", err); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144698
+ $r = time.Sleep(new time.Duration(1, 705032704)); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144699
+ /* continue; */ $s = 2; continue;
144700
+ /* } */ case 11:
144701
+ $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144702
+ /* } */ $s = 2; continue; case 3:
144703
+ $s = -1; return;
144704
+ /* */ } return; } if ($f === undefined) { $f = { $blk: ScreenWindow.ptr.prototype.startStatsSyncing }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.clientStats = clientStats; $f.data = data; $f.err = err; $f.w = w; $f.$s = $s; $f.$r = $r; return $f;
144705
+ };
144706
+ ScreenWindow.prototype.startStatsSyncing = function() { return this.$val.startStatsSyncing(); };
144477
144707
  ScreenWindow.ptr.prototype.openScreen = function() {
144478
- var _r, _r$1, _r$2, _tuple, _tuple$1, conn, connect, err, lastFrameID, msgData, w, $s, $r;
144479
- /* */ $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; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; conn = $f.conn; connect = $f.connect; err = $f.err; lastFrameID = $f.lastFrameID; msgData = $f.msgData; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
144708
+ var _r, _r$1, _r$2, _tuple, _tuple$1, conn, connect, err, lastFrameID, maxPacketSize, msgData, w, $s, $r;
144709
+ /* */ $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; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; conn = $f.conn; connect = $f.connect; err = $f.err; lastFrameID = $f.lastFrameID; maxPacketSize = $f.maxPacketSize; msgData = $f.msgData; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
144480
144710
  w = [w];
144481
144711
  w[0] = this;
144482
144712
  err = $ifaceNil;
@@ -144499,7 +144729,8 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
144499
144729
  if (!(w[0].frameCollector === ptrType$5.nil)) {
144500
144730
  lastFrameID = w[0].frameCollector.lastFullFrameID;
144501
144731
  }
144502
- w[0].frameCollector = NewFrameCollector(conn, w[0].stats, lastFrameID);
144732
+ maxPacketSize = netpacket.GetMaxPacketSize(w[0].screenDriver);
144733
+ w[0].frameCollector = NewFrameCollector(conn, w[0].stats, lastFrameID, maxPacketSize);
144503
144734
  w[0].screenSender = netclient.NewMessageSender(conn);
144504
144735
  msgData = (new sliceType($stringToBytes(w[0].clientID + w[0].clientSecret + w[0].screenID)));
144505
144736
  _r$2 = w[0].screenSender.Send(1, msgData); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
@@ -144552,7 +144783,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
144552
144783
  /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f.err$1 = err$1; $f.originalHealthchecker = originalHealthchecker; $f.originalScreenConn = originalScreenConn; $f.originalScreenSender = originalScreenSender; $f.$s = $s; $f.$r = $r; return $f;
144553
144784
  }; })(w), []);
144554
144785
  $s = -1; return $ifaceNil;
144555
- /* */ } return; } if ($f === undefined) { $f = { $blk: ScreenWindow.ptr.prototype.openScreen }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.conn = conn; $f.connect = connect; $f.err = err; $f.lastFrameID = lastFrameID; $f.msgData = msgData; $f.w = w; $f.$s = $s; $f.$r = $r; return $f;
144786
+ /* */ } return; } if ($f === undefined) { $f = { $blk: ScreenWindow.ptr.prototype.openScreen }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.conn = conn; $f.connect = connect; $f.err = err; $f.lastFrameID = lastFrameID; $f.maxPacketSize = maxPacketSize; $f.msgData = msgData; $f.w = w; $f.$s = $s; $f.$r = $r; return $f;
144556
144787
  };
144557
144788
  ScreenWindow.prototype.openScreen = function() { return this.$val.openScreen(); };
144558
144789
  ScreenWindow.ptr.prototype.startStream = function() {
@@ -144568,7 +144799,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
144568
144799
  if (!($interfaceIsEqual(err, $ifaceNil))) {
144569
144800
  $s = -1; return err;
144570
144801
  }
144571
- w[0].x264Renderer = NewX264FrameRenderer(screenBuffer, w[0].window);
144802
+ w[0].x264Renderer = NewX264FrameRenderer(screenBuffer, w[0].window, w[0].stats);
144572
144803
  $go((function(w) { return function $b() {
144573
144804
  var _r$1, _tuple$1, err$1, frame, $s, $r;
144574
144805
  /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; _tuple$1 = $f._tuple$1; err$1 = $f.err$1; frame = $f.frame; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
@@ -144626,9 +144857,9 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
144626
144857
  /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: ScreenWindow.ptr.prototype.renderFrame }; } $f._1 = _1; $f.frame = frame; $f.w = w; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
144627
144858
  };
144628
144859
  ScreenWindow.prototype.renderFrame = function(frame) { return this.$val.renderFrame(frame); };
144629
- NewX264FrameRenderer = function(screenBuffer, window$1) {
144630
- var screenBuffer, window$1;
144631
- return new X264FrameRenderer.ptr(screenBuffer, window$1, ptrType$12.nil);
144860
+ NewX264FrameRenderer = function(screenBuffer, window$1, stats$1) {
144861
+ var screenBuffer, stats$1, window$1;
144862
+ return new X264FrameRenderer.ptr(screenBuffer, window$1, stats$1, ptrType$12.nil);
144632
144863
  };
144633
144864
  $pkg.NewX264FrameRenderer = NewX264FrameRenderer;
144634
144865
  X264FrameRenderer.ptr.prototype.Render = function(frame) {
@@ -144650,8 +144881,10 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
144650
144881
  $s = -1; return;
144651
144882
  /* } */ case 5:
144652
144883
  /* } */ case 2:
144884
+ r.stats.NotifyFrameDecodeStarted();
144653
144885
  _r$1 = r.dec.Decode(frame.buffer, r.screenBuffer); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
144654
144886
  err = _r$1;
144887
+ r.stats.NotifyFrameDecodeEnded();
144655
144888
  $deferred.push([$methodVal(r.dec, "Release"), [r.screenBuffer]]);
144656
144889
  /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 8; continue; }
144657
144890
  /* */ $s = 9; continue;
@@ -144659,6 +144892,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
144659
144892
  $r = errs.Print("Frame cannot be decoded", err); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144660
144893
  $s = -1; return;
144661
144894
  /* } */ case 9:
144895
+ r.stats.NotifyFrameRenderStarted();
144662
144896
  _arg = new image.Point.ptr(0, 0);
144663
144897
  _arg$1 = r.screenBuffer;
144664
144898
  _r$2 = r.screenBuffer.Bounds(); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
@@ -144666,6 +144900,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
144666
144900
  $r = r.window.UploadYCbCr(_arg, _arg$1, _arg$2); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144667
144901
  _r$3 = r.window.Publish(); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
144668
144902
  _r$3;
144903
+ r.stats.NotifyFrameRenderEnded();
144669
144904
  $s = -1; return;
144670
144905
  /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: X264FrameRenderer.ptr.prototype.Render }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f.err = err; $f.frame = frame; $f.r = r; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
144671
144906
  };
@@ -144673,15 +144908,15 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
144673
144908
  ptrType$1.methods = [{prop: "GetTimestmap", name: "GetTimestmap", pkg: "", typ: $funcType([], [$Uint64], false)}];
144674
144909
  ptrType$5.methods = [{prop: "CollectFrame", name: "CollectFrame", pkg: "", typ: $funcType([], [ptrType$1, $error], false)}];
144675
144910
  ptrType$3.methods = [{prop: "CreateProcessInfo", name: "CreateProcessInfo", pkg: "", typ: $funcType([$String, $Int], [$error], false)}, {prop: "RemoveProcessInfo", name: "RemoveProcessInfo", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "WaitProcess", name: "WaitProcess", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "GetProcessInfo", name: "GetProcessInfo", pkg: "", typ: $funcType([$String], [ProcessInfo, $error], false)}, {prop: "ListScreenIDs", name: "ListScreenIDs", pkg: "", typ: $funcType([], [sliceType$2, $error], false)}, {prop: "getUserProcessDirPath", name: "getUserProcessDirPath", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$String], false)}];
144676
- ptrType$14.methods = [{prop: "Start", name: "Start", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "OnClose", name: "OnClose", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "startWindow", name: "startWindow", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "startClipboard", name: "startClipboard", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "retriableOpen", name: "retriableOpen", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([$Int, funcType$1], [$error], false)}, {prop: "openMetadata", name: "openMetadata", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "startTimestampSyncing", name: "startTimestampSyncing", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [], false)}, {prop: "openScreen", name: "openScreen", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "startStream", name: "startStream", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "renderFrame", name: "renderFrame", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([ptrType$1], [], false)}];
144911
+ ptrType$14.methods = [{prop: "Start", name: "Start", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "OnClose", name: "OnClose", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "startWindow", name: "startWindow", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "startClipboard", name: "startClipboard", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "retriableOpen", name: "retriableOpen", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([$Int, funcType$1], [$error], false)}, {prop: "openMetadata", name: "openMetadata", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "startTimestampSyncing", name: "startTimestampSyncing", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [], false)}, {prop: "startStatsSyncing", name: "startStatsSyncing", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [], false)}, {prop: "openScreen", name: "openScreen", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "startStream", name: "startStream", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "renderFrame", name: "renderFrame", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([ptrType$1], [], false)}];
144677
144912
  ptrType$6.methods = [{prop: "Render", name: "Render", pkg: "", typ: $funcType([ptrType$1], [], false)}];
144678
144913
  Frame.init("github.com/supraio/client-daemon/pkg/render", [{prop: "frameType", name: "frameType", embedded: false, exported: false, typ: FrameType, tag: ""}, {prop: "buffer", name: "buffer", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "timestamp", name: "timestamp", embedded: false, exported: false, typ: $Uint64, tag: ""}]);
144679
- FrameCollector.init("github.com/supraio/client-daemon/pkg/render", [{prop: "conn", name: "conn", embedded: false, exported: false, typ: netpacket.ReaderWriterCloser, tag: ""}, {prop: "stats", name: "stats", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "framesMap", name: "framesMap", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "lastFullFrameID", name: "lastFullFrameID", embedded: false, exported: false, typ: $Uint16, tag: ""}]);
144914
+ FrameCollector.init("github.com/supraio/client-daemon/pkg/render", [{prop: "conn", name: "conn", embedded: false, exported: false, typ: netpacket.ReaderWriterCloser, tag: ""}, {prop: "stats", name: "stats", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "framesMap", name: "framesMap", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "lastFullFrameID", name: "lastFullFrameID", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "maxPacketSize", name: "maxPacketSize", embedded: false, exported: false, typ: $Int, tag: ""}]);
144680
144915
  FrameMapItem.init("github.com/supraio/client-daemon/pkg/render", [{prop: "buffer", name: "buffer", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "frameType", name: "frameType", embedded: false, exported: false, typ: FrameType, tag: ""}, {prop: "timestamp", name: "timestamp", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "frameID", name: "frameID", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "total", name: "total", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "received", name: "received", embedded: false, exported: false, typ: $Uint16, tag: ""}]);
144681
144916
  ProcessInfo.init("", [{prop: "ScreenID", name: "ScreenID", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Pid", name: "Pid", embedded: false, exported: true, typ: $Int, tag: ""}]);
144682
144917
  ProcessInfoManager.init("github.com/supraio/client-daemon/pkg/render", [{prop: "username", name: "username", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "processDir", name: "processDir", embedded: false, exported: false, typ: $String, tag: ""}]);
144683
- ScreenWindow.init("github.com/supraio/client-daemon/pkg/render", [{prop: "processInfoManager", name: "processInfoManager", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "screenDriver", name: "screenDriver", embedded: false, exported: false, typ: netpacket.Driver, tag: ""}, {prop: "screenHost", name: "screenHost", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "metadataDriver", name: "metadataDriver", embedded: false, exported: false, typ: netstream.Driver, tag: ""}, {prop: "metadataHost", name: "metadataHost", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "processPath", name: "processPath", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "clientID", name: "clientID", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "clientSecret", name: "clientSecret", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "screenID", name: "screenID", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "secure", name: "secure", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "screenSize", name: "screenSize", embedded: false, exported: false, typ: image.Point, tag: ""}, {prop: "renderMutex", name: "renderMutex", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "timeoutDuration", name: "timeoutDuration", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "closed", name: "closed", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "stats", name: "stats", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "onClose", name: "onClose", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "window", name: "window", embedded: false, exported: false, typ: screen.Window, tag: ""}, {prop: "screen", name: "screen", embedded: false, exported: false, typ: screen.Screen, tag: ""}, {prop: "screenConn", name: "screenConn", embedded: false, exported: false, typ: netpacket.ReaderWriterCloser, tag: ""}, {prop: "screenReconnecting", name: "screenReconnecting", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "metadataServer", name: "metadataServer", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "frameCollector", name: "frameCollector", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "x264Renderer", name: "x264Renderer", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "screenSender", name: "screenSender", embedded: false, exported: false, typ: message.Sender, tag: ""}, {prop: "metadataSender", name: "metadataSender", embedded: false, exported: false, typ: message.Sender, tag: ""}, {prop: "metadataResponsiveSender", name: "metadataResponsiveSender", embedded: false, exported: false, typ: ptrType$7, tag: ""}, {prop: "sizeHandler", name: "sizeHandler", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "keyHandler", name: "keyHandler", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "mouseHandler", name: "mouseHandler", embedded: false, exported: false, typ: ptrType$10, tag: ""}, {prop: "healthchecker", name: "healthchecker", embedded: false, exported: false, typ: ptrType$11, tag: ""}, {prop: "keyEventChan", name: "keyEventChan", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "mouseEventChan", name: "mouseEventChan", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "sizeEventChan", name: "sizeEventChan", embedded: false, exported: false, typ: chanType$2, tag: ""}, {prop: "focusEventChan", name: "focusEventChan", embedded: false, exported: false, typ: chanType$3, tag: ""}, {prop: "winCloseChannel", name: "winCloseChannel", embedded: false, exported: false, typ: chanType$4, tag: ""}]);
144684
- X264FrameRenderer.init("github.com/supraio/client-daemon/pkg/render", [{prop: "screenBuffer", name: "screenBuffer", embedded: false, exported: false, typ: screen.Buffer, tag: ""}, {prop: "window", name: "window", embedded: false, exported: false, typ: screen.Window, tag: ""}, {prop: "dec", name: "dec", embedded: false, exported: false, typ: ptrType$12, tag: ""}]);
144918
+ ScreenWindow.init("github.com/supraio/client-daemon/pkg/render", [{prop: "processInfoManager", name: "processInfoManager", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "screenDriver", name: "screenDriver", embedded: false, exported: false, typ: netpacket.Driver, tag: ""}, {prop: "screenHost", name: "screenHost", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "metadataDriver", name: "metadataDriver", embedded: false, exported: false, typ: netstream.Driver, tag: ""}, {prop: "metadataHost", name: "metadataHost", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "clientID", name: "clientID", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "clientSecret", name: "clientSecret", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "screenID", name: "screenID", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "secure", name: "secure", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "screenSize", name: "screenSize", embedded: false, exported: false, typ: image.Point, tag: ""}, {prop: "renderMutex", name: "renderMutex", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "timeoutDuration", name: "timeoutDuration", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "closed", name: "closed", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "stats", name: "stats", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "onClose", name: "onClose", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "window", name: "window", embedded: false, exported: false, typ: screen.Window, tag: ""}, {prop: "screen", name: "screen", embedded: false, exported: false, typ: screen.Screen, tag: ""}, {prop: "screenConn", name: "screenConn", embedded: false, exported: false, typ: netpacket.ReaderWriterCloser, tag: ""}, {prop: "screenReconnecting", name: "screenReconnecting", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "metadataServer", name: "metadataServer", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "frameCollector", name: "frameCollector", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "x264Renderer", name: "x264Renderer", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "screenSender", name: "screenSender", embedded: false, exported: false, typ: message.Sender, tag: ""}, {prop: "metadataSender", name: "metadataSender", embedded: false, exported: false, typ: message.Sender, tag: ""}, {prop: "metadataResponsiveSender", name: "metadataResponsiveSender", embedded: false, exported: false, typ: ptrType$7, tag: ""}, {prop: "sizeHandler", name: "sizeHandler", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "keyHandler", name: "keyHandler", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "mouseHandler", name: "mouseHandler", embedded: false, exported: false, typ: ptrType$10, tag: ""}, {prop: "healthchecker", name: "healthchecker", embedded: false, exported: false, typ: ptrType$11, tag: ""}, {prop: "keyEventChan", name: "keyEventChan", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "mouseEventChan", name: "mouseEventChan", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "sizeEventChan", name: "sizeEventChan", embedded: false, exported: false, typ: chanType$2, tag: ""}, {prop: "focusEventChan", name: "focusEventChan", embedded: false, exported: false, typ: chanType$3, tag: ""}, {prop: "winCloseChannel", name: "winCloseChannel", embedded: false, exported: false, typ: chanType$4, tag: ""}]);
144919
+ X264FrameRenderer.init("github.com/supraio/client-daemon/pkg/render", [{prop: "screenBuffer", name: "screenBuffer", embedded: false, exported: false, typ: screen.Buffer, tag: ""}, {prop: "window", name: "window", embedded: false, exported: false, typ: screen.Window, tag: ""}, {prop: "stats", name: "stats", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "dec", name: "dec", embedded: false, exported: false, typ: ptrType$12, tag: ""}]);
144685
144920
  $init = function() {
144686
144921
  $pkg.$init = function() {};
144687
144922
  /* */ 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: