Commit 5f81607
committed
fix(macos): rewrite player state to mirror Windows frame pipeline
Replace the timer-driven frame/position loops with a producer/consumer
coroutine pipeline backed by a drop-oldest channel, content-hash dedup,
and triple-buffered Skia bitmaps to fix tearing and stalls. Drive the
timeline from a dedicated AVPlayer clock poll since AVFoundation reuses
CVPixelBuffers and frame-derived position freezes on low-motion content.
Honor row padding in calculateFrameHash so true pixels are sampled, and
correct display aspect ratio for anamorphic content.1 parent d8dc923 commit 5f81607
2 files changed
Lines changed: 1091 additions & 840 deletions
File tree
- mediaplayer/src/jvmMain/kotlin/io/github/kdroidfilter/composemediaplayer/mac
Lines changed: 13 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
8 | 10 | | |
9 | | - | |
| 11 | + | |
10 | 12 | | |
| 13 | + | |
11 | 14 | | |
12 | 15 | | |
13 | | - | |
14 | | - | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
15 | 24 | | |
16 | 25 | | |
17 | 26 | | |
| |||
0 commit comments