Skip to content

Commit a7ffeec

Browse files
committed
Updates to v3.6 (FlyleafLib) / v1.2 (FlyleafME)
Introduces FlyleafHost a new DPI aware, hardware accelerated Direct3D Surface (WPF VideoView's replacement and Flyleaf's for Winforms) * Early and fast initialization of handles and renderer which will also resolve several issues * Adds Attach / Detach functionality * Self Drag Move also on attach mode (within the host's owner bounds) * Drag & Drop Swap between FlyleafHosts (Shift + Drag) * Custom non-borders resizable windows both on attach and detach mode (can keep input's ratio) * Adds Z-order surfaces support * Resolves several issues when the host's rectangle was clipped * Adds support for WPF Windows to the Renderer in addition to WinForms UserControl * Resolves several issues with DPI * Better UI performance overall (including swaps and switching between Normal / Full Screen) Introduces FlyleafME, a WPF Media Element Control (Flyleaf replacement) * Code clean-up and styles / templates to allow easier override and customization * Updated with the new FlyleafHost (old ViewView) and gains better performance with more functionality * Adds Activity Timeout on Settings * Adds Rotation to Popup menu * Fixes several issues with DPI * Fixes issues with Activity / Idle Mode * Fixes an issue to respect Subtitles FontStyle * Updates FlyleafLib Player * Adds Rotation Support (Shift + Wheel) * Fixes a UI threading issue that it could cause Player.Initialization to crash * Fixes Activity / Idle Mode issues * General code clean-up and performance improvements Breaking Changes * VideoView has been renamed to FlyleafHost * Flyleaf (WPF Control) has been renamed to FlyleafME (Media Element) and does not require a FlyleafHost as it was required previously with the VideoView (it derives from it) * Player.IsFullScreen, Config.Player.ActivityTimeout, Config.Player.MouseBindings and Config.Player.KeyBindings.(Enabled/FlyleafWindow) has been transferred to FlyleafHost * Player.ActivityMode has been removed (its the same as ActivityTimeout=0) however Player.Activity.IsEnabled can be used to temporary turn it on/off * Player.Swap has been removed as you can now set directly the Players to FlyleafHosts
1 parent a1e7c85 commit a7ffeec

3 files changed

Lines changed: 63 additions & 33 deletions

File tree

FlyleafLib.Controls.WPF/FlyleafLib.Controls.WPF.csproj

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,28 @@
44
<TargetFrameworks>net6.0-windows;net5.0-windows;net472</TargetFrameworks>
55
<UseWindowsForms>true</UseWindowsForms>
66
<UseWPF>true</UseWPF>
7-
<Version>1.2-pre3</Version>
7+
<Version>1.2</Version>
88
<Authors>SuRGeoNix</Authors>
99
<Copyright>SuRGeoNix © 2022</Copyright>
1010
<PackageLicenseExpression>LGPL-3.0-or-later</PackageLicenseExpression>
1111
<PackageProjectUrl>https://github.com/SuRGeoNix/Flyleaf</PackageProjectUrl>
1212
<PackageIcon>Flyleaf.png</PackageIcon>
1313
<PackageIconUrl />
14-
<PackageTags>flyleaf flyleaflib video audio media player element control</PackageTags>
15-
<Description>WPF Media Player Control/Element (based on FlyleafLib)</Description>
14+
<PackageTags>flyleaf flyleaflib flyleafme video audio wpf media player element control</PackageTags>
15+
<Description>FlyleafME: A WPF Media Element Control (based on FlyleafLib)</Description>
1616
<PackageReleaseNotes>
17-
* Adds Rotation to popup menu
18-
* Updates FlyleafLib
17+
Introduces FlyleafME WPF Media Element Control (Flyleaf replacement)
18+
* Code clean-up and styles / templates to allow easier override and customization
19+
* Updated with the new FlyleafHost (old ViewView) and gains better performance with more functionality
20+
* Adds Activity Timeout on Settings
21+
* Adds Rotation to Popup menu
22+
* Fixes several issues with DPI
23+
* Fixes issues with Activity / Idle Mode
24+
* Fixes an issue to respect Subtitles FontStyle
25+
* Updates FlyleafLib
26+
27+
Breaking Changes
28+
* Flyleaf (WPF Control) has been renamed to FlyleafME (Media Element) and does not require a FlyleafHost as it was required previously with the VideoView (it derives from it)
1929
</PackageReleaseNotes>
2030
</PropertyGroup>
2131

