fix: pack all frames into single blob for IndexedDB storage

Previously each frame was stored as a separate Blob in the Recording
object, causing IndexedDB to hang when writing 100+ blobs in one
transaction. Now all frames are packed into a single binary blob:
  [4B frameCount][per frame: 4B ts, 4B len, JPEG data]

DB version bumped to 2 (old store deleted on upgrade).
PlaybackPanel unpacks frames on demand with a per-recording cache.
This commit is contained in:
2026-08-01 17:03:47 +08:00
parent 3a5f160453
commit a7697fd4a1
7 changed files with 132 additions and 60 deletions
File diff suppressed because one or more lines are too long
+1
View File
File diff suppressed because one or more lines are too long
-1
View File
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -5,8 +5,8 @@
<link rel="icon" href="/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>MJPEG Stream Viewer</title>
<script type="module" crossorigin src="/assets/index-D4W4a1Z1.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-DuJPD2XK.css">
<script type="module" crossorigin src="/assets/index-CW6NDYF0.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-BTgh_FTp.css">
</head>
<body>
<div id="app"></div>