@supraio/client-daemon-js 0.0.0-jvmaster.355 → 0.0.0-jvmaster.358

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.
@@ -188391,1115 +188391,1068 @@ $packages["github.com/nuberu/webgl"] = (function() {
188391
188391
  $pkg.$init = $init;
188392
188392
  return $pkg;
188393
188393
  })();
188394
- $packages["github.com/supraio/client-daemon/pkg/x264"] = (function() {
188395
- var $pkg = {}, $init, fmt, image, strconv, NalHeader, BitReader, SPS, sliceType, sliceType$1, ptrType, sliceType$2, ptrType$1, ptrType$2, nalUnitTypes, ParseNalHeader, FindNalUnit, ParseSPS, GetImageResolution;
188394
+ $packages["github.com/supraio/client-daemon/pkg/shiny/driver/canvasdriver"] = (function() {
188395
+ var $pkg = {}, $init, fmt, dom, screen, f64, image, color, draw, log, sync, js, windowImpl, screenImpl, YCbCrJS, BufferImpl, sliceType, ptrType, ptrType$1, funcType, arrayType, ptrType$2, ptrType$3, sliceType$1, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, newWindow, Main, main, newScreenImpl, newBuffer;
188396
188396
  fmt = $packages["fmt"];
188397
+ dom = $packages["golang.org/x/exp/shiny/driver/util/dom"];
188398
+ screen = $packages["golang.org/x/exp/shiny/screen"];
188399
+ f64 = $packages["golang.org/x/image/math/f64"];
188397
188400
  image = $packages["image"];
188398
- strconv = $packages["strconv"];
188399
- NalHeader = $pkg.NalHeader = $newType(0, $kindStruct, "x264.NalHeader", true, "github.com/supraio/client-daemon/pkg/x264", true, function(ByteValue_, BinaryRepresentation_, ForbiddenZeroBit_, NalRefIdc_, NalUnitType_, TypeDescription_) {
188401
+ color = $packages["image/color"];
188402
+ draw = $packages["image/draw"];
188403
+ log = $packages["log"];
188404
+ sync = $packages["sync"];
188405
+ js = $packages["syscall/js"];
188406
+ windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "canvasdriver.windowImpl", true, "github.com/supraio/client-daemon/pkg/shiny/driver/canvasdriver", false, function(screen_, mutex_, canvasEl_, ctx2d_, released_, domEvents_, resizeCallback_) {
188400
188407
  this.$val = this;
188401
188408
  if (arguments.length === 0) {
188402
- this.ByteValue = 0;
188403
- this.BinaryRepresentation = "";
188404
- this.ForbiddenZeroBit = 0;
188405
- this.NalRefIdc = 0;
188406
- this.NalUnitType = 0;
188407
- this.TypeDescription = "";
188409
+ this.screen = ptrType.nil;
188410
+ this.mutex = ptrType$1.nil;
188411
+ this.canvasEl = new js.Value.ptr(null, false, arrayType.zero());
188412
+ this.ctx2d = new js.Value.ptr(null, false, arrayType.zero());
188413
+ this.released = false;
188414
+ this.domEvents = ptrType$2.nil;
188415
+ this.resizeCallback = new js.Func.ptr(new js.Value.ptr(null, false, arrayType.zero()));
188408
188416
  return;
188409
188417
  }
188410
- this.ByteValue = ByteValue_;
188411
- this.BinaryRepresentation = BinaryRepresentation_;
188412
- this.ForbiddenZeroBit = ForbiddenZeroBit_;
188413
- this.NalRefIdc = NalRefIdc_;
188414
- this.NalUnitType = NalUnitType_;
188415
- this.TypeDescription = TypeDescription_;
188418
+ this.screen = screen_;
188419
+ this.mutex = mutex_;
188420
+ this.canvasEl = canvasEl_;
188421
+ this.ctx2d = ctx2d_;
188422
+ this.released = released_;
188423
+ this.domEvents = domEvents_;
188424
+ this.resizeCallback = resizeCallback_;
188416
188425
  });
188417
- BitReader = $pkg.BitReader = $newType(0, $kindStruct, "x264.BitReader", true, "github.com/supraio/client-daemon/pkg/x264", true, function(data_, offset_) {
188426
+ screenImpl = $pkg.screenImpl = $newType(0, $kindStruct, "canvasdriver.screenImpl", true, "github.com/supraio/client-daemon/pkg/shiny/driver/canvasdriver", false, function(doc_) {
188418
188427
  this.$val = this;
188419
188428
  if (arguments.length === 0) {
188420
- this.data = sliceType$1.nil;
188421
- this.offset = 0;
188429
+ this.doc = new js.Value.ptr(null, false, arrayType.zero());
188422
188430
  return;
188423
188431
  }
188424
- this.data = data_;
188425
- this.offset = offset_;
188432
+ this.doc = doc_;
188426
188433
  });
188427
- SPS = $pkg.SPS = $newType(0, $kindStruct, "x264.SPS", true, "github.com/supraio/client-daemon/pkg/x264", true, function(ProfileIdc_, ChromaFormatIdc_, SeparateColourPlaneFlag_, ChromaArrayType_, LevelIdc_, SeqParameterSetId_, Log2MaxFrameNumMinus4_, PicOrderCntType_, Log2MaxPicOrderCntLsbMinus4_, MaxNumRefFrames_, GapsInFrameNumValueAllowedFlag_, PicWidthInMbsMinus1_, PicHeightInMapUnitsMinus1_, FrameMbsOnlyFlag_, MbAdaptiveFrameFieldFlag_, Direct8x8InterfaceFlag_, FrameCroppingFlag_, FrameCropLeftOffset_, FrameCropRightOffset_, FrameCropTopOffset_, FrameCropBottomOffset_) {
188434
+ YCbCrJS = $pkg.YCbCrJS = $newType(0, $kindStruct, "canvasdriver.YCbCrJS", true, "github.com/supraio/client-daemon/pkg/shiny/driver/canvasdriver", true, function(CanvasImageSource_) {
188428
188435
  this.$val = this;
188429
188436
  if (arguments.length === 0) {
188430
- this.ProfileIdc = 0;
188431
- this.ChromaFormatIdc = 0;
188432
- this.SeparateColourPlaneFlag = 0;
188433
- this.ChromaArrayType = 0;
188434
- this.LevelIdc = 0;
188435
- this.SeqParameterSetId = 0;
188436
- this.Log2MaxFrameNumMinus4 = 0;
188437
- this.PicOrderCntType = 0;
188438
- this.Log2MaxPicOrderCntLsbMinus4 = 0;
188439
- this.MaxNumRefFrames = 0;
188440
- this.GapsInFrameNumValueAllowedFlag = 0;
188441
- this.PicWidthInMbsMinus1 = 0;
188442
- this.PicHeightInMapUnitsMinus1 = 0;
188443
- this.FrameMbsOnlyFlag = 0;
188444
- this.MbAdaptiveFrameFieldFlag = 0;
188445
- this.Direct8x8InterfaceFlag = 0;
188446
- this.FrameCroppingFlag = 0;
188447
- this.FrameCropLeftOffset = 0;
188448
- this.FrameCropRightOffset = 0;
188449
- this.FrameCropTopOffset = 0;
188450
- this.FrameCropBottomOffset = 0;
188437
+ this.CanvasImageSource = ptrType$5.nil;
188451
188438
  return;
188452
188439
  }
188453
- this.ProfileIdc = ProfileIdc_;
188454
- this.ChromaFormatIdc = ChromaFormatIdc_;
188455
- this.SeparateColourPlaneFlag = SeparateColourPlaneFlag_;
188456
- this.ChromaArrayType = ChromaArrayType_;
188457
- this.LevelIdc = LevelIdc_;
188458
- this.SeqParameterSetId = SeqParameterSetId_;
188459
- this.Log2MaxFrameNumMinus4 = Log2MaxFrameNumMinus4_;
188460
- this.PicOrderCntType = PicOrderCntType_;
188461
- this.Log2MaxPicOrderCntLsbMinus4 = Log2MaxPicOrderCntLsbMinus4_;
188462
- this.MaxNumRefFrames = MaxNumRefFrames_;
188463
- this.GapsInFrameNumValueAllowedFlag = GapsInFrameNumValueAllowedFlag_;
188464
- this.PicWidthInMbsMinus1 = PicWidthInMbsMinus1_;
188465
- this.PicHeightInMapUnitsMinus1 = PicHeightInMapUnitsMinus1_;
188466
- this.FrameMbsOnlyFlag = FrameMbsOnlyFlag_;
188467
- this.MbAdaptiveFrameFieldFlag = MbAdaptiveFrameFieldFlag_;
188468
- this.Direct8x8InterfaceFlag = Direct8x8InterfaceFlag_;
188469
- this.FrameCroppingFlag = FrameCroppingFlag_;
188470
- this.FrameCropLeftOffset = FrameCropLeftOffset_;
188471
- this.FrameCropRightOffset = FrameCropRightOffset_;
188472
- this.FrameCropTopOffset = FrameCropTopOffset_;
188473
- this.FrameCropBottomOffset = FrameCropBottomOffset_;
188440
+ this.CanvasImageSource = CanvasImageSource_;
188441
+ });
188442
+ BufferImpl = $pkg.BufferImpl = $newType(0, $kindStruct, "canvasdriver.BufferImpl", true, "github.com/supraio/client-daemon/pkg/shiny/driver/canvasdriver", true, function(screen_, size_, mutex_, released_, rgba_, ycbcr_, ycbcrJS_) {
188443
+ this.$val = this;
188444
+ if (arguments.length === 0) {
188445
+ this.screen = ptrType.nil;
188446
+ this.size = new image.Point.ptr(0, 0);
188447
+ this.mutex = ptrType$1.nil;
188448
+ this.released = false;
188449
+ this.rgba = new image.RGBA.ptr(sliceType$1.nil, 0, new image.Rectangle.ptr(new image.Point.ptr(0, 0), new image.Point.ptr(0, 0)));
188450
+ this.ycbcr = new image.YCbCr.ptr(sliceType$1.nil, sliceType$1.nil, sliceType$1.nil, 0, 0, 0, new image.Rectangle.ptr(new image.Point.ptr(0, 0), new image.Point.ptr(0, 0)));
188451
+ this.ycbcrJS = ptrType$4.nil;
188452
+ return;
188453
+ }
188454
+ this.screen = screen_;
188455
+ this.size = size_;
188456
+ this.mutex = mutex_;
188457
+ this.released = released_;
188458
+ this.rgba = rgba_;
188459
+ this.ycbcr = ycbcr_;
188460
+ this.ycbcrJS = ycbcrJS_;
188474
188461
  });
188475
188462
  sliceType = $sliceType($emptyInterface);
188463
+ ptrType = $ptrType(screenImpl);
188464
+ ptrType$1 = $ptrType(sync.Mutex);
188465
+ funcType = $funcType([], [], false);
188466
+ arrayType = $arrayType(funcType, 0);
188467
+ ptrType$2 = $ptrType(dom.DomEvents);
188468
+ ptrType$3 = $ptrType(BufferImpl);
188476
188469
  sliceType$1 = $sliceType($Uint8);
188477
- ptrType = $ptrType(SPS);
188478
- sliceType$2 = $sliceType($Uint32);
188479
- ptrType$1 = $ptrType(image.Point);
188480
- ptrType$2 = $ptrType(BitReader);
188481
- ParseNalHeader = function(nalHeaderByte) {
188482
- var {_entry, _r, _tuple, binaryRep, description, forbiddenZeroBit, nalHeaderByte, nalRefIdc, nalUnitType, ok, $s, $r, $c} = $restore(this, {nalHeaderByte});
188483
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188484
- forbiddenZeroBit = (((nalHeaderByte >>> 7 << 24 >>> 24)) & 1) >>> 0;
188485
- nalRefIdc = (((nalHeaderByte >>> 5 << 24 >>> 24)) & 3) >>> 0;
188486
- nalUnitType = (nalHeaderByte & 31) >>> 0;
188487
- _tuple = (_entry = $mapIndex(nalUnitTypes,$Uint8.keyFor(nalUnitType)), _entry !== undefined ? [_entry.v, true] : ["", false]);
188488
- description = _tuple[0];
188489
- ok = _tuple[1];
188490
- /* */ if (!ok) { $s = 1; continue; }
188491
- /* */ $s = 2; continue;
188492
- /* if (!ok) { */ case 1:
188493
- _r = fmt.Sprintf("Type %d (Reserved/Other)", new sliceType([new $Uint8(nalUnitType)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188494
- description = _r;
188495
- /* } */ case 2:
188496
- binaryRep = strconv.FormatInt((new $Int64(0, nalHeaderByte)), 2);
188497
- while (true) {
188498
- if (!(binaryRep.length < 8)) { break; }
188499
- binaryRep = "0" + binaryRep;
188500
- }
188501
- $s = -1; return new NalHeader.ptr(nalHeaderByte, binaryRep, forbiddenZeroBit, nalRefIdc, nalUnitType, description);
188502
- /* */ } return; } var $f = {$blk: ParseNalHeader, $c: true, $r, _entry, _r, _tuple, binaryRep, description, forbiddenZeroBit, nalHeaderByte, nalRefIdc, nalUnitType, ok, $s};return $f;
188503
- };
188504
- $pkg.ParseNalHeader = ParseNalHeader;
188505
- FindNalUnit = function(data) {
188506
- var {$24r, $24r$1, _r, _r$1, data, i, startCode, x, x$1, $s, $r, $c} = $restore(this, {data});
188507
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188508
- startCode = new sliceType$1([0, 0, 1]);
188509
- /* */ if (data.$length < 3) { $s = 1; continue; }
188510
- /* */ $s = 2; continue;
188511
- /* if (data.$length < 3) { */ case 1:
188512
- _r = fmt.Errorf("Data too short to contain NAL unit start code.", sliceType.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188513
- $24r = [sliceType$1.nil, _r];
188514
- $s = 4; case 4: return $24r;
188515
- /* } */ case 2:
188516
- i = 0;
188517
- while (true) {
188518
- if (!(i <= (data.$length - startCode.$length >> 0))) { break; }
188519
- if ((((i < 0 || i >= data.$length) ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + i]) === (0 >= startCode.$length ? ($throwRuntimeError("index out of range"), undefined) : startCode.$array[startCode.$offset + 0])) && ((x = i + 1 >> 0, ((x < 0 || x >= data.$length) ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + x])) === (1 >= startCode.$length ? ($throwRuntimeError("index out of range"), undefined) : startCode.$array[startCode.$offset + 1])) && ((x$1 = i + 2 >> 0, ((x$1 < 0 || x$1 >= data.$length) ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + x$1])) === (2 >= startCode.$length ? ($throwRuntimeError("index out of range"), undefined) : startCode.$array[startCode.$offset + 2]))) {
188520
- $s = -1; return [$subslice(data, (i + 3 >> 0)), $ifaceNil];
188521
- }
188522
- i = i + (1) >> 0;
188523
- }
188524
- _r$1 = fmt.Errorf("NAL unit start code (0x00 0x00 0x01) not found", sliceType.nil); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
188525
- $24r$1 = [sliceType$1.nil, _r$1];
188526
- $s = 6; case 6: return $24r$1;
188527
- /* */ } return; } var $f = {$blk: FindNalUnit, $c: true, $r, $24r, $24r$1, _r, _r$1, data, i, startCode, x, x$1, $s};return $f;
188528
- };
188529
- $pkg.FindNalUnit = FindNalUnit;
188530
- BitReader.ptr.prototype.readBits = function(n) {
188531
- var {$24r, $24r$1, _q, _r, _r$1, _r$2, bit, bitIndex, byteIndex, i, n, r, value, x, y, $s, $r, $c} = $restore(this, {n});
188532
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188533
- r = this;
188534
- /* */ if (n > 32) { $s = 1; continue; }
188535
- /* */ $s = 2; continue;
188536
- /* if (n > 32) { */ case 1:
188537
- _r = fmt.Errorf("readBits: cannot read more than 32 bits at once", sliceType.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188538
- $24r = [0, _r];
188539
- $s = 4; case 4: return $24r;
188540
- /* } */ case 2:
188541
- value = 0;
188542
- i = 0;
188543
- /* while (true) { */ case 5:
188544
- /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 6; continue; }
188545
- byteIndex = (_q = r.offset / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
188546
- bitIndex = 7 - ((_r$1 = r.offset % 8, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero"))) >> 0;
188547
- /* */ if (byteIndex >= r.data.$length) { $s = 7; continue; }
188548
- /* */ $s = 8; continue;
188549
- /* if (byteIndex >= r.data.$length) { */ case 7:
188550
- _r$2 = fmt.Errorf("readBits: unexpected end of data", sliceType.nil); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
188551
- $24r$1 = [0, _r$2];
188552
- $s = 10; case 10: return $24r$1;
188553
- /* } */ case 8:
188554
- bit = ((((y = bitIndex, y < 32 ? ((x = r.data, ((byteIndex < 0 || byteIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + byteIndex])) >>> y) : 0) << 24 >>> 24)) & 1) >>> 0;
188555
- value = (((value << 1 >>> 0)) | ((bit >>> 0))) >>> 0;
188556
- r.offset = r.offset + (1) >> 0;
188557
- i = i + (1) >> 0;
188558
- $s = 5; continue;
188559
- case 6:
188560
- $s = -1; return [value, $ifaceNil];
188561
- /* */ } return; } var $f = {$blk: BitReader.ptr.prototype.readBits, $c: true, $r, $24r, $24r$1, _q, _r, _r$1, _r$2, bit, bitIndex, byteIndex, i, n, r, value, x, y, $s};return $f;
188562
- };
188563
- BitReader.prototype.readBits = function(n) { return this.$val.readBits(n); };
188564
- BitReader.ptr.prototype.readUEV = function() {
188565
- var {$24r, _r, _r$1, _r$2, _tuple, _tuple$1, bit, codeNum, err, err$1, leadingZeros, r, suffix, y, $s, $r, $c} = $restore(this, {});
188470
+ ptrType$4 = $ptrType(YCbCrJS);
188471
+ ptrType$5 = $ptrType(js.Value);
188472
+ ptrType$6 = $ptrType(screen.DrawOptions);
188473
+ ptrType$7 = $ptrType(windowImpl);
188474
+ ptrType$8 = $ptrType(screen.NewWindowOptions);
188475
+ ptrType$9 = $ptrType(image.RGBA);
188476
+ ptrType$10 = $ptrType(image.YCbCr);
188477
+ newWindow = function(screen$1, opts) {
188478
+ var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, adaptCanvas, canvasEl, ctx2d, domEvents, opts, resizeCallback, screen$1, w, $s, $r, $c} = $restore(this, {screen$1, opts});
188566
188479
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188567
- r = this;
188568
- leadingZeros = 0;
188569
- /* while (true) { */ case 1:
188570
- _r = r.readBits(1); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188571
- _tuple = _r;
188572
- bit = _tuple[0];
188573
- err = _tuple[1];
188574
- if (!($interfaceIsEqual(err, $ifaceNil))) {
188575
- $s = -1; return [0, err];
188480
+ adaptCanvas = [adaptCanvas];
188481
+ canvasEl = [canvasEl];
188482
+ _r = $clone(screen$1.doc, js.Value).Call("createElement", new sliceType([new $String("canvas")])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188483
+ canvasEl[0] = $clone(_r, js.Value);
188484
+ _r$1 = $clone($clone(screen$1.doc, js.Value).Get("body"), js.Value).Call("appendChild", new sliceType([new canvasEl[0].constructor.elem(canvasEl[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
188485
+ _r$1;
188486
+ adaptCanvas[0] = (function(adaptCanvas, canvasEl) { return function $b() {
188487
+ var {height, scale, width, $s, $r, $c} = $restore(this, {});
188488
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188489
+ scale = dom.GetBrowserZoomRatio();
188490
+ width = (((dom.GetScreenWidth()) / scale >> 0));
188491
+ if (!(($clone($clone(canvasEl[0], js.Value).Get("width"), js.Value).Int() === width))) {
188492
+ $clone(canvasEl[0], js.Value).Set("width", new $Int(width));
188576
188493
  }
188577
- if (bit === 1) {
188578
- /* break; */ $s = 2; continue;
188494
+ height = (((dom.GetScreenHeight()) / scale >> 0));
188495
+ if (!(($clone($clone(canvasEl[0], js.Value).Get("height"), js.Value).Int() === height))) {
188496
+ $clone(canvasEl[0], js.Value).Set("height", new $Int(height));
188579
188497
  }
188580
- leadingZeros = leadingZeros + (1) >> 0;
188581
- /* */ if (leadingZeros > 31) { $s = 4; continue; }
188582
- /* */ $s = 5; continue;
188583
- /* if (leadingZeros > 31) { */ case 4:
188584
- _r$1 = fmt.Errorf("readUEV: runaway code (too many leading zeros)", sliceType.nil); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
188585
- $24r = [0, _r$1];
188586
- $s = 7; case 7: return $24r;
188587
- /* } */ case 5:
188588
- $s = 1; continue;
188589
- case 2:
188590
- if (leadingZeros === 0) {
188591
- $s = -1; return [0, $ifaceNil];
188592
- }
188593
- _r$2 = r.readBits(leadingZeros); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
188594
- _tuple$1 = _r$2;
188595
- suffix = _tuple$1[0];
188596
- err$1 = _tuple$1[1];
188597
- if (!($interfaceIsEqual(err$1, $ifaceNil))) {
188598
- $s = -1; return [0, err$1];
188599
- }
188600
- codeNum = ((((y = leadingZeros, y < 32 ? (1 << y) : 0) >>> 0)) - 1 >>> 0) + suffix >>> 0;
188601
- $s = -1; return [codeNum, $ifaceNil];
188602
- /* */ } return; } var $f = {$blk: BitReader.ptr.prototype.readUEV, $c: true, $r, $24r, _r, _r$1, _r$2, _tuple, _tuple$1, bit, codeNum, err, err$1, leadingZeros, r, suffix, y, $s};return $f;
188498
+ $r = log.Println(new sliceType([new $String("ASDF newWindow adaptCanvas scale, canvas width, height"), new $Float64(scale), new $Int(width), new $Int(height)])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188499
+ $s = -1; return;
188500
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, height, scale, width, $s};return $f;
188501
+ }; })(adaptCanvas, canvasEl);
188502
+ $r = adaptCanvas[0](); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188503
+ resizeCallback = $clone(js.FuncOf((function(adaptCanvas, canvasEl) { return function $b(this$1, args) {
188504
+ var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
188505
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188506
+ $r = adaptCanvas[0](); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188507
+ $s = -1; return $ifaceNil;
188508
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
188509
+ }; })(adaptCanvas, canvasEl)), js.Func);
188510
+ _r$2 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("resize"), new resizeCallback.constructor.elem(resizeCallback)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
188511
+ _r$2;
188512
+ /* */ if (!((opts.Width === 0))) { $s = 5; continue; }
188513
+ /* */ $s = 6; continue;
188514
+ /* if (!((opts.Width === 0))) { */ case 5:
188515
+ $r = dom.SetWindowWidth(opts.Width); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188516
+ /* } */ case 6:
188517
+ /* */ if (!((opts.Height === 0))) { $s = 8; continue; }
188518
+ /* */ $s = 9; continue;
188519
+ /* if (!((opts.Height === 0))) { */ case 8:
188520
+ $r = dom.SetWindowHeight(opts.Height); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188521
+ /* } */ case 9:
188522
+ /* */ if (!(opts.Title === "")) { $s = 11; continue; }
188523
+ /* */ $s = 12; continue;
188524
+ /* if (!(opts.Title === "")) { */ case 11:
188525
+ _r$3 = $clone($clone(screen$1.doc, js.Value).Get("head"), js.Value).Call("getElementsByTagName", new sliceType([new $String("title")])); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
188526
+ _r$4 = $clone(_r$3, js.Value).Call("item", new sliceType([new $Int(0)])); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
188527
+ $r = $clone(_r$4, js.Value).Set("innerHTML", new $String(opts.Title)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188528
+ /* } */ case 12:
188529
+ _r$5 = $clone(canvasEl[0], js.Value).Call("getContext", new sliceType([new $String("2d")])); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
188530
+ ctx2d = $clone(_r$5, js.Value);
188531
+ /* */ if ($clone(ctx2d, js.Value).IsUndefined() || $clone(ctx2d, js.Value).IsNull()) { $s = 17; continue; }
188532
+ /* */ $s = 18; continue;
188533
+ /* if ($clone(ctx2d, js.Value).IsUndefined() || $clone(ctx2d, js.Value).IsNull()) { */ case 17:
188534
+ _r$6 = fmt.Errorf("Cannot get 2d context of canvas", sliceType.nil); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
188535
+ $panic(_r$6);
188536
+ /* } */ case 18:
188537
+ domEvents = dom.NewDomEvents();
188538
+ w = new windowImpl.ptr(screen$1, ptrType$1.nil, $clone(canvasEl[0], js.Value), $clone(ctx2d, js.Value), false, domEvents, $clone(resizeCallback, js.Func));
188539
+ $r = domEvents.BindEvents(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188540
+ $s = -1; return w;
188541
+ /* */ } return; } var $f = {$blk: newWindow, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, adaptCanvas, canvasEl, ctx2d, domEvents, opts, resizeCallback, screen$1, w, $s};return $f;
188603
188542
  };
188604
- BitReader.prototype.readUEV = function() { return this.$val.readUEV(); };
188605
- ParseSPS = function(spsPayload) {
188606
- var {$24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$17, $24r$18, $24r$19, $24r$2, $24r$20, $24r$21, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, err, reader, sps, spsPayload, unimplementedIdcProfile, unimplementedIdcProfiles, val, $s, $r, $c} = $restore(this, {spsPayload});
188607
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188608
- reader = new BitReader.ptr(spsPayload, 0);
188609
- sps = new SPS.ptr(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
188610
- val = 0;
188611
- err = $ifaceNil;
188612
- _r = reader.readBits(8); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188613
- _tuple = _r;
188614
- val = _tuple[0];
188615
- err = _tuple[1];
188616
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
188543
+ windowImpl.ptr.prototype.Release = function() {
188544
+ var {_r, _r$1, w, x, $s, $deferred, $r, $c} = $restore(this, {});
188545
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
188546
+ w = this;
188547
+ $r = w.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188548
+ $deferred.push([$methodVal(w.mutex, "Unlock"), []]);
188549
+ /* */ if (w.released) { $s = 2; continue; }
188617
188550
  /* */ $s = 3; continue;
188618
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
188619
- _r$1 = fmt.Errorf("failed to read profile_idc: %w", new sliceType([err])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
188620
- $24r = [ptrType.nil, _r$1];
188621
- $s = 5; case 5: return $24r;
188551
+ /* if (w.released) { */ case 2:
188552
+ $s = 4; case 4: return;
188622
188553
  /* } */ case 3:
188623
- unimplementedIdcProfiles = new sliceType$2([100, 110, 122, 244, 44, 83, 86, 118, 128, 138, 139, 134, 135]);
188624
- _ref = unimplementedIdcProfiles;
188625
- _i = 0;
188626
- /* while (true) { */ case 6:
188627
- /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 7; continue; }
188628
- unimplementedIdcProfile = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
188629
- /* */ if (val === unimplementedIdcProfile) { $s = 8; continue; }
188630
- /* */ $s = 9; continue;
188631
- /* if (val === unimplementedIdcProfile) { */ case 8:
188632
- _r$2 = fmt.Errorf("SPS profile_idc %d is complex and skipped", new sliceType([new $Uint32(val)])); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
188633
- $24r$1 = [ptrType.nil, _r$2];
188634
- $s = 11; case 11: return $24r$1;
188635
- /* } */ case 9:
188636
- _i++;
188637
- $s = 6; continue;
188638
- case 7:
188639
- sps.ProfileIdc = ((val << 24 >>> 24));
188640
- sps.ChromaFormatIdc = 1;
188641
- sps.SeparateColourPlaneFlag = 0;
188642
- sps.ChromaArrayType = 1;
188643
- _r$3 = reader.readBits(8); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
188644
- _tuple$1 = _r$3;
188645
- err = _tuple$1[1];
188646
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 13; continue; }
188647
- /* */ $s = 14; continue;
188648
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 13:
188649
- _r$4 = fmt.Errorf("failed to read constraint flags: %w", new sliceType([err])); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
188650
- $24r$2 = [ptrType.nil, _r$4];
188651
- $s = 16; case 16: return $24r$2;
188652
- /* } */ case 14:
188653
- _r$5 = reader.readBits(8); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
188654
- _tuple$2 = _r$5;
188655
- val = _tuple$2[0];
188656
- err = _tuple$2[1];
188657
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 18; continue; }
188658
- /* */ $s = 19; continue;
188659
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 18:
188660
- _r$6 = fmt.Errorf("failed to read level_idc: %w", new sliceType([err])); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
188661
- $24r$3 = [ptrType.nil, _r$6];
188662
- $s = 21; case 21: return $24r$3;
188663
- /* } */ case 19:
188664
- sps.LevelIdc = ((val << 24 >>> 24));
188665
- _r$7 = reader.readUEV(); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
188666
- _tuple$3 = _r$7;
188667
- val = _tuple$3[0];
188668
- err = _tuple$3[1];
188669
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 23; continue; }
188670
- /* */ $s = 24; continue;
188671
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 23:
188672
- _r$8 = fmt.Errorf("failed to read seq_parameter_set_id: %w", new sliceType([err])); /* */ $s = 25; case 25: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
188673
- $24r$4 = [ptrType.nil, _r$8];
188674
- $s = 26; case 26: return $24r$4;
188675
- /* } */ case 24:
188676
- sps.SeqParameterSetId = val;
188677
- _r$9 = reader.readUEV(); /* */ $s = 27; case 27: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
188678
- _tuple$4 = _r$9;
188679
- val = _tuple$4[0];
188680
- err = _tuple$4[1];
188681
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 28; continue; }
188682
- /* */ $s = 29; continue;
188683
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 28:
188684
- _r$10 = fmt.Errorf("failed to read log2_max_frame_num_minus4: %w", new sliceType([err])); /* */ $s = 30; case 30: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
188685
- $24r$5 = [ptrType.nil, _r$10];
188686
- $s = 31; case 31: return $24r$5;
188687
- /* } */ case 29:
188688
- sps.Log2MaxFrameNumMinus4 = val;
188689
- _r$11 = reader.readUEV(); /* */ $s = 32; case 32: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
188690
- _tuple$5 = _r$11;
188691
- val = _tuple$5[0];
188692
- err = _tuple$5[1];
188693
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 33; continue; }
188694
- /* */ $s = 34; continue;
188695
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 33:
188696
- _r$12 = fmt.Errorf("failed to read pic_order_cnt_type: %w", new sliceType([err])); /* */ $s = 35; case 35: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
188697
- $24r$6 = [ptrType.nil, _r$12];
188698
- $s = 36; case 36: return $24r$6;
188699
- /* } */ case 34:
188700
- sps.PicOrderCntType = val;
188701
- /* */ if (sps.PicOrderCntType === 0) { $s = 37; continue; }
188702
- /* */ if (sps.PicOrderCntType === 1) { $s = 38; continue; }
188703
- /* */ $s = 39; continue;
188704
- /* if (sps.PicOrderCntType === 0) { */ case 37:
188705
- _r$13 = reader.readUEV(); /* */ $s = 40; case 40: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
188706
- _tuple$6 = _r$13;
188707
- val = _tuple$6[0];
188708
- err = _tuple$6[1];
188709
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 41; continue; }
188710
- /* */ $s = 42; continue;
188711
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 41:
188712
- _r$14 = fmt.Errorf("failed to read log2_max_pic_order_cnt_lsb_minus4: %w", new sliceType([err])); /* */ $s = 43; case 43: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
188713
- $24r$7 = [ptrType.nil, _r$14];
188714
- $s = 44; case 44: return $24r$7;
188715
- /* } */ case 42:
188716
- sps.Log2MaxPicOrderCntLsbMinus4 = val;
188717
- $s = 39; continue;
188718
- /* } else if (sps.PicOrderCntType === 1) { */ case 38:
188719
- _r$15 = fmt.Errorf("SPS pic_order_cnt_type 1 is complex and skipped", sliceType.nil); /* */ $s = 45; case 45: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
188720
- $24r$8 = [ptrType.nil, _r$15];
188721
- $s = 46; case 46: return $24r$8;
188722
- /* } */ case 39:
188723
- _r$16 = reader.readUEV(); /* */ $s = 47; case 47: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; }
188724
- _tuple$7 = _r$16;
188725
- val = _tuple$7[0];
188726
- err = _tuple$7[1];
188727
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 48; continue; }
188728
- /* */ $s = 49; continue;
188729
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 48:
188730
- _r$17 = fmt.Errorf("failed to read max_num_ref_frames: %w", new sliceType([err])); /* */ $s = 50; case 50: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; }
188731
- $24r$9 = [ptrType.nil, _r$17];
188732
- $s = 51; case 51: return $24r$9;
188733
- /* } */ case 49:
188734
- sps.MaxNumRefFrames = val;
188735
- _r$18 = reader.readBits(1); /* */ $s = 52; case 52: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; }
188736
- _tuple$8 = _r$18;
188737
- val = _tuple$8[0];
188738
- err = _tuple$8[1];
188739
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 53; continue; }
188740
- /* */ $s = 54; continue;
188741
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 53:
188742
- _r$19 = fmt.Errorf("failed to read gaps_in_frame_num_value_allowed_flag: %w", new sliceType([err])); /* */ $s = 55; case 55: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; }
188743
- $24r$10 = [ptrType.nil, _r$19];
188744
- $s = 56; case 56: return $24r$10;
188745
- /* } */ case 54:
188746
- sps.GapsInFrameNumValueAllowedFlag = val;
188747
- _r$20 = reader.readUEV(); /* */ $s = 57; case 57: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; }
188748
- _tuple$9 = _r$20;
188749
- val = _tuple$9[0];
188750
- err = _tuple$9[1];
188751
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 58; continue; }
188752
- /* */ $s = 59; continue;
188753
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 58:
188754
- _r$21 = fmt.Errorf("failed to read pic_width_in_mbs_minus1: %w", new sliceType([err])); /* */ $s = 60; case 60: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; }
188755
- $24r$11 = [ptrType.nil, _r$21];
188756
- $s = 61; case 61: return $24r$11;
188757
- /* } */ case 59:
188758
- sps.PicWidthInMbsMinus1 = val;
188759
- _r$22 = reader.readUEV(); /* */ $s = 62; case 62: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; }
188760
- _tuple$10 = _r$22;
188761
- val = _tuple$10[0];
188762
- err = _tuple$10[1];
188763
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 63; continue; }
188764
- /* */ $s = 64; continue;
188765
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 63:
188766
- _r$23 = fmt.Errorf("failed to read pic_height_in_map_units_minus1: %w", new sliceType([err])); /* */ $s = 65; case 65: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; }
188767
- $24r$12 = [ptrType.nil, _r$23];
188768
- $s = 66; case 66: return $24r$12;
188769
- /* } */ case 64:
188770
- sps.PicHeightInMapUnitsMinus1 = val;
188771
- _r$24 = reader.readBits(1); /* */ $s = 67; case 67: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; }
188772
- _tuple$11 = _r$24;
188773
- val = _tuple$11[0];
188774
- err = _tuple$11[1];
188775
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 68; continue; }
188776
- /* */ $s = 69; continue;
188777
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 68:
188778
- _r$25 = fmt.Errorf("failed to read frame_mbs_only_flag: %w", new sliceType([err])); /* */ $s = 70; case 70: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; }
188779
- $24r$13 = [ptrType.nil, _r$25];
188780
- $s = 71; case 71: return $24r$13;
188781
- /* } */ case 69:
188782
- sps.FrameMbsOnlyFlag = ((val >>> 0));
188783
- /* */ if (sps.FrameMbsOnlyFlag === 0) { $s = 72; continue; }
188784
- /* */ $s = 73; continue;
188785
- /* if (sps.FrameMbsOnlyFlag === 0) { */ case 72:
188786
- _r$26 = reader.readBits(1); /* */ $s = 74; case 74: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; }
188787
- _tuple$12 = _r$26;
188788
- val = _tuple$12[0];
188789
- err = _tuple$12[1];
188790
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 75; continue; }
188791
- /* */ $s = 76; continue;
188792
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 75:
188793
- _r$27 = fmt.Errorf("failed to read mb_adaptive_frame_field_flag: %w", new sliceType([err])); /* */ $s = 77; case 77: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; }
188794
- $24r$14 = [ptrType.nil, _r$27];
188795
- $s = 78; case 78: return $24r$14;
188796
- /* } */ case 76:
188797
- sps.MbAdaptiveFrameFieldFlag = ((val >>> 0));
188798
- /* } */ case 73:
188799
- _r$28 = reader.readBits(1); /* */ $s = 79; case 79: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; }
188800
- _tuple$13 = _r$28;
188801
- val = _tuple$13[0];
188802
- err = _tuple$13[1];
188803
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 80; continue; }
188804
- /* */ $s = 81; continue;
188805
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 80:
188806
- _r$29 = fmt.Errorf("failed to read direct_8x8_interface_flag: %w", new sliceType([err])); /* */ $s = 82; case 82: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; }
188807
- $24r$15 = [ptrType.nil, _r$29];
188808
- $s = 83; case 83: return $24r$15;
188809
- /* } */ case 81:
188810
- sps.Direct8x8InterfaceFlag = ((val >>> 0));
188811
- /* */ if (sps.FrameMbsOnlyFlag === 0) { $s = 84; continue; }
188812
- /* */ $s = 85; continue;
188813
- /* if (sps.FrameMbsOnlyFlag === 0) { */ case 84:
188814
- /* */ if (!((sps.Direct8x8InterfaceFlag === 1))) { $s = 86; continue; }
188815
- /* */ $s = 87; continue;
188816
- /* if (!((sps.Direct8x8InterfaceFlag === 1))) { */ case 86:
188817
- _r$30 = fmt.Errorf("H.264 specification mismatch. frame_mbs_only_flag is equal to 0, but direct_8x8_inference_flag is not equal to 1.", sliceType.nil); /* */ $s = 88; case 88: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; }
188818
- $24r$16 = [ptrType.nil, _r$30];
188819
- $s = 89; case 89: return $24r$16;
188820
- /* } */ case 87:
188821
- /* } */ case 85:
188822
- _r$31 = reader.readBits(1); /* */ $s = 90; case 90: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; }
188823
- _tuple$14 = _r$31;
188824
- val = _tuple$14[0];
188825
- err = _tuple$14[1];
188826
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 91; continue; }
188827
- /* */ $s = 92; continue;
188828
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 91:
188829
- _r$32 = fmt.Errorf("failed to read frame_cropping_flag: %w", new sliceType([err])); /* */ $s = 93; case 93: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; }
188830
- $24r$17 = [ptrType.nil, _r$32];
188831
- $s = 94; case 94: return $24r$17;
188832
- /* } */ case 92:
188833
- sps.FrameCroppingFlag = ((val >>> 0));
188834
- /* */ if (sps.FrameCroppingFlag === 1) { $s = 95; continue; }
188835
- /* */ $s = 96; continue;
188836
- /* if (sps.FrameCroppingFlag === 1) { */ case 95:
188837
- _r$33 = reader.readUEV(); /* */ $s = 97; case 97: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; }
188838
- _tuple$15 = _r$33;
188839
- val = _tuple$15[0];
188840
- err = _tuple$15[1];
188841
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 98; continue; }
188842
- /* */ $s = 99; continue;
188843
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 98:
188844
- _r$34 = fmt.Errorf("failed to read frame_crop_left_offset: %w", new sliceType([err])); /* */ $s = 100; case 100: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; }
188845
- $24r$18 = [ptrType.nil, _r$34];
188846
- $s = 101; case 101: return $24r$18;
188847
- /* } */ case 99:
188848
- sps.FrameCropLeftOffset = val;
188849
- _r$35 = reader.readUEV(); /* */ $s = 102; case 102: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; }
188850
- _tuple$16 = _r$35;
188851
- val = _tuple$16[0];
188852
- err = _tuple$16[1];
188853
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 103; continue; }
188854
- /* */ $s = 104; continue;
188855
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 103:
188856
- _r$36 = fmt.Errorf("failed to read frame_crop_right_offset: %w", new sliceType([err])); /* */ $s = 105; case 105: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; }
188857
- $24r$19 = [ptrType.nil, _r$36];
188858
- $s = 106; case 106: return $24r$19;
188859
- /* } */ case 104:
188860
- sps.FrameCropRightOffset = val;
188861
- _r$37 = reader.readUEV(); /* */ $s = 107; case 107: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; }
188862
- _tuple$17 = _r$37;
188863
- val = _tuple$17[0];
188864
- err = _tuple$17[1];
188865
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 108; continue; }
188866
- /* */ $s = 109; continue;
188867
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 108:
188868
- _r$38 = fmt.Errorf("failed to read frame_crop_top_offset: %w", new sliceType([err])); /* */ $s = 110; case 110: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; }
188869
- $24r$20 = [ptrType.nil, _r$38];
188870
- $s = 111; case 111: return $24r$20;
188871
- /* } */ case 109:
188872
- sps.FrameCropTopOffset = val;
188873
- _r$39 = reader.readUEV(); /* */ $s = 112; case 112: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; }
188874
- _tuple$18 = _r$39;
188875
- val = _tuple$18[0];
188876
- err = _tuple$18[1];
188877
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 113; continue; }
188878
- /* */ $s = 114; continue;
188879
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 113:
188880
- _r$40 = fmt.Errorf("failed to read frame_crop_bottom_offset: %w", new sliceType([err])); /* */ $s = 115; case 115: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; }
188881
- $24r$21 = [ptrType.nil, _r$40];
188882
- $s = 116; case 116: return $24r$21;
188883
- /* } */ case 114:
188884
- sps.FrameCropBottomOffset = val;
188885
- /* } */ case 96:
188886
- $s = -1; return [sps, $ifaceNil];
188887
- /* */ } return; } var $f = {$blk: ParseSPS, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$17, $24r$18, $24r$19, $24r$2, $24r$20, $24r$21, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, err, reader, sps, spsPayload, unimplementedIdcProfile, unimplementedIdcProfiles, val, $s};return $f;
188554
+ _r = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("resize"), (x = w.resizeCallback, new x.constructor.elem(x))])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188555
+ _r;
188556
+ $clone(w.resizeCallback, js.Func).Release();
188557
+ _r$1 = $clone(w.canvasEl, js.Value).Call("remove", sliceType.nil); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
188558
+ _r$1;
188559
+ $r = w.domEvents.Release(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188560
+ w.released = true;
188561
+ $s = -1; return;
188562
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: windowImpl.ptr.prototype.Release, $c: true, $r, _r, _r$1, w, x, $s, $deferred};return $f; } }
188563
+ };
188564
+ windowImpl.prototype.Release = function() { return this.$val.Release(); };
188565
+ windowImpl.ptr.prototype.Publish = function() {
188566
+ var w;
188567
+ w = this;
188568
+ if (w.released) {
188569
+ return new screen.PublishResult.ptr(false);
188570
+ }
188571
+ return new screen.PublishResult.ptr(false);
188572
+ };
188573
+ windowImpl.prototype.Publish = function() { return this.$val.Publish(); };
188574
+ windowImpl.ptr.prototype.Send = function(event) {
188575
+ var event, w;
188576
+ w = this;
188577
+ if (w.released) {
188578
+ return;
188579
+ }
188580
+ $panic(new $String("Not implemented"));
188581
+ };
188582
+ windowImpl.prototype.Send = function(event) { return this.$val.Send(event); };
188583
+ windowImpl.ptr.prototype.SendFirst = function(event) {
188584
+ var event, w;
188585
+ w = this;
188586
+ if (w.released) {
188587
+ return;
188588
+ }
188589
+ $panic(new $String("Not implemented"));
188590
+ };
188591
+ windowImpl.prototype.SendFirst = function(event) { return this.$val.SendFirst(event); };
188592
+ windowImpl.ptr.prototype.NextEvent = function() {
188593
+ var {_r, ev, w, $s, $r, $c} = $restore(this, {});
188594
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188595
+ w = this;
188596
+ _r = $recv(w.domEvents.GetEventChan()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188597
+ ev = _r[0];
188598
+ $s = -1; return ev;
188599
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.NextEvent, $c: true, $r, _r, ev, w, $s};return $f;
188600
+ };
188601
+ windowImpl.prototype.NextEvent = function() { return this.$val.NextEvent(); };
188602
+ windowImpl.ptr.prototype.Upload = function(dp, src, sr) {
188603
+ var {_r, dp, sr, src, w, $s, $r, $c} = $restore(this, {dp, src, sr});
188604
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188605
+ w = this;
188606
+ if (w.released) {
188607
+ $s = -1; return;
188608
+ }
188609
+ _r = fmt.Errorf("Not implemented, use UploadYCbCr instead", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188610
+ $panic(_r);
188611
+ $s = -1; return;
188612
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.Upload, $c: true, $r, _r, dp, sr, src, w, $s};return $f;
188613
+ };
188614
+ windowImpl.prototype.Upload = function(dp, src, sr) { return this.$val.Upload(dp, src, sr); };
188615
+ windowImpl.ptr.prototype.UploadYCbCr = function(dp, src, sr) {
188616
+ var {_r, _r$1, _ref, dp, jsSrc, sr, src, w, x, x$1, x$2, $s, $r, $c} = $restore(this, {dp, src, sr});
188617
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188618
+ w = this;
188619
+ if (w.released) {
188620
+ $s = -1; return;
188621
+ }
188622
+ _ref = src;
188623
+ /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 1; continue; }
188624
+ /* */ $s = 2; continue;
188625
+ /* if ($assertType(_ref, ptrType$3, true)[1]) { */ case 1:
188626
+ jsSrc = _ref.$val;
188627
+ $r = log.Println(new sliceType([new $String("ASDF windowImpl.UploadYCbCr canvasEl width, height"), (x = $clone(w.canvasEl, js.Value).Get("width"), new x.constructor.elem(x)), (x$1 = $clone(w.canvasEl, js.Value).Get("height"), new x$1.constructor.elem(x$1)), new $String("src rect"), new sr.constructor.elem(sr)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188628
+ _r = $clone(w.ctx2d, js.Value).Call("drawImage", new sliceType([(x$2 = jsSrc.YCbCrJS().CanvasImageSource, new x$2.constructor.elem(x$2)), new $Int(dp.X), new $Int(dp.Y), new $Int($clone($clone(w.canvasEl, js.Value).Get("width"), js.Value).Int()), new $Int($clone($clone(w.canvasEl, js.Value).Get("height"), js.Value).Int())])); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188629
+ _r;
188630
+ $s = -1; return;
188631
+ /* } */ case 2:
188632
+ _r$1 = fmt.Errorf("Not implemented, use canvasdriver.BufferImpl instead", sliceType.nil); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
188633
+ $panic(_r$1);
188634
+ $s = -1; return;
188635
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.UploadYCbCr, $c: true, $r, _r, _r$1, _ref, dp, jsSrc, sr, src, w, x, x$1, x$2, $s};return $f;
188636
+ };
188637
+ windowImpl.prototype.UploadYCbCr = function(dp, src, sr) { return this.$val.UploadYCbCr(dp, src, sr); };
188638
+ windowImpl.ptr.prototype.Fill = function(dr, src, op) {
188639
+ var dr, op, src, w;
188640
+ w = this;
188641
+ if (w.released) {
188642
+ return;
188643
+ }
188644
+ $panic(new $String("Not implemented"));
188645
+ };
188646
+ windowImpl.prototype.Fill = function(dr, src, op) { return this.$val.Fill(dr, src, op); };
188647
+ windowImpl.ptr.prototype.Draw = function(src2dst, src, sr, op, opts) {
188648
+ var op, opts, sr, src, src2dst, w;
188649
+ w = this;
188650
+ if (w.released) {
188651
+ return;
188652
+ }
188653
+ $panic(new $String("Not implemented"));
188654
+ };
188655
+ windowImpl.prototype.Draw = function(src2dst, src, sr, op, opts) { return this.$val.Draw(src2dst, src, sr, op, opts); };
188656
+ windowImpl.ptr.prototype.DrawUniform = function(src2dst, src, sr, op, opts) {
188657
+ var op, opts, sr, src, src2dst, w;
188658
+ w = this;
188659
+ if (w.released) {
188660
+ return;
188661
+ }
188662
+ $panic(new $String("Not implemented"));
188663
+ };
188664
+ windowImpl.prototype.DrawUniform = function(src2dst, src, sr, op, opts) { return this.$val.DrawUniform(src2dst, src, sr, op, opts); };
188665
+ windowImpl.ptr.prototype.Copy = function(dp, src, sr, op, opts) {
188666
+ var dp, op, opts, sr, src, w;
188667
+ w = this;
188668
+ if (w.released) {
188669
+ return;
188670
+ }
188671
+ $panic(new $String("Not implemented"));
188672
+ };
188673
+ windowImpl.prototype.Copy = function(dp, src, sr, op, opts) { return this.$val.Copy(dp, src, sr, op, opts); };
188674
+ windowImpl.ptr.prototype.Scale = function(dr, src, sr, op, opts) {
188675
+ var dr, op, opts, sr, src, w;
188676
+ w = this;
188677
+ if (w.released) {
188678
+ return;
188679
+ }
188680
+ $panic(new $String("Not implemented"));
188681
+ };
188682
+ windowImpl.prototype.Scale = function(dr, src, sr, op, opts) { return this.$val.Scale(dr, src, sr, op, opts); };
188683
+ Main = function(f) {
188684
+ var {_r, err, f, $s, $r, $c} = $restore(this, {f});
188685
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188686
+ _r = main(f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188687
+ err = _r;
188688
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
188689
+ $panic(err);
188690
+ }
188691
+ $s = -1; return;
188692
+ /* */ } return; } var $f = {$blk: Main, $c: true, $r, _r, err, f, $s};return $f;
188888
188693
  };
