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

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,6 +188391,632 @@ $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;
188396
+ fmt = $packages["fmt"];
188397
+ 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_) {
188400
+ this.$val = this;
188401
+ 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 = "";
188408
+ return;
188409
+ }
188410
+ this.ByteValue = ByteValue_;
188411
+ this.BinaryRepresentation = BinaryRepresentation_;
188412
+ this.ForbiddenZeroBit = ForbiddenZeroBit_;
188413
+ this.NalRefIdc = NalRefIdc_;
188414
+ this.NalUnitType = NalUnitType_;
188415
+ this.TypeDescription = TypeDescription_;
188416
+ });
188417
+ BitReader = $pkg.BitReader = $newType(0, $kindStruct, "x264.BitReader", true, "github.com/supraio/client-daemon/pkg/x264", true, function(data_, offset_) {
188418
+ this.$val = this;
188419
+ if (arguments.length === 0) {
188420
+ this.data = sliceType$1.nil;
188421
+ this.offset = 0;
188422
+ return;
188423
+ }
188424
+ this.data = data_;
188425
+ this.offset = offset_;
188426
+ });
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_) {
188428
+ this.$val = this;
188429
+ 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;
188451
+ return;
188452
+ }
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_;
188474
+ });
188475
+ sliceType = $sliceType($emptyInterface);
188476
+ 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, {});
188566
+ /* */ $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];
188576
+ }
188577
+ if (bit === 1) {
188578
+ /* break; */ $s = 2; continue;
188579
+ }
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;
188603
+ };
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; }
188617
+ /* */ $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;
188622
+ /* } */ 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;
188888
+ };
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});
188892
+ /* */ $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];
188896
+ err = _tuple[1];
188897
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
188898
+ $s = -1; return [ptrType$1.nil, err];
188899
+ }
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;
188932
+ };
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;
188958
+ };
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;
188988
+ };
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, {});
188992
+ /* */ $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];
188999
+ $s = 2; case 2: return $24r;
189000
+ /* */ } return; } var $f = {$blk: SPS.ptr.prototype.GetSubWidthCAndSubHeightC, $c: true, $r, $24r, _r, sps, $s};return $f;
189001
+ };
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;
189016
+ };
189017
+ $pkg.$init = $init;
189018
+ return $pkg;
189019
+ })();
188394
189020
  $packages["golang.org/x/exp/shiny/driver/internal/errscreen"] = (function() {
188395
189021
  var $pkg = {}, $init, screen, image, stub, ptrType, Stub;
188396
189022
  screen = $packages["golang.org/x/exp/shiny/screen"];
@@ -188866,12 +189492,13 @@ $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
188866
189492
  return $pkg;
188867
189493
  })();
