Commit de60fcf
committed
Add hybrid video decoder for frame-accurate stepping
- Implement VideoDecoder abstraction with HTML5 and WebCodecs backends
- Add HybridVideoDecoder to orchestrate automatic decoder switching:
* HTML5 decoder for playback (color accuracy, audio support)
* Mediabunny/WebCodecs decoder for frame-accurate stepping
* Automatic fallback to HTML5-only if WebCodecs unavailable
- Fix frame stepping accuracy issues with keyframe-based HTML5 seeking
- Support VFR videos via sample.duration in WebCodecs decoder
- Add proper VRAM cleanup (sample.close()) and serialized seek queue
- Extract timecode conversion utilities to separate module
- Fix race conditions in decoder initialization
- Update documentation with decoder architecture details
- Replaces previous VideoFrame.js implementation1 parent 5ce6010 commit de60fcf
File tree
18 files changed
+1741
-946
lines changed- client
- public
- src
- __tests__
- lib/player_view
- video-decoder
- lib/player_view
- video-decoder
- doc
18 files changed
+1741
-946
lines changedSome generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | | - | |
| 42 | + | |
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | | - | |
| 49 | + | |
| 50 | + | |
50 | 51 | | |
51 | 52 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
14 | 16 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
312 | 312 | | |
313 | 313 | | |
314 | 314 | | |
315 | | - | |
316 | | - | |
317 | | - | |
318 | | - | |
319 | | - | |
320 | | - | |
321 | | - | |
322 | | - | |
323 | | - | |
324 | | - | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
325 | 318 | | |
326 | 319 | | |
327 | 320 | | |
| |||
1277 | 1270 | | |
1278 | 1271 | | |
1279 | 1272 | | |
1280 | | - | |
| 1273 | + | |
1281 | 1274 | | |
1282 | | - | |
1283 | | - | |
1284 | | - | |
1285 | | - | |
1286 | | - | |
1287 | | - | |
1288 | | - | |
1289 | | - | |
| 1275 | + | |
| 1276 | + | |
| 1277 | + | |
| 1278 | + | |
| 1279 | + | |
| 1280 | + | |
1290 | 1281 | | |
1291 | 1282 | | |
1292 | 1283 | | |
| |||
1543 | 1534 | | |
1544 | 1535 | | |
1545 | 1536 | | |
1546 | | - | |
1547 | | - | |
1548 | | - | |
1549 | | - | |
1550 | | - | |
1551 | | - | |
1552 | | - | |
1553 | | - | |
1554 | | - | |
| 1537 | + | |
| 1538 | + | |
| 1539 | + | |
1555 | 1540 | | |
1556 | 1541 | | |
1557 | 1542 | | |
| |||
0 commit comments