188889
- $pkg.ParseSPS = ParseSPS;
188890
- GetImageResolution = function(nal) {
188891
- var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, err, err$1, err$2, imageResolution, nal, nalHeaderByte, nalHeaderResult, nalUnit, spsPayload, spsResult, $s, $r, $c} = $restore(this, {nal});
188694
+ $pkg.Main = Main;
188695
+ main = function(f) {
188696
+ var {_tuple, err, f, retErr, s, $s, $r, $c} = $restore(this, {f});
188892
188697
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188893
- _r = FindNalUnit(nal); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188894
- _tuple = _r;
188895
- nalUnit = _tuple[0];
188698
+ retErr = $ifaceNil;
188699
+ _tuple = newScreenImpl();
188700
+ s = _tuple[0];
188896
188701
  err = _tuple[1];
188897
188702
  if (!($interfaceIsEqual(err, $ifaceNil))) {
188898
- $s = -1; return [ptrType$1.nil, err];
188703
+ retErr = err;
188704
+ $s = -1; return retErr;
188899
188705
  }
188900
- nalHeaderByte = (0 >= nalUnit.$length ? ($throwRuntimeError("index out of range"), undefined) : nalUnit.$array[nalUnit.$offset + 0]);
188901
- spsPayload = $subslice(nalUnit, 1);
188902
- _r$1 = ParseNalHeader(nalHeaderByte); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
188903
- nalHeaderResult = $clone(_r$1, NalHeader);
188904
- /* */ if (nalHeaderResult.NalUnitType === 7) { $s = 3; continue; }
188905
- /* */ $s = 4; continue;
188906
- /* if (nalHeaderResult.NalUnitType === 7) { */ case 3:
188907
- _r$2 = ParseSPS(spsPayload); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
188908
- _tuple$1 = _r$2;
188909
- spsResult = _tuple$1[0];
188910
- err$1 = _tuple$1[1];
188911
- /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 7; continue; }
188912
- /* */ $s = 8; continue;
188913
- /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 7:
188914
- _r$3 = fmt.Errorf("Error parsing SPS: %v", new sliceType([err$1])); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
188915
- $24r = [ptrType$1.nil, _r$3];
188916
- $s = 11; case 11: return $24r;
188917
- /* } else { */ case 8:
188918
- _r$4 = spsResult.ImageResolution(); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
188919
- _tuple$2 = _r$4;
188920
- imageResolution = _tuple$2[0];
188921
- err$2 = _tuple$2[1];
188922
- $s = -1; return [imageResolution, err$2];
188923
- /* } */ case 9:
188924
- $s = 5; continue;
188925
- /* } else { */ case 4:
188926
- _r$5 = fmt.Errorf("NAL unit type %d is not an SPS (7). Skipping SPS parsing.", new sliceType([new $Uint8(nalHeaderResult.NalUnitType)])); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
188927
- $24r$1 = [ptrType$1.nil, _r$5];
188928
- $s = 14; case 14: return $24r$1;
188929
- /* } */ case 5:
188930
- $s = -1; return [ptrType$1.nil, $ifaceNil];
188931
- /* */ } return; } var $f = {$blk: GetImageResolution, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, err, err$1, err$2, imageResolution, nal, nalHeaderByte, nalHeaderResult, nalUnit, spsPayload, spsResult, $s};return $f;
188706
+ $r = f(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188707
+ retErr = $ifaceNil;
188708
+ $s = -1; return retErr;
188709
+ /* */ } return; } var $f = {$blk: main, $c: true, $r, _tuple, err, f, retErr, s, $s};return $f;
188932
188710
  };