188868
189494
  $packages["github.com/supraio/client-daemon/pkg/decoder/webcodecs"] = (function() {
188869
- var $pkg = {}, $init, hex, webgl, general, errs, jshelper, canvasdriver, image, log, js, WebCodecsDecoder, ptrType, sliceType, ptrType$1, sliceType$1, ptrType$2, chanType, chanType$1, funcType, IsAvailable, NewDecoder;
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;
188870
189496
  hex = $packages["encoding/hex"];
188871
189497
  webgl = $packages["github.com/nuberu/webgl"];
188872
189498
  general = $packages["github.com/supraio/client-daemon/pkg/decoder/general"];
188873
189499
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
188874
189500
  jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
189501
+ x264 = $packages["github.com/supraio/client-daemon/pkg/x264"];
188875
189502
  canvasdriver = $packages["golang.org/x/exp/shiny/driver/canvasdriver"];
188876
189503
  image = $packages["image"];
188877
189504
  log = $packages["log"];
@@ -188908,15 +189535,27 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/webcodecs"] = (function(
188908
189535
  };
188909
189536
  $pkg.NewDecoder = NewDecoder;
188910
189537
  WebCodecsDecoder.ptr.prototype.configure = function(nal) {
188911
- var {_r, _r$1, _r$2, _r$3, config, d, errorCallback, h264CodecName, init, jsVideoDecoder, nal, outputCallback, $s, $r, $c} = $restore(this, {nal});
189538
+ var {_r, _r$1, _r$2, _r$3, _r$4, _tuple, config, d, err, errorCallback, h264CodecName, init, jsVideoDecoder, nal, nalResolution, outputCallback, $s, $r, $c} = $restore(this, {nal});
188912
189539
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188913
189540
  d = [d];
188914
189541
  errorCallback = [errorCallback];
188915
189542
  jsVideoDecoder = [jsVideoDecoder];
188916
189543
  outputCallback = [outputCallback];
188917
189544
  d[0] = this;
188918
- _r = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188919
- init = $clone(_r, js.Value);
189545
+ _r = x264.GetImageResolution(nal); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189546
+ _tuple = _r;
189547
+ nalResolution = _tuple[0];
189548
+ 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; }
189558
+ init = $clone(_r$1, js.Value);
188920
189559
  outputCallback[0] = $clone(js.FuncOf((function(d, errorCallback, jsVideoDecoder, outputCallback) { return function $b(this$1, args) {
188921
189560
  var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
188922
189561
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
@@ -188925,27 +189564,27 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/webcodecs"] = (function(
188925
189564
  /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
188926
189565
  }; })(d, errorCallback, jsVideoDecoder, outputCallback)), js.Func);
188927
189566
  errorCallback[0] = $clone(js.FuncOf((function(d, errorCallback, jsVideoDecoder, outputCallback) { return function $b(this$1, args) {
188928
- var {_arg, _r$1, _r$2, args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
189567
+ var {_arg, _r$2, _r$3, args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
188929
189568
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188930
- _r$1 = jshelper.GetError((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
188931
- _arg = _r$1;
188932
- _r$2 = errs.Errorf("Error in WebCodecsDecoder: %s", new sliceType([_arg])); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
188933
- $r = $send(d[0].errorChan, _r$2); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189569
+ _r$2 = jshelper.GetError((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
189570
+ _arg = _r$2;
189571
+ _r$3 = errs.Errorf("Error in WebCodecsDecoder: %s", new sliceType([_arg])); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
189572
+ $r = $send(d[0].errorChan, _r$3); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188934
189573
  $s = -1; return $ifaceNil;
188935
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, args, this$1, $s};return $f;
189574
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$2, _r$3, args, this$1, $s};return $f;
188936
189575
  }; })(d, errorCallback, jsVideoDecoder, outputCallback)), js.Func);
188937
189576
  $clone(init, js.Value).Set("output", new outputCallback[0].constructor.elem(outputCallback[0]));
188938
189577
  $clone(init, js.Value).Set("error", new errorCallback[0].constructor.elem(errorCallback[0]));
188939
- _r$1 = $clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).New(new sliceType([new init.constructor.elem(init)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
188940
- jsVideoDecoder[0] = $clone(_r$1, js.Value);
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; }
189579
+ jsVideoDecoder[0] = $clone(_r$2, js.Value);
188941
189580
  h264CodecName = d[0].detectCodecName(nal);
188942
- _r$2 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
188943
- config = $clone(_r$2, js.Value);
188944
- $r = log.Println(new sliceType([new $String("ASDF[GO] WebCodecsDecoder.configure codec=" + h264CodecName)])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
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; }
189582
+ 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; }
188945
189584
  $clone(config, js.Value).Set("codec", new $String(h264CodecName));
188946
189585
  $clone(config, js.Value).Set("optimizeForLatency", new $Bool(true));
188947
- _r$3 = $clone(jsVideoDecoder[0], js.Value).Call("configure", new sliceType([new config.constructor.elem(config)])); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
188948
- _r$3;
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; }
189587
+ _r$4;
188949
189588
  d[0].jsVideoDecoder = jsVideoDecoder[0];
188950
189589
  d[0].releaseVideoDecoder = (function(d, errorCallback, jsVideoDecoder, outputCallback) { return function $b() {
188951
189590
  var {$s, $r, $c} = $restore(this, {});
@@ -188959,7 +189598,7 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/webcodecs"] = (function(
188959
189598
  /* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
188960
189599
  }; })(d, errorCallback, jsVideoDecoder, outputCallback);
188961
189600
  $s = -1; return;
188962
- /* */ } return; } var $f = {$blk: WebCodecsDecoder.ptr.prototype.configure, $c: true, $r, _r, _r$1, _r$2, _r$3, config, d, errorCallback, h264CodecName, init, jsVideoDecoder, nal, outputCallback, $s};return $f;
189601
+ /* */ } return; } var $f = {$blk: WebCodecsDecoder.ptr.prototype.configure, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, config, d, err, errorCallback, h264CodecName, init, jsVideoDecoder, nal, nalResolution, outputCallback, $s};return $f;
188963
189602
  };
188964
189603
  WebCodecsDecoder.prototype.configure = function(nal) { return this.$val.configure(nal); };
188965
189604
  WebCodecsDecoder.ptr.prototype.detectCodecName = function(nal) {
@@ -189095,10 +189734,11 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/webcodecs"] = (function(
189095
189734
  $r = general.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189096
189735
  $r = errs.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189097
189736
  $r = jshelper.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189098
- $r = canvasdriver.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189099
- $r = image.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189100
- $r = log.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189101
- $r = js.$init(); /* */ $s = 9; case 9: 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; }
189739
+ $r = image.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189740
+ $r = log.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189741
+ $r = js.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189102
189742
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
189103
189743
  };
189104
189744
  $pkg.$init = $init;
@@ -192506,15 +193146,17 @@ $packages["github.com/supraio/client-daemon/pkg/stats"] = (function() {
192506
193146
  return $pkg;
192507
193147
  })();
192508
193148
  $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
192509
- var $pkg = {}, $init, decoder, errs, frame, netframe, screenbuffer, stats, screen, image, time, RenderingLoop, DecodeResultProvider, DecodeResult, DecoderLoop, FrameProvider, CollectionLoop, ptrType, sliceType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, funcType, ptrType$6, chanType, chanType$1, ptrType$7, NewRenderingLoop, NewDecoderLoop, NewCollectionLoop;
193149
+ var $pkg = {}, $init, decoder, errs, frame, netframe, screenbuffer, stats, x264, screen, image, log, time, RenderingLoop, DecodeResultProvider, DecodeResult, DecoderLoop, FrameProvider, CollectionLoop, ptrType, sliceType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, funcType, ptrType$6, chanType, chanType$1, ptrType$7, NewRenderingLoop, NewDecoderLoop, NewCollectionLoop;
192510
193150
  decoder = $packages["github.com/supraio/client-daemon/pkg/decoder"];
192511
193151
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
192512
193152
  frame = $packages["github.com/supraio/client-daemon/pkg/render/frame"];
192513
193153
  netframe = $packages["github.com/supraio/client-daemon/pkg/render/netframe"];
192514
193154
  screenbuffer = $packages["github.com/supraio/client-daemon/pkg/render/screenbuffer"];
192515
193155
  stats = $packages["github.com/supraio/client-daemon/pkg/stats"];
193156
+ x264 = $packages["github.com/supraio/client-daemon/pkg/x264"];
192516
193157
  screen = $packages["golang.org/x/exp/shiny/screen"];
192517
193158
  image = $packages["image"];
193159
+ log = $packages["log"];
192518
193160
  time = $packages["time"];
192519
193161
  RenderingLoop = $pkg.RenderingLoop = $newType(0, $kindStruct, "player.RenderingLoop", true, "github.com/supraio/client-daemon/pkg/render/player", true, function(decodeResultProvider_, window_, stats_, started_, renderingInProgress_) {
192520
193162
  this.$val = this;
@@ -192770,7 +193412,7 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
192770
193412
  };
192771
193413
  DecoderLoop.prototype.Stop = function() { return this.$val.Stop(); };
192772
193414
  DecoderLoop.ptr.prototype.writeFrame = function() {
192773
- var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, decoder$1, dl, err, frame$1, $s, $r, $c} = $restore(this, {});
193415
+ var {$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, $r, $c} = $restore(this, {});
192774
193416
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
192775
193417
  dl = this;
192776
193418
  _r = dl.frameProvider.NextFrame(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
@@ -192784,31 +193426,43 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
192784
193426
  $24r = _r$1;
192785
193427
  $s = 5; case 5: return $24r;
192786
193428
  /* } */ case 3:
192787
- _r$2 = dl.ensureDecoder(frame$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
193429
+ _r$2 = x264.GetImageResolution(frame$1.Buffer()); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
192788
193430
  _tuple$1 = _r$2;
192789
- decoder$1 = _tuple$1[0];
193431
+ frameResolution = _tuple$1[0];
192790
193432
  err = _tuple$1[1];
192791
193433
  /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 7; continue; }
192792
193434
  /* */ $s = 8; continue;
192793
193435
  /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 7:
192794
- _r$3 = errs.Errorf("Decoder cannot be created: %s", new sliceType([err])); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
192795
- $24r$1 = _r$3;
192796
- $s = 10; case 10: return $24r$1;
192797
- /* } */ case 8:
192798
- $r = dl.stats.NotifyFrameDecodeWriteStarted(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192799
- _r$4 = decoder$1.Write(frame$1.Buffer()); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
192800
- err = _r$4;
192801
- $r = dl.stats.NotifyFrameDecodeWriteEnded(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192802
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 14; continue; }
192803
- /* */ $s = 15; continue;
192804
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 14:
192805
- _r$5 = errs.Errorf("Frame cannot be decoded: %s", new sliceType([err])); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
192806
- $24r$2 = _r$5;
192807
- $s = 17; case 17: return $24r$2;
192808
- /* } */ case 15:
192809
- $r = $send(dl.framesChan, frame$1); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
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; }
193442
+ _tuple$2 = _r$3;
193443
+ decoder$1 = _tuple$2[0];
193444
+ 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; }
193449
+ $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; }
193454
+ 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; }
193460
+ $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; }
192810
193464
  $s = -1; return $ifaceNil;
192811
- /* */ } 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, _tuple, _tuple$1, decoder$1, dl, err, frame$1, $s};return $f;
193465
+ /* */ } 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;
192812
193466
  };
192813
193467
  DecoderLoop.prototype.writeFrame = function() { return this.$val.writeFrame(); };
192814
193468
  DecoderLoop.ptr.prototype.outputBuffer = function() {
@@ -192972,9 +193626,11 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
192972
193626
  $r = netframe.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192973
193627
  $r = screenbuffer.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192974
193628
  $r = stats.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192975
- $r = screen.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192976
- $r = image.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192977
- $r = time.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193629
+ $r = x264.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193630
+ $r = screen.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193631
+ $r = image.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193632
+ $r = log.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193633
+ $r = time.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192978
193634
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
192979
193635
  };
192980
193636
  $pkg.$init = $init;