Commit 017bcfe
committed
Add HLS streaming support on Windows via IMFMediaEngine
IMFSourceReader does not support HLS on desktop Win32 apps, so this adds
a dual-path architecture: HLS URLs (.m3u8) use IMFMediaEngine which has
native HLS support on Windows 10+, while all other media continues to
use the existing IMFSourceReader path.
Key changes:
- New HLSPlayer class wrapping IMFMediaEngine with D3D11 frame extraction
- Automatic HLS detection (URL pattern + fallback on source reader error)
- Live stream handling (duration 0, seeking disabled, EOF retry)
- Adaptive bitrate support (resolution re-queried per frame)
- Audio handled internally by the engine (no WASAPI needed for HLS)1 parent 4743724 commit 017bcfe
6 files changed
Lines changed: 925 additions & 18 deletions
File tree
- mediaplayer/src/jvmMain
- kotlin/io/github/kdroidfilter/composemediaplayer/windows
- native/windows
Lines changed: 32 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
564 | 564 | | |
565 | 565 | | |
566 | 566 | | |
567 | | - | |
| 567 | + | |
568 | 568 | | |
569 | 569 | | |
570 | 570 | | |
571 | | - | |
572 | | - | |
573 | | - | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
574 | 577 | | |
575 | 578 | | |
576 | 579 | | |
| |||
684 | 687 | | |
685 | 688 | | |
686 | 689 | | |
687 | | - | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
688 | 696 | | |
689 | 697 | | |
690 | 698 | | |
| |||
724 | 732 | | |
725 | 733 | | |
726 | 734 | | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
727 | 745 | | |
728 | 746 | | |
729 | 747 | | |
| |||
856 | 874 | | |
857 | 875 | | |
858 | 876 | | |
859 | | - | |
| 877 | + | |
| 878 | + | |
| 879 | + | |
| 880 | + | |
| 881 | + | |
860 | 882 | | |
861 | 883 | | |
862 | 884 | | |
| |||
985 | 1007 | | |
986 | 1008 | | |
987 | 1009 | | |
| 1010 | + | |
988 | 1011 | | |
989 | 1012 | | |
990 | 1013 | | |
| |||
1023 | 1046 | | |
1024 | 1047 | | |
1025 | 1048 | | |
1026 | | - | |
| 1049 | + | |
| 1050 | + | |
| 1051 | + | |
1027 | 1052 | | |
1028 | 1053 | | |
1029 | 1054 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
| 36 | + | |
| 37 | + | |
36 | 38 | | |
37 | 39 | | |
38 | 40 | | |
| |||
0 commit comments