FlyleafLib/FlyleafLib.csproj

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<PackageIconUrl />
99
<RepositoryUrl></RepositoryUrl>
1010
<Description>Media Player .NET Library for WPF/WinForms (based on FFmpeg/DirectX)</Description>
11-
<Version>3.6-pre3</Version>
11+
<Version>3.6</Version>
1212
<Authors>SuRGeoNix</Authors>
1313
<Copyright>SuRGeoNix © 2022</Copyright>
1414
<PackageLicenseExpression>LGPL-3.0-or-later</PackageLicenseExpression>
@@ -17,10 +17,29 @@
1717
<IncludeSymbols>true</IncludeSymbols>
1818
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
1919
<PackageReleaseNotes>
20-
* Player: Adds Rotation support
21-
* Player.Commands: Adds RotationSet
22-
* Renderer: Fixes an issue after Player.Stop
23-
* WPF.FlyleafHost: Fixes issues with Designer, Activity, Resize and Window States
20+
Introduces FlyleafHost a new DPI aware, hardware accelerated Direct3D Surface (WPF VideoView's replacement and Flyleaf's for Winforms)
21+
* Early and fast initialization of handles and renderer which will also resolve several issues
22+
* Adds Attach / Detach functionality
23+
* Self Drag Move also on attach mode (within the host's owner bounds)
24+
* Drag &amp; Drop Swap between FlyleafHosts (Shift + Drag)
25+
* Custom non-borders resizable windows both on attach and detach mode (can keep input's ratio)
26+
* Adds Z-order surfaces support
27+
* Resolves several issues when the host's rectangle was clipped
28+
* Adds support for WPF Windows to the Renderer in addition to WinForms UserControl
29+
* Resolves several issues with DPI
30+
* Better UI performance overall (including swaps and switching between Normal / Full Screen)
31+
32+
Player
33+
* Adds Rotation Support (Shift + Wheel)
34+
* Fixes a UI threading issue that it could cause Player.Initialization to crash
35+
* Fixes Activity / Idle mode issues
36+
* General code clean-up and performance improvements
37+
38+
Breaking Changes
39+
* VideoView has been renamed to FlyleafHost
40+
* Player.IsFullScreen, Config.Player.ActivityTimeout, Config.Player.MouseBindings and Config.Player.KeyBindings.(Enabled/FlyleafWindow) has been transferred to FlyleafHost
41+
* Player.ActivityMode has been removed (its the same as ActivityTimeout=0) however Player.Activity.IsEnabled can be used to temporary turn it on/off
42+
* Player.Swap has been removed as you can now set directly the Players to FlyleafHosts
2443
</PackageReleaseNotes>
2544
</PropertyGroup>
2645

README.md

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# *Flyleaf v3.6*: Media Player .NET Library for WPF / WinForms (based on FFmpeg/DirectX)
1+
# *Flyleaf v3.6*: Media Player .NET Library for WPF / WinForms (based on FFmpeg/DirectX)
22

33
![alt text](Images/Flyleafv3.6.png)
44

@@ -11,43 +11,35 @@
1111
1212
# [Overview]
1313

14-
**Play Everything** <sub>(Audio, Videos, Images, Playlists over any Protocol)</sub>
14+
**Play Everything** <sub>(Audio, Videos, Images, Playlists over any Protocol)</sub>
1515

1616
- *Extends FFmpeg's support for protocols and formats with additional plugins <sub>(YoutubeDL, TorrentBitSwarm)</sub>*
1717
- *Supports custom I/O stream inputs to extend formats support even further if required*
1818

19-
**Play it Smoothly** <sub>(Even with high resolutions 4K / HDR)</sub>
19+
**Play it Smoothly** <sub>(Even with high resolutions 4K / HDR)</sub>
2020

2121
- *Coded from scratch to gain the best possible performance with FFmpeg & DirectX using video acceleration and custom pixel shaders*
2222
- *Threading implementation with efficient cancellation which allows fast open, play, pause, stop, seek and stream switching*
2323

24-
**Develop it Easy**
24+
**Develop it Easy**
2525

2626
- *Provides a DPI aware, hardware accelerated Direct3D Surface (FlyleafHost) which can be hosted as normal control to your application and easily develop above it your own transparent overlay content*
2727
- *All the implementation uses UI notifications (PropertyChanged / ObservableCollection etc.) so you can use it as a ViewModel directly*
2828
- *For WPF provides a Control (FlyleafME) with all the basic UI sub-controls (Bar, Settings, Popup menu) and can be customized with style / control template overrides*
2929

3030
# [Features]
3131

32+
### **FFmpeg**
33+
- *HLS Live Seeking* <sub>Might the 1st FFmpeg player which does that</sub>
34+
- *Pached for [HLS issue](https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=1018)* <sub>Use recommended FFmpeg libraries which can be found on GitHub releases</sub>
35+
- *Supports both FFmpeg v4 and v5* <sub>Even if the library uses FFmpeg.Autogen v4, it supports and you can use v5 **in your application**</sub>
36+
3237
### **Playback**
3338
- *Open / Play / Pause / Stop*
3439
- *Speed / Reverse / Zero-Low Latency*
3540
- *Seek Backward / Forward (Short / Large Step)*
3641
- *Seek to Time / Seek to Frame / Seek to Chapter / Frame Stepping*
3742

38-
### **Audio**
39-
- *Enable / Disable*
40-
- *Device Preference*
41-
- *Add / Remove Delay (Short / Large Step)*
42-
- *Volume (Up / Down / Mute)*
43-
- *Languages support* <sub>System's default languages as priorities for audio streams</sub>
44-
45-
### **Subtitles**
46-
- *Enable / Disable*
47-
- *Add / Remove Delay (Short / Large Step)*
48-
- *Advanced Character Detection and Convert to UTF-8* <sub>SubtitlesConverter plugin</sub>
49-
- *Languages support* <sub>System's default languages as priorities for subtitles streams</sub>
50-
5143
### **Video**
5244
- *Enable / Disable*
5345
- *Device Preference*
@@ -62,6 +54,19 @@
6254
- *VSync*
6355
- *Zero-Copy*
6456

57+
### **Audio**
58+
- *Enable / Disable*
59+
- *Device Preference*
60+
- *Add / Remove Delay (Short / Large Step)*
61+
- *Volume (Up / Down / Mute)*
62+
- *Languages support* <sub>System's default languages as priorities for audio streams</sub>
63+
64+
### **Subtitles**
65+
- *Enable / Disable*
66+
- *Add / Remove Delay (Short / Large Step)*
67+
- *Advanced Character Detection and Convert to UTF-8* <sub>SubtitlesConverter plugin</sub>
68+
- *Languages support* <sub>System's default languages as priorities for subtitles streams</sub>
69+
6570
### **UI Control (FlyleafHost)**<sub>WPF / WinForms (Partialy)</sub>
6671
- *Attach / Detach*
6772
- *Activity / Idle Mode*
@@ -85,13 +90,9 @@
8590
- *TorrentBitSwarm* <sub>Play a media from torrent without the need to download it completely</sub>
8691
- *YoutubeDL* <sub>Play web media that are not accessible directly with HTTP(s)</sub>
8792

88-
### **FFmpeg**
89-
- *HLS Live Seeking* <sub>Might the 1st FFmpeg player which does that</sub>
90-
- *Pached for [HLS issue](https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=1018)* <sub>Use recommended FFmpeg libraries which can be found on the releases</sub>
91-
- *Supports both FFmpeg v4 and v5* <sub>Even if the library uses FFmpeg.Autogen v4, it supports and you can use v5 **in your application**</sub>
92-
9393
### Misc.
94-
- *Mouse & Key Bindings* <sub>All the implementation supports customizable mouse & key bindings which can be assigned to embedded or custom actions (find defaults [here](https://github.com/SuRGeoNix/Flyleaf/wiki/Player-(Key-&-Mouse-Bindings)))</sub>
94+
- *Mouse & Key Bindings* <sub>All the implementation supports customizable mouse & key bindings which can be assigned to an embedded or a custom actions (find defaults [here](https://github.com/SuRGeoNix/Flyleaf/wiki/Player-(Key-&-Mouse-Bindings)))</sub>
95+
- *Audio Player* <sub>Can be used as an audio player only without the need of UI Control</sub>
9596
- *Downloader / Remuxer* <sub>The library can be used also for downloading & remuxing</sub>
9697
- *Extractor* <sub>The library can be used also for extracting video frames (supports also by X frames Step)</sub>
9798

0 commit comments

Comments
 (0)