188933
- $pkg.GetImageResolution = GetImageResolution;
188934
- SPS.ptr.prototype.ImageResolution = function() {
188935
- var {$24r, CropUnitX, CropUnitY, CroppedHeight, CroppedWidth, FrameHeightInMbs, PicHeightInMapUnits, PicWidthInMbs, PicWidthInSamples, _r, _r$1, _tuple, err, sps, $s, $r, $c} = $restore(this, {});
188936
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188937
- sps = this;
188938
- _r = sps.getCropUnits(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188939
- _tuple = _r;
188940
- CropUnitX = _tuple[0];
188941
- CropUnitY = _tuple[1];
188942
- err = _tuple[2];
188943
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
188944
- /* */ $s = 3; continue;
188945
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
188946
- _r$1 = fmt.Errorf("Failed to calculate image resolution%w", new sliceType([err])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
188947
- $24r = [ptrType$1.nil, _r$1];
188948
- $s = 5; case 5: return $24r;
188949
- /* } */ case 3:
188950
- PicWidthInMbs = sps.PicWidthInMbsMinus1 + 1 >>> 0;
188951
- PicWidthInSamples = $imul(PicWidthInMbs, 16) >>> 0;
188952
- CroppedWidth = ((PicWidthInSamples >> 0)) - ($imul(CropUnitX, (((sps.FrameCropLeftOffset + sps.FrameCropRightOffset >>> 0) >> 0)))) >> 0;
188953
- PicHeightInMapUnits = sps.PicHeightInMapUnitsMinus1 + 1 >>> 0;
188954
- FrameHeightInMbs = $imul((((2 - sps.FrameMbsOnlyFlag >>> 0) >> 0)), ((PicHeightInMapUnits >> 0)));
188955
- CroppedHeight = ($imul(16, FrameHeightInMbs)) - ($imul(CropUnitY, ((((sps.FrameCropTopOffset + sps.FrameCropBottomOffset >>> 0) >> 0))))) >> 0;
188956
- $s = -1; return [new image.Point.ptr(CroppedWidth, CroppedHeight), $ifaceNil];
188957
- /* */ } return; } var $f = {$blk: SPS.ptr.prototype.ImageResolution, $c: true, $r, $24r, CropUnitX, CropUnitY, CroppedHeight, CroppedWidth, FrameHeightInMbs, PicHeightInMapUnits, PicWidthInMbs, PicWidthInSamples, _r, _r$1, _tuple, err, sps, $s};return $f;
188711
+ newScreenImpl = function() {
188712
+ var s;
188713
+ s = new screenImpl.ptr($clone($clone(js.Global(), js.Value).Get("document"), js.Value));
188714
+ return [s, $ifaceNil];
188958
188715
  };
188959
- SPS.prototype.ImageResolution = function() { return this.$val.ImageResolution(); };
188960
- SPS.ptr.prototype.getCropUnits = function() {
188961
- var {$24r, CropUnitX, CropUnitY, SubHeightC, SubWidthC, _r, _r$1, _tuple, err, sps, $s, $r, $c} = $restore(this, {});
188962
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188963
- sps = this;
188964
- /* */ if (sps.ChromaArrayType === 0) { $s = 1; continue; }
188965
- /* */ if ((sps.ChromaArrayType === 1) || (sps.ChromaArrayType === 2) || (sps.ChromaArrayType === 3)) { $s = 2; continue; }
188966
- /* */ $s = 3; continue;
188967
- /* if (sps.ChromaArrayType === 0) { */ case 1:
188968
- $s = -1; return [1, 2 - ((sps.FrameMbsOnlyFlag >> 0)) >> 0, $ifaceNil];
188969
- /* } else if ((sps.ChromaArrayType === 1) || (sps.ChromaArrayType === 2) || (sps.ChromaArrayType === 3)) { */ case 2:
188970
- _r = sps.GetSubWidthCAndSubHeightC(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188971
- _tuple = _r;
188972
- SubWidthC = _tuple[0];
188973
- SubHeightC = _tuple[1];
188974
- err = _tuple[2];
188975
- if (!($interfaceIsEqual(err, $ifaceNil))) {
188976
- $s = -1; return [0, 0, err];
188977
- }
188978
- CropUnitX = SubWidthC;
188979
- CropUnitY = $imul(SubHeightC, ((2 - ((sps.FrameMbsOnlyFlag >> 0)) >> 0)));
188980
- $s = -1; return [CropUnitX, CropUnitY, $ifaceNil];
188981
- /* } else { */ case 3:
188982
- _r$1 = fmt.Errorf("Unsupported ChromaArrayType %d. Skipping SPS parsing.", new sliceType([new $Uint(sps.ChromaArrayType)])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
188983
- $24r = [0, 0, _r$1];
188984
- $s = 7; case 7: return $24r;
188985
- /* } */ case 4:
188986
- $s = -1; return [0, 0, $ifaceNil];
188987
- /* */ } return; } var $f = {$blk: SPS.ptr.prototype.getCropUnits, $c: true, $r, $24r, CropUnitX, CropUnitY, SubHeightC, SubWidthC, _r, _r$1, _tuple, err, sps, $s};return $f;
188716
+ screenImpl.ptr.prototype.NewBuffer = function(size) {
188717
+ var buffer, s, size;
188718
+ s = this;
188719
+ buffer = newBuffer(s, $clone(size, image.Point));
188720
+ return [buffer, $ifaceNil];
188988
188721
  };
188989
- SPS.prototype.getCropUnits = function() { return this.$val.getCropUnits(); };
188990
- SPS.ptr.prototype.GetSubWidthCAndSubHeightC = function() {
188991
- var {$24r, _r, sps, $s, $r, $c} = $restore(this, {});
188722
+ screenImpl.prototype.NewBuffer = function(size) { return this.$val.NewBuffer(size); };
188723
+ screenImpl.ptr.prototype.NewTexture = function(size) {
188724
+ var {$24r, _r, s, size, $s, $r, $c} = $restore(this, {size});
188992
188725
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188993
- sps = this;
188994
- if ((sps.ChromaFormatIdc === 1) && (sps.SeparateColourPlaneFlag === 0)) {
188995
- $s = -1; return [2, 2, $ifaceNil];
188996
- }
188997
- _r = fmt.Errorf("SubWidthC and SubHeightC for chroma_format_idc=%d separate_colour_plane_flag=%d not implemented.", new sliceType([new $Uint(sps.ChromaFormatIdc), new $Uint(sps.SeparateColourPlaneFlag)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188998
- $24r = [0, 0, _r];
188726
+ s = this;
188727
+ _r = fmt.Errorf("Texture not implemented", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188728
+ $24r = [$ifaceNil, _r];
188999
188729
  $s = 2; case 2: return $24r;
189000
- /* */ } return; } var $f = {$blk: SPS.ptr.prototype.GetSubWidthCAndSubHeightC, $c: true, $r, $24r, _r, sps, $s};return $f;
188730
+ /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewTexture, $c: true, $r, $24r, _r, s, size, $s};return $f;
189001
188731
  };
189002
- SPS.prototype.GetSubWidthCAndSubHeightC = function() { return this.$val.GetSubWidthCAndSubHeightC(); };
189003
- ptrType$2.methods = [{prop: "readBits", name: "readBits", pkg: "github.com/supraio/client-daemon/pkg/x264", typ: $funcType([$Int], [$Uint32, $error], false)}, {prop: "readUEV", name: "readUEV", pkg: "github.com/supraio/client-daemon/pkg/x264", typ: $funcType([], [$Uint32, $error], false)}];
189004
- ptrType.methods = [{prop: "ImageResolution", name: "ImageResolution", pkg: "", typ: $funcType([], [ptrType$1, $error], false)}, {prop: "getCropUnits", name: "getCropUnits", pkg: "github.com/supraio/client-daemon/pkg/x264", typ: $funcType([], [$Int, $Int, $error], false)}, {prop: "GetSubWidthCAndSubHeightC", name: "GetSubWidthCAndSubHeightC", pkg: "", typ: $funcType([], [$Int, $Int, $error], false)}];
189005
- NalHeader.init("", [{prop: "ByteValue", name: "ByteValue", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "BinaryRepresentation", name: "BinaryRepresentation", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ForbiddenZeroBit", name: "ForbiddenZeroBit", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "NalRefIdc", name: "NalRefIdc", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "NalUnitType", name: "NalUnitType", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "TypeDescription", name: "TypeDescription", embedded: false, exported: true, typ: $String, tag: ""}]);
189006
- BitReader.init("github.com/supraio/client-daemon/pkg/x264", [{prop: "data", name: "data", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Int, tag: ""}]);
189007
- SPS.init("", [{prop: "ProfileIdc", name: "ProfileIdc", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "ChromaFormatIdc", name: "ChromaFormatIdc", embedded: false, exported: true, typ: $Uint, tag: ""}, {prop: "SeparateColourPlaneFlag", name: "SeparateColourPlaneFlag", embedded: false, exported: true, typ: $Uint, tag: ""}, {prop: "ChromaArrayType", name: "ChromaArrayType", embedded: false, exported: true, typ: $Uint, tag: ""}, {prop: "LevelIdc", name: "LevelIdc", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "SeqParameterSetId", name: "SeqParameterSetId", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Log2MaxFrameNumMinus4", name: "Log2MaxFrameNumMinus4", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "PicOrderCntType", name: "PicOrderCntType", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Log2MaxPicOrderCntLsbMinus4", name: "Log2MaxPicOrderCntLsbMinus4", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "MaxNumRefFrames", name: "MaxNumRefFrames", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "GapsInFrameNumValueAllowedFlag", name: "GapsInFrameNumValueAllowedFlag", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "PicWidthInMbsMinus1", name: "PicWidthInMbsMinus1", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "PicHeightInMapUnitsMinus1", name: "PicHeightInMapUnitsMinus1", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "FrameMbsOnlyFlag", name: "FrameMbsOnlyFlag", embedded: false, exported: true, typ: $Uint, tag: ""}, {prop: "MbAdaptiveFrameFieldFlag", name: "MbAdaptiveFrameFieldFlag", embedded: false, exported: true, typ: $Uint, tag: ""}, {prop: "Direct8x8InterfaceFlag", name: "Direct8x8InterfaceFlag", embedded: false, exported: true, typ: $Uint, tag: ""}, {prop: "FrameCroppingFlag", name: "FrameCroppingFlag", embedded: false, exported: true, typ: $Uint, tag: ""}, {prop: "FrameCropLeftOffset", name: "FrameCropLeftOffset", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "FrameCropRightOffset", name: "FrameCropRightOffset", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "FrameCropTopOffset", name: "FrameCropTopOffset", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "FrameCropBottomOffset", name: "FrameCropBottomOffset", embedded: false, exported: true, typ: $Uint32, tag: ""}]);
189008
- $init = function() {
189009
- $pkg.$init = function() {};
189010
- /* */ 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:
189011
- $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189012
- $r = image.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189013
- $r = strconv.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189014
- nalUnitTypes = $makeMap($Uint8.keyFor, [{ k: 5, v: "Coded slice of an IDR picture (IDR Slice)" }, { k: 7, v: "Sequence parameter set (SPS)" }, { k: 8, v: "Picture parameter set (PPS)" }]);
189015
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
188732
+ screenImpl.prototype.NewTexture = function(size) { return this.$val.NewTexture(size); };
188733
+ screenImpl.ptr.prototype.NewWindow = function(opts) {
188734
+ var {_r, opts, s, window, $s, $r, $c} = $restore(this, {opts});
188735
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188736
+ s = this;
188737
+ _r = newWindow(s, opts); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188738
+ window = _r;
188739
+ $s = -1; return [window, $ifaceNil];
188740
+ /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewWindow, $c: true, $r, _r, opts, s, window, $s};return $f;
189016
188741
  };
189017
- $pkg.$init = $init;
189018
- return $pkg;
189019
- })();
189020
- $packages["golang.org/x/exp/shiny/driver/internal/errscreen"] = (function() {
189021
- var $pkg = {}, $init, screen, image, stub, ptrType, Stub;
189022
- screen = $packages["golang.org/x/exp/shiny/screen"];
189023
- image = $packages["image"];
189024
- stub = $pkg.stub = $newType(0, $kindStruct, "errscreen.stub", true, "golang.org/x/exp/shiny/driver/internal/errscreen", false, function(err_) {
189025
- this.$val = this;
189026
- if (arguments.length === 0) {
189027
- this.err = $ifaceNil;
189028
- return;
189029
- }
189030
- this.err = err_;
189031
- });
189032
- ptrType = $ptrType(screen.NewWindowOptions);
189033
- Stub = function(err) {
189034
- var err, x;
189035
- return (x = new stub.ptr(err), new x.constructor.elem(x));
188742
+ screenImpl.prototype.NewWindow = function(opts) { return this.$val.NewWindow(opts); };
188743
+ newBuffer = function(screen$1, size) {
188744
+ var _q, _q$1, _q$2, b, rect, screen$1, size;
188745
+ rect = new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(size, image.Point));
188746
+ b = new BufferImpl.ptr(screen$1, $clone(size, image.Point), new sync.Mutex.ptr(0, 0), false, $clone(new image.RGBA.ptr($makeSlice(sliceType$1, ($imul(($imul(4, size.X)), size.Y))), $imul(4, size.X), $clone(rect, image.Rectangle)), image.RGBA), $clone(new image.YCbCr.ptr($makeSlice(sliceType$1, ($imul(size.X, size.Y))), $makeSlice(sliceType$1, (_q$1 = ($imul(size.X, size.Y)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))), $makeSlice(sliceType$1, (_q$2 = ($imul(size.X, size.Y)) / 4, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero"))), size.X, (_q = size.X / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), 2, $clone(rect, image.Rectangle)), image.YCbCr), ptrType$4.nil);
188747
+ return b;
189036
188748
  };
189037
- $pkg.Stub = Stub;
189038
- stub.ptr.prototype.NewBuffer = function(size) {
189039
- var s, size;
189040
- s = this;
189041
- return [$ifaceNil, s.err];
188749
+ BufferImpl.ptr.prototype.Size = function() {
188750
+ var b;
188751
+ b = this;
188752
+ return b.size;
189042
188753
  };
189043
- stub.prototype.NewBuffer = function(size) { return this.$val.NewBuffer(size); };
189044
- stub.ptr.prototype.NewTexture = function(size) {
189045
- var s, size;
189046
- s = this;
189047
- return [$ifaceNil, s.err];
188754
+ BufferImpl.prototype.Size = function() { return this.$val.Size(); };
188755
+ BufferImpl.ptr.prototype.Bounds = function() {
188756
+ var b;
188757
+ b = this;
188758
+ return new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(b.size, image.Point));
189048
188759
  };
189049
- stub.prototype.NewTexture = function(size) { return this.$val.NewTexture(size); };
189050
- stub.ptr.prototype.NewWindow = function(opts) {
189051
- var opts, s;
189052
- s = this;
189053
- return [$ifaceNil, s.err];
188760
+ BufferImpl.prototype.Bounds = function() { return this.$val.Bounds(); };
188761
+ BufferImpl.ptr.prototype.RGBA = function() {
188762
+ var b;
188763
+ b = this;
188764
+ return b.rgba;
189054
188765
  };
189055
- stub.prototype.NewWindow = function(opts) { return this.$val.NewWindow(opts); };
189056
- stub.methods = [{prop: "NewBuffer", name: "NewBuffer", pkg: "", typ: $funcType([image.Point], [screen.Buffer, $error], false)}, {prop: "NewTexture", name: "NewTexture", pkg: "", typ: $funcType([image.Point], [screen.Texture, $error], false)}, {prop: "NewWindow", name: "NewWindow", pkg: "", typ: $funcType([ptrType], [screen.Window, $error], false)}];
189057
- stub.init("golang.org/x/exp/shiny/driver/internal/errscreen", [{prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]);
188766
+ BufferImpl.prototype.RGBA = function() { return this.$val.RGBA(); };
188767
+ BufferImpl.ptr.prototype.YCbCr = function() {
188768
+ var b;
188769
+ b = this;
188770
+ return b.ycbcr;
188771
+ };
188772
+ BufferImpl.prototype.YCbCr = function() { return this.$val.YCbCr(); };
188773
+ BufferImpl.ptr.prototype.YCbCrJS = function() {
188774
+ var b;
188775
+ b = this;
188776
+ if (b.ycbcrJS === ptrType$4.nil) {
188777
+ b.ycbcrJS = new YCbCrJS.ptr(ptrType$5.nil);
188778
+ }
188779
+ return b.ycbcrJS;
188780
+ };
188781
+ BufferImpl.prototype.YCbCrJS = function() { return this.$val.YCbCrJS(); };
188782
+ BufferImpl.ptr.prototype.Release = function() {
188783
+ var {b, $s, $deferred, $r, $c} = $restore(this, {});
188784
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
188785
+ b = this;
188786
+ $r = b.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188787
+ $deferred.push([$methodVal(b.mutex, "Unlock"), []]);
188788
+ /* */ if (b.released) { $s = 2; continue; }
188789
+ /* */ $s = 3; continue;
188790
+ /* if (b.released) { */ case 2:
188791
+ $s = 4; case 4: return;
188792
+ /* } */ case 3:
188793
+ b.released = true;
188794
+ $s = -1; return;
188795
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: BufferImpl.ptr.prototype.Release, $c: true, $r, b, $s, $deferred};return $f; } }
188796
+ };
188797
+ BufferImpl.prototype.Release = function() { return this.$val.Release(); };
188798
+ ptrType$7.methods = [{prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "Publish", name: "Publish", pkg: "", typ: $funcType([], [screen.PublishResult], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "SendFirst", name: "SendFirst", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "NextEvent", name: "NextEvent", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Upload", name: "Upload", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "UploadYCbCr", name: "UploadYCbCr", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "Fill", name: "Fill", pkg: "", typ: $funcType([image.Rectangle, color.Color, draw.Op], [], false)}, {prop: "Draw", name: "Draw", pkg: "", typ: $funcType([f64.Aff3, screen.Texture, image.Rectangle, draw.Op, ptrType$6], [], false)}, {prop: "DrawUniform", name: "DrawUniform", pkg: "", typ: $funcType([f64.Aff3, color.Color, image.Rectangle, draw.Op, ptrType$6], [], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([image.Point, screen.Texture, image.Rectangle, draw.Op, ptrType$6], [], false)}, {prop: "Scale", name: "Scale", pkg: "", typ: $funcType([image.Rectangle, screen.Texture, image.Rectangle, draw.Op, ptrType$6], [], false)}];
188799
+ ptrType.methods = [{prop: "NewBuffer", name: "NewBuffer", pkg: "", typ: $funcType([image.Point], [screen.Buffer, $error], false)}, {prop: "NewTexture", name: "NewTexture", pkg: "", typ: $funcType([image.Point], [screen.Texture, $error], false)}, {prop: "NewWindow", name: "NewWindow", pkg: "", typ: $funcType([ptrType$8], [screen.Window, $error], false)}];
188800
+ ptrType$3.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [image.Point], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [image.Rectangle], false)}, {prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [ptrType$9], false)}, {prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType$10], false)}, {prop: "YCbCrJS", name: "YCbCrJS", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}];
188801
+ windowImpl.init("github.com/supraio/client-daemon/pkg/shiny/driver/canvasdriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "canvasEl", name: "canvasEl", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "ctx2d", name: "ctx2d", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "domEvents", name: "domEvents", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "resizeCallback", name: "resizeCallback", embedded: false, exported: false, typ: js.Func, tag: ""}]);
188802
+ screenImpl.init("github.com/supraio/client-daemon/pkg/shiny/driver/canvasdriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}]);
188803
+ YCbCrJS.init("", [{prop: "CanvasImageSource", name: "CanvasImageSource", embedded: false, exported: true, typ: ptrType$5, tag: ""}]);
188804
+ BufferImpl.init("github.com/supraio/client-daemon/pkg/shiny/driver/canvasdriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: image.Point, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "rgba", name: "rgba", embedded: false, exported: false, typ: image.RGBA, tag: ""}, {prop: "ycbcr", name: "ycbcr", embedded: false, exported: false, typ: image.YCbCr, tag: ""}, {prop: "ycbcrJS", name: "ycbcrJS", embedded: false, exported: false, typ: ptrType$4, tag: ""}]);
189058
188805
  $init = function() {
189059
188806
  $pkg.$init = function() {};
189060
- /* */ 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:
189061
- $r = screen.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189062
- $r = image.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188807
+ /* */ 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:
188808
+ $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188809
+ $r = dom.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188810
+ $r = screen.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188811
+ $r = f64.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188812
+ $r = image.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188813
+ $r = color.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188814
+ $r = draw.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188815
+ $r = log.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188816
+ $r = sync.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188817
+ $r = js.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189063
188818
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
189064
188819
  };
189065
188820
  $pkg.$init = $init;
189066
188821
  return $pkg;
189067
188822
  })();
189068
- $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
189069
- var $pkg = {}, $init, fmt, errscreen, dom, screen, f64, image, color, draw, sync, js, windowImpl, screenImpl, YCbCrJS, BufferImpl, sliceType, ptrType, ptrType$1, funcType, arrayType, ptrType$2, ptrType$3, sliceType$1, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, newWindow, Main, main, newScreenImpl, newBuffer;
188823
+ $packages["github.com/supraio/client-daemon/pkg/x264"] = (function() {
188824
+ var $pkg = {}, $init, fmt, image, strconv, NalHeader, BitReader, SPS, sliceType, sliceType$1, ptrType, sliceType$2, ptrType$1, ptrType$2, nalUnitTypes, ParseNalHeader, FindNalUnit, ParseSPS, GetImageResolution;
189070
188825
  fmt = $packages["fmt"];
189071
- errscreen = $packages["golang.org/x/exp/shiny/driver/internal/errscreen"];
189072
- dom = $packages["golang.org/x/exp/shiny/driver/util/dom"];
189073
- screen = $packages["golang.org/x/exp/shiny/screen"];
189074
- f64 = $packages["golang.org/x/image/math/f64"];
189075
188826
  image = $packages["image"];
189076
- color = $packages["image/color"];
189077
- draw = $packages["image/draw"];
189078
- sync = $packages["sync"];
189079
- js = $packages["syscall/js"];
189080
- windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "canvasdriver.windowImpl", true, "golang.org/x/exp/shiny/driver/canvasdriver", false, function(screen_, mutex_, canvasEl_, ctx2d_, released_, domEvents_, resizeCallback_) {
189081
- this.$val = this;
189082
- if (arguments.length === 0) {
189083
- this.screen = ptrType.nil;
189084
- this.mutex = ptrType$1.nil;
189085
- this.canvasEl = new js.Value.ptr(null, false, arrayType.zero());
189086
- this.ctx2d = new js.Value.ptr(null, false, arrayType.zero());
189087
- this.released = false;
189088
- this.domEvents = ptrType$2.nil;
189089
- this.resizeCallback = new js.Func.ptr(new js.Value.ptr(null, false, arrayType.zero()));
189090
- return;
189091
- }
189092
- this.screen = screen_;
189093
- this.mutex = mutex_;
189094
- this.canvasEl = canvasEl_;
189095
- this.ctx2d = ctx2d_;
189096
- this.released = released_;
189097
- this.domEvents = domEvents_;
189098
- this.resizeCallback = resizeCallback_;
189099
- });
189100
- screenImpl = $pkg.screenImpl = $newType(0, $kindStruct, "canvasdriver.screenImpl", true, "golang.org/x/exp/shiny/driver/canvasdriver", false, function(doc_) {
188827
+ strconv = $packages["strconv"];
188828
+ NalHeader = $pkg.NalHeader = $newType(0, $kindStruct, "x264.NalHeader", true, "github.com/supraio/client-daemon/pkg/x264", true, function(ByteValue_, BinaryRepresentation_, ForbiddenZeroBit_, NalRefIdc_, NalUnitType_, TypeDescription_) {
189101
188829
  this.$val = this;
189102
188830
  if (arguments.length === 0) {
189103
- this.doc = new js.Value.ptr(null, false, arrayType.zero());
188831
+ this.ByteValue = 0;
188832
+ this.BinaryRepresentation = "";
188833
+ this.ForbiddenZeroBit = 0;
188834
+ this.NalRefIdc = 0;
188835
+ this.NalUnitType = 0;
188836
+ this.TypeDescription = "";
189104
188837
  return;
189105
188838
  }
189106
- this.doc = doc_;
188839
+ this.ByteValue = ByteValue_;
188840
+ this.BinaryRepresentation = BinaryRepresentation_;
188841
+ this.ForbiddenZeroBit = ForbiddenZeroBit_;
188842
+ this.NalRefIdc = NalRefIdc_;
188843
+ this.NalUnitType = NalUnitType_;
188844
+ this.TypeDescription = TypeDescription_;
189107
188845
  });
189108
- YCbCrJS = $pkg.YCbCrJS = $newType(0, $kindStruct, "canvasdriver.YCbCrJS", true, "golang.org/x/exp/shiny/driver/canvasdriver", true, function(CanvasImageSource_) {
188846
+ BitReader = $pkg.BitReader = $newType(0, $kindStruct, "x264.BitReader", true, "github.com/supraio/client-daemon/pkg/x264", true, function(data_, offset_) {
189109
188847
  this.$val = this;
189110
188848
  if (arguments.length === 0) {
189111
- this.CanvasImageSource = ptrType$5.nil;
188849
+ this.data = sliceType$1.nil;
188850
+ this.offset = 0;
189112
188851
  return;
189113
188852
  }
189114
- this.CanvasImageSource = CanvasImageSource_;
188853
+ this.data = data_;
188854
+ this.offset = offset_;
189115
188855
  });
189116
- BufferImpl = $pkg.BufferImpl = $newType(0, $kindStruct, "canvasdriver.BufferImpl", true, "golang.org/x/exp/shiny/driver/canvasdriver", true, function(screen_, size_, mutex_, released_, rgba_, ycbcr_, ycbcrJS_) {
188856
+ SPS = $pkg.SPS = $newType(0, $kindStruct, "x264.SPS", true, "github.com/supraio/client-daemon/pkg/x264", true, function(ProfileIdc_, ChromaFormatIdc_, SeparateColourPlaneFlag_, ChromaArrayType_, LevelIdc_, SeqParameterSetId_, Log2MaxFrameNumMinus4_, PicOrderCntType_, Log2MaxPicOrderCntLsbMinus4_, MaxNumRefFrames_, GapsInFrameNumValueAllowedFlag_, PicWidthInMbsMinus1_, PicHeightInMapUnitsMinus1_, FrameMbsOnlyFlag_, MbAdaptiveFrameFieldFlag_, Direct8x8InterfaceFlag_, FrameCroppingFlag_, FrameCropLeftOffset_, FrameCropRightOffset_, FrameCropTopOffset_, FrameCropBottomOffset_) {
189117
188857
  this.$val = this;
189118
188858
  if (arguments.length === 0) {
189119
- this.screen = ptrType.nil;
189120
- this.size = new image.Point.ptr(0, 0);
189121
- this.mutex = ptrType$1.nil;
189122
- this.released = false;
189123
- this.rgba = new image.RGBA.ptr(sliceType$1.nil, 0, new image.Rectangle.ptr(new image.Point.ptr(0, 0), new image.Point.ptr(0, 0)));
189124
- this.ycbcr = new image.YCbCr.ptr(sliceType$1.nil, sliceType$1.nil, sliceType$1.nil, 0, 0, 0, new image.Rectangle.ptr(new image.Point.ptr(0, 0), new image.Point.ptr(0, 0)));
189125
- this.ycbcrJS = ptrType$4.nil;
188859
+ this.ProfileIdc = 0;
188860
+ this.ChromaFormatIdc = 0;
188861
+ this.SeparateColourPlaneFlag = 0;
188862
+ this.ChromaArrayType = 0;
188863
+ this.LevelIdc = 0;
188864
+ this.SeqParameterSetId = 0;
188865
+ this.Log2MaxFrameNumMinus4 = 0;
188866
+ this.PicOrderCntType = 0;
188867
+ this.Log2MaxPicOrderCntLsbMinus4 = 0;
188868
+ this.MaxNumRefFrames = 0;
188869
+ this.GapsInFrameNumValueAllowedFlag = 0;
188870
+ this.PicWidthInMbsMinus1 = 0;
188871
+ this.PicHeightInMapUnitsMinus1 = 0;
188872
+ this.FrameMbsOnlyFlag = 0;
188873
+ this.MbAdaptiveFrameFieldFlag = 0;
188874
+ this.Direct8x8InterfaceFlag = 0;
188875
+ this.FrameCroppingFlag = 0;
188876
+ this.FrameCropLeftOffset = 0;
188877
+ this.FrameCropRightOffset = 0;
188878
+ this.FrameCropTopOffset = 0;
188879
+ this.FrameCropBottomOffset = 0;
189126
188880
  return;
189127
188881
  }
189128
- this.screen = screen_;
189129
- this.size = size_;
189130
- this.mutex = mutex_;
189131
- this.released = released_;
189132
- this.rgba = rgba_;
189133
- this.ycbcr = ycbcr_;
189134
- this.ycbcrJS = ycbcrJS_;
188882
+ this.ProfileIdc = ProfileIdc_;
188883
+ this.ChromaFormatIdc = ChromaFormatIdc_;
188884
+ this.SeparateColourPlaneFlag = SeparateColourPlaneFlag_;
188885
+ this.ChromaArrayType = ChromaArrayType_;
188886
+ this.LevelIdc = LevelIdc_;
188887
+ this.SeqParameterSetId = SeqParameterSetId_;
188888
+ this.Log2MaxFrameNumMinus4 = Log2MaxFrameNumMinus4_;
188889
+ this.PicOrderCntType = PicOrderCntType_;
188890
+ this.Log2MaxPicOrderCntLsbMinus4 = Log2MaxPicOrderCntLsbMinus4_;
188891
+ this.MaxNumRefFrames = MaxNumRefFrames_;
188892
+ this.GapsInFrameNumValueAllowedFlag = GapsInFrameNumValueAllowedFlag_;
188893
+ this.PicWidthInMbsMinus1 = PicWidthInMbsMinus1_;
188894
+ this.PicHeightInMapUnitsMinus1 = PicHeightInMapUnitsMinus1_;
188895
+ this.FrameMbsOnlyFlag = FrameMbsOnlyFlag_;
188896
+ this.MbAdaptiveFrameFieldFlag = MbAdaptiveFrameFieldFlag_;
188897
+ this.Direct8x8InterfaceFlag = Direct8x8InterfaceFlag_;
188898
+ this.FrameCroppingFlag = FrameCroppingFlag_;
188899
+ this.FrameCropLeftOffset = FrameCropLeftOffset_;
188900
+ this.FrameCropRightOffset = FrameCropRightOffset_;
188901
+ this.FrameCropTopOffset = FrameCropTopOffset_;
188902
+ this.FrameCropBottomOffset = FrameCropBottomOffset_;
189135
188903
  });
189136
- sliceType = $sliceType($emptyInterface);
189137
- ptrType = $ptrType(screenImpl);
189138
- ptrType$1 = $ptrType(sync.Mutex);
189139
- funcType = $funcType([], [], false);
189140
- arrayType = $arrayType(funcType, 0);
189141
- ptrType$2 = $ptrType(dom.DomEvents);
189142
- ptrType$3 = $ptrType(BufferImpl);
189143
- sliceType$1 = $sliceType($Uint8);
189144
- ptrType$4 = $ptrType(YCbCrJS);
189145
- ptrType$5 = $ptrType(js.Value);
189146
- ptrType$6 = $ptrType(screen.DrawOptions);
189147
- ptrType$7 = $ptrType(windowImpl);
189148
- ptrType$8 = $ptrType(screen.NewWindowOptions);
189149
- ptrType$9 = $ptrType(image.RGBA);
189150
- ptrType$10 = $ptrType(image.YCbCr);
189151
- newWindow = function(screen$1, opts) {
189152
- var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, adaptCanvas, canvasEl, ctx2d, domEvents, opts, resizeCallback, screen$1, w, $s, $r, $c} = $restore(this, {screen$1, opts});
189153
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189154
- adaptCanvas = [adaptCanvas];
189155
- canvasEl = [canvasEl];
189156
- _r = $clone(screen$1.doc, js.Value).Call("createElement", new sliceType([new $String("canvas")])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189157
- canvasEl[0] = $clone(_r, js.Value);
189158
- _r$1 = $clone($clone(screen$1.doc, js.Value).Get("body"), js.Value).Call("appendChild", new sliceType([new canvasEl[0].constructor.elem(canvasEl[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
189159
- _r$1;
189160
- adaptCanvas[0] = (function(adaptCanvas, canvasEl) { return function() {
189161
- var height, scale, width;
189162
- scale = dom.GetBrowserZoomRatio();
189163
- width = (((dom.GetScreenWidth()) / scale >> 0));
189164
- if (!(($clone($clone(canvasEl[0], js.Value).Get("width"), js.Value).Int() === width))) {
189165
- $clone(canvasEl[0], js.Value).Set("width", new $Int(width));
189166
- }
189167
- height = (((dom.GetScreenHeight()) / scale >> 0));
189168
- if (!(($clone($clone(canvasEl[0], js.Value).Get("height"), js.Value).Int() === height))) {
189169
- $clone(canvasEl[0], js.Value).Set("height", new $Int(height));
189170
- }
189171
- }; })(adaptCanvas, canvasEl);
189172
- $r = adaptCanvas[0](); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189173
- resizeCallback = $clone(js.FuncOf((function(adaptCanvas, canvasEl) { return function $b(this$1, args) {
189174
- var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
189175
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189176
- $r = adaptCanvas[0](); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189177
- $s = -1; return $ifaceNil;
189178
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
189179
- }; })(adaptCanvas, canvasEl)), js.Func);
189180
- _r$2 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("resize"), new resizeCallback.constructor.elem(resizeCallback)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
189181
- _r$2;
189182
- /* */ if (!((opts.Width === 0))) { $s = 5; continue; }
189183
- /* */ $s = 6; continue;
189184
- /* if (!((opts.Width === 0))) { */ case 5:
189185
- $r = dom.SetWindowWidth(opts.Width); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189186
- /* } */ case 6:
189187
- /* */ if (!((opts.Height === 0))) { $s = 8; continue; }
189188
- /* */ $s = 9; continue;
189189
- /* if (!((opts.Height === 0))) { */ case 8:
189190
- $r = dom.SetWindowHeight(opts.Height); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189191
- /* } */ case 9:
189192
- /* */ if (!(opts.Title === "")) { $s = 11; continue; }
189193
- /* */ $s = 12; continue;
189194
- /* if (!(opts.Title === "")) { */ case 11:
189195
- _r$3 = $clone($clone(screen$1.doc, js.Value).Get("head"), js.Value).Call("getElementsByTagName", new sliceType([new $String("title")])); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
189196
- _r$4 = $clone(_r$3, js.Value).Call("item", new sliceType([new $Int(0)])); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
189197
- $r = $clone(_r$4, js.Value).Set("innerHTML", new $String(opts.Title)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189198
- /* } */ case 12:
189199
- _r$5 = $clone(canvasEl[0], js.Value).Call("getContext", new sliceType([new $String("2d")])); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
189200
- ctx2d = $clone(_r$5, js.Value);
189201
- /* */ if ($clone(ctx2d, js.Value).IsUndefined() || $clone(ctx2d, js.Value).IsNull()) { $s = 17; continue; }
189202
- /* */ $s = 18; continue;
189203
- /* if ($clone(ctx2d, js.Value).IsUndefined() || $clone(ctx2d, js.Value).IsNull()) { */ case 17:
189204
- _r$6 = fmt.Errorf("Cannot get 2d context of canvas", sliceType.nil); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
189205
- $panic(_r$6);
189206
- /* } */ case 18:
189207
- domEvents = dom.NewDomEvents();
189208
- w = new windowImpl.ptr(screen$1, ptrType$1.nil, $clone(canvasEl[0], js.Value), $clone(ctx2d, js.Value), false, domEvents, $clone(resizeCallback, js.Func));
189209
- $r = domEvents.BindEvents(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189210
- $s = -1; return w;
189211
- /* */ } return; } var $f = {$blk: newWindow, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, adaptCanvas, canvasEl, ctx2d, domEvents, opts, resizeCallback, screen$1, w, $s};return $f;
189212
- };
189213
- windowImpl.ptr.prototype.Release = function() {
189214
- var {_r, _r$1, w, x, $s, $deferred, $r, $c} = $restore(this, {});
189215
- /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
189216
- w = this;
189217
- $r = w.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189218
- $deferred.push([$methodVal(w.mutex, "Unlock"), []]);
189219
- /* */ if (w.released) { $s = 2; continue; }
189220
- /* */ $s = 3; continue;
189221
- /* if (w.released) { */ case 2:
189222
- $s = 4; case 4: return;
189223
- /* } */ case 3:
189224
- _r = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("resize"), (x = w.resizeCallback, new x.constructor.elem(x))])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189225
- _r;
189226
- $clone(w.resizeCallback, js.Func).Release();
189227
- _r$1 = $clone(w.canvasEl, js.Value).Call("remove", sliceType.nil); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
189228
- _r$1;
189229
- $r = w.domEvents.Release(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189230
- w.released = true;
189231
- $s = -1; return;
189232
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: windowImpl.ptr.prototype.Release, $c: true, $r, _r, _r$1, w, x, $s, $deferred};return $f; } }
189233
- };
189234
- windowImpl.prototype.Release = function() { return this.$val.Release(); };
189235
- windowImpl.ptr.prototype.Publish = function() {
189236
- var w;
189237
- w = this;
189238
- if (w.released) {
189239
- return new screen.PublishResult.ptr(false);
189240
- }
189241
- return new screen.PublishResult.ptr(false);
189242
- };
189243
- windowImpl.prototype.Publish = function() { return this.$val.Publish(); };
189244
- windowImpl.ptr.prototype.Send = function(event) {
189245
- var event, w;
189246
- w = this;
189247
- if (w.released) {
189248
- return;
189249
- }
189250
- $panic(new $String("Not implemented"));
189251
- };
189252
- windowImpl.prototype.Send = function(event) { return this.$val.Send(event); };
189253
- windowImpl.ptr.prototype.SendFirst = function(event) {
189254
- var event, w;
189255
- w = this;
189256
- if (w.released) {
189257
- return;
189258
- }
189259
- $panic(new $String("Not implemented"));
189260
- };
189261
- windowImpl.prototype.SendFirst = function(event) { return this.$val.SendFirst(event); };
189262
- windowImpl.ptr.prototype.NextEvent = function() {
189263
- var {_r, ev, w, $s, $r, $c} = $restore(this, {});
189264
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189265
- w = this;
189266
- _r = $recv(w.domEvents.GetEventChan()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189267
- ev = _r[0];
189268
- $s = -1; return ev;
189269
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.NextEvent, $c: true, $r, _r, ev, w, $s};return $f;
189270
- };
189271
- windowImpl.prototype.NextEvent = function() { return this.$val.NextEvent(); };
189272
- windowImpl.ptr.prototype.Upload = function(dp, src, sr) {
189273
- var {_r, dp, sr, src, w, $s, $r, $c} = $restore(this, {dp, src, sr});
188904
+ sliceType = $sliceType($emptyInterface);
188905
+ sliceType$1 = $sliceType($Uint8);
188906
+ ptrType = $ptrType(SPS);
188907
+ sliceType$2 = $sliceType($Uint32);
188908
+ ptrType$1 = $ptrType(image.Point);
188909
+ ptrType$2 = $ptrType(BitReader);
188910
+ ParseNalHeader = function(nalHeaderByte) {
188911
+ var {_entry, _r, _tuple, binaryRep, description, forbiddenZeroBit, nalHeaderByte, nalRefIdc, nalUnitType, ok, $s, $r, $c} = $restore(this, {nalHeaderByte});
189274
188912
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189275
- w = this;
189276
- if (w.released) {
189277
- $s = -1; return;
188913
+ forbiddenZeroBit = (((nalHeaderByte >>> 7 << 24 >>> 24)) & 1) >>> 0;
188914
+ nalRefIdc = (((nalHeaderByte >>> 5 << 24 >>> 24)) & 3) >>> 0;
188915
+ nalUnitType = (nalHeaderByte & 31) >>> 0;
188916
+ _tuple = (_entry = $mapIndex(nalUnitTypes,$Uint8.keyFor(nalUnitType)), _entry !== undefined ? [_entry.v, true] : ["", false]);
188917
+ description = _tuple[0];
188918
+ ok = _tuple[1];
188919
+ /* */ if (!ok) { $s = 1; continue; }
188920
+ /* */ $s = 2; continue;
188921
+ /* if (!ok) { */ case 1:
188922
+ _r = fmt.Sprintf("Type %d (Reserved/Other)", new sliceType([new $Uint8(nalUnitType)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188923
+ description = _r;
188924
+ /* } */ case 2:
188925
+ binaryRep = strconv.FormatInt((new $Int64(0, nalHeaderByte)), 2);
188926
+ while (true) {
188927
+ if (!(binaryRep.length < 8)) { break; }
188928
+ binaryRep = "0" + binaryRep;
189278
188929
  }
189279
- _r = fmt.Errorf("Not implemented, use UploadYCbCr instead", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189280
- $panic(_r);
189281
- $s = -1; return;
189282
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.Upload, $c: true, $r, _r, dp, sr, src, w, $s};return $f;
188930
+ $s = -1; return new NalHeader.ptr(nalHeaderByte, binaryRep, forbiddenZeroBit, nalRefIdc, nalUnitType, description);
188931
+ /* */ } return; } var $f = {$blk: ParseNalHeader, $c: true, $r, _entry, _r, _tuple, binaryRep, description, forbiddenZeroBit, nalHeaderByte, nalRefIdc, nalUnitType, ok, $s};return $f;
189283
188932
  };
189284
- windowImpl.prototype.Upload = function(dp, src, sr) { return this.$val.Upload(dp, src, sr); };
189285
- windowImpl.ptr.prototype.UploadYCbCr = function(dp, src, sr) {
189286
- var {_r, _r$1, _ref, dp, jsSrc, sr, src, w, x, $s, $r, $c} = $restore(this, {dp, src, sr});
188933
+ $pkg.ParseNalHeader = ParseNalHeader;
188934
+ FindNalUnit = function(data) {
188935
+ var {$24r, $24r$1, _r, _r$1, data, i, startCode, x, x$1, $s, $r, $c} = $restore(this, {data});
189287
188936
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189288
- w = this;
189289
- if (w.released) {
189290
- $s = -1; return;
189291
- }
189292
- _ref = src;
189293
- /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 1; continue; }
188937
+ startCode = new sliceType$1([0, 0, 1]);
188938
+ /* */ if (data.$length < 3) { $s = 1; continue; }
189294
188939
  /* */ $s = 2; continue;
189295
- /* if ($assertType(_ref, ptrType$3, true)[1]) { */ case 1:
189296
- jsSrc = _ref.$val;
189297
- _r = $clone(w.ctx2d, js.Value).Call("drawImage", new sliceType([(x = jsSrc.YCbCrJS().CanvasImageSource, new x.constructor.elem(x)), new $Int(0), new $Int(0)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189298
- _r;
189299
- $s = -1; return;
188940
+ /* if (data.$length < 3) { */ case 1:
188941
+ _r = fmt.Errorf("Data too short to contain NAL unit start code.", sliceType.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188942
+ $24r = [sliceType$1.nil, _r];
188943
+ $s = 4; case 4: return $24r;
189300
188944
  /* } */ case 2:
189301
- _r$1 = fmt.Errorf("Not implemented, use canvasdriver.BufferImpl instead", sliceType.nil); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
189302
- $panic(_r$1);
189303
- $s = -1; return;
189304
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.UploadYCbCr, $c: true, $r, _r, _r$1, _ref, dp, jsSrc, sr, src, w, x, $s};return $f;
189305
- };
189306
- windowImpl.prototype.UploadYCbCr = function(dp, src, sr) { return this.$val.UploadYCbCr(dp, src, sr); };
189307
- windowImpl.ptr.prototype.Fill = function(dr, src, op) {
189308
- var dr, op, src, w;
189309
- w = this;
189310
- if (w.released) {
189311
- return;
189312
- }
189313
- $panic(new $String("Not implemented"));
189314
- };
189315
- windowImpl.prototype.Fill = function(dr, src, op) { return this.$val.Fill(dr, src, op); };
189316
- windowImpl.ptr.prototype.Draw = function(src2dst, src, sr, op, opts) {
189317
- var op, opts, sr, src, src2dst, w;
189318
- w = this;
189319
- if (w.released) {
189320
- return;
188945
+ i = 0;
188946
+ while (true) {
188947
+ if (!(i <= (data.$length - startCode.$length >> 0))) { break; }
188948
+ if ((((i < 0 || i >= data.$length) ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + i]) === (0 >= startCode.$length ? ($throwRuntimeError("index out of range"), undefined) : startCode.$array[startCode.$offset + 0])) && ((x = i + 1 >> 0, ((x < 0 || x >= data.$length) ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + x])) === (1 >= startCode.$length ? ($throwRuntimeError("index out of range"), undefined) : startCode.$array[startCode.$offset + 1])) && ((x$1 = i + 2 >> 0, ((x$1 < 0 || x$1 >= data.$length) ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + x$1])) === (2 >= startCode.$length ? ($throwRuntimeError("index out of range"), undefined) : startCode.$array[startCode.$offset + 2]))) {
188949
+ $s = -1; return [$subslice(data, (i + 3 >> 0)), $ifaceNil];
188950
+ }
188951
+ i = i + (1) >> 0;
189321
188952
  }
189322
- $panic(new $String("Not implemented"));
188953
+ _r$1 = fmt.Errorf("NAL unit start code (0x00 0x00 0x01) not found", sliceType.nil); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
188954
+ $24r$1 = [sliceType$1.nil, _r$1];
188955
+ $s = 6; case 6: return $24r$1;
188956
+ /* */ } return; } var $f = {$blk: FindNalUnit, $c: true, $r, $24r, $24r$1, _r, _r$1, data, i, startCode, x, x$1, $s};return $f;
189323
188957
  };
189324
- windowImpl.prototype.Draw = function(src2dst, src, sr, op, opts) { return this.$val.Draw(src2dst, src, sr, op, opts); };
189325
- windowImpl.ptr.prototype.DrawUniform = function(src2dst, src, sr, op, opts) {
189326
- var op, opts, sr, src, src2dst, w;
189327
- w = this;
189328
- if (w.released) {
189329
- return;
189330
- }
189331
- $panic(new $String("Not implemented"));
188958
+ $pkg.FindNalUnit = FindNalUnit;
188959
+ BitReader.ptr.prototype.readBits = function(n) {
188960
+ var {$24r, $24r$1, _q, _r, _r$1, _r$2, bit, bitIndex, byteIndex, i, n, r, value, x, y, $s, $r, $c} = $restore(this, {n});
188961
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188962
+ r = this;
188963
+ /* */ if (n > 32) { $s = 1; continue; }
188964
+ /* */ $s = 2; continue;
188965
+ /* if (n > 32) { */ case 1:
188966
+ _r = fmt.Errorf("readBits: cannot read more than 32 bits at once", sliceType.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188967
+ $24r = [0, _r];
188968
+ $s = 4; case 4: return $24r;
188969
+ /* } */ case 2:
188970
+ value = 0;
188971
+ i = 0;
188972
+ /* while (true) { */ case 5:
188973
+ /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 6; continue; }
188974
+ byteIndex = (_q = r.offset / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
188975
+ bitIndex = 7 - ((_r$1 = r.offset % 8, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero"))) >> 0;
188976
+ /* */ if (byteIndex >= r.data.$length) { $s = 7; continue; }
188977
+ /* */ $s = 8; continue;
188978
+ /* if (byteIndex >= r.data.$length) { */ case 7:
188979
+ _r$2 = fmt.Errorf("readBits: unexpected end of data", sliceType.nil); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
188980
+ $24r$1 = [0, _r$2];
188981
+ $s = 10; case 10: return $24r$1;
188982
+ /* } */ case 8:
188983
+ bit = ((((y = bitIndex, y < 32 ? ((x = r.data, ((byteIndex < 0 || byteIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + byteIndex])) >>> y) : 0) << 24 >>> 24)) & 1) >>> 0;
188984
+ value = (((value << 1 >>> 0)) | ((bit >>> 0))) >>> 0;
188985
+ r.offset = r.offset + (1) >> 0;
188986
+ i = i + (1) >> 0;
188987
+ $s = 5; continue;
188988
+ case 6:
188989
+ $s = -1; return [value, $ifaceNil];
188990
+ /* */ } return; } var $f = {$blk: BitReader.ptr.prototype.readBits, $c: true, $r, $24r, $24r$1, _q, _r, _r$1, _r$2, bit, bitIndex, byteIndex, i, n, r, value, x, y, $s};return $f;
189332
188991
  };
189333
- windowImpl.prototype.DrawUniform = function(src2dst, src, sr, op, opts) { return this.$val.DrawUniform(src2dst, src, sr, op, opts); };
189334
- windowImpl.ptr.prototype.Copy = function(dp, src, sr, op, opts) {
189335
- var dp, op, opts, sr, src, w;
189336
- w = this;
189337
- if (w.released) {
189338
- return;
188992
+ BitReader.prototype.readBits = function(n) { return this.$val.readBits(n); };
188993
+ BitReader.ptr.prototype.readUEV = function() {
188994
+ var {$24r, _r, _r$1, _r$2, _tuple, _tuple$1, bit, codeNum, err, err$1, leadingZeros, r, suffix, y, $s, $r, $c} = $restore(this, {});
188995
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188996
+ r = this;
188997
+ leadingZeros = 0;
188998
+ /* while (true) { */ case 1:
188999
+ _r = r.readBits(1); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189000
+ _tuple = _r;
189001
+ bit = _tuple[0];
189002
+ err = _tuple[1];
189003
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
189004
+ $s = -1; return [0, err];
189005
+ }
189006
+ if (bit === 1) {
189007
+ /* break; */ $s = 2; continue;
189008
+ }
189009
+ leadingZeros = leadingZeros + (1) >> 0;
189010
+ /* */ if (leadingZeros > 31) { $s = 4; continue; }
189011
+ /* */ $s = 5; continue;
189012
+ /* if (leadingZeros > 31) { */ case 4:
189013
+ _r$1 = fmt.Errorf("readUEV: runaway code (too many leading zeros)", sliceType.nil); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
189014
+ $24r = [0, _r$1];
189015
+ $s = 7; case 7: return $24r;
189016
+ /* } */ case 5:
189017
+ $s = 1; continue;
189018
+ case 2:
189019
+ if (leadingZeros === 0) {
189020
+ $s = -1; return [0, $ifaceNil];
189339
189021
  }
189340
- $panic(new $String("Not implemented"));
189341
- };
189342
- windowImpl.prototype.Copy = function(dp, src, sr, op, opts) { return this.$val.Copy(dp, src, sr, op, opts); };
189343
- windowImpl.ptr.prototype.Scale = function(dr, src, sr, op, opts) {
189344
- var dr, op, opts, sr, src, w;
189345
- w = this;
189346
- if (w.released) {
189347
- return;
189022
+ _r$2 = r.readBits(leadingZeros); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
189023
+ _tuple$1 = _r$2;
189024
+ suffix = _tuple$1[0];
189025
+ err$1 = _tuple$1[1];
189026
+ if (!($interfaceIsEqual(err$1, $ifaceNil))) {
189027
+ $s = -1; return [0, err$1];
189348
189028
  }
189349
- $panic(new $String("Not implemented"));
189029
+ codeNum = ((((y = leadingZeros, y < 32 ? (1 << y) : 0) >>> 0)) - 1 >>> 0) + suffix >>> 0;
189030
+ $s = -1; return [codeNum, $ifaceNil];
189031
+ /* */ } return; } var $f = {$blk: BitReader.ptr.prototype.readUEV, $c: true, $r, $24r, _r, _r$1, _r$2, _tuple, _tuple$1, bit, codeNum, err, err$1, leadingZeros, r, suffix, y, $s};return $f;
189350
189032
  };
189351
- windowImpl.prototype.Scale = function(dr, src, sr, op, opts) { return this.$val.Scale(dr, src, sr, op, opts); };
189352
- Main = function(f) {
189353
- var {_r, err, f, $s, $r, $c} = $restore(this, {f});
189033
+ BitReader.prototype.readUEV = function() { return this.$val.readUEV(); };
189034
+ ParseSPS = function(spsPayload) {
189035
+ var {$24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$17, $24r$18, $24r$19, $24r$2, $24r$20, $24r$21, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, err, reader, sps, spsPayload, unimplementedIdcProfile, unimplementedIdcProfiles, val, $s, $r, $c} = $restore(this, {spsPayload});
189354
189036
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189355
- _r = main(f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189356
- err = _r;
189037
+ reader = new BitReader.ptr(spsPayload, 0);
189038
+ sps = new SPS.ptr(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
189039
+ val = 0;
189040
+ err = $ifaceNil;
189041
+ _r = reader.readBits(8); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189042
+ _tuple = _r;
189043
+ val = _tuple[0];
189044
+ err = _tuple[1];
189357
189045
  /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
189358
189046
  /* */ $s = 3; continue;
189359
189047
  /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
189360
- $r = f(errscreen.Stub(err)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189048
+ _r$1 = fmt.Errorf("failed to read profile_idc: %w", new sliceType([err])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
189049
+ $24r = [ptrType.nil, _r$1];
189050
+ $s = 5; case 5: return $24r;
189361
189051
  /* } */ case 3:
189362
- $s = -1; return;
189363
- /* */ } return; } var $f = {$blk: Main, $c: true, $r, _r, err, f, $s};return $f;
189052
+ unimplementedIdcProfiles = new sliceType$2([100, 110, 122, 244, 44, 83, 86, 118, 128, 138, 139, 134, 135]);
189053
+ _ref = unimplementedIdcProfiles;
189054
+ _i = 0;
189055
+ /* while (true) { */ case 6:
189056
+ /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 7; continue; }
189057
+ unimplementedIdcProfile = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
189058
+ /* */ if (val === unimplementedIdcProfile) { $s = 8; continue; }
189059
+ /* */ $s = 9; continue;
189060
+ /* if (val === unimplementedIdcProfile) { */ case 8:
189061
+ _r$2 = fmt.Errorf("SPS profile_idc %d is complex and skipped", new sliceType([new $Uint32(val)])); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
189062
+ $24r$1 = [ptrType.nil, _r$2];
189063
+ $s = 11; case 11: return $24r$1;
189064
+ /* } */ case 9:
189065
+ _i++;
189066
+ $s = 6; continue;
189067
+ case 7:
189068
+ sps.ProfileIdc = ((val << 24 >>> 24));
189069
+ sps.ChromaFormatIdc = 1;
189070
+ sps.SeparateColourPlaneFlag = 0;
189071
+ sps.ChromaArrayType = 1;
189072
+ _r$3 = reader.readBits(8); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
189073
+ _tuple$1 = _r$3;
189074
+ err = _tuple$1[1];
189075
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 13; continue; }
189076
+ /* */ $s = 14; continue;
189077
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 13:
189078
+ _r$4 = fmt.Errorf("failed to read constraint flags: %w", new sliceType([err])); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
189079
+ $24r$2 = [ptrType.nil, _r$4];
189080
+ $s = 16; case 16: return $24r$2;
189081
+ /* } */ case 14:
189082
+ _r$5 = reader.readBits(8); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
189083
+ _tuple$2 = _r$5;
189084
+ val = _tuple$2[0];
189085
+ err = _tuple$2[1];
189086
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 18; continue; }
189087
+ /* */ $s = 19; continue;
189088
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 18:
189089
+ _r$6 = fmt.Errorf("failed to read level_idc: %w", new sliceType([err])); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
189090
+ $24r$3 = [ptrType.nil, _r$6];
189091
+ $s = 21; case 21: return $24r$3;
189092
+ /* } */ case 19:
189093
+ sps.LevelIdc = ((val << 24 >>> 24));
189094
+ _r$7 = reader.readUEV(); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
189095
+ _tuple$3 = _r$7;
189096
+ val = _tuple$3[0];
189097
+ err = _tuple$3[1];
189098
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 23; continue; }
189099
+ /* */ $s = 24; continue;
189100
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 23:
189101
+ _r$8 = fmt.Errorf("failed to read seq_parameter_set_id: %w", new sliceType([err])); /* */ $s = 25; case 25: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
189102
+ $24r$4 = [ptrType.nil, _r$8];
189103
+ $s = 26; case 26: return $24r$4;
189104
+ /* } */ case 24:
189105
+ sps.SeqParameterSetId = val;
189106
+ _r$9 = reader.readUEV(); /* */ $s = 27; case 27: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
189107
+ _tuple$4 = _r$9;
189108
+ val = _tuple$4[0];
189109
+ err = _tuple$4[1];
189110
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 28; continue; }
189111
+ /* */ $s = 29; continue;
189112
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 28:
189113
+ _r$10 = fmt.Errorf("failed to read log2_max_frame_num_minus4: %w", new sliceType([err])); /* */ $s = 30; case 30: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
189114
+ $24r$5 = [ptrType.nil, _r$10];
189115
+ $s = 31; case 31: return $24r$5;
189116
+ /* } */ case 29:
189117
+ sps.Log2MaxFrameNumMinus4 = val;
189118
+ _r$11 = reader.readUEV(); /* */ $s = 32; case 32: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
189119
+ _tuple$5 = _r$11;
189120
+ val = _tuple$5[0];
189121
+ err = _tuple$5[1];
189122
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 33; continue; }
189123
+ /* */ $s = 34; continue;
189124
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 33:
189125
+ _r$12 = fmt.Errorf("failed to read pic_order_cnt_type: %w", new sliceType([err])); /* */ $s = 35; case 35: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
189126
+ $24r$6 = [ptrType.nil, _r$12];
189127
+ $s = 36; case 36: return $24r$6;
189128
+ /* } */ case 34:
189129
+ sps.PicOrderCntType = val;
189130
+ /* */ if (sps.PicOrderCntType === 0) { $s = 37; continue; }
189131
+ /* */ if (sps.PicOrderCntType === 1) { $s = 38; continue; }
189132
+ /* */ $s = 39; continue;
189133
+ /* if (sps.PicOrderCntType === 0) { */ case 37:
189134
+ _r$13 = reader.readUEV(); /* */ $s = 40; case 40: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
189135
+ _tuple$6 = _r$13;
189136
+ val = _tuple$6[0];
189137
+ err = _tuple$6[1];
189138
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 41; continue; }
189139
+ /* */ $s = 42; continue;
189140
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 41:
189141
+ _r$14 = fmt.Errorf("failed to read log2_max_pic_order_cnt_lsb_minus4: %w", new sliceType([err])); /* */ $s = 43; case 43: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
189142
+ $24r$7 = [ptrType.nil, _r$14];
189143
+ $s = 44; case 44: return $24r$7;
189144
+ /* } */ case 42:
189145
+ sps.Log2MaxPicOrderCntLsbMinus4 = val;
189146
+ $s = 39; continue;
189147
+ /* } else if (sps.PicOrderCntType === 1) { */ case 38:
189148
+ _r$15 = fmt.Errorf("SPS pic_order_cnt_type 1 is complex and skipped", sliceType.nil); /* */ $s = 45; case 45: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
189149
+ $24r$8 = [ptrType.nil, _r$15];
189150
+ $s = 46; case 46: return $24r$8;
189151
+ /* } */ case 39:
189152
+ _r$16 = reader.readUEV(); /* */ $s = 47; case 47: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; }
189153
+ _tuple$7 = _r$16;
189154
+ val = _tuple$7[0];
189155
+ err = _tuple$7[1];
189156
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 48; continue; }
189157
+ /* */ $s = 49; continue;
189158
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 48:
189159
+ _r$17 = fmt.Errorf("failed to read max_num_ref_frames: %w", new sliceType([err])); /* */ $s = 50; case 50: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; }
189160
+ $24r$9 = [ptrType.nil, _r$17];
189161
+ $s = 51; case 51: return $24r$9;
189162
+ /* } */ case 49:
189163
+ sps.MaxNumRefFrames = val;
189164
+ _r$18 = reader.readBits(1); /* */ $s = 52; case 52: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; }
189165
+ _tuple$8 = _r$18;
189166
+ val = _tuple$8[0];
189167
+ err = _tuple$8[1];
189168
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 53; continue; }
189169
+ /* */ $s = 54; continue;
189170
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 53:
189171
+ _r$19 = fmt.Errorf("failed to read gaps_in_frame_num_value_allowed_flag: %w", new sliceType([err])); /* */ $s = 55; case 55: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; }
189172
+ $24r$10 = [ptrType.nil, _r$19];
189173
+ $s = 56; case 56: return $24r$10;
189174
+ /* } */ case 54:
189175
+ sps.GapsInFrameNumValueAllowedFlag = val;
189176
+ _r$20 = reader.readUEV(); /* */ $s = 57; case 57: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; }
189177
+ _tuple$9 = _r$20;
189178
+ val = _tuple$9[0];
189179
+ err = _tuple$9[1];
189180
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 58; continue; }
189181
+ /* */ $s = 59; continue;
189182
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 58:
189183
+ _r$21 = fmt.Errorf("failed to read pic_width_in_mbs_minus1: %w", new sliceType([err])); /* */ $s = 60; case 60: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; }
189184
+ $24r$11 = [ptrType.nil, _r$21];
189185
+ $s = 61; case 61: return $24r$11;
189186
+ /* } */ case 59:
189187
+ sps.PicWidthInMbsMinus1 = val;
189188
+ _r$22 = reader.readUEV(); /* */ $s = 62; case 62: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; }
189189
+ _tuple$10 = _r$22;
189190
+ val = _tuple$10[0];
189191
+ err = _tuple$10[1];
189192
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 63; continue; }
189193
+ /* */ $s = 64; continue;
189194
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 63:
189195
+ _r$23 = fmt.Errorf("failed to read pic_height_in_map_units_minus1: %w", new sliceType([err])); /* */ $s = 65; case 65: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; }
189196
+ $24r$12 = [ptrType.nil, _r$23];
189197
+ $s = 66; case 66: return $24r$12;
189198
+ /* } */ case 64:
189199
+ sps.PicHeightInMapUnitsMinus1 = val;
189200
+ _r$24 = reader.readBits(1); /* */ $s = 67; case 67: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; }
189201
+ _tuple$11 = _r$24;
189202
+ val = _tuple$11[0];
189203
+ err = _tuple$11[1];
189204
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 68; continue; }
189205
+ /* */ $s = 69; continue;
189206
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 68:
189207
+ _r$25 = fmt.Errorf("failed to read frame_mbs_only_flag: %w", new sliceType([err])); /* */ $s = 70; case 70: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; }
189208
+ $24r$13 = [ptrType.nil, _r$25];
189209
+ $s = 71; case 71: return $24r$13;
189210
+ /* } */ case 69:
189211
+ sps.FrameMbsOnlyFlag = ((val >>> 0));
189212
+ /* */ if (sps.FrameMbsOnlyFlag === 0) { $s = 72; continue; }
189213
+ /* */ $s = 73; continue;
189214
+ /* if (sps.FrameMbsOnlyFlag === 0) { */ case 72:
189215
+ _r$26 = reader.readBits(1); /* */ $s = 74; case 74: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; }
189216
+ _tuple$12 = _r$26;
189217
+ val = _tuple$12[0];
189218
+ err = _tuple$12[1];
189219
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 75; continue; }
189220
+ /* */ $s = 76; continue;
189221
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 75:
189222
+ _r$27 = fmt.Errorf("failed to read mb_adaptive_frame_field_flag: %w", new sliceType([err])); /* */ $s = 77; case 77: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; }
189223
+ $24r$14 = [ptrType.nil, _r$27];
189224
+ $s = 78; case 78: return $24r$14;
189225
+ /* } */ case 76:
189226
+ sps.MbAdaptiveFrameFieldFlag = ((val >>> 0));
189227
+ /* } */ case 73:
189228
+ _r$28 = reader.readBits(1); /* */ $s = 79; case 79: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; }
189229
+ _tuple$13 = _r$28;
189230
+ val = _tuple$13[0];
189231
+ err = _tuple$13[1];
189232
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 80; continue; }
189233
+ /* */ $s = 81; continue;
189234
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 80:
189235
+ _r$29 = fmt.Errorf("failed to read direct_8x8_interface_flag: %w", new sliceType([err])); /* */ $s = 82; case 82: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; }
189236
+ $24r$15 = [ptrType.nil, _r$29];
189237
+ $s = 83; case 83: return $24r$15;
189238
+ /* } */ case 81:
189239
+ sps.Direct8x8InterfaceFlag = ((val >>> 0));
189240
+ /* */ if (sps.FrameMbsOnlyFlag === 0) { $s = 84; continue; }
189241
+ /* */ $s = 85; continue;
189242
+ /* if (sps.FrameMbsOnlyFlag === 0) { */ case 84:
189243
+ /* */ if (!((sps.Direct8x8InterfaceFlag === 1))) { $s = 86; continue; }
189244
+ /* */ $s = 87; continue;
189245
+ /* if (!((sps.Direct8x8InterfaceFlag === 1))) { */ case 86:
189246
+ _r$30 = fmt.Errorf("H.264 specification mismatch. frame_mbs_only_flag is equal to 0, but direct_8x8_inference_flag is not equal to 1.", sliceType.nil); /* */ $s = 88; case 88: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; }
189247
+ $24r$16 = [ptrType.nil, _r$30];
189248
+ $s = 89; case 89: return $24r$16;
189249
+ /* } */ case 87:
189250
+ /* } */ case 85:
189251
+ _r$31 = reader.readBits(1); /* */ $s = 90; case 90: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; }
189252
+ _tuple$14 = _r$31;
189253
+ val = _tuple$14[0];
189254
+ err = _tuple$14[1];
189255
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 91; continue; }
189256
+ /* */ $s = 92; continue;
189257
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 91:
189258
+ _r$32 = fmt.Errorf("failed to read frame_cropping_flag: %w", new sliceType([err])); /* */ $s = 93; case 93: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; }
189259
+ $24r$17 = [ptrType.nil, _r$32];
189260
+ $s = 94; case 94: return $24r$17;
189261
+ /* } */ case 92:
189262
+ sps.FrameCroppingFlag = ((val >>> 0));
189263
+ /* */ if (sps.FrameCroppingFlag === 1) { $s = 95; continue; }
189264
+ /* */ $s = 96; continue;
189265
+ /* if (sps.FrameCroppingFlag === 1) { */ case 95:
189266
+ _r$33 = reader.readUEV(); /* */ $s = 97; case 97: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; }
189267
+ _tuple$15 = _r$33;
189268
+ val = _tuple$15[0];
189269
+ err = _tuple$15[1];
189270
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 98; continue; }
189271
+ /* */ $s = 99; continue;
189272
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 98:
189273
+ _r$34 = fmt.Errorf("failed to read frame_crop_left_offset: %w", new sliceType([err])); /* */ $s = 100; case 100: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; }
189274
+ $24r$18 = [ptrType.nil, _r$34];
189275
+ $s = 101; case 101: return $24r$18;
189276
+ /* } */ case 99:
189277
+ sps.FrameCropLeftOffset = val;
189278
+ _r$35 = reader.readUEV(); /* */ $s = 102; case 102: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; }
189279
+ _tuple$16 = _r$35;
189280
+ val = _tuple$16[0];
189281
+ err = _tuple$16[1];
189282
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 103; continue; }
189283
+ /* */ $s = 104; continue;
189284
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 103:
189285
+ _r$36 = fmt.Errorf("failed to read frame_crop_right_offset: %w", new sliceType([err])); /* */ $s = 105; case 105: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; }
189286
+ $24r$19 = [ptrType.nil, _r$36];
189287
+ $s = 106; case 106: return $24r$19;
189288
+ /* } */ case 104:
189289
+ sps.FrameCropRightOffset = val;
189290
+ _r$37 = reader.readUEV(); /* */ $s = 107; case 107: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; }
189291
+ _tuple$17 = _r$37;
189292
+ val = _tuple$17[0];
189293
+ err = _tuple$17[1];
189294
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 108; continue; }
189295
+ /* */ $s = 109; continue;
189296
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 108:
189297
+ _r$38 = fmt.Errorf("failed to read frame_crop_top_offset: %w", new sliceType([err])); /* */ $s = 110; case 110: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; }
189298
+ $24r$20 = [ptrType.nil, _r$38];
189299
+ $s = 111; case 111: return $24r$20;
189300
+ /* } */ case 109:
189301
+ sps.FrameCropTopOffset = val;
189302
+ _r$39 = reader.readUEV(); /* */ $s = 112; case 112: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; }
189303
+ _tuple$18 = _r$39;
189304
+ val = _tuple$18[0];
189305
+ err = _tuple$18[1];
189306
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 113; continue; }
189307
+ /* */ $s = 114; continue;
189308
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 113:
189309
+ _r$40 = fmt.Errorf("failed to read frame_crop_bottom_offset: %w", new sliceType([err])); /* */ $s = 115; case 115: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; }
189310
+ $24r$21 = [ptrType.nil, _r$40];
189311
+ $s = 116; case 116: return $24r$21;
189312
+ /* } */ case 114:
189313
+ sps.FrameCropBottomOffset = val;
189314
+ /* } */ case 96:
189315
+ $s = -1; return [sps, $ifaceNil];
189316
+ /* */ } return; } var $f = {$blk: ParseSPS, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$17, $24r$18, $24r$19, $24r$2, $24r$20, $24r$21, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, err, reader, sps, spsPayload, unimplementedIdcProfile, unimplementedIdcProfiles, val, $s};return $f;
189364
189317
  };
