Releases: SuRGeoNix/Flyleaf
Release list
Flyleaf v3.6.5 (AIO x64 .NET7 / FFmpeg v5.1.2)
Changelog
- Player: Improves performance by replacing DateTime with StopWatch for elapsed time calculation
- Player.Activity: Hides mouse cursor only when FlyleafHost is focused
- Renderer: Fixes an issue with Aces/Hable HDRtoSDR method when luminance was less than 1
- Renderer: Fixes a critical issue with the new WndProc subclass (not properly setting the IntPtr during SetWindowSubclass/RemoveWindowSubclass which could cause FailFast exceptions when multiple add/remove subclass for the same Handle)
- FlyleafHost.WinForms: Fixes an issue with Activity Mode (it wouldn't refresh on MouseMove)
- FlyleafHost.Wpf: Proper way to set the Overlay Content and Template through OverlayTemplate DP which fixes performance, design and binding issues during transfer
- FlyleafHost.Wpf: Fixes stability and disposal issues with Surface/Overlay windows (Player will not be disposed only the swap chain which means that the application must manually dispose it)
- FlyleafHost.Wpf: Fixes an issue when Owner window has TopMost=true
Notes
Compiled Libraries, Plugins & Samples
Flyleaf Player Pop-up on first run is to add itself to windows firewall for proper yt-dlp and bitswarm playback
Flyleaf Downloader
Flyleaf Extractor
Flyleaf Plugins yt-dlp is detected as a virus
FFmpeg Libraries 4.4.2 and 5.1.2 (29/11/2022) patched for HLS issue
FFmpeg Devices You need to manually enable them from the Flyleaf.Engine.xml (set FFmpegDevices to true)
Flyleaf v3.6.3 (AIO x64 .NET7 / FFmpeg v5.1.2)
Changelog (v3.6.3)
- Demuxer: Fixes issues with reverse playback and minor issue with remuxer's extension
- Decoder: Fixes Frame Stepping with formats that allow timestamp discontinuities
- Remuxer: Fixes critical issues while dts/pts having no value (AV_NOPTS_VALUE)
- Player: Improves recording, reverse playback and frame stepping
- Player.Screamer: Better handling of wrong video timestamps (even when audio timestamps are normal)
Changelog (v3.6.2)
- Demuxer: Adds HLS Live Seek support for FFmpeg v5.1.2 and drops supports for older versions
- Demuxer: Introduces StartRealTime
- Demuxer: Fixes seeking issue to the very beginning (0)
- Engine: Introduces Config.FFmpegHLSLiveSeek to manually enable HLS Live Seek (disabled by default as it can cause critical issues if the version doesn't match with the HLSContext structure)
- Player: Fixes (slow performance) an issues with Frame Stepping backwards on MPEG-TS formats (FFmpeg fails to properly seek backwards)
- Renderer: Fixes Aspect Ratio on 90 and 270 degrees angle Rotation
- Renderer: Fixes Rotation for Flyleaf video processor (wasn't rotating clock-wise)
- FlyleafHost.Wpf: Adds MouseBindings dependency property to easy enable or disable them
- FlyleafME: Adds Porfile Mismatch to Video Settings
- PlayerDebug: Adds Rotation and Porfile Mismatch
- NuGet: Adds .NET 7 and drops .NET 5 support
Solution
- Updates FFmpeg libraries to v5.1.2 (patched)
- Updates FFmpeg.Autotgen to v5.1.1 for Samples/Tests
- Updates to C# 11 language version
- Adds .NET 7 and drops .NET 5 support for Samples/Tests
- Includes Publish Profiles for Sample releases
Notes
Compiled Libraries, Plugins & Samples
Flyleaf Player Pop-up on first run is to add itself to windows firewall for proper yt-dlp and bitswarm playback
Flyleaf Downloader
Flyleaf Extractor
Flyleaf Plugins yt-dlp is detected as a virus
FFmpeg Libraries 4.4.2 and 5.1.2 (29/11/2022) patched for HLS issue
FFmpeg Devices You need to manually enable them from the Flyleaf.Engine.xml (set FFmpegDevices to true)
Flyleaf v3.6.1 (AIO x64 .NET6 with FFmpeg v4 / v5)
Changelog
-
VideoDecoder: Fixes a rare issue with keyframes
-
Player: Improves buffering cancellation while seeking but still gives few ms to show one frame
-
Renderer: Becomes completely independent from WPF/WinForms and requires only a Window Handle (IntPtr)
-
Renderer: GPUAdapters clean-up and improvements (adds Engine.Video.Screens)
-
Renderer: Restores WARP device fallback
-
FlyleafHost.Wpf: Adds some support for multi-monitors
-
FlyleafHost.Wpf: Fixes a bug during restore from maximized
-
FlyleafME: Transfers subtitles/video Popup menus to FlyleafBar (it was causing an Activity mode issue)
-
FlyleafME: Fixes icons for Popup Menu
-
YoutubeDL: Fixes an issue with video stream suggestion
-
YoutubeDL: Fixes an issue with IPv4/IPv6 between yt-dlp and ffmpeg
-
FlyleafPlayer: Extends FlyleafME's Popup Menu (Open/Close Window, Always On Top & Ratio Resize)
Notes
Compiled Libraries, Plugins & Samples
Flyleaf Player Pop-up on first run is to add itself to windows firewall for proper yt-dlp and bitswarm playback
Flyleaf Downloader
Flyleaf Extractor
Flyleaf Plugins yt-dlp is detected as a virus
FFmpeg Libraries 4.4.2 and 5.0.1 (30/5/2022) patched for HLS issue
FFmpeg Devices You need to manually enable them from the Flyleaf.Engine.xml (set FFmpegDevices to true)
Flyleaf v3.6 (AIO x64 .NET6 with FFmpeg v4 / v5)
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
Notes
Compiled Libraries, Plugins & Samples
Flyleaf Player | Note: Pop-up on first run is to add itself to windows firewall for proper yt-dlp and bitswarm playback
Flyleaf Downloader
Flyleaf Extractor
Flyleaf Plugins | Note: yt-dlp is detected as a virus
FFmpeg Libraries | Note: 4.4.2 and 5.0.1 (latest 30/5/2022) patched for HLS issue
FFmpeg Devices | Note: You need to manually enable them from the Flyleaf.Engine.xml (set FFmpegDevices to true)
Flyleaf v3.6-pre2 (AIO x64 .NET6 with FFmpeg v4/v5)
-= Re-designing of UI Controls (Focus on WPF) =-
New Features / Resolved Issues
- Introduces FlyleafHost Renderer D3D Surface (WPF VideoView's replacement and Flyleaf's for Winforms)
Early and fast initialization of handles and renderer which will also resolve several issues (related to #204)
Adds Attach / Detach functionality
Self Drag Move also on attach mode (within the host's owner bounds)
Drag n Drop Swap between FlyleafHosts (Shift + Drag)
Custom non-borders resizable windows both on attach and detach mode
Adds support for resize based on Player's aspect ratio
Better UI Performance overall (including Swaps and Switching between Normal to Full Screen)
Adds Z-order surfaces support (related to #149)
Adds support for WPF Windows to the Renderer in addition to WinForms UserControl
Resolves several issues when the host's rectangle was clipped (related to #170)
- Introduces FlyleafME WPF Media Element Control (WPF Flyleaf Control replacement)
Updated with the new FlyleafHost and gains better performance
Code clean-up and styles to allow easier override and customization
Early initialization and respect to the provided configuration (such as Activity Timeout, UI Refresh, Key bindings etc.)
Fixes an issue to respect Subtitles FontStyle
Adds Activity Timeout on Settings
- Code clean-up and performance improvements
- Resolves several issues with DPI (related to #197)
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 (see .cs)
- Player.ActivityMode has been removed (its the same as ActivityTimeout=0) however Player.Activity.IsEnabled to temporary turn it on/off
- Swap has been removed as you can now set directly the Players to FlyleafHosts
Solutions Changes
- FlyleafPlayer (WPF Control) (WPF) [Demo/Sample Release] has been updated with new style based on FlyleafME
- FlyleafPlayer (WPF Control) (WinForms) has been removed and it will be reviewed if required in the future
- FlyleafPlayer has been removed as a new repository will be created soon
- WpfFlyleafHost new Test (sample) added for the new FlyleafHost control (ideal for beta testers)
- Utils and Logger has been transferred to new folder under Utils
- Forces C# lang ver 7.3 to make sure everything is compatible with .net framework
New FlyleafHost Sample Usage for WPF (see Controls/WPF/FlyleafHost.cs and WpfFlyleafHost test/sample for more details):
<fl:FlyleafHost Player="{Binding Player1}" Margin="300 200 0 0" Width="140" Height="110" VerticalAlignment="Top" HorizontalAlignment="Left"
AttachedDragMove="Surface" AttachedResize="Overlay"
DetachedDragMove="Both" DetachedResize="Overlay" DetachedTopMost="True"
IsAttached="False"
KeepRatioOnResize="True"
DetachedRememberPosition="True" DetachedRememberSize="True"
DetachedFixedPosition="100 100" DetachedFixedSize="350 200"
DetachedPosition="BottomRight" DetachedPositionMargin="0 0 10 50"
PanMoveWithCtrl="None" PanZoomWithCtrlWheel="None"
>
<fl:FlyleafHost.DetachedContent>
<Border DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type fl:FlyleafHost}}}" BorderBrush="DarkBlue" BorderThickness="4">
<Border.Style>
<Style TargetType="Border">
<Setter Property="Visibility" Value="Visible"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsAttached}" Value="True">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<StackPanel>
<TextBlock Text="Detached" Foreground="DarkRed" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<ToggleButton Content="Attach / Detach" Foreground="DarkRed" Background="Black" IsChecked="{Binding IsAttached, Mode=TwoWay}" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</StackPanel>
</Border>
</fl:FlyleafHost.DetachedContent>
<Border BorderBrush="DarkBlue" BorderThickness="4">
<ToggleButton Content="Attach / Detach" Foreground="DarkRed" Background="Black" IsChecked="{Binding IsAttached, Mode=TwoWay}" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Border>
</fl:FlyleafHost>Compiled Libraries, Plugins & Samples
Flyleaf Player | Note: Pop-up on first run is to add itself to windows firewall for proper yt-dlp and bitswarm playback
Flyleaf Downloader
Flyleaf Extractor
Flyleaf Plugins | Note: yt-dlp is detected as a virus
FFmpeg Libraries | Note: 4.4.2 and 5.0.1 (latest 30/5/2022) patched for HLS issue
FFmpeg Devices | Note: You need to manually enable them from the Flyleaf.Engine.xml (set FFmpegDevices to true)
Flyleaf v3.5.10 (AIO x64 .NET6 with FFmpeg v4/v5)
Compiled Libraries, Plugins & Samples
Flyleaf Player | Note: Pop-up on first run is to add itself to windows firewall for proper yt-dlp and bitswarm playback
Flyleaf Downloader
Flyleaf Extractor
Flyleaf Plugins | Note: yt-dlp is detected as a virus
FFmpeg Libraries | Note: 4.4.2 and 5.0.1 (latest 30/5/2022) patched for HLS issue
FFmpeg Devices | Note: You need to manually enable them from the Flyleaf.Engine.xml (set FFmpegDevices to true)
- Engine: Fixes an issue with engine's thread for stats calculation while using multiple players
- Config: Adds Config.Subtitles.Parser for custom formatting/parsing
- Config: Adds Config.Player.MaxLatency for the new low latency with audio implementation which is embedded to default AVS usage
- Player: Fixes a thread safety issue during Stop and Open/OpenAsync/Config.Video.AspectRatio change
- Player: Adds Usage.ZeroLatencyAudioVideo for another low latency which supports audio with (no respect to min buffer or max latency)
- Player: Improves speed playback
- Plugins: Improves handling with media file extensions
- Renderer: Fixes a rendering issue while the Player was buffering (no layout update)
- VideoView: Fixes an issue with jitter while dragging (DPI)
- VideoView: Fixes an issue with Subscribe Events on early player assignment (mainly for front window)
- VideoView: Fixes an issue with front window's visibility
- VideoView: Fixes an issue with early actions (eg. swapping when collapsed in a tab control) before the template has been applied by creating winforms control earlier
- Controls.WPF: Includes the new Max Latency in Settings
- Controls.WPF: Updates FlyleafLib, MaterialDesign and Dragablz
Flyleaf v3.5.8 (AIO x64 .NET6 with FFmpeg v4/v5)
Compiled Libraries, Plugins & Samples
Flyleaf Player | Note: Pop-up on first run is to add itself to windows firewall for proper yt-dlp and bitswarm playback
Flyleaf Downloader
Flyleaf Extractor
Flyleaf Plugins | Note: yt-dlp is detected as a virus
FFmpeg Libraries | Note: 4.4.2 and 5.0.1 (latest 30/5/2022) patched for HLS issue
FFmpeg Devices | Note: You need to manually enable them from the Flyleaf.Engine.xml (set FFmpegDevices to true)
- Player: Introduces TakeSnapshotToBitmap and renames old TakeSnapshot to TakeSnapshotToFile
- Player: Fixes a critical issue with playlists (switching between playlist streams)
- Renderer: Fixes issues and improves GetBitmap
- Logger: Improves file writer with caching and by avoiding writing to file from UI thread
- Engine.Config: Introduces LogCachedLines to set cached lines before writing/flushing to file
- Plugins.YoutubeDL: Fixes an issue with invalid filename on windows systems
- Updates Vortice
- Controls.WPF: Introduces ThemeLoaded event to properly manually change theme colors if required
Flyleaf v3.5.7 (AIO x64 .NET6 with FFmpeg v5)
Compiled Libraries, Plugins & Samples
Flyleaf Player | Note: Pop-up on first run is to add itself to windows firewall for proper yt-dlp and bitswarm playback
Flyleaf Downloader
Flyleaf Extractor
Flyleaf Plugins | Note: yt-dlp is detected as a virus
FFmpeg Libraries | Note: 4.4.2 and 5.0.1 (latest 30/5/2022) patched for HLS issue
FFmpeg Devices | Note: You need to manually enable them from the Flyleaf.Engine.xml (set FFmpegDevices to true)
- Overall: UI update improvements
- VideoView: Fixes an issue with WindowsFormsHost and Front Window within a Scroll Viewer
- Renderer: Introduces Player.renderer.GetBitmap which can be used in parallel with rendering to retrieve (and resize if required) a gpu texture
- TakeSnapshot: Improvements and adds resize on gpu support
- Languages: Better handling of audio, subtitles and online subtitles languages (using windows cultures)
- Config: Introduces Config.Video.ClearScreenOnOpen to allow the last frame to be presented until the new open has been completed
- Config: Introduces Config.Video.Swap10Bit to use 10-bit instead of 8-bit swap chain
- Config: Introduces Config.Video.SwapBuffers to manually set render's swap chain buffers
- Controls.WPF: Fixes UIConfig to properly save for subtitles FontWeight, FontStyle and FontStretch
Flyleaf v3.5.6 (AIO x64 .NET6 with FFmpeg v5)
Compiled Libraries, Plugins & Samples
Flyleaf Player | Note: Pop-up on first run is to add itself to windows firewall for proper yt-dlp and bitswarm playback
Flyleaf Downloader
Flyleaf Extractor
Flyleaf Plugins | Note: yt-dlp is detected as a virus
FFmpeg Libraries | Note: 4.4.2 and 5.0.1 (latest 30/5/2022) patched for HLS issue
FFmpeg Devices | Note: You need to manually enable them from the Flyleaf.Engine.xml (set FFmpegDevices to true)
- Config: Fixes clone implementation
- Demuxer/Screamer: Improves EOF without raising errors in some cases
- M3UPlaylist: Fixes an issue with Tags
- Mouse: Fixes an issue with WinMoveOnDrag (sometimes it was moving the window when it should not)
- Remuxer: Fixes a possible issue with TS extension by adding it manually on the demuxer
- Renderer: Allows D3D11 to play HDR videos (even if does not support it yet) when forced as VP
- VideoView: Binds VideoViews visibility with the Foreground Window
- Controls.WPF: Fixes Subtitles Fonts to respect FontFamily configuration
- Controls.WPF: Fixes an issue with Custom Aspect Ratio
Flyleaf v3.5.2 (AIO x64 .NET6) - Includes latest ffmpeg 4/5 patched libraries
Compiled Libraries, Plugins & Samples
Flyleaf Player | Note: Pop-up on first run is to add itself to windows firewall for proper yt-dlp and bitswarm playback
Flyleaf Downloader
Flyleaf Extractor
Flyleaf Plugins | Note: yt-dlp is detected as a virus
FFmpeg Libraries | Note: 4.4.2 and 5.0.1 (latest 30/5/2022) patched for HLS issue
- Adds FFmpeg 5 support
Just add FFmpeg.Autogen v5 NuGet package to your application
- Adds FFmpeg devices support
- Requires avdevices/avfilters/postproc dlls
- Set FFmpegDevices engine's config to true
- List of available Audio/Video Cap Devices can be found in Engine.Audio/Engine.Video
- Introduces new scheme device://[device_name]?[FFmpeg_Url]
Sample device urls:
device://gdigrab?desktop
device://gdigrab?title=Command Prompt
device://dshow?video=Lenovo Camera
device://dshow?audio=Microphone (Relatek):video=Lenovo Camera
Notes:
- Remuxer (Recording/Downloader) might not support the output format context (it will require transcoding)
- To use with the sample version make sure you edit Flyleaf.Engine.xml and set FFmpegDevices to true (check log file for available cap devices)
- Fixes and improves activity mode
- Fixes an issue with Alt+F4 on VideoView's front window