agentroam-runtime-darwin-arm64 0.2.0-preview.64 → 0.2.0-preview.65
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/manifest.json +2 -2
- package/package.json +1 -1
- package/runtime/.next/BUILD_ID +1 -1
- package/runtime/.next/app-build-manifest.json +10 -10
- package/runtime/.next/app-path-routes-manifest.json +1 -1
- package/runtime/.next/build-manifest.json +3 -3
- package/runtime/.next/prerender-manifest.json +1 -1
- package/runtime/.next/required-server-files.json +1 -1
- package/runtime/.next/server/app/_not-found/page.js +1 -1
- package/runtime/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/runtime/.next/server/app/_not-found.html +1 -1
- package/runtime/.next/server/app/_not-found.rsc +1 -1
- package/runtime/.next/server/app/api/agent/abort/route.js +1 -1
- package/runtime/.next/server/app/api/agent/answer/route.js +1 -1
- package/runtime/.next/server/app/api/agent/codex-sharing/route.js +1 -1
- package/runtime/.next/server/app/api/agent/harness/status/route.js +1 -1
- package/runtime/.next/server/app/api/agent/model/route.js +1 -1
- package/runtime/.next/server/app/api/agent/models/route.js +1 -1
- package/runtime/.next/server/app/api/agent/run/route.js +2 -2
- package/runtime/.next/server/app/api/agent/runtime-health/route.js +1 -1
- package/runtime/.next/server/app/api/agent/steer/route.js +1 -1
- package/runtime/.next/server/app/api/agent/stream/route.js +3 -3
- package/runtime/.next/server/app/api/agent-workspaces/[workspaceId]/sessions/route.js +1 -1
- package/runtime/.next/server/app/api/agent-workspaces/route.js +1 -1
- package/runtime/.next/server/app/api/auth/verify/route.js +1 -1
- package/runtime/.next/server/app/api/business/route.js +1 -1
- package/runtime/.next/server/app/api/client-logs/route.js +1 -1
- package/runtime/.next/server/app/api/collaboration/route.js +1 -1
- package/runtime/.next/server/app/api/flow/v1/catalog/route.js +1 -1
- package/runtime/.next/server/app/api/flow/v1/runs/[runId]/cancel/route.js +1 -1
- package/runtime/.next/server/app/api/flow/v1/runs/[runId]/events/route.js +4 -4
- package/runtime/.next/server/app/api/flow/v1/runs/route.js +1 -1
- package/runtime/.next/server/app/api/flow-studio/config/route.js +1 -1
- package/runtime/.next/server/app/api/mcp/connect/route.js +1 -1
- package/runtime/.next/server/app/api/mcp/disconnect/route.js +1 -1
- package/runtime/.next/server/app/api/mcp/servers/route.js +1 -1
- package/runtime/.next/server/app/api/memory/[key]/route.js +1 -1
- package/runtime/.next/server/app/api/memory/route.js +1 -1
- package/runtime/.next/server/app/api/plugins/load/route.js +1 -1
- package/runtime/.next/server/app/api/projects/[id]/route.js +1 -1
- package/runtime/.next/server/app/api/projects/check/route.js +1 -1
- package/runtime/.next/server/app/api/projects/directories/route.js +1 -1
- package/runtime/.next/server/app/api/projects/roots/route.js +1 -1
- package/runtime/.next/server/app/api/projects/route.js +1 -1
- package/runtime/.next/server/app/api/push/subscribe/route.js +2 -2
- package/runtime/.next/server/app/api/push/unsubscribe/route.js +2 -2
- package/runtime/.next/server/app/api/push/vapid/route.js +2 -2
- package/runtime/.next/server/app/api/push/vapid.body +1 -1
- package/runtime/.next/server/app/api/remote-tools/register/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/changes/route.js +2 -2
- package/runtime/.next/server/app/api/sessions/[id]/fork/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/fork-at/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/goals/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/handoff/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/native-goal/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/query-index/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/release/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/thread-goal/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/tool-result/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/route.js +1 -1
- package/runtime/.next/server/app/api/settings/route.js +1 -1
- package/runtime/.next/server/app/api/skills/route.js +1 -1
- package/runtime/.next/server/app/api/tool-policies/[policyId]/route.js +1 -1
- package/runtime/.next/server/app/api/tool-policies/route.js +1 -1
- package/runtime/.next/server/app/api/tools/route.js +1 -1
- package/runtime/.next/server/app/api/update/check/route.js +1 -1
- package/runtime/.next/server/app/api/update/install/route.js +1 -1
- package/runtime/.next/server/app/api/update/status/route.js +1 -1
- package/runtime/.next/server/app/api/web-auth/login/route.js +1 -1
- package/runtime/.next/server/app/api/web-auth/logout/route.js +1 -1
- package/runtime/.next/server/app/api/web-auth/revoke-all/route.js +1 -1
- package/runtime/.next/server/app/api/web-auth/setup/route.js +1 -1
- package/runtime/.next/server/app/api/web-auth/status/route.js +1 -1
- package/runtime/.next/server/app/api/web-console/bootstrap/route.js +1 -1
- package/runtime/.next/server/app/api/web-console/computer-settings/route.js +1 -1
- package/runtime/.next/server/app/api/web-console/computers/route.js +1 -1
- package/runtime/.next/server/app/api/web-console/device-state/route.js +1 -1
- package/runtime/.next/server/app/api/web-console/history/route.js +1 -1
- package/runtime/.next/server/app/api/web-console/preferences/route.js +1 -1
- package/runtime/.next/server/app/web/page.js +4 -4
- package/runtime/.next/server/app/web/page_client-reference-manifest.js +1 -1
- package/runtime/.next/server/app-paths-manifest.json +34 -34
- package/runtime/.next/server/chunks/5303.js +1 -1
- package/runtime/.next/server/middleware-build-manifest.js +1 -1
- package/runtime/.next/server/pages/404.html +1 -1
- package/runtime/.next/server/pages/500.html +1 -1
- package/runtime/.next/server/pages-manifest.json +1 -1
- package/runtime/.next/server/server-reference-manifest.json +1 -1
- package/runtime/.next/static/chunks/216-befe93998f760830.js +1 -0
- package/runtime/.next/static/chunks/app/web/{error-4d3646f97c1344d3.js → error-17e28c153738a003.js} +1 -1
- package/runtime/.next/static/chunks/app/web/layout-60e82f81fa232177.js +1 -0
- package/runtime/.next/static/chunks/app/web/page-9d2cdb1ef9ad40b2.js +1 -0
- package/runtime/.next/static/chunks/{main-app-00dfdb2d5c09719c.js → main-app-a953e6764afe1e60.js} +1 -1
- package/runtime/.next/static/css/1c4153a5b834f93f.css +1 -0
- package/runtime/native/Support.noindex/AgentRoam Remote Desktop.app/Contents/MacOS/agentroam-remote-desktop +0 -0
- package/runtime/native/Support.noindex/AgentRoam Remote Desktop.app/Contents/Resources/agentroam-component.json +1 -1
- package/runtime/native/Support.noindex/AgentRoam Remote Desktop.app/Contents/_CodeSignature/CodeResources +2 -2
- package/runtime/node_modules/.package-lock.json +126 -126
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/bridge.mjs +73 -73
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/browser-sdk.js +32 -32
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/{core-xpxe8nzb.mjs → core-1qw7dszx.mjs} +1 -1
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/core-cz9sh4ze.mjs +40 -0
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/core-nmrdrt5c.mjs +52 -0
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/{core-5682eevd.mjs → core-nxm5bcfb.mjs} +2 -2
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/core.mjs +8 -8
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/extractFromBunfs.js +169 -40
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/manifest.json +21 -22
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/manifest.zst.json +25 -26
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/package.json +14 -14
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/sdk.mjs +56 -56
- package/runtime/node_modules/mediabunny/dist/bundles/mediabunny.cjs +25 -13
- package/runtime/node_modules/mediabunny/dist/bundles/mediabunny.min.cjs +8 -8
- package/runtime/node_modules/mediabunny/dist/bundles/mediabunny.min.mjs +8 -8
- package/runtime/node_modules/mediabunny/dist/bundles/mediabunny.mjs +25 -13
- package/runtime/node_modules/mediabunny/dist/bundles/mediabunny.node.cjs +25 -13
- package/runtime/node_modules/mediabunny/dist/modules/src/isobmff/isobmff-demuxer.js +22 -11
- package/runtime/node_modules/mediabunny/dist/modules/src/matroska/matroska-demuxer.js +27 -11
- package/runtime/node_modules/mediabunny/dist/modules/src/tsconfig.tsbuildinfo +1 -1
- package/runtime/node_modules/mediabunny/dist/modules/src/version.js +1 -1
- package/runtime/node_modules/mediabunny/package.json +1 -1
- package/runtime/node_modules/mediabunny/src/isobmff/isobmff-demuxer.ts +23 -11
- package/runtime/node_modules/mediabunny/src/matroska/matroska-demuxer.ts +30 -11
- package/runtime/node_modules/mediabunny/src/version.ts +1 -1
- package/runtime/package-lock.json +159 -159
- package/runtime/server.js +1 -1
- package/runtime/webapp/dist/assets/{AiHubPane-D1SGdI6y.js → AiHubPane-Cd-7gwJs.js} +1 -1
- package/runtime/webapp/dist/assets/{App-Y_UUrP8i.js → App-DQqv62sH.js} +3 -3
- package/runtime/webapp/dist/assets/{BrowserLivePanel-CapyOwFL.js → BrowserLivePanel-DDrnghqj.js} +1 -1
- package/runtime/webapp/dist/assets/{CollaborationDashboard-CEF41i5J.js → CollaborationDashboard-qQQqXrQI.js} +1 -1
- package/runtime/webapp/dist/assets/{CollaborationPage-C8PN5oNe.js → CollaborationPage-BS3Z5dAy.js} +1 -1
- package/runtime/webapp/dist/assets/{FilePreview-BdB8syBQ.js → FilePreview-C4gxZRtw.js} +3 -3
- package/runtime/webapp/dist/assets/{FileTree-Cf8wDAVy.js → FileTree-DrpruRST.js} +1 -1
- package/runtime/webapp/dist/assets/{FlowStudioPane-DuUmV_ki.js → FlowStudioPane-BjOuLwks.js} +1 -1
- package/runtime/webapp/dist/assets/{RemoteDesktopPage-DBoSlmlh.js → RemoteDesktopPage-B1AGyJrT.js} +1 -1
- package/runtime/webapp/dist/assets/{TerminalPane-B2s2ff23.js → TerminalPane-BxEtw8rn.js} +1 -1
- package/runtime/webapp/dist/assets/{abnfDiagram-VCTEODGH-CQ78RP8v.js → abnfDiagram-VCTEODGH-BHgKdAyZ.js} +1 -1
- package/runtime/webapp/dist/assets/{arc-B4CNFgtV.js → arc-B8zNXyCl.js} +1 -1
- package/runtime/webapp/dist/assets/{architectureDiagram-5GKGNRK7-B-pYUJdJ.js → architectureDiagram-5GKGNRK7-D596eLfj.js} +1 -1
- package/runtime/webapp/dist/assets/{artifact-links-DrWFmMXT.js → artifact-links-DwSH3xn_.js} +1 -1
- package/runtime/webapp/dist/assets/{blockDiagram-I7D4REHJ-CEEpSPhh.js → blockDiagram-I7D4REHJ-C4eZ-RzC.js} +1 -1
- package/runtime/webapp/dist/assets/{c4Diagram-7LVT6UL2-Bq7l-OxC.js → c4Diagram-7LVT6UL2-Cxe44X-3.js} +1 -1
- package/runtime/webapp/dist/assets/channel-8FdPmR58.js +1 -0
- package/runtime/webapp/dist/assets/{chunk-2Q5K7J3B-B2yw0jQL.js → chunk-2Q5K7J3B-D_syaagC.js} +1 -1
- package/runtime/webapp/dist/assets/{chunk-5VM5RSS4-D7AIGjlP.js → chunk-5VM5RSS4-q_wDWTVC.js} +1 -1
- package/runtime/webapp/dist/assets/{chunk-F27PBJKO-_wNxBMaG.js → chunk-F27PBJKO-C5U_ckFK.js} +1 -1
- package/runtime/webapp/dist/assets/{chunk-IMKFNOWR-bMSiSCLu.js → chunk-IMKFNOWR-5a_rZZVM.js} +1 -1
- package/runtime/webapp/dist/assets/{chunk-JWPE2WC7-Zu8gSQip.js → chunk-JWPE2WC7-DR8znCWR.js} +1 -1
- package/runtime/webapp/dist/assets/{chunk-POPQ4Y6H-8G7L6RqL.js → chunk-POPQ4Y6H-3vOXloa3.js} +1 -1
- package/runtime/webapp/dist/assets/{chunk-SVP7TREG-a6VVTk08.js → chunk-SVP7TREG-y9Uxi4pg.js} +1 -1
- package/runtime/webapp/dist/assets/{chunk-TICWLB2K-ddeHMudM.js → chunk-TICWLB2K-Bi7VvqOR.js} +1 -1
- package/runtime/webapp/dist/assets/{chunk-XXDRQBXY-DSuvta0Q.js → chunk-XXDRQBXY-CRpw-5Cj.js} +1 -1
- package/runtime/webapp/dist/assets/classDiagram-ZZMXUADV-CCHBpIvI.js +1 -0
- package/runtime/webapp/dist/assets/classDiagram-v2-VYDZK3BY-CCHBpIvI.js +1 -0
- package/runtime/webapp/dist/assets/{clipboard-DS4Pu9OB.js → clipboard-BKglnESD.js} +1 -1
- package/runtime/webapp/dist/assets/{codeSyntax-BWSPpoSH.js → codeSyntax-Dmbrlor0.js} +1 -1
- package/runtime/webapp/dist/assets/{collaboration-D7MlFa87.js → collaboration-BZSnjFZ-.js} +1 -1
- package/runtime/webapp/dist/assets/{cose-bilkent-JH36ORCC-D1TkGbTC.js → cose-bilkent-JH36ORCC-4JQKrvR5.js} +1 -1
- package/runtime/webapp/dist/assets/{cynefin-OW5HDTMX-CYPV2qwK.js → cynefin-OW5HDTMX-BO4eLWHY.js} +1 -1
- package/runtime/webapp/dist/assets/{cynefinDiagram-5FMLGOSQ-DH8spH6U.js → cynefinDiagram-5FMLGOSQ-Dg-Bt9fs.js} +1 -1
- package/runtime/webapp/dist/assets/{dagre-GXQ25YYZ-Dkv69aQ5.js → dagre-GXQ25YYZ-utMMpYq0.js} +1 -1
- package/runtime/webapp/dist/assets/{diagram-S7CK7UJ4-Gl094s_z.js → diagram-S7CK7UJ4-BUzOnotG.js} +1 -1
- package/runtime/webapp/dist/assets/{diagram-UQ7AKVKN-DKzCe2K6.js → diagram-UQ7AKVKN-Bkesml6e.js} +1 -1
- package/runtime/webapp/dist/assets/{diagram-VSXAHHWV-Dq1LtLSa.js → diagram-VSXAHHWV-P-Qqxnpn.js} +1 -1
- package/runtime/webapp/dist/assets/{diagram-VX7I27RA-CN9QKehv.js → diagram-VX7I27RA-xpyBMRkH.js} +1 -1
- package/runtime/webapp/dist/assets/{diagram-Z3DM3KII-1J67VxEA.js → diagram-Z3DM3KII-FMNqO2NJ.js} +1 -1
- package/runtime/webapp/dist/assets/{ebnfDiagram-PWID7BFC-CRyJYtkK.js → ebnfDiagram-PWID7BFC-D8-cmvEK.js} +1 -1
- package/runtime/webapp/dist/assets/{erDiagram-RLTQ6QDP-C0jVGZ7x.js → erDiagram-RLTQ6QDP-mEgSpGUN.js} +1 -1
- package/runtime/webapp/dist/assets/{file-types-Bi7YTERW.js → file-types-DgQXHGm7.js} +1 -1
- package/runtime/webapp/dist/assets/{flowDiagram-HODETNUW-wm5Kefw0.js → flowDiagram-HODETNUW-DJWXgpoo.js} +1 -1
- package/runtime/webapp/dist/assets/{ganttDiagram-EL5Y4UJY-DN5F7ix3.js → ganttDiagram-EL5Y4UJY-B5HA7Xox.js} +1 -1
- package/runtime/webapp/dist/assets/{gitGraphDiagram-WWUBYQGX-DcpXNY21.js → gitGraphDiagram-WWUBYQGX-CP4Zmize.js} +1 -1
- package/runtime/webapp/dist/assets/index-BReRPZnZ.js +485 -0
- package/runtime/webapp/dist/assets/index-DfpiL3X7.css +1 -0
- package/runtime/webapp/dist/assets/{infoDiagram-27XIBGKW-B1iXrK9c.js → infoDiagram-27XIBGKW-DApDSX70.js} +1 -1
- package/runtime/webapp/dist/assets/{ishikawaDiagram-5VMMS53U-C1jZv655.js → ishikawaDiagram-5VMMS53U-BCYtD2Fm.js} +1 -1
- package/runtime/webapp/dist/assets/{journeyDiagram-3NMN7TZE-BRSFQ0r1.js → journeyDiagram-3NMN7TZE-D3WEyKHq.js} +1 -1
- package/runtime/webapp/dist/assets/{kanban-definition-UXKFOSKX-Cl9je8cc.js → kanban-definition-UXKFOSKX-Q6vb0ZbD.js} +1 -1
- package/runtime/webapp/dist/assets/{layout-CKkSxSc4.js → layout-Bp7cvpx1.js} +1 -1
- package/runtime/webapp/dist/assets/{linear-CC85eD8_.js → linear-4ik7NzLN.js} +1 -1
- package/runtime/webapp/dist/assets/{loader-circle-C63zcjMg.js → loader-circle-BCsj2yyN.js} +1 -1
- package/runtime/webapp/dist/assets/{mermaid.core-DIjc2ZR6.js → mermaid.core-CmhaKXiP.js} +5 -5
- package/runtime/webapp/dist/assets/{mindmap-definition-YA3MSWOX-mJUtqDVt.js → mindmap-definition-YA3MSWOX-DabuuB2q.js} +1 -1
- package/runtime/webapp/dist/assets/{page-bnT1btVj.js → page-Cgp9NEw1.js} +5 -5
- package/runtime/webapp/dist/assets/{pegDiagram-XKGWAZYB-Dt3xAyl2.js → pegDiagram-XKGWAZYB-eIBdAhCQ.js} +1 -1
- package/runtime/webapp/dist/assets/{pieDiagram-E7YTZNPT-DleFmb0m.js → pieDiagram-E7YTZNPT-DUd7f60Q.js} +1 -1
- package/runtime/webapp/dist/assets/{quadrantDiagram-AXDQQJYC-BpeD8UfU.js → quadrantDiagram-AXDQQJYC-BPSqBWPV.js} +1 -1
- package/runtime/webapp/dist/assets/{railroadDiagram-O6MQD6OU-BBQ5ixic.js → railroadDiagram-O6MQD6OU-CHqMz56-.js} +1 -1
- package/runtime/webapp/dist/assets/{requirementDiagram-BXWQKSXE-xO5TSQS3.js → requirementDiagram-BXWQKSXE-BfOzGN7B.js} +1 -1
- package/runtime/webapp/dist/assets/{rotate-ccw-AmWkL3kV.js → rotate-ccw-p76OF6j6.js} +1 -1
- package/runtime/webapp/dist/assets/{rotate-cw-DrY9cGmB.js → rotate-cw-D5iQzT0K.js} +1 -1
- package/runtime/webapp/dist/assets/{sankeyDiagram-P5KCCOFB-Fyt0-RhU.js → sankeyDiagram-P5KCCOFB-BFOPAhWl.js} +1 -1
- package/runtime/webapp/dist/assets/{send-ATfKaKHb.js → send-DdY_K1RT.js} +1 -1
- package/runtime/webapp/dist/assets/{sequenceDiagram-WJ2MYXX4-xkFumv3g.js → sequenceDiagram-WJ2MYXX4-CdQhFjho.js} +1 -1
- package/runtime/webapp/dist/assets/{sizeCapture-INFHLROL-Ch5NIy5j.js → sizeCapture-INFHLROL-BP_2bwHb.js} +1 -1
- package/runtime/webapp/dist/assets/{smartphone-BL3ONtnq.js → smartphone-C2--txxG.js} +1 -1
- package/runtime/webapp/dist/assets/{stateDiagram-D77RDMKH-BYyhiW6f.js → stateDiagram-D77RDMKH-D2_O1o9C.js} +1 -1
- package/runtime/webapp/dist/assets/stateDiagram-v2-MP3YSRHH-b3DtWIlg.js +1 -0
- package/runtime/webapp/dist/assets/{swimlanes-42K2YHIH-Da71LrsA.js → swimlanes-42K2YHIH-BwEWz-Bu.js} +1 -1
- package/runtime/webapp/dist/assets/swimlanesDiagram-VR7AAH4N-CxL0Wh2Z.js +8 -0
- package/runtime/webapp/dist/assets/{timeline-definition-24CTP7MA-BaXSS2__.js → timeline-definition-24CTP7MA-DqDB5dmr.js} +1 -1
- package/runtime/webapp/dist/assets/{trash-2-DBC-hIuM.js → trash-2-CZx0p0L3.js} +1 -1
- package/runtime/webapp/dist/assets/{vennDiagram-4TSXK5OY-D_V4cbSG.js → vennDiagram-4TSXK5OY-Cf4VnZ2O.js} +1 -1
- package/runtime/webapp/dist/assets/{wardleyDiagram-VM6X3IG4-C-31z3KF.js → wardleyDiagram-VM6X3IG4-D9FBNJOU.js} +1 -1
- package/runtime/webapp/dist/assets/{web-Co-fisS2.js → web-BVybOQy8.js} +1 -1
- package/runtime/webapp/dist/assets/{web-C3itPQLn.js → web-CT9Joona.js} +1 -1
- package/runtime/webapp/dist/assets/{x-qYJy8CK-.js → x-COYLzqlQ.js} +1 -1
- package/runtime/webapp/dist/assets/{xychartDiagram-S5SC5T6Z-DKF--ymA.js → xychartDiagram-S5SC5T6Z-BRVtPtRz.js} +1 -1
- package/runtime/webapp/dist/index.html +2 -2
- package/runtime/.next/static/chunks/344-04fd45d8838bfada.js +0 -1
- package/runtime/.next/static/chunks/app/web/layout-c8709c08fb7ad857.js +0 -1
- package/runtime/.next/static/chunks/app/web/page-b876912c109021db.js +0 -1
- package/runtime/.next/static/css/71e679260520d186.css +0 -1
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/core-36zyfan5.mjs +0 -52
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/core-nne0e2ds.mjs +0 -40
- package/runtime/webapp/dist/assets/channel-B0Az_kl0.js +0 -1
- package/runtime/webapp/dist/assets/classDiagram-ZZMXUADV-HNxe_TWF.js +0 -1
- package/runtime/webapp/dist/assets/classDiagram-v2-VYDZK3BY-HNxe_TWF.js +0 -1
- package/runtime/webapp/dist/assets/index-Ddj6oQ7t.js +0 -480
- package/runtime/webapp/dist/assets/index-hju2LxNM.css +0 -1
- package/runtime/webapp/dist/assets/stateDiagram-v2-MP3YSRHH-BbZH2Sb9.js +0 -1
- package/runtime/webapp/dist/assets/swimlanesDiagram-VR7AAH4N-CxBioyEE.js +0 -8
- /package/runtime/.next/static/{4yVGaJwabJff1LDiyzYia → nDZmrx61FQSBYCG7rH1JD}/_buildManifest.js +0 -0
- /package/runtime/.next/static/{4yVGaJwabJff1LDiyzYia → nDZmrx61FQSBYCG7rH1JD}/_ssgManifest.js +0 -0
|
@@ -1699,7 +1699,7 @@ var AC3_SAMPLE_RATES = [48e3, 44100, 32e3];
|
|
|
1699
1699
|
var EAC3_REDUCED_SAMPLE_RATES = [24e3, 22050, 16e3];
|
|
1700
1700
|
|
|
1701
1701
|
// src/version.ts
|
|
1702
|
-
var VERSION = "1.62.
|
|
1702
|
+
var VERSION = "1.62.1";
|
|
1703
1703
|
var VERSIONED_NAME = `Mediabunny v${VERSION}`;
|
|
1704
1704
|
|
|
1705
1705
|
// src/codec-data.ts
|
|
@@ -9143,7 +9143,7 @@ var IsobmffTrackBacking = class {
|
|
|
9143
9143
|
return packet;
|
|
9144
9144
|
}
|
|
9145
9145
|
/** Looks for a packet in the fragments while trying to load as few fragments as possible to retrieve it. */
|
|
9146
|
-
async performFragmentedLookup(startFragment, getMatchInFragment, searchTimestamp, latestTimestamp, options,
|
|
9146
|
+
async performFragmentedLookup(startFragment, getMatchInFragment, searchTimestamp, latestTimestamp, options, stopPos = Infinity, lookupRetryCount = 0) {
|
|
9147
9147
|
const demuxer = this.internalTrack.demuxer;
|
|
9148
9148
|
let currentFragment = null;
|
|
9149
9149
|
let bestFragment = null;
|
|
@@ -9174,6 +9174,7 @@ var IsobmffTrackBacking = class {
|
|
|
9174
9174
|
lookupEntry?.moofOffset ?? 0,
|
|
9175
9175
|
positionCacheEntry?.moofOffset ?? 0
|
|
9176
9176
|
) || null;
|
|
9177
|
+
const lookupTableWins = !!lookupEntry && lookupEntry.moofOffset >= (positionCacheEntry?.moofOffset ?? 0);
|
|
9177
9178
|
let currentPos;
|
|
9178
9179
|
if (!startFragment) {
|
|
9179
9180
|
currentPos = lookupEntryPosition ?? 0;
|
|
@@ -9185,12 +9186,14 @@ var IsobmffTrackBacking = class {
|
|
|
9185
9186
|
currentPos = lookupEntryPosition;
|
|
9186
9187
|
}
|
|
9187
9188
|
}
|
|
9188
|
-
|
|
9189
|
+
const scanStartPos = currentFragment ? currentFragment.moofOffset : currentPos;
|
|
9190
|
+
while (currentPos < stopPos) {
|
|
9189
9191
|
if (currentFragment) {
|
|
9190
9192
|
const trackData = currentFragment.trackData.get(this.internalTrack.id);
|
|
9191
9193
|
if (trackData && trackData.startTimestamp > latestTimestamp) {
|
|
9192
9194
|
break;
|
|
9193
9195
|
}
|
|
9196
|
+
currentFragment = null;
|
|
9194
9197
|
}
|
|
9195
9198
|
const summary = demuxer.fragmentSummaries.get(currentPos);
|
|
9196
9199
|
if (summary && !summary.trackIds.has(this.internalTrack.id)) {
|
|
@@ -9221,16 +9224,19 @@ var IsobmffTrackBacking = class {
|
|
|
9221
9224
|
}
|
|
9222
9225
|
currentPos = boxStartPos + boxInfo.totalSize;
|
|
9223
9226
|
}
|
|
9224
|
-
if (
|
|
9225
|
-
const
|
|
9226
|
-
const
|
|
9227
|
+
if (lookupEntryPosition !== null && (!bestFragment || bestFragment.moofOffset < lookupEntryPosition)) {
|
|
9228
|
+
const step = 1 << lookupRetryCount;
|
|
9229
|
+
const previousEntryTimestamp = lookupTableWins ? this.internalTrack.fragmentLookupTable[lookupEntryIndex - step]?.timestamp : this.internalTrack.fragmentPositionCache[positionCacheIndex - step]?.startTimestamp;
|
|
9230
|
+
const newSearchTimestamp = previousEntryTimestamp ?? -Infinity;
|
|
9227
9231
|
return this.performFragmentedLookup(
|
|
9228
9232
|
null,
|
|
9229
9233
|
getMatchInFragment,
|
|
9230
9234
|
newSearchTimestamp,
|
|
9231
9235
|
latestTimestamp,
|
|
9232
9236
|
options,
|
|
9233
|
-
|
|
9237
|
+
scanStartPos,
|
|
9238
|
+
// So we don't read the same fragments again
|
|
9239
|
+
lookupRetryCount + 1
|
|
9234
9240
|
);
|
|
9235
9241
|
}
|
|
9236
9242
|
if (bestFragment) {
|
|
@@ -12250,7 +12256,7 @@ var MatroskaTrackBacking = class {
|
|
|
12250
12256
|
return packet;
|
|
12251
12257
|
}
|
|
12252
12258
|
/** Looks for a packet in the clusters while trying to load as few clusters as possible to retrieve it. */
|
|
12253
|
-
async performClusterLookup(startCluster, getMatchInCluster, searchTimestamp, latestTimestamp, options,
|
|
12259
|
+
async performClusterLookup(startCluster, getMatchInCluster, searchTimestamp, latestTimestamp, options, stopPos = Infinity, lookupRetryCount = 0) {
|
|
12254
12260
|
const { demuxer, segment } = this.internalTrack;
|
|
12255
12261
|
let currentCluster = null;
|
|
12256
12262
|
let bestCluster = null;
|
|
@@ -12281,6 +12287,7 @@ var MatroskaTrackBacking = class {
|
|
|
12281
12287
|
cuePoint?.clusterPosition ?? 0,
|
|
12282
12288
|
positionCacheEntry?.elementStartPos ?? 0
|
|
12283
12289
|
) || null;
|
|
12290
|
+
const cuePointWins = !!cuePoint && cuePoint.clusterPosition >= (positionCacheEntry?.elementStartPos ?? 0);
|
|
12284
12291
|
let currentPos;
|
|
12285
12292
|
if (!startCluster) {
|
|
12286
12293
|
currentPos = lookupEntryPosition ?? segment.clusterSeekStartPos;
|
|
@@ -12292,12 +12299,14 @@ var MatroskaTrackBacking = class {
|
|
|
12292
12299
|
currentPos = lookupEntryPosition;
|
|
12293
12300
|
}
|
|
12294
12301
|
}
|
|
12295
|
-
|
|
12302
|
+
const scanStartPos = currentCluster ? currentCluster.elementStartPos : currentPos;
|
|
12303
|
+
while ((segment.elementEndPos === null || currentPos <= segment.elementEndPos - MIN_HEADER_SIZE) && currentPos < stopPos) {
|
|
12296
12304
|
if (currentCluster) {
|
|
12297
12305
|
const trackData = currentCluster.trackData.get(this.internalTrack.id);
|
|
12298
12306
|
if (trackData && trackData.startTimestamp > latestTimestamp) {
|
|
12299
12307
|
break;
|
|
12300
12308
|
}
|
|
12309
|
+
currentCluster = null;
|
|
12301
12310
|
}
|
|
12302
12311
|
const summary = segment.clusterSummaries.get(currentPos);
|
|
12303
12312
|
if (summary && !summary.trackIds.has(this.internalTrack.id)) {
|
|
@@ -12361,16 +12370,19 @@ var MatroskaTrackBacking = class {
|
|
|
12361
12370
|
}
|
|
12362
12371
|
currentPos = endPos;
|
|
12363
12372
|
}
|
|
12364
|
-
if (
|
|
12365
|
-
const
|
|
12366
|
-
const
|
|
12373
|
+
if (lookupEntryPosition !== null && (!bestCluster || bestCluster.elementStartPos < lookupEntryPosition)) {
|
|
12374
|
+
const step = 1 << lookupRetryCount;
|
|
12375
|
+
const previousEntryTimestamp = cuePointWins ? this.internalTrack.cuePoints[cuePointIndex - step]?.time : this.internalTrack.clusterPositionCache[positionCacheIndex - step]?.startTimestamp;
|
|
12376
|
+
const newSearchTimestamp = previousEntryTimestamp ?? -Infinity;
|
|
12367
12377
|
return this.performClusterLookup(
|
|
12368
12378
|
null,
|
|
12369
12379
|
getMatchInCluster,
|
|
12370
12380
|
newSearchTimestamp,
|
|
12371
12381
|
latestTimestamp,
|
|
12372
12382
|
options,
|
|
12373
|
-
|
|
12383
|
+
scanStartPos,
|
|
12384
|
+
// So we don't read the same clusters again
|
|
12385
|
+
lookupRetryCount + 1
|
|
12374
12386
|
);
|
|
12375
12387
|
}
|
|
12376
12388
|
if (bestCluster) {
|
|
@@ -1853,7 +1853,7 @@ var Mediabunny = (() => {
|
|
|
1853
1853
|
var EAC3_REDUCED_SAMPLE_RATES = [24e3, 22050, 16e3];
|
|
1854
1854
|
|
|
1855
1855
|
// src/version.ts
|
|
1856
|
-
var VERSION = "1.62.
|
|
1856
|
+
var VERSION = "1.62.1";
|
|
1857
1857
|
var VERSIONED_NAME = `Mediabunny v${VERSION}`;
|
|
1858
1858
|
|
|
1859
1859
|
// src/codec-data.ts
|
|
@@ -9297,7 +9297,7 @@ var Mediabunny = (() => {
|
|
|
9297
9297
|
return packet;
|
|
9298
9298
|
}
|
|
9299
9299
|
/** Looks for a packet in the fragments while trying to load as few fragments as possible to retrieve it. */
|
|
9300
|
-
async performFragmentedLookup(startFragment, getMatchInFragment, searchTimestamp, latestTimestamp, options,
|
|
9300
|
+
async performFragmentedLookup(startFragment, getMatchInFragment, searchTimestamp, latestTimestamp, options, stopPos = Infinity, lookupRetryCount = 0) {
|
|
9301
9301
|
const demuxer = this.internalTrack.demuxer;
|
|
9302
9302
|
let currentFragment = null;
|
|
9303
9303
|
let bestFragment = null;
|
|
@@ -9328,6 +9328,7 @@ var Mediabunny = (() => {
|
|
|
9328
9328
|
lookupEntry?.moofOffset ?? 0,
|
|
9329
9329
|
positionCacheEntry?.moofOffset ?? 0
|
|
9330
9330
|
) || null;
|
|
9331
|
+
const lookupTableWins = !!lookupEntry && lookupEntry.moofOffset >= (positionCacheEntry?.moofOffset ?? 0);
|
|
9331
9332
|
let currentPos;
|
|
9332
9333
|
if (!startFragment) {
|
|
9333
9334
|
currentPos = lookupEntryPosition ?? 0;
|
|
@@ -9339,12 +9340,14 @@ var Mediabunny = (() => {
|
|
|
9339
9340
|
currentPos = lookupEntryPosition;
|
|
9340
9341
|
}
|
|
9341
9342
|
}
|
|
9342
|
-
|
|
9343
|
+
const scanStartPos = currentFragment ? currentFragment.moofOffset : currentPos;
|
|
9344
|
+
while (currentPos < stopPos) {
|
|
9343
9345
|
if (currentFragment) {
|
|
9344
9346
|
const trackData = currentFragment.trackData.get(this.internalTrack.id);
|
|
9345
9347
|
if (trackData && trackData.startTimestamp > latestTimestamp) {
|
|
9346
9348
|
break;
|
|
9347
9349
|
}
|
|
9350
|
+
currentFragment = null;
|
|
9348
9351
|
}
|
|
9349
9352
|
const summary = demuxer.fragmentSummaries.get(currentPos);
|
|
9350
9353
|
if (summary && !summary.trackIds.has(this.internalTrack.id)) {
|
|
@@ -9375,16 +9378,19 @@ var Mediabunny = (() => {
|
|
|
9375
9378
|
}
|
|
9376
9379
|
currentPos = boxStartPos + boxInfo.totalSize;
|
|
9377
9380
|
}
|
|
9378
|
-
if (
|
|
9379
|
-
const
|
|
9380
|
-
const
|
|
9381
|
+
if (lookupEntryPosition !== null && (!bestFragment || bestFragment.moofOffset < lookupEntryPosition)) {
|
|
9382
|
+
const step = 1 << lookupRetryCount;
|
|
9383
|
+
const previousEntryTimestamp = lookupTableWins ? this.internalTrack.fragmentLookupTable[lookupEntryIndex - step]?.timestamp : this.internalTrack.fragmentPositionCache[positionCacheIndex - step]?.startTimestamp;
|
|
9384
|
+
const newSearchTimestamp = previousEntryTimestamp ?? -Infinity;
|
|
9381
9385
|
return this.performFragmentedLookup(
|
|
9382
9386
|
null,
|
|
9383
9387
|
getMatchInFragment,
|
|
9384
9388
|
newSearchTimestamp,
|
|
9385
9389
|
latestTimestamp,
|
|
9386
9390
|
options,
|
|
9387
|
-
|
|
9391
|
+
scanStartPos,
|
|
9392
|
+
// So we don't read the same fragments again
|
|
9393
|
+
lookupRetryCount + 1
|
|
9388
9394
|
);
|
|
9389
9395
|
}
|
|
9390
9396
|
if (bestFragment) {
|
|
@@ -12404,7 +12410,7 @@ var Mediabunny = (() => {
|
|
|
12404
12410
|
return packet;
|
|
12405
12411
|
}
|
|
12406
12412
|
/** Looks for a packet in the clusters while trying to load as few clusters as possible to retrieve it. */
|
|
12407
|
-
async performClusterLookup(startCluster, getMatchInCluster, searchTimestamp, latestTimestamp, options,
|
|
12413
|
+
async performClusterLookup(startCluster, getMatchInCluster, searchTimestamp, latestTimestamp, options, stopPos = Infinity, lookupRetryCount = 0) {
|
|
12408
12414
|
const { demuxer, segment } = this.internalTrack;
|
|
12409
12415
|
let currentCluster = null;
|
|
12410
12416
|
let bestCluster = null;
|
|
@@ -12435,6 +12441,7 @@ var Mediabunny = (() => {
|
|
|
12435
12441
|
cuePoint?.clusterPosition ?? 0,
|
|
12436
12442
|
positionCacheEntry?.elementStartPos ?? 0
|
|
12437
12443
|
) || null;
|
|
12444
|
+
const cuePointWins = !!cuePoint && cuePoint.clusterPosition >= (positionCacheEntry?.elementStartPos ?? 0);
|
|
12438
12445
|
let currentPos;
|
|
12439
12446
|
if (!startCluster) {
|
|
12440
12447
|
currentPos = lookupEntryPosition ?? segment.clusterSeekStartPos;
|
|
@@ -12446,12 +12453,14 @@ var Mediabunny = (() => {
|
|
|
12446
12453
|
currentPos = lookupEntryPosition;
|
|
12447
12454
|
}
|
|
12448
12455
|
}
|
|
12449
|
-
|
|
12456
|
+
const scanStartPos = currentCluster ? currentCluster.elementStartPos : currentPos;
|
|
12457
|
+
while ((segment.elementEndPos === null || currentPos <= segment.elementEndPos - MIN_HEADER_SIZE) && currentPos < stopPos) {
|
|
12450
12458
|
if (currentCluster) {
|
|
12451
12459
|
const trackData = currentCluster.trackData.get(this.internalTrack.id);
|
|
12452
12460
|
if (trackData && trackData.startTimestamp > latestTimestamp) {
|
|
12453
12461
|
break;
|
|
12454
12462
|
}
|
|
12463
|
+
currentCluster = null;
|
|
12455
12464
|
}
|
|
12456
12465
|
const summary = segment.clusterSummaries.get(currentPos);
|
|
12457
12466
|
if (summary && !summary.trackIds.has(this.internalTrack.id)) {
|
|
@@ -12515,16 +12524,19 @@ var Mediabunny = (() => {
|
|
|
12515
12524
|
}
|
|
12516
12525
|
currentPos = endPos;
|
|
12517
12526
|
}
|
|
12518
|
-
if (
|
|
12519
|
-
const
|
|
12520
|
-
const
|
|
12527
|
+
if (lookupEntryPosition !== null && (!bestCluster || bestCluster.elementStartPos < lookupEntryPosition)) {
|
|
12528
|
+
const step = 1 << lookupRetryCount;
|
|
12529
|
+
const previousEntryTimestamp = cuePointWins ? this.internalTrack.cuePoints[cuePointIndex - step]?.time : this.internalTrack.clusterPositionCache[positionCacheIndex - step]?.startTimestamp;
|
|
12530
|
+
const newSearchTimestamp = previousEntryTimestamp ?? -Infinity;
|
|
12521
12531
|
return this.performClusterLookup(
|
|
12522
12532
|
null,
|
|
12523
12533
|
getMatchInCluster,
|
|
12524
12534
|
newSearchTimestamp,
|
|
12525
12535
|
latestTimestamp,
|
|
12526
12536
|
options,
|
|
12527
|
-
|
|
12537
|
+
scanStartPos,
|
|
12538
|
+
// So we don't read the same clusters again
|
|
12539
|
+
lookupRetryCount + 1
|
|
12528
12540
|
);
|
|
12529
12541
|
}
|
|
12530
12542
|
if (bestCluster) {
|
|
@@ -2860,7 +2860,11 @@ class IsobmffTrackBacking {
|
|
|
2860
2860
|
// The timestamp with which we can search the lookup table
|
|
2861
2861
|
searchTimestamp,
|
|
2862
2862
|
// The timestamp for which we know the correct sample will not come after it
|
|
2863
|
-
latestTimestamp, options,
|
|
2863
|
+
latestTimestamp, options,
|
|
2864
|
+
// The position for which we know the correct sample will not come after it
|
|
2865
|
+
stopPos = Infinity,
|
|
2866
|
+
// How many times we've retried due to a faulty lookup table entry
|
|
2867
|
+
lookupRetryCount = 0) {
|
|
2864
2868
|
const demuxer = this.internalTrack.demuxer;
|
|
2865
2869
|
let currentFragment = null;
|
|
2866
2870
|
let bestFragment = null;
|
|
@@ -2886,6 +2890,7 @@ class IsobmffTrackBacking {
|
|
|
2886
2890
|
? this.internalTrack.fragmentPositionCache[positionCacheIndex]
|
|
2887
2891
|
: null;
|
|
2888
2892
|
const lookupEntryPosition = Math.max(lookupEntry?.moofOffset ?? 0, positionCacheEntry?.moofOffset ?? 0) || null;
|
|
2893
|
+
const lookupTableWins = !!lookupEntry && lookupEntry.moofOffset >= (positionCacheEntry?.moofOffset ?? 0);
|
|
2889
2894
|
let currentPos;
|
|
2890
2895
|
if (!startFragment) {
|
|
2891
2896
|
currentPos = lookupEntryPosition ?? 0;
|
|
@@ -2900,13 +2905,15 @@ class IsobmffTrackBacking {
|
|
|
2900
2905
|
currentPos = lookupEntryPosition;
|
|
2901
2906
|
}
|
|
2902
2907
|
}
|
|
2903
|
-
|
|
2908
|
+
const scanStartPos = currentFragment ? currentFragment.moofOffset : currentPos;
|
|
2909
|
+
while (currentPos < stopPos) {
|
|
2904
2910
|
if (currentFragment) {
|
|
2905
2911
|
const trackData = currentFragment.trackData.get(this.internalTrack.id);
|
|
2906
2912
|
if (trackData && trackData.startTimestamp > latestTimestamp) {
|
|
2907
2913
|
// We're already past the upper bound, no need to keep searching
|
|
2908
2914
|
break;
|
|
2909
2915
|
}
|
|
2916
|
+
currentFragment = null; // So we don't process it again next iteration
|
|
2910
2917
|
}
|
|
2911
2918
|
const summary = demuxer.fragmentSummaries.get(currentPos);
|
|
2912
2919
|
if (summary && !summary.trackIds.has(this.internalTrack.id)) {
|
|
@@ -2941,15 +2948,19 @@ class IsobmffTrackBacking {
|
|
|
2941
2948
|
}
|
|
2942
2949
|
currentPos = boxStartPos + boxInfo.totalSize;
|
|
2943
2950
|
}
|
|
2944
|
-
//
|
|
2945
|
-
if (
|
|
2946
|
-
//
|
|
2947
|
-
//
|
|
2948
|
-
//
|
|
2949
|
-
//
|
|
2950
|
-
const
|
|
2951
|
-
const
|
|
2952
|
-
|
|
2951
|
+
// Handle unsatisfactory lookup table entries or position cache entries
|
|
2952
|
+
if (lookupEntryPosition !== null && (!bestFragment || bestFragment.moofOffset < lookupEntryPosition)) {
|
|
2953
|
+
// We found a lookup entry but no fragment from there on that satisfied the match. In this case, let's
|
|
2954
|
+
// search again but using a previous entry of the kind we started from. Each time this happens, we double
|
|
2955
|
+
// the backwards step to perform better (and have more sequential reads) if it takes us a long time to find
|
|
2956
|
+
// the media.
|
|
2957
|
+
const step = 1 << lookupRetryCount;
|
|
2958
|
+
const previousEntryTimestamp = lookupTableWins
|
|
2959
|
+
? this.internalTrack.fragmentLookupTable[lookupEntryIndex - step]?.timestamp
|
|
2960
|
+
: this.internalTrack.fragmentPositionCache[positionCacheIndex - step]?.startTimestamp;
|
|
2961
|
+
const newSearchTimestamp = previousEntryTimestamp ?? -Infinity;
|
|
2962
|
+
return this.performFragmentedLookup(null, getMatchInFragment, newSearchTimestamp, latestTimestamp, options, scanStartPos, // So we don't read the same fragments again
|
|
2963
|
+
lookupRetryCount + 1);
|
|
2953
2964
|
}
|
|
2954
2965
|
if (bestFragment) {
|
|
2955
2966
|
// If we finished looping but didn't find a perfect match, still return the best match we found
|
|
@@ -2141,7 +2141,11 @@ class MatroskaTrackBacking {
|
|
|
2141
2141
|
// The timestamp with which we can search the lookup table
|
|
2142
2142
|
searchTimestamp,
|
|
2143
2143
|
// The timestamp for which we know the correct block will not come after it
|
|
2144
|
-
latestTimestamp, options,
|
|
2144
|
+
latestTimestamp, options,
|
|
2145
|
+
// The position for which we know the correct block will not come after it
|
|
2146
|
+
stopPos = Infinity,
|
|
2147
|
+
// How many times we've retried due to a faulty lookup entry
|
|
2148
|
+
lookupRetryCount = 0) {
|
|
2145
2149
|
const { demuxer, segment } = this.internalTrack;
|
|
2146
2150
|
let currentCluster = null;
|
|
2147
2151
|
let bestCluster = null;
|
|
@@ -2168,6 +2172,7 @@ class MatroskaTrackBacking {
|
|
|
2168
2172
|
? this.internalTrack.clusterPositionCache[positionCacheIndex]
|
|
2169
2173
|
: null;
|
|
2170
2174
|
const lookupEntryPosition = Math.max(cuePoint?.clusterPosition ?? 0, positionCacheEntry?.elementStartPos ?? 0) || null;
|
|
2175
|
+
const cuePointWins = !!cuePoint && cuePoint.clusterPosition >= (positionCacheEntry?.elementStartPos ?? 0);
|
|
2171
2176
|
let currentPos;
|
|
2172
2177
|
if (!startCluster) {
|
|
2173
2178
|
currentPos = lookupEntryPosition ?? segment.clusterSeekStartPos;
|
|
@@ -2182,13 +2187,16 @@ class MatroskaTrackBacking {
|
|
|
2182
2187
|
currentPos = lookupEntryPosition;
|
|
2183
2188
|
}
|
|
2184
2189
|
}
|
|
2185
|
-
|
|
2190
|
+
const scanStartPos = currentCluster ? currentCluster.elementStartPos : currentPos;
|
|
2191
|
+
while ((segment.elementEndPos === null || currentPos <= segment.elementEndPos - MIN_HEADER_SIZE)
|
|
2192
|
+
&& currentPos < stopPos) {
|
|
2186
2193
|
if (currentCluster) {
|
|
2187
2194
|
const trackData = currentCluster.trackData.get(this.internalTrack.id);
|
|
2188
2195
|
if (trackData && trackData.startTimestamp > latestTimestamp) {
|
|
2189
2196
|
// We're already past the upper bound, no need to keep searching
|
|
2190
2197
|
break;
|
|
2191
2198
|
}
|
|
2199
|
+
currentCluster = null; // So we don't process it again next iteration
|
|
2192
2200
|
}
|
|
2193
2201
|
const summary = segment.clusterSummaries.get(currentPos);
|
|
2194
2202
|
if (summary && !summary.trackIds.has(this.internalTrack.id)) {
|
|
@@ -2259,15 +2267,23 @@ class MatroskaTrackBacking {
|
|
|
2259
2267
|
}
|
|
2260
2268
|
currentPos = endPos;
|
|
2261
2269
|
}
|
|
2262
|
-
//
|
|
2263
|
-
if (
|
|
2264
|
-
//
|
|
2265
|
-
//
|
|
2266
|
-
//
|
|
2267
|
-
//
|
|
2268
|
-
|
|
2269
|
-
|
|
2270
|
-
|
|
2270
|
+
// Handle unsatisfactoy cue points or position cache entries
|
|
2271
|
+
if (lookupEntryPosition !== null && (!bestCluster || bestCluster.elementStartPos < lookupEntryPosition)) {
|
|
2272
|
+
// We found a lookup entry but no cluster from there on that satisfied the match. In this case, let's search
|
|
2273
|
+
// again but using a previous entry of the kind we started from. Each time this happens, we double the
|
|
2274
|
+
// backwards step to perform better (and have more sequential reads) if it takes us a long time to find
|
|
2275
|
+
// the media.
|
|
2276
|
+
//
|
|
2277
|
+
// Note that this doesn't only kick for faulty cue points but also for multi-track files where only one
|
|
2278
|
+
// track has cue points. Since we distribute the cue points to the track with none, they might not
|
|
2279
|
+
// accurately reflect where media can be found.
|
|
2280
|
+
const step = 1 << lookupRetryCount;
|
|
2281
|
+
const previousEntryTimestamp = cuePointWins
|
|
2282
|
+
? this.internalTrack.cuePoints[cuePointIndex - step]?.time
|
|
2283
|
+
: this.internalTrack.clusterPositionCache[positionCacheIndex - step]?.startTimestamp;
|
|
2284
|
+
const newSearchTimestamp = previousEntryTimestamp ?? -Infinity;
|
|
2285
|
+
return this.performClusterLookup(null, getMatchInCluster, newSearchTimestamp, latestTimestamp, options, scanStartPos, // So we don't read the same clusters again
|
|
2286
|
+
lookupRetryCount + 1);
|
|
2271
2287
|
}
|
|
2272
2288
|
if (bestCluster) {
|
|
2273
2289
|
// If we finished looping but didn't find a perfect match, still return the best match we found
|