189365
- $pkg.Main = Main;
189366
- main = function(f) {
189367
- var {_tuple, err, f, retErr, s, $s, $r, $c} = $restore(this, {f});
189318
+ $pkg.ParseSPS = ParseSPS;
189319
+ GetImageResolution = function(nal) {
189320
+ var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, err, err$1, err$2, imageResolution, nal, nalHeaderByte, nalHeaderResult, nalUnit, spsPayload, spsResult, $s, $r, $c} = $restore(this, {nal});
189368
189321
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189369
- retErr = $ifaceNil;
189370
- _tuple = newScreenImpl();
189371
- s = _tuple[0];
189322
+ _r = FindNalUnit(nal); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189323
+ _tuple = _r;
189324
+ nalUnit = _tuple[0];
189372
189325
  err = _tuple[1];
189373
189326
  if (!($interfaceIsEqual(err, $ifaceNil))) {
189374
- retErr = err;
189375
- $s = -1; return retErr;
189327
+ $s = -1; return [ptrType$1.nil, err];
189376
189328
  }
189377
- $r = f(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189378
- retErr = $ifaceNil;
189379
- $s = -1; return retErr;
189380
- /* */ } return; } var $f = {$blk: main, $c: true, $r, _tuple, err, f, retErr, s, $s};return $f;
189381
- };
189382
- newScreenImpl = function() {
189383
- var s;
189384
- s = new screenImpl.ptr($clone($clone(js.Global(), js.Value).Get("document"), js.Value));
189385
- return [s, $ifaceNil];
189386
- };
189387
- screenImpl.ptr.prototype.NewBuffer = function(size) {
189388
- var buffer, s, size;
189389
- s = this;
189390
- buffer = newBuffer(s, $clone(size, image.Point));
189391
- return [buffer, $ifaceNil];
189329
+ nalHeaderByte = (0 >= nalUnit.$length ? ($throwRuntimeError("index out of range"), undefined) : nalUnit.$array[nalUnit.$offset + 0]);
189330
+ spsPayload = $subslice(nalUnit, 1);
189331
+ _r$1 = ParseNalHeader(nalHeaderByte); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
189332
+ nalHeaderResult = $clone(_r$1, NalHeader);
189333
+ /* */ if (nalHeaderResult.NalUnitType === 7) { $s = 3; continue; }
189334
+ /* */ $s = 4; continue;
189335
+ /* if (nalHeaderResult.NalUnitType === 7) { */ case 3:
189336
+ _r$2 = ParseSPS(spsPayload); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
189337
+ _tuple$1 = _r$2;
189338
+ spsResult = _tuple$1[0];
189339
+ err$1 = _tuple$1[1];
189340
+ /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 7; continue; }
189341
+ /* */ $s = 8; continue;
189342
+ /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 7:
189343
+ _r$3 = fmt.Errorf("Error parsing SPS: %v", new sliceType([err$1])); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
189344
+ $24r = [ptrType$1.nil, _r$3];
189345
+ $s = 11; case 11: return $24r;
189346
+ /* } else { */ case 8:
189347
+ _r$4 = spsResult.ImageResolution(); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
189348
+ _tuple$2 = _r$4;
189349
+ imageResolution = _tuple$2[0];
189350
+ err$2 = _tuple$2[1];
189351
+ $s = -1; return [imageResolution, err$2];
189352
+ /* } */ case 9:
189353
+ $s = 5; continue;
189354
+ /* } else { */ case 4:
189355
+ $s = -1; return [ptrType$1.nil, $ifaceNil];
189356
+ /* } */ case 5:
189357
+ $s = -1; return [ptrType$1.nil, $ifaceNil];
189358
+ /* */ } return; } var $f = {$blk: GetImageResolution, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, err, err$1, err$2, imageResolution, nal, nalHeaderByte, nalHeaderResult, nalUnit, spsPayload, spsResult, $s};return $f;
189392
189359
  };
189393
- screenImpl.prototype.NewBuffer = function(size) { return this.$val.NewBuffer(size); };
189394
- screenImpl.ptr.prototype.NewTexture = function(size) {
189395
- var {$24r, _r, s, size, $s, $r, $c} = $restore(this, {size});
189360
+ $pkg.GetImageResolution = GetImageResolution;
189361
+ SPS.ptr.prototype.ImageResolution = function() {
189362
+ var {$24r, CropUnitX, CropUnitY, CroppedHeight, CroppedWidth, FrameHeightInMbs, PicHeightInMapUnits, PicWidthInMbs, PicWidthInSamples, _r, _r$1, _tuple, err, sps, $s, $r, $c} = $restore(this, {});
189396
189363
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189397
- s = this;
189398
- _r = fmt.Errorf("Texture not implemented", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189399
- $24r = [$ifaceNil, _r];
189400
- $s = 2; case 2: return $24r;
189401
- /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewTexture, $c: true, $r, $24r, _r, s, size, $s};return $f;
189364
+ sps = this;
189365
+ _r = sps.getCropUnits(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189366
+ _tuple = _r;
189367
+ CropUnitX = _tuple[0];
189368
+ CropUnitY = _tuple[1];
189369
+ err = _tuple[2];
189370
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
189371
+ /* */ $s = 3; continue;
189372
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
189373
+ _r$1 = fmt.Errorf("Failed to calculate image resolution%w", new sliceType([err])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
189374
+ $24r = [ptrType$1.nil, _r$1];
189375
+ $s = 5; case 5: return $24r;
189376
+ /* } */ case 3:
189377
+ PicWidthInMbs = sps.PicWidthInMbsMinus1 + 1 >>> 0;
189378
+ PicWidthInSamples = $imul(PicWidthInMbs, 16) >>> 0;
189379
+ CroppedWidth = ((PicWidthInSamples >> 0)) - ($imul(CropUnitX, (((sps.FrameCropLeftOffset + sps.FrameCropRightOffset >>> 0) >> 0)))) >> 0;
189380
+ PicHeightInMapUnits = sps.PicHeightInMapUnitsMinus1 + 1 >>> 0;
189381
+ FrameHeightInMbs = $imul((((2 - sps.FrameMbsOnlyFlag >>> 0) >> 0)), ((PicHeightInMapUnits >> 0)));
189382
+ CroppedHeight = ($imul(16, FrameHeightInMbs)) - ($imul(CropUnitY, ((((sps.FrameCropTopOffset + sps.FrameCropBottomOffset >>> 0) >> 0))))) >> 0;
189383
+ $s = -1; return [new image.Point.ptr(CroppedWidth, CroppedHeight), $ifaceNil];
189384
+ /* */ } return; } var $f = {$blk: SPS.ptr.prototype.ImageResolution, $c: true, $r, $24r, CropUnitX, CropUnitY, CroppedHeight, CroppedWidth, FrameHeightInMbs, PicHeightInMapUnits, PicWidthInMbs, PicWidthInSamples, _r, _r$1, _tuple, err, sps, $s};return $f;
189402
189385
  };
189403
- screenImpl.prototype.NewTexture = function(size) { return this.$val.NewTexture(size); };
189404
- screenImpl.ptr.prototype.NewWindow = function(opts) {
189405
- var {_r, opts, s, window, $s, $r, $c} = $restore(this, {opts});
189386
+ SPS.prototype.ImageResolution = function() { return this.$val.ImageResolution(); };
189387
+ SPS.ptr.prototype.getCropUnits = function() {
189388
+ var {$24r, CropUnitX, CropUnitY, SubHeightC, SubWidthC, _r, _r$1, _tuple, err, sps, $s, $r, $c} = $restore(this, {});
189406
189389
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189407
- s = this;
189408
- _r = newWindow(s, opts); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189409
- window = _r;
189410
- $s = -1; return [window, $ifaceNil];
189411
- /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewWindow, $c: true, $r, _r, opts, s, window, $s};return $f;
189412
- };
189413
- screenImpl.prototype.NewWindow = function(opts) { return this.$val.NewWindow(opts); };
189414
- newBuffer = function(screen$1, size) {
189415
- var _q, _q$1, _q$2, b, rect, screen$1, size;
189416
- rect = new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(size, image.Point));
189417
- b = new BufferImpl.ptr(screen$1, $clone(size, image.Point), new sync.Mutex.ptr(0, 0), false, $clone(new image.RGBA.ptr($makeSlice(sliceType$1, ($imul(($imul(4, size.X)), size.Y))), $imul(4, size.X), $clone(rect, image.Rectangle)), image.RGBA), $clone(new image.YCbCr.ptr($makeSlice(sliceType$1, ($imul(size.X, size.Y))), $makeSlice(sliceType$1, (_q$1 = ($imul(size.X, size.Y)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))), $makeSlice(sliceType$1, (_q$2 = ($imul(size.X, size.Y)) / 4, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero"))), size.X, (_q = size.X / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), 2, $clone(rect, image.Rectangle)), image.YCbCr), ptrType$4.nil);
189418
- return b;
189419
- };
189420
- BufferImpl.ptr.prototype.Size = function() {
189421
- var b;
189422
- b = this;
189423
- return b.size;
189424
- };
189425
- BufferImpl.prototype.Size = function() { return this.$val.Size(); };
189426
- BufferImpl.ptr.prototype.Bounds = function() {
189427
- var b;
189428
- b = this;
189429
- return new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(b.size, image.Point));
189430
- };
189431
- BufferImpl.prototype.Bounds = function() { return this.$val.Bounds(); };
189432
- BufferImpl.ptr.prototype.RGBA = function() {
189433
- var b;
189434
- b = this;
189435
- return b.rgba;
189436
- };
189437
- BufferImpl.prototype.RGBA = function() { return this.$val.RGBA(); };
189438
- BufferImpl.ptr.prototype.YCbCr = function() {
189439
- var b;
189440
- b = this;
189441
- return b.ycbcr;
189390
+ sps = this;
189391
+ /* */ if (sps.ChromaArrayType === 0) { $s = 1; continue; }
189392
+ /* */ if ((sps.ChromaArrayType === 1) || (sps.ChromaArrayType === 2) || (sps.ChromaArrayType === 3)) { $s = 2; continue; }
189393
+ /* */ $s = 3; continue;
189394
+ /* if (sps.ChromaArrayType === 0) { */ case 1:
189395
+ $s = -1; return [1, 2 - ((sps.FrameMbsOnlyFlag >> 0)) >> 0, $ifaceNil];
189396
+ /* } else if ((sps.ChromaArrayType === 1) || (sps.ChromaArrayType === 2) || (sps.ChromaArrayType === 3)) { */ case 2:
189397
+ _r = sps.GetSubWidthCAndSubHeightC(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189398
+ _tuple = _r;
189399
+ SubWidthC = _tuple[0];
189400
+ SubHeightC = _tuple[1];
189401
+ err = _tuple[2];
189402
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
189403
+ $s = -1; return [0, 0, err];
189404
+ }
189405
+ CropUnitX = SubWidthC;
189406
+ CropUnitY = $imul(SubHeightC, ((2 - ((sps.FrameMbsOnlyFlag >> 0)) >> 0)));
189407
+ $s = -1; return [CropUnitX, CropUnitY, $ifaceNil];
189408
+ /* } else { */ case 3:
189409
+ _r$1 = fmt.Errorf("Unsupported ChromaArrayType %d. Skipping SPS parsing.", new sliceType([new $Uint(sps.ChromaArrayType)])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
189410
+ $24r = [0, 0, _r$1];
189411
+ $s = 7; case 7: return $24r;
189412
+ /* } */ case 4:
189413
+ $s = -1; return [0, 0, $ifaceNil];
189414
+ /* */ } return; } var $f = {$blk: SPS.ptr.prototype.getCropUnits, $c: true, $r, $24r, CropUnitX, CropUnitY, SubHeightC, SubWidthC, _r, _r$1, _tuple, err, sps, $s};return $f;
189442
189415
  };
189443
- BufferImpl.prototype.YCbCr = function() { return this.$val.YCbCr(); };
189444
- BufferImpl.ptr.prototype.YCbCrJS = function() {
189445
- var b;
189446
- b = this;
189447
- if (b.ycbcrJS === ptrType$4.nil) {
189448
- b.ycbcrJS = new YCbCrJS.ptr(ptrType$5.nil);
189416
+ SPS.prototype.getCropUnits = function() { return this.$val.getCropUnits(); };
189417
+ SPS.ptr.prototype.GetSubWidthCAndSubHeightC = function() {
189418
+ var {$24r, _r, sps, $s, $r, $c} = $restore(this, {});
189419
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189420
+ sps = this;
189421
+ if ((sps.ChromaFormatIdc === 1) && (sps.SeparateColourPlaneFlag === 0)) {
189422
+ $s = -1; return [2, 2, $ifaceNil];
189449
189423
  }
189450
- return b.ycbcrJS;
189451
- };
189452
- BufferImpl.prototype.YCbCrJS = function() { return this.$val.YCbCrJS(); };
189453
- BufferImpl.ptr.prototype.Release = function() {
189454
- var {b, $s, $deferred, $r, $c} = $restore(this, {});
189455
- /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
189456
- b = this;
189457
- $r = b.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189458
- $deferred.push([$methodVal(b.mutex, "Unlock"), []]);
189459
- /* */ if (b.released) { $s = 2; continue; }
189460
- /* */ $s = 3; continue;
189461
- /* if (b.released) { */ case 2:
189462
- $s = 4; case 4: return;
189463
- /* } */ case 3:
189464
- b.released = true;
189465
- $s = -1; return;
189466
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: BufferImpl.ptr.prototype.Release, $c: true, $r, b, $s, $deferred};return $f; } }
189424
+ _r = fmt.Errorf("SubWidthC and SubHeightC for chroma_format_idc=%d separate_colour_plane_flag=%d not implemented.", new sliceType([new $Uint(sps.ChromaFormatIdc), new $Uint(sps.SeparateColourPlaneFlag)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189425
+ $24r = [0, 0, _r];
189426
+ $s = 2; case 2: return $24r;
189427
+ /* */ } return; } var $f = {$blk: SPS.ptr.prototype.GetSubWidthCAndSubHeightC, $c: true, $r, $24r, _r, sps, $s};return $f;
189467
189428
  };
189468
- BufferImpl.prototype.Release = function() { return this.$val.Release(); };
189469
- ptrType$7.methods = [{prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "Publish", name: "Publish", pkg: "", typ: $funcType([], [screen.PublishResult], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "SendFirst", name: "SendFirst", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "NextEvent", name: "NextEvent", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Upload", name: "Upload", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "UploadYCbCr", name: "UploadYCbCr", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "Fill", name: "Fill", pkg: "", typ: $funcType([image.Rectangle, color.Color, draw.Op], [], false)}, {prop: "Draw", name: "Draw", pkg: "", typ: $funcType([f64.Aff3, screen.Texture, image.Rectangle, draw.Op, ptrType$6], [], false)}, {prop: "DrawUniform", name: "DrawUniform", pkg: "", typ: $funcType([f64.Aff3, color.Color, image.Rectangle, draw.Op, ptrType$6], [], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([image.Point, screen.Texture, image.Rectangle, draw.Op, ptrType$6], [], false)}, {prop: "Scale", name: "Scale", pkg: "", typ: $funcType([image.Rectangle, screen.Texture, image.Rectangle, draw.Op, ptrType$6], [], false)}];
189470
- ptrType.methods = [{prop: "NewBuffer", name: "NewBuffer", pkg: "", typ: $funcType([image.Point], [screen.Buffer, $error], false)}, {prop: "NewTexture", name: "NewTexture", pkg: "", typ: $funcType([image.Point], [screen.Texture, $error], false)}, {prop: "NewWindow", name: "NewWindow", pkg: "", typ: $funcType([ptrType$8], [screen.Window, $error], false)}];
189471
- ptrType$3.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [image.Point], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [image.Rectangle], false)}, {prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [ptrType$9], false)}, {prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType$10], false)}, {prop: "YCbCrJS", name: "YCbCrJS", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}];
189472
- windowImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "canvasEl", name: "canvasEl", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "ctx2d", name: "ctx2d", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "domEvents", name: "domEvents", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "resizeCallback", name: "resizeCallback", embedded: false, exported: false, typ: js.Func, tag: ""}]);
189473
- screenImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}]);
189474
- YCbCrJS.init("", [{prop: "CanvasImageSource", name: "CanvasImageSource", embedded: false, exported: true, typ: ptrType$5, tag: ""}]);
189475
- BufferImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: image.Point, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "rgba", name: "rgba", embedded: false, exported: false, typ: image.RGBA, tag: ""}, {prop: "ycbcr", name: "ycbcr", embedded: false, exported: false, typ: image.YCbCr, tag: ""}, {prop: "ycbcrJS", name: "ycbcrJS", embedded: false, exported: false, typ: ptrType$4, tag: ""}]);
189429
+ SPS.prototype.GetSubWidthCAndSubHeightC = function() { return this.$val.GetSubWidthCAndSubHeightC(); };
189430
+ ptrType$2.methods = [{prop: "readBits", name: "readBits", pkg: "github.com/supraio/client-daemon/pkg/x264", typ: $funcType([$Int], [$Uint32, $error], false)}, {prop: "readUEV", name: "readUEV", pkg: "github.com/supraio/client-daemon/pkg/x264", typ: $funcType([], [$Uint32, $error], false)}];
189431
+ ptrType.methods = [{prop: "ImageResolution", name: "ImageResolution", pkg: "", typ: $funcType([], [ptrType$1, $error], false)}, {prop: "getCropUnits", name: "getCropUnits", pkg: "github.com/supraio/client-daemon/pkg/x264", typ: $funcType([], [$Int, $Int, $error], false)}, {prop: "GetSubWidthCAndSubHeightC", name: "GetSubWidthCAndSubHeightC", pkg: "", typ: $funcType([], [$Int, $Int, $error], false)}];
189432
+ NalHeader.init("", [{prop: "ByteValue", name: "ByteValue", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "BinaryRepresentation", name: "BinaryRepresentation", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ForbiddenZeroBit", name: "ForbiddenZeroBit", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "NalRefIdc", name: "NalRefIdc", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "NalUnitType", name: "NalUnitType", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "TypeDescription", name: "TypeDescription", embedded: false, exported: true, typ: $String, tag: ""}]);
189433
+ BitReader.init("github.com/supraio/client-daemon/pkg/x264", [{prop: "data", name: "data", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Int, tag: ""}]);
189434
+ SPS.init("", [{prop: "ProfileIdc", name: "ProfileIdc", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "ChromaFormatIdc", name: "ChromaFormatIdc", embedded: false, exported: true, typ: $Uint, tag: ""}, {prop: "SeparateColourPlaneFlag", name: "SeparateColourPlaneFlag", embedded: false, exported: true, typ: $Uint, tag: ""}, {prop: "ChromaArrayType", name: "ChromaArrayType", embedded: false, exported: true, typ: $Uint, tag: ""}, {prop: "LevelIdc", name: "LevelIdc", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "SeqParameterSetId", name: "SeqParameterSetId", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Log2MaxFrameNumMinus4", name: "Log2MaxFrameNumMinus4", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "PicOrderCntType", name: "PicOrderCntType", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Log2MaxPicOrderCntLsbMinus4", name: "Log2MaxPicOrderCntLsbMinus4", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "MaxNumRefFrames", name: "MaxNumRefFrames", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "GapsInFrameNumValueAllowedFlag", name: "GapsInFrameNumValueAllowedFlag", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "PicWidthInMbsMinus1", name: "PicWidthInMbsMinus1", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "PicHeightInMapUnitsMinus1", name: "PicHeightInMapUnitsMinus1", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "FrameMbsOnlyFlag", name: "FrameMbsOnlyFlag", embedded: false, exported: true, typ: $Uint, tag: ""}, {prop: "MbAdaptiveFrameFieldFlag", name: "MbAdaptiveFrameFieldFlag", embedded: false, exported: true, typ: $Uint, tag: ""}, {prop: "Direct8x8InterfaceFlag", name: "Direct8x8InterfaceFlag", embedded: false, exported: true, typ: $Uint, tag: ""}, {prop: "FrameCroppingFlag", name: "FrameCroppingFlag", embedded: false, exported: true, typ: $Uint, tag: ""}, {prop: "FrameCropLeftOffset", name: "FrameCropLeftOffset", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "FrameCropRightOffset", name: "FrameCropRightOffset", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "FrameCropTopOffset", name: "FrameCropTopOffset", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "FrameCropBottomOffset", name: "FrameCropBottomOffset", embedded: false, exported: true, typ: $Uint32, tag: ""}]);
189476
189435
  $init = function() {
189477
189436
  $pkg.$init = function() {};
189478
189437
  /* */ 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:
189479
189438
  $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189480
- $r = errscreen.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189481
- $r = dom.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189482
- $r = screen.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189483
- $r = f64.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189484
- $r = image.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189485
- $r = color.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189486
- $r = draw.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189487
- $r = sync.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189488
- $r = js.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189439
+ $r = image.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189440
+ $r = strconv.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189441
+ nalUnitTypes = $makeMap($Uint8.keyFor, [{ k: 5, v: "Coded slice of an IDR picture (IDR Slice)" }, { k: 7, v: "Sequence parameter set (SPS)" }, { k: 8, v: "Picture parameter set (PPS)" }]);
189489
189442
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
189490
189443
  };
189491
189444
  $pkg.$init = $init;
189492
189445
  return $pkg;
189493
189446
  })();
189494
189447
  $packages["github.com/supraio/client-daemon/pkg/decoder/webcodecs"] = (function() {
189495
- var $pkg = {}, $init, hex, webgl, general, errs, jshelper, x264, canvasdriver, image, log, js, WebCodecsDecoder, ptrType, sliceType, ptrType$1, sliceType$1, ptrType$2, chanType, chanType$1, funcType, IsAvailable, NewDecoder;
189448
+ var $pkg = {}, $init, hex, webgl, general, errs, jshelper, canvasdriver, x264, image, log, js, WebCodecsDecoder, ptrType, sliceType, ptrType$1, sliceType$1, ptrType$2, chanType, chanType$1, funcType, IsAvailable, NewDecoder;
189496
189449
  hex = $packages["encoding/hex"];
189497
189450
  webgl = $packages["github.com/nuberu/webgl"];
189498
189451
  general = $packages["github.com/supraio/client-daemon/pkg/decoder/general"];
189499
189452
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
189500
189453
  jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
189454
+ canvasdriver = $packages["github.com/supraio/client-daemon/pkg/shiny/driver/canvasdriver"];
189501
189455
  x264 = $packages["github.com/supraio/client-daemon/pkg/x264"];
189502
- canvasdriver = $packages["golang.org/x/exp/shiny/driver/canvasdriver"];
189503
189456
  image = $packages["image"];
189504
189457
  log = $packages["log"];
189505
189458
  js = $packages["syscall/js"];
@@ -189546,15 +189499,8 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/webcodecs"] = (function(
189546
189499
  _tuple = _r;
189547
189500
  nalResolution = _tuple[0];
189548
189501
  err = _tuple[1];
189549
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
189550
- /* */ $s = 3; continue;
189551
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
189552
- $r = log.Println(new sliceType([new $String("ASDF nal resolution"), err])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189553
- $s = 4; continue;
189554
- /* } else { */ case 3:
189555
- $r = log.Println(new sliceType([new $String("ASDF nal resolution"), nalResolution])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189556
- /* } */ case 4:
189557
- _r$1 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
189502
+ $r = log.Println(new sliceType([new $String("ASDF WebCodecsDecoder.configure nalResolution"), nalResolution, new $String("err"), err])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189503
+ _r$1 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
189558
189504
  init = $clone(_r$1, js.Value);
189559
189505
  outputCallback[0] = $clone(js.FuncOf((function(d, errorCallback, jsVideoDecoder, outputCallback) { return function $b(this$1, args) {
189560
189506
  var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
@@ -189575,15 +189521,15 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/webcodecs"] = (function(
189575
189521
  }; })(d, errorCallback, jsVideoDecoder, outputCallback)), js.Func);
189576
189522
  $clone(init, js.Value).Set("output", new outputCallback[0].constructor.elem(outputCallback[0]));
189577
189523
  $clone(init, js.Value).Set("error", new errorCallback[0].constructor.elem(errorCallback[0]));
189578
- _r$2 = $clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).New(new sliceType([new init.constructor.elem(init)])); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
189524
+ _r$2 = $clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).New(new sliceType([new init.constructor.elem(init)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
189579
189525
  jsVideoDecoder[0] = $clone(_r$2, js.Value);
189580
189526
  h264CodecName = d[0].detectCodecName(nal);
189581
- _r$3 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
189527
+ _r$3 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
189582
189528
  config = $clone(_r$3, js.Value);
189583
- $r = log.Println(new sliceType([new $String("ASDF[GO] WebCodecsDecoder.configure codec=" + h264CodecName)])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189529
+ $r = log.Println(new sliceType([new $String("ASDF[GO] WebCodecsDecoder.configure codec=" + h264CodecName)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189584
189530
  $clone(config, js.Value).Set("codec", new $String(h264CodecName));
189585
189531
  $clone(config, js.Value).Set("optimizeForLatency", new $Bool(true));
189586
- _r$4 = $clone(jsVideoDecoder[0], js.Value).Call("configure", new sliceType([new config.constructor.elem(config)])); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
189532
+ _r$4 = $clone(jsVideoDecoder[0], js.Value).Call("configure", new sliceType([new config.constructor.elem(config)])); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
189587
189533
  _r$4;
189588
189534
  d[0].jsVideoDecoder = jsVideoDecoder[0];
189589
189535
  d[0].releaseVideoDecoder = (function(d, errorCallback, jsVideoDecoder, outputCallback) { return function $b() {
@@ -189609,7 +189555,7 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/webcodecs"] = (function(
189609
189555
  };
189610
189556
  WebCodecsDecoder.prototype.detectCodecName = function(nal) { return this.$val.detectCodecName(nal); };
189611
189557
  WebCodecsDecoder.ptr.prototype.Write = function(nal) {
189612
- var {$24r, _r, _r$1, _r$2, _r$3, _r$4, chunk, chunkOpts, d, errDec, frameData, frameType, nal, $s, $r, $c} = $restore(this, {nal});
189558
+ var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, chunk, chunkOpts, d, err, errDec, frameData, frameType, nal, nalResolution, $s, $r, $c} = $restore(this, {nal});
189613
189559
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189614
189560
  d = this;
189615
189561
  frameType = "delta";
@@ -189626,32 +189572,36 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/webcodecs"] = (function(
189626
189572
  $24r = _r;
189627
189573
  $s = 7; case 7: return $24r;
189628
189574
  /* } */ case 5:
189629
- $r = log.Println(new sliceType([new $String("ASDF[GO] WebCodecsDecoder.Write nal[0:D]"), $subslice(nal, 0, 13)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189630
- _r$1 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
189631
- chunkOpts = $clone(_r$1, js.Value);
189632
- _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; }
189633
- frameData = $clone(_r$2, js.Value);
189575
+ _r$1 = x264.GetImageResolution(nal); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
189576
+ _tuple = _r$1;
189577
+ nalResolution = _tuple[0];
189578
+ err = _tuple[1];
189579
+ $r = log.Println(new sliceType([new $String("ASDF WebCodecsDecoder.Write nalResolution"), nalResolution, new $String("err"), err])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189580
+ _r$2 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
189581
+ chunkOpts = $clone(_r$2, js.Value);
189582
+ _r$3 = webgl.TypedArrayOf(nal); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
189583
+ frameData = $clone(_r$3, js.Value);
189634
189584
  $clone(chunkOpts, js.Value).Set("type", new $String(frameType));
189635
189585
  $clone(chunkOpts, js.Value).Set("data", new frameData.constructor.elem(frameData));
189636
189586
  $clone(chunkOpts, js.Value).Set("timestamp", new $Int(0));
189637
- _r$3 = $clone($clone(js.Global(), js.Value).Get("EncodedVideoChunk"), js.Value).New(new sliceType([new chunkOpts.constructor.elem(chunkOpts)])); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
189638
- chunk = $clone(_r$3, js.Value);
189639
- _r$4 = d.jsSafeDecode($clone(chunk, js.Value)); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
189640
- errDec = _r$4;
189641
- /* */ if (!($interfaceIsEqual(errDec, $ifaceNil))) { $s = 13; continue; }
189642
- /* */ $s = 14; continue;
189643
- /* if (!($interfaceIsEqual(errDec, $ifaceNil))) { */ case 13:
189644
- $r = log.Println(new sliceType([new $String("ASDF[GO] WebCodecsDecoder.Write decoding error, decoder state="), new $String($clone($clone(d.jsVideoDecoder, js.Value).Get("state"), js.Value).String())])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189645
- /* */ if ($clone($clone(d.jsVideoDecoder, js.Value).Get("state"), js.Value).String() === "closed") { $s = 16; continue; }
189646
- /* */ $s = 17; continue;
189647
- /* if ($clone($clone(d.jsVideoDecoder, js.Value).Get("state"), js.Value).String() === "closed") { */ case 16:
189648
- $r = log.Println(new sliceType([new $String("ASDF[GO] WebCodecsDecoder.Write going to release video decoder")])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189649
- $r = d.releaseVideoDecoder(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189650
- /* } */ case 17:
189587
+ _r$4 = $clone($clone(js.Global(), js.Value).Get("EncodedVideoChunk"), js.Value).New(new sliceType([new chunkOpts.constructor.elem(chunkOpts)])); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
189588
+ chunk = $clone(_r$4, js.Value);
189589
+ _r$5 = d.jsSafeDecode($clone(chunk, js.Value)); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
189590
+ errDec = _r$5;
189591
+ /* */ if (!($interfaceIsEqual(errDec, $ifaceNil))) { $s = 14; continue; }
189592
+ /* */ $s = 15; continue;
189593
+ /* if (!($interfaceIsEqual(errDec, $ifaceNil))) { */ case 14:
189594
+ $r = log.Println(new sliceType([new $String("ASDF[GO] WebCodecsDecoder.Write decoding error, decoder state="), new $String($clone($clone(d.jsVideoDecoder, js.Value).Get("state"), js.Value).String())])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189595
+ /* */ if ($clone($clone(d.jsVideoDecoder, js.Value).Get("state"), js.Value).String() === "closed") { $s = 17; continue; }
189596
+ /* */ $s = 18; continue;
189597
+ /* if ($clone($clone(d.jsVideoDecoder, js.Value).Get("state"), js.Value).String() === "closed") { */ case 17:
189598
+ $r = log.Println(new sliceType([new $String("ASDF[GO] WebCodecsDecoder.Write going to release video decoder")])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189599
+ $r = d.releaseVideoDecoder(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189600
+ /* } */ case 18:
189651
189601
  $s = -1; return errDec;
189652
- /* } */ case 14:
189602
+ /* } */ case 15:
189653
189603
  $s = -1; return $ifaceNil;
189654
- /* */ } return; } var $f = {$blk: WebCodecsDecoder.ptr.prototype.Write, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, chunk, chunkOpts, d, errDec, frameData, frameType, nal, $s};return $f;
189604
+ /* */ } return; } var $f = {$blk: WebCodecsDecoder.ptr.prototype.Write, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, chunk, chunkOpts, d, err, errDec, frameData, frameType, nal, nalResolution, $s};return $f;
189655
189605
  };
189656
189606
  WebCodecsDecoder.prototype.Write = function(nal) { return this.$val.Write(nal); };
189657
189607
  WebCodecsDecoder.ptr.prototype.NextOutput = function(outputBuffer) {
@@ -189734,8 +189684,8 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/webcodecs"] = (function(
189734
189684
  $r = general.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189735
189685
  $r = errs.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189736
189686
  $r = jshelper.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189737
- $r = x264.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189738
- $r = canvasdriver.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189687
+ $r = canvasdriver.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189688
+ $r = x264.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189739
189689
  $r = image.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189740
189690
  $r = log.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189741
189691
  $r = js.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
@@ -190938,6 +190888,54 @@ $packages["github.com/supraio/client-daemon/pkg/render/netframe"] = (function()
190938
190888
  $pkg.$init = $init;
190939
190889
  return $pkg;
190940
190890
  })();
190891
+ $packages["golang.org/x/exp/shiny/driver/internal/errscreen"] = (function() {
190892
+ var $pkg = {}, $init, screen, image, stub, ptrType, Stub;
190893
+ screen = $packages["golang.org/x/exp/shiny/screen"];
190894
+ image = $packages["image"];
190895
+ stub = $pkg.stub = $newType(0, $kindStruct, "errscreen.stub", true, "golang.org/x/exp/shiny/driver/internal/errscreen", false, function(err_) {
190896
+ this.$val = this;
190897
+ if (arguments.length === 0) {
190898
+ this.err = $ifaceNil;
190899
+ return;
190900
+ }
190901
+ this.err = err_;
190902
+ });
190903
+ ptrType = $ptrType(screen.NewWindowOptions);
190904
+ Stub = function(err) {
190905
+ var err, x;
190906
+ return (x = new stub.ptr(err), new x.constructor.elem(x));
190907
+ };
190908
+ $pkg.Stub = Stub;
190909
+ stub.ptr.prototype.NewBuffer = function(size) {
190910
+ var s, size;
190911
+ s = this;
190912
+ return [$ifaceNil, s.err];
190913
+ };
190914
+ stub.prototype.NewBuffer = function(size) { return this.$val.NewBuffer(size); };
190915
+ stub.ptr.prototype.NewTexture = function(size) {
190916
+ var s, size;
190917
+ s = this;
190918
+ return [$ifaceNil, s.err];
190919
+ };
190920
+ stub.prototype.NewTexture = function(size) { return this.$val.NewTexture(size); };
190921
+ stub.ptr.prototype.NewWindow = function(opts) {
190922
+ var opts, s;
190923
+ s = this;
190924
+ return [$ifaceNil, s.err];
190925
+ };
190926
+ stub.prototype.NewWindow = function(opts) { return this.$val.NewWindow(opts); };
190927
+ stub.methods = [{prop: "NewBuffer", name: "NewBuffer", pkg: "", typ: $funcType([image.Point], [screen.Buffer, $error], false)}, {prop: "NewTexture", name: "NewTexture", pkg: "", typ: $funcType([image.Point], [screen.Texture, $error], false)}, {prop: "NewWindow", name: "NewWindow", pkg: "", typ: $funcType([ptrType], [screen.Window, $error], false)}];
190928
+ stub.init("golang.org/x/exp/shiny/driver/internal/errscreen", [{prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]);
190929
+ $init = function() {
190930
+ $pkg.$init = function() {};
190931
+ /* */ 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:
190932
+ $r = screen.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190933
+ $r = image.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190934
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190935
+ };
190936
+ $pkg.$init = $init;
190937
+ return $pkg;
190938
+ })();
190941
190939
  $packages["golang.org/x/exp/shiny/imageutil"] = (function() {
190942
190940
  var $pkg = {}, $init, screen, image, draw, ConvertYCbCrToRGBA;
190943
190941
  screen = $packages["golang.org/x/exp/shiny/screen"];
@@ -193430,37 +193428,30 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
193430
193428
  _tuple$1 = _r$2;
193431
193429
  frameResolution = _tuple$1[0];
193432
193430
  err = _tuple$1[1];
193433
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 7; continue; }
193434
- /* */ $s = 8; continue;
193435
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 7:
193436
- $r = log.Println(new sliceType([new $String("ASDF Frame "), new $Int($clone(frame$1.GetTimestamp(), time.Time).Nanosecond()), new $String("resolution"), err])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193437
- $s = 9; continue;
193438
- /* } else { */ case 8:
193439
- $r = log.Println(new sliceType([new $String("ASDF Frame "), new $Int($clone(frame$1.GetTimestamp(), time.Time).Nanosecond()), new $String("resolution"), frameResolution])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193440
- /* } */ case 9:
193441
- _r$3 = dl.ensureDecoder(frame$1); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
193431
+ $r = log.Println(new sliceType([new $String("ASDF DecoderLoop.writeFrame timestamp"), new $Int($clone(frame$1.GetTimestamp(), time.Time).Nanosecond()), new $String("frameResolution"), frameResolution, new $String("err"), err])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193432
+ _r$3 = dl.ensureDecoder(frame$1); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
193442
193433
  _tuple$2 = _r$3;
193443
193434
  decoder$1 = _tuple$2[0];
193444
193435
  err = _tuple$2[1];
193445
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 13; continue; }
193446
- /* */ $s = 14; continue;
193447
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 13:
193448
- _r$4 = errs.Errorf("Decoder cannot be created: %s", new sliceType([err])); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
193436
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 9; continue; }
193437
+ /* */ $s = 10; continue;
193438
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 9:
193439
+ _r$4 = errs.Errorf("Decoder cannot be created: %s", new sliceType([err])); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
193449
193440
  $24r$1 = _r$4;
193450
- $s = 16; case 16: return $24r$1;
193451
- /* } */ case 14:
193452
- $r = dl.stats.NotifyFrameDecodeWriteStarted(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193453
- _r$5 = decoder$1.Write(frame$1.Buffer()); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
193441
+ $s = 12; case 12: return $24r$1;
193442
+ /* } */ case 10:
193443
+ $r = dl.stats.NotifyFrameDecodeWriteStarted(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193444
+ _r$5 = decoder$1.Write(frame$1.Buffer()); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
193454
193445
  err = _r$5;
193455
- $r = dl.stats.NotifyFrameDecodeWriteEnded(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193456
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 20; continue; }
193457
- /* */ $s = 21; continue;
193458
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 20:
193459
- _r$6 = errs.Errorf("Frame cannot be decoded: %s", new sliceType([err])); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
193446
+ $r = dl.stats.NotifyFrameDecodeWriteEnded(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193447
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 16; continue; }
193448
+ /* */ $s = 17; continue;
193449
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 16:
193450
+ _r$6 = errs.Errorf("Frame cannot be decoded: %s", new sliceType([err])); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
193460
193451
  $24r$2 = _r$6;
193461
- $s = 23; case 23: return $24r$2;
193462
- /* } */ case 21:
193463
- $r = $send(dl.framesChan, frame$1); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193452
+ $s = 19; case 19: return $24r$2;
193453
+ /* } */ case 17:
193454
+ $r = $send(dl.framesChan, frame$1); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193464
193455
  $s = -1; return $ifaceNil;
193465
193456
  /* */ } return; } var $f = {$blk: DecoderLoop.ptr.prototype.writeFrame, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, decoder$1, dl, err, frame$1, frameResolution, $s};return $f;
193466
193457
  };
@@ -194139,7 +194130,7 @@ $packages["golang.org/x/mobile/event/lifecycle"] = (function() {
194139
194130
  return $pkg;
194140
194131
  })();
194141
194132
  $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
194142
- var $pkg = {}, $init, binary, json, query, clientscreen, clipboard, nacldecoder, nacldriver, webcodecs, errs, helper, input, message, netclient, netpacket, netstream, netframe, player, overlaydriver, stats, videostream, window, canvasdriver, webgldriver, screen, focus, key, lifecycle, mouse, size, image, io, ioutil, log, os, path, strings, sync, js, time, ScreenWindow, ProcessInfo, ProcessInfoManager, ptrType, ptrType$1, funcType, sliceType, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, sliceType$1, sliceType$2, structType, sliceType$3, funcType$1, ptrType$10, ptrType$11, chanType, chanType$1, chanType$2, chanType$3, chanType$4, NewScreenWindow, MainDriver, NewProcessInfoManager;
194133
+ var $pkg = {}, $init, binary, json, query, clientscreen, clipboard, nacldecoder, nacldriver, webcodecs, errs, helper, input, message, netclient, netpacket, netstream, netframe, player, canvasdriver, overlaydriver, stats, videostream, window, webgldriver, screen, focus, key, lifecycle, mouse, size, image, io, ioutil, log, os, path, strings, sync, js, time, ScreenWindow, ProcessInfo, ProcessInfoManager, ptrType, ptrType$1, funcType, sliceType, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, sliceType$1, sliceType$2, structType, sliceType$3, funcType$1, ptrType$10, ptrType$11, chanType, chanType$1, chanType$2, chanType$3, chanType$4, NewScreenWindow, MainDriver, NewProcessInfoManager;
194143
194134
  binary = $packages["encoding/binary"];
194144
194135
  json = $packages["encoding/json"];
194145
194136
  query = $packages["github.com/google/go-querystring/query"];
@@ -194157,11 +194148,11 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
194157
194148
  netstream = $packages["github.com/supraio/client-daemon/pkg/netstream"];
194158
194149
  netframe = $packages["github.com/supraio/client-daemon/pkg/render/netframe"];
194159
194150
  player = $packages["github.com/supraio/client-daemon/pkg/render/player"];
194151
+ canvasdriver = $packages["github.com/supraio/client-daemon/pkg/shiny/driver/canvasdriver"];
194160
194152
  overlaydriver = $packages["github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver"];
194161
194153
  stats = $packages["github.com/supraio/client-daemon/pkg/stats"];
194162
194154
  videostream = $packages["github.com/supraio/client-daemon/pkg/videostream"];
194163
194155
  window = $packages["github.com/supraio/client-daemon/pkg/window"];
194164
- canvasdriver = $packages["golang.org/x/exp/shiny/driver/canvasdriver"];
194165
194156
  webgldriver = $packages["golang.org/x/exp/shiny/driver/webgldriver"];
194166
194157
  screen = $packages["golang.org/x/exp/shiny/screen"];
194167
194158
  focus = $packages["golang.org/x/mobile/event/focus"];
@@ -194466,25 +194457,26 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
194466
194457
  var {$s, $r, $c} = $restore(this, {});
194467
194458
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
194468
194459
  $r = MainDriver((function(w, windowChannel) { return function $b(s) {
194469
- var {_r, _r$1, _tuple, err, s, window$1, $s, $r, $c} = $restore(this, {s});
194460
+ var {_r, _r$1, _tuple, err, s, window$1, x, $s, $r, $c} = $restore(this, {s});
194470
194461
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
194471
- _r = s.NewWindow(new screen.NewWindowOptions.ptr(w[0].screenSize.X, w[0].screenSize.Y, "")); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
194462
+ $r = log.Println(new sliceType$1([new $String("ASDF ScreenWindow.startWindow creating new window with size"), (x = w[0].screenSize, new x.constructor.elem(x))])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194463
+ _r = s.NewWindow(new screen.NewWindowOptions.ptr(w[0].screenSize.X, w[0].screenSize.Y, "")); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
194472
194464
  _tuple = _r;
194473
194465
  window$1 = _tuple[0];
194474
194466
  err = _tuple[1];
194475
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
194476
- /* */ $s = 3; continue;
194477
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
194478
- $r = $send(windowChannel[0], err); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194467
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
194468
+ /* */ $s = 4; continue;
194469
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
194470
+ $r = $send(windowChannel[0], err); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194479
194471
  $s = -1; return;
194480
- /* } */ case 3:
194472
+ /* } */ case 4:
194481
194473
  w[0].window = window$1;
194482
194474
  w[0].screen = s;
194483
- $r = $send(windowChannel[0], $ifaceNil); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194484
- _r$1 = $recv(w[0].winCloseChannel); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
194475
+ $r = $send(windowChannel[0], $ifaceNil); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194476
+ _r$1 = $recv(w[0].winCloseChannel); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
194485
194477
  _r$1[0];
194486
194478
  $s = -1; return;
194487
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, _r$1, _tuple, err, s, window$1, $s};return $f;
194479
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, _r$1, _tuple, err, s, window$1, x, $s};return $f;
194488
194480
  }; })(w, windowChannel)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
194489
194481
  $s = -1; return;
194490
194482
  /* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
@@ -195192,11 +195184,11 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
195192
195184
  $r = netstream.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195193
195185
  $r = netframe.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195194
195186
  $r = player.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195195
- $r = overlaydriver.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195196
- $r = stats.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195197
- $r = videostream.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195198
- $r = window.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195199
- $r = canvasdriver.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195187
+ $r = canvasdriver.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195188
+ $r = overlaydriver.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195189
+ $r = stats.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195190
+ $r = videostream.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195191
+ $r = window.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195200
195192
  $r = webgldriver.$init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195201
195193
  $r = screen.$init(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
195202
195194
  $r = focus.$init(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }