@ioai/robot_viewer 0.0.0-stage → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +183 -2
- package/bin/cli.js +83 -0
- package/dist/assets/css/PlotPanel-3e7d7555.css +1 -0
- package/dist/assets/js/ColladaLoader-2a0c4638.js +1 -0
- package/dist/assets/js/GLTFLoader-7a7f40d7.js +1 -0
- package/dist/assets/js/MTLLoader-b6ce88b7.js +1 -0
- package/dist/assets/js/OBJLoader-7667aa01.js +1 -0
- package/dist/assets/js/PlotPanel-64b4820e.js +1 -0
- package/dist/assets/js/STLLoader-de0915d4.js +1 -0
- package/dist/assets/js/URDFLoader-a34b6917.js +1 -0
- package/dist/assets/js/USDZLoader-64197f74.js +7 -0
- package/dist/assets/js/__vite-browser-external-afb87ea8.js +1 -0
- package/dist/assets/js/codemirror-c3cec7b3.js +1 -0
- package/dist/assets/js/codemirror-themes-e6995a6a.js +1 -0
- package/dist/assets/js/d3-2e308866.js +1 -0
- package/dist/assets/js/index-2e5294e6.js +6 -0
- package/dist/assets/js/mujoco_wasm-e013cb22.js +1 -0
- package/dist/assets/js/three-9c891de0.js +6 -0
- package/dist/camera-publish-worker.js +1 -0
- package/dist/favicon.svg +2 -0
- package/dist/heartbeat-worker.js +1 -0
- package/dist/index.html +4373 -0
- package/dist/models/mocap/blender_human.urdf +2319 -0
- package/dist/models/mocap/blender_human_skeleton_v4.urdf +1432 -0
- package/dist/models/mocap/blender_human_skeleton_v5.urdf +2717 -0
- package/dist/models/mocap/meshes/v4/L_base_link.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer1_1.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer1_2.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer1_3.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer1_4.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer1_5.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer1base.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer2_1.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer2_2.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer2_3.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer2_4.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer2_5.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer3_1.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer3_2.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer3_3.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer3_4.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer3_5.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer4_1.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer4_2.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer4_3.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer4_4.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer4_5.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer5_1.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer5_2.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer5_3.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer5_4.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_figer5_5.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_handle.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_handleseat.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_mark.STL +0 -0
- package/dist/models/mocap/meshes/v4/L_markseat.STL +0 -0
- package/dist/models/mocap/meshes/v4/Lgamepadbase.STL +0 -0
- package/dist/models/mocap/meshes/v4/Link1.STL +0 -0
- package/dist/models/mocap/meshes/v4/Link2.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_base_link.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer1_1.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer1_2.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer1_3.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer1_4.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer1_5.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer1base.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer2_1.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer2_2.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer2_3.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer2_4.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer2_5.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer3_1.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer3_2.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer3_3.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer3_4.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer3_5.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer4_1.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer4_2.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer4_3.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer4_4.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer4_5.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer5_1.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer5_2.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer5_3.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer5_4.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_figer5_5.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_handle.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_handleseat.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_mark.STL +0 -0
- package/dist/models/mocap/meshes/v4/R_markseat.STL +0 -0
- package/dist/models/mocap/meshes/v4/Rgamepadbase.STL +0 -0
- package/dist/models/mocap/meshes/v4/base_link.STL +0 -0
- package/dist/models/mocap/meshes/v4/r_figer1_1.STL +0 -0
- package/dist/models/mocap/meshes/v5/L_handleseat.STL +0 -0
- package/dist/models/mocap/meshes/v5/R_handleseat.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_LeftSkeletonBase.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_LeftSkeletonIndex1.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_LeftSkeletonIndex2.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_LeftSkeletonIndex3.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_LeftSkeletonIndex4.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_LeftSkeletonMiddle1.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_LeftSkeletonMiddle2.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_LeftSkeletonMiddle3.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_LeftSkeletonMiddle4.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_LeftSkeletonPinky1.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_LeftSkeletonPinky2.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_LeftSkeletonPinky3.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_LeftSkeletonPinky4.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_LeftSkeletonRing1.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_LeftSkeletonRing2.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_LeftSkeletonRing3.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_LeftSkeletonRing4.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_LeftSkeletonThumb1.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_LeftSkeletonThumb2.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_LeftSkeletonThumb3.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_LeftSkeletonThumb4.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_LeftSkeletonThumbBase.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_RightSkeletonBase.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_RightSkeletonIndex1.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_RightSkeletonIndex2.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_RightSkeletonIndex3.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_RightSkeletonIndex4.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_RightSkeletonMiddle1.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_RightSkeletonMiddle2.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_RightSkeletonMiddle3.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_RightSkeletonMiddle4.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_RightSkeletonPinky1.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_RightSkeletonPinky2.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_RightSkeletonPinky3.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_RightSkeletonPinky4.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_RightSkeletonRing1.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_RightSkeletonRing2.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_RightSkeletonRing3.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_RightSkeletonRing4.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_RightSkeletonThumb1.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_RightSkeletonThumb2.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_RightSkeletonThumb3.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_RightSkeletonThumb4.STL +0 -0
- package/dist/models/mocap/meshes/v5/link_RightSkeletonThumbBase.STL +0 -0
- package/dist/scripts/start-rosbridge.sh +77 -0
- package/dist/usd-iframe.html +41 -0
- package/dist/usd-viewer/bindings/.gitattributes +2 -0
- package/dist/usd-viewer/bindings/emHdBindings.data +19331 -0
- package/dist/usd-viewer/bindings/emHdBindings.js +12281 -0
- package/dist/usd-viewer/bindings/emHdBindings.wasm +0 -0
- package/dist/usd-viewer/bindings/emHdBindings.worker.js +124 -0
- package/dist/usd-viewer/environments/neutral.hdr +0 -0
- package/dist/usd-viewer/error-handler.js +57 -0
- package/dist/usd-viewer/hydra/HydraPrimitives.js +740 -0
- package/dist/usd-viewer/hydra/TextureRegistry.js +130 -0
- package/dist/usd-viewer/hydra/ThreeJsRenderDelegate.js +65 -0
- package/dist/usd-viewer/index.d.ts +1 -0
- package/dist/usd-viewer/main.js +1018 -0
- package/dist/usd-viewer/usd.html +36 -0
- package/dist/usd-viewer/usdUtils.js +67 -0
- package/package.json +70 -4
- package/server/package.json +14 -0
- package/server/static-server.js +88 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const PREVIEW_MIME='image/jpeg';const PREVIEW_QUALITY=0.7;const MAX_SOCKET_BUFFER=0x4*0x400*0x400;const MAX_QUEUE=0x3;const DOMAIN_ID_TOPIC='/robot_viewer/domain_id';const DOMAIN_ID_TYPE='std_msgs/msg/Int32';const DOMAIN_ID_TIMEOUT_MS=0x1388;const TOPIC_TYPE='sensor_msgs/msg/CompressedImage';const ENCODINGS=[{'format':'jpeg','mime':'image/jpeg','lossy':!![]},{'format':'png','mime':'image/png','lossy':![]},{'format':'webp','mime':'image/webp','lossy':!![]}];const MIME_TO_FORMAT={'image/jpeg':'jpeg','image/png':'png','image/webp':'webp'};const requestedEncoding=()=>ENCODINGS['find'](_0x3dff2d=>_0x3dff2d['format']===cfg['format'])||ENCODINGS[0x0];const formatOfBlob=(_0x5ec4d2,_0x1ff46e)=>MIME_TO_FORMAT[_0x5ec4d2]||_0x1ff46e;let encodingSupport=null;async function probeEncodings(){if(!encodingSupport){const _0x55e441=[];try{const _0x2fa405=new OffscreenCanvas(0x8,0x8);const _0x333b09=_0x2fa405['getContext']('2d');_0x333b09['putImageData'](new ImageData(new Uint8ClampedArray(0x8*0x8*0x4),0x8,0x8),0x0,0x0);for(const _0x358006 of ENCODINGS){let _0x5f5c6b=![];try{const _0x36f746=await _0x2fa405['convertToBlob'](_0x358006['lossy']?{'type':_0x358006['mime'],'quality':0.8}:{'type':_0x358006['mime']});_0x5f5c6b=!!_0x36f746&&_0x36f746['type']===_0x358006['mime'];}catch(_0x573601){_0x5f5c6b=![];}_0x55e441['push']({'format':_0x358006['format'],'supported':_0x5f5c6b});}}catch(_0x56704f){for(const _0x4b0027 of ENCODINGS)_0x55e441['push']({'format':_0x4b0027['format'],'supported':_0x4b0027['format']==='jpeg'});}encodingSupport=_0x55e441;}self['postMessage']({'cmd':'encodings','list':encodingSupport});return encodingSupport;}function bytesToBase64(_0x1e9bda){const _0x15d925=0x8000;let _0x1f2fe0='';for(let _0x28167c=0x0;_0x28167c<_0x1e9bda['length'];_0x28167c+=_0x15d925){_0x1f2fe0+=String['fromCharCode']['apply'](null,_0x1e9bda['subarray'](_0x28167c,_0x28167c+_0x15d925));}return btoa(_0x1f2fe0);}let cfg={'url':'','topic':'','type':TOPIC_TYPE,'frameId':'','rate':0xa,'format':'jpeg','quality':0x50,'preview':![],'previewWidth':0x140};let ws=null;let connected=![];let running=![];let connectionWanted=![];let reconnectTimer=null;let retryDelay=0x7d0;let connectStartedAt=-0x1;let advertisedTopic=null;let gridTimer=null;let queue=[];let pendingNeed=0x0;let encodeInFlight=0x0;let lastNeedAt=0x0;let lastEncodeAt=0x0;let domainId=undefined;let domainIdTimer=null;let domainIdSubscribed=![];let canvas=null;let ctx=null;let previewCanvas=null;let previewCtx=null;let statsTimer=null;const NEED_TIMEOUT_MS=0x5dc;const ENCODE_TIMEOUT_MS=0x1388;const CONNECT_TIMEOUT_MS=0x1388;const stats={'published':0x0,'dropped':0x0,'underruns':0x0,'stalled':0x0,'reconnects':0x0,'payloadBytes':0x0,'encodeMs':0x0,'captureMs':0x0,'rate':0x0,'lastDrop':null};let rateWindow={'start':0x0,'count':0x0};let produceSamples=[];const clampedRate=()=>Math['max'](0x1,Math['min'](0x78,Math['round'](cfg['rate'])||0xa));const ROUND_TRIP_MS=0x3;const MIN_DEPTH=0x2;const targetDepth=()=>{const _0x3cfccc=0x3e8/clampedRate();const _0x1d88b1=produceSamples['length']?Math['max'](...produceSamples):0x0;if(_0x1d88b1<=0x0)return MIN_DEPTH;const _0x6efe43=Math['ceil']((_0x1d88b1+ROUND_TRIP_MS)*1.15/_0x3cfccc);return Math['min'](MAX_QUEUE,Math['max'](MIN_DEPTH,_0x6efe43));};function closeSocket(){stopDomainIdQuery();if(ws){const _0x4ef6f5=ws;_0x4ef6f5['onopen']=null;_0x4ef6f5['onclose']=null;_0x4ef6f5['onerror']=null;try{_0x4ef6f5['close']();}catch(_0x46c81f){}ws=null;}connected=![];advertisedTopic=null;}function scheduleReconnect(){if(!connectionWanted||reconnectTimer)return;reconnectTimer=setTimeout(()=>{reconnectTimer=null;if(running)connect(cfg['url']);},retryDelay);retryDelay=Math['min'](0x2710,retryDelay*0x2);}function connect(_0x11488b){if(ws&&connected&&ws['readyState']===0x1&&cfg['url']===_0x11488b){self['postMessage']({'cmd':'state','connected':!![],'reused':!![]});return;}closeSocket();if(!_0x11488b){self['postMessage']({'cmd':'state','connected':![],'error':'缺少\x20rosbridge\x20地址'});return;}connectStartedAt=performance['now']();try{ws=new WebSocket(_0x11488b);}catch(_0x13f154){self['postMessage']({'cmd':'state','connected':![],'error':String(_0x13f154&&_0x13f154['message']||_0x13f154)});scheduleReconnect();return;}ws['onopen']=()=>{connected=!![];connectStartedAt=-0x1;retryDelay=0x7d0;advertise();queryDomainId();if(running)startGrid();self['postMessage']({'cmd':'state','connected':!![]});};ws['onclose']=()=>{connected=![];connectStartedAt=-0x1;advertisedTopic=null;self['postMessage']({'cmd':'state','connected':![]});scheduleReconnect();};ws['onerror']=()=>{self['postMessage']({'cmd':'state','connected':![],'error':'WebSocket\x20连接错误'});};ws['onmessage']=_0x312c2b=>onSocketMessage(_0x312c2b['data']);}function wsSend(_0x410c27){if(!ws||ws['readyState']!==0x1)return![];try{ws['send'](JSON['stringify'](_0x410c27));return!![];}catch(_0x5217f7){return![];}}function advertise(){if(!connected||!cfg['topic'])return;wsSend({'op':'advertise','id':'advertise:'+cfg['topic'],'type':cfg['type'],'topic':cfg['topic'],'latch':![],'queue_size':0xa,'qos':{'history':'keep_last','depth':0xa,'reliability':'best_effort','durability':'volatile'}});advertisedTopic=cfg['topic'];}function unadvertise(){if(connected&&advertisedTopic){wsSend({'op':'unadvertise','topic':advertisedTopic,'id':'advertise:'+advertisedTopic});}advertisedTopic=null;}function queryDomainId(){if(!connected)return;domainIdSubscribed=!![];domainId=undefined;wsSend({'op':'subscribe','id':'domain-id','topic':DOMAIN_ID_TOPIC,'type':DOMAIN_ID_TYPE,'throttle_rate':0x7d0});if(domainIdTimer)clearTimeout(domainIdTimer);domainIdTimer=setTimeout(()=>{domainIdTimer=null;if(domainId===undefined){domainId=null;self['postMessage']({'cmd':'domainId','value':null});}},DOMAIN_ID_TIMEOUT_MS);}function stopDomainIdQuery(){domainIdSubscribed=![];if(domainIdTimer)clearTimeout(domainIdTimer);domainIdTimer=null;if(ws&&connected&&ws['readyState']===0x1){try{wsSend({'op':'unsubscribe','id':'domain-id','topic':DOMAIN_ID_TOPIC});}catch(_0x4d454b){}}domainId=undefined;}function onSocketMessage(_0xcf43d5){let _0x5881eb=null;try{_0x5881eb=JSON['parse'](_0xcf43d5);}catch(_0x58b8ba){return;}if(!domainIdSubscribed)return;if(!_0x5881eb||_0x5881eb['topic']!==DOMAIN_ID_TOPIC)return;const _0x1098c9=typeof _0x5881eb['msg']==='number'?_0x5881eb['msg']:_0x5881eb['msg']&&_0x5881eb['msg']['data'];if(typeof _0x1098c9!=='number')return;domainId=_0x1098c9;if(domainIdTimer)clearTimeout(domainIdTimer);domainIdTimer=null;self['postMessage']({'cmd':'domainId','value':_0x1098c9});}function startGrid(){stopGrid();rateWindow={'start':performance['now'](),'count':0x0};gridTimer=setInterval(onGrid,0x3e8/clampedRate());}function stopGrid(){if(gridTimer)clearInterval(gridTimer);gridTimer=null;}function onGrid(){if(!connected||!running)return;if(ws&&typeof ws['bufferedAmount']==='number'&&ws['bufferedAmount']>MAX_SOCKET_BUFFER){stats['dropped']++;stats['lastDrop']='socket-backlog';return;}const _0x534628=queue['shift']()||null;if(_0x534628){publish(_0x534628);}else if(stats['published']>0x0||pendingNeed>0x0){stats['underruns']++;}requestFrames();}function requestFrames(){if(!connected)return;const _0x4179d0=targetDepth()-queue['length']-pendingNeed-encodeInFlight;for(let _0x4de80f=0x0;_0x4de80f<_0x4179d0;_0x4de80f++){pendingNeed++;lastNeedAt=performance['now']();self['postMessage']({'cmd':'need'});}}function watchdogStall(_0x2ca755){if(!running)return;if(!connected){if(connectStartedAt>=0x0&&_0x2ca755-connectStartedAt>CONNECT_TIMEOUT_MS){stats['reconnects']++;stats['lastDrop']='connect-timeout';connectStartedAt=-0x1;closeSocket();connect(cfg['url']);}return;}if(pendingNeed>0x0&&_0x2ca755-lastNeedAt>NEED_TIMEOUT_MS){stats['stalled']+=pendingNeed;pendingNeed=0x0;stats['lastDrop']='need-timeout';requestFrames();}if(encodeInFlight>0x0&&_0x2ca755-lastEncodeAt>ENCODE_TIMEOUT_MS){stats['stalled']+=encodeInFlight;encodeInFlight=0x0;stats['lastDrop']='encode-timeout';requestFrames();}}function buildMessage(_0x107e95){const _0x66162b=Date['now']();return{'header':{'stamp':{'sec':Math['floor'](_0x66162b/0x3e8),'nanosec':_0x66162b%0x3e8*0xf4240},'frame_id':cfg['frameId']||''},'format':_0x107e95['format']||requestedEncoding()['format'],'data':_0x107e95['base64']};}function publish(_0x1e3cad){const _0x287762=wsSend({'op':'publish','topic':cfg['topic'],'msg':buildMessage(_0x1e3cad)});if(!_0x287762){stats['dropped']++;stats['lastDrop']='send';return;}stats['published']++;rateWindow['count']++;stats['payloadBytes']=_0x1e3cad['base64']['length'];stats['captureMs']=_0x1e3cad['captureMs']||0x0;stats['encodeMs']=_0x1e3cad['encodeMs']||0x0;stats['format']=_0x1e3cad['format']||'';if(cfg['preview']&&_0x1e3cad['previewBase64']){self['postMessage']({'cmd':'preview','base64':_0x1e3cad['previewBase64'],'mime':PREVIEW_MIME,'width':_0x1e3cad['width'],'height':_0x1e3cad['height'],'previewWidth':_0x1e3cad['pw'],'previewHeight':_0x1e3cad['ph'],'payloadBytes':_0x1e3cad['base64']['length'],'captureMs':_0x1e3cad['captureMs']||0x0});}}function reportStats(){const _0x915268=performance['now']();watchdogStall(_0x915268);const _0x210e68=_0x915268-rateWindow['start'];stats['rate']=_0x210e68>0x0?rateWindow['count']/(_0x210e68/0x3e8):0x0;rateWindow={'start':_0x915268,'count':0x0};stats['queue']=queue['length'];stats['depth']=targetDepth();stats['pendingNeed']=pendingNeed;stats['encodeInFlight']=encodeInFlight;stats['wsState']=ws?ws['readyState']:-0x1;stats['connected']=connected;stats['running']=running;self['postMessage']({'cmd':'stats',...stats,'target':clampedRate()});}async function encodeFrame(_0x4ccbbc){const {buffer:_0x11520c,width:_0x2d51f0,height:_0x599158,captureMs:_0x2625d4}=_0x4ccbbc;const _0x5a6813=performance['now']();try{if(!canvas)canvas=new OffscreenCanvas(_0x2d51f0,_0x599158);else if(canvas['width']!==_0x2d51f0||canvas['height']!==_0x599158){canvas['width']=_0x2d51f0;canvas['height']=_0x599158;}if(!ctx)ctx=canvas['getContext']('2d');ctx['putImageData'](new ImageData(new Uint8ClampedArray(_0x11520c),_0x2d51f0,_0x599158),0x0,0x0);const _0x2ab8e3=requestedEncoding();const _0x42fd50=await canvas['convertToBlob'](_0x2ab8e3['lossy']?{'type':_0x2ab8e3['mime'],'quality':Math['min'](0x1,Math['max'](0.01,(cfg['quality']||0x50)/0x64))}:{'type':_0x2ab8e3['mime']});const _0x3e88dd=new Uint8Array(await _0x42fd50['arrayBuffer']());const _0x3ee74c=formatOfBlob(_0x42fd50['type'],_0x2ab8e3['format']);if(_0x3ee74c!==_0x2ab8e3['format']){stats['lastDrop']='编码回落:'+_0x2ab8e3['format']+'->'+_0x3ee74c;}let _0xd0b97=null;let _0x18a905=0x0;let _0x1845e9=0x0;if(cfg['preview']){const _0x434b1b=Math['max'](0x50,Math['min'](0x280,cfg['previewWidth']||0x140));_0x18a905=Math['min'](_0x434b1b,_0x2d51f0);_0x1845e9=Math['max'](0x1,Math['round'](_0x599158*(_0x18a905/_0x2d51f0)));if(!previewCanvas)previewCanvas=new OffscreenCanvas(_0x18a905,_0x1845e9);else if(previewCanvas['width']!==_0x18a905||previewCanvas['height']!==_0x1845e9){previewCanvas['width']=_0x18a905;previewCanvas['height']=_0x1845e9;}if(!previewCtx)previewCtx=previewCanvas['getContext']('2d');previewCtx['drawImage'](canvas,0x0,0x0,_0x18a905,_0x1845e9);const _0x45f6ec=await previewCanvas['convertToBlob']({'type':PREVIEW_MIME,'quality':PREVIEW_QUALITY});_0xd0b97=bytesToBase64(new Uint8Array(await _0x45f6ec['arrayBuffer']()));}const _0x270f54=performance['now']()-_0x5a6813;produceSamples['push']((_0x2625d4||0x0)+_0x270f54);if(produceSamples['length']>0x8)produceSamples['shift']();queue['push']({'base64':bytesToBase64(_0x3e88dd),'format':_0x3ee74c,'previewBase64':_0xd0b97,'pw':_0x18a905,'ph':_0x1845e9,'width':_0x2d51f0,'height':_0x599158,'captureMs':_0x2625d4,'encodeMs':_0x270f54});if(queue['length']>MAX_QUEUE)queue['shift']();requestFrames();}catch(_0x16c4eb){stats['dropped']++;self['postMessage']({'cmd':'state','connected':connected,'error':'编码失败:\x20'+(_0x16c4eb&&_0x16c4eb['message']?_0x16c4eb['message']:String(_0x16c4eb))});}finally{try{self['postMessage']({'cmd':'buffer','buffer':_0x11520c},[_0x11520c]);}catch(_0x830969){stats['lastDrop']='buffer-return';}}}function applyConfig(_0x3165ff){Object['assign'](cfg,{'url':_0x3165ff['url']||cfg['url'],'topic':_0x3165ff['topic']||cfg['topic'],'type':_0x3165ff['type']||cfg['type'],'frameId':_0x3165ff['frameId']!==undefined?_0x3165ff['frameId']:cfg['frameId'],'rate':_0x3165ff['rate']||cfg['rate'],'format':_0x3165ff['format']||cfg['format'],'quality':_0x3165ff['quality']||cfg['quality'],'preview':_0x3165ff['preview']!==undefined?!!_0x3165ff['preview']:cfg['preview'],'previewWidth':_0x3165ff['previewWidth']||cfg['previewWidth']});}self['onmessage']=_0x208f48=>{const _0x3d10b1=_0x208f48['data']||{};switch(_0x3d10b1['cmd']){case'connect':{applyConfig(_0x3d10b1);connectionWanted=!![];retryDelay=0x7d0;if(reconnectTimer)clearTimeout(reconnectTimer);reconnectTimer=null;connectStartedAt=-0x1;if(!statsTimer)statsTimer=setInterval(reportStats,0x3e8);connect(cfg['url']);probeEncodings();break;}case'disconnect':{running=![];connectionWanted=![];connectStartedAt=-0x1;if(reconnectTimer)clearTimeout(reconnectTimer);reconnectTimer=null;stopGrid();if(statsTimer)clearInterval(statsTimer);statsTimer=null;unadvertise();closeSocket();queue=[];pendingNeed=0x0;encodeInFlight=0x0;self['postMessage']({'cmd':'state','connected':![]});break;}case'start':{applyConfig(_0x3d10b1);running=!![];connectionWanted=!![];retryDelay=0x7d0;if(reconnectTimer)clearTimeout(reconnectTimer);reconnectTimer=null;queue=[];produceSamples=[];pendingNeed=0x0;encodeInFlight=0x0;lastNeedAt=performance['now']();lastEncodeAt=lastNeedAt;connectStartedAt=-0x1;stats['published']=0x0;stats['dropped']=0x0;stats['underruns']=0x0;stats['stalled']=0x0;stats['reconnects']=0x0;stats['lastDrop']=null;if(statsTimer)clearInterval(statsTimer);statsTimer=setInterval(reportStats,0x3e8);connect(cfg['url']);if(connected)startGrid();probeEncodings();break;}case'config':{const _0x442249=clampedRate();const _0x3cde53=cfg['topic'];const _0x3e30f1=cfg['type'];['topic','type','frameId','rate','format','quality','preview','previewWidth']['forEach'](_0xf8392c=>{if(_0x3d10b1[_0xf8392c]!==undefined)cfg[_0xf8392c]=_0x3d10b1[_0xf8392c];});if(cfg['topic']!==_0x3cde53||cfg['type']!==_0x3e30f1){unadvertise();advertise();}if(clampedRate()!==_0x442249)startGrid();break;}case'stop':{running=![];stopGrid();queue=[];pendingNeed=0x0;encodeInFlight=0x0;break;}case'frame':{pendingNeed=Math['max'](0x0,pendingNeed-0x1);lastNeedAt=performance['now']();encodeInFlight++;lastEncodeAt=performance['now']();encodeFrame(_0x3d10b1)['finally'](()=>{encodeInFlight=Math['max'](0x0,encodeInFlight-0x1);});break;}case'noframe':{pendingNeed=Math['max'](0x0,pendingNeed-0x1);lastNeedAt=performance['now']();if(_0x3d10b1['reason'])stats['lastDrop']='no-frame:'+_0x3d10b1['reason'];break;}case'encodings':{if(typeof domainId==='number')self['postMessage']({'cmd':'domainId','value':domainId});probeEncodings();break;}default:break;}};
|
package/dist/favicon.svg
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1762008661611" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1723" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M640 307.2h-85.333333V234.666667c38.4-17.066667 64-55.466667 64-98.133334 0-59.733333-46.933333-106.666667-106.666667-106.666666S405.333333 81.066667 405.333333 136.533333c0 42.666667 25.6 81.066667 64 98.133334v72.533333H384c-153.6 0-277.333333 123.733333-277.333333 277.333333s123.733333 277.333333 277.333333 277.333334h256c153.6 0 277.333333-123.733333 277.333333-277.333334S793.6 307.2 640 307.2z m-128-187.733333c12.8 0 21.333333 8.533333 21.333333 21.333333s-8.533333 21.333333-21.333333 21.333333-21.333333-8.533333-21.333333-21.333333 8.533333-21.333333 21.333333-21.333333z m128 657.066666H384c-106.666667 0-192-85.333333-192-192s85.333333-192 192-192h256c106.666667 0 192 85.333333 192 192s-85.333333 192-192 192z" p-id="1724" fill="#2c2c2c"></path><path d="M362.666667 460.8c-72.533333 0-128 55.466667-128 128s55.466667 128 128 128 128-55.466667 128-128-55.466667-128-128-128z m0 170.666667c-25.6 0-42.666667-17.066667-42.666667-42.666667s17.066667-42.666667 42.666667-42.666667 42.666667 17.066667 42.666666 42.666667-17.066667 42.666667-42.666666 42.666667zM661.333333 460.8c-72.533333 0-128 55.466667-128 128s55.466667 128 128 128 128-55.466667 128-128-55.466667-128-128-128z m0 170.666667c-25.6 0-42.666667-17.066667-42.666666-42.666667s17.066667-42.666667 42.666666-42.666667 42.666667 17.066667 42.666667 42.666667-17.066667 42.666667-42.666667 42.666667zM42.666667 460.8c-25.6 0-42.666667 17.066667-42.666667 42.666667v170.666666c0 25.6 17.066667 42.666667 42.666667 42.666667s42.666667-17.066667 42.666666-42.666667v-170.666666c0-25.6-17.066667-42.666667-42.666666-42.666667zM981.333333 460.8c-25.6 0-42.666667 17.066667-42.666666 42.666667v170.666666c0 25.6 17.066667 42.666667 42.666666 42.666667s42.666667-17.066667 42.666667-42.666667v-170.666666c0-25.6-17.066667-42.666667-42.666667-42.666667zM857.6 904.533333H166.4c-25.6 0-42.666667 17.066667-42.666667 42.666667s17.066667 42.666667 42.666667 42.666667h691.2c25.6 0 42.666667-17.066667 42.666667-42.666667s-21.333333-42.666667-42.666667-42.666667z" p-id="1725" fill="#2c2c2c"></path></svg>
|
|
2
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
let intervalId=null;self['onmessage']=_0x150b3f=>{const {cmd:_0xa9fa09,rate:_0x3998d6}=_0x150b3f['data'];if(_0xa9fa09==='start'){if(intervalId)clearInterval(intervalId);const _0x2afbcf=Math['max'](0x1,Math['min'](_0x3998d6||0xc8,0x1f4));intervalId=setInterval(()=>{self['postMessage']('tick');},0x3e8/_0x2afbcf);}else if(_0xa9fa09==='stop'){if(intervalId){clearInterval(intervalId);intervalId=null;}}};
|