Releases: SuRGeoNix/Flyleaf
Flyleaf v3.7.5 (AIO x64 .NET7 / FFmpeg v5.1.2)
Changelog (v3.7.5)
- Renderer: Fixes an issue when initializing multiple players async
- FlyleafHost.Wpf: Fixes a critical issue with keyboard focus
Changelog (v3.7.4)
FlyleafHost (WPF) Performance/Stability/Compatibility Improvements
- New WinAPI approach which uses proper Parent/Child (SetParent/WS_CHILD) relationship and
removes WS_SYSMENU from style (fixes #257, #265) - thanks to @xmine64 - Fixes compatibility issues such as windows maximizing on the wrong screen or
when running with admin privileges it wouldn't restore from minimize state (fixes #277) - Fixes issues and improves Resize, Attach/Detach and FullScreen
- Adds Corner Radius support for Attached FlyleafHosts
- Introduces FlyleafSharedOverlay which can be used as a top layer (overlay) for multiple FlyleafHosts (fixes #255)
New API
- DetachedShowInTaskbar
- DetachedNoOwner
- BringToFrontOnClick
- BringToFront()
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 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.7.3 (AIO x64 .NET7 / FFmpeg v5.1.2)
Changelog (v3.7.3)
- AudioDecoder: Adds FFmpeg filters support (using embedded atempo for Player speed)
- AudioDecoder: Adds draining support
- AudioDecoder: Performance improvements
- AudioDecoder: Fixes a critical issue with swr_convert
- AudioDecoder: Fixes an issue that it wouldn't respect the Config.Decoder.MaxAudioFrames
- Demuxer: Adds more locks in packet queues to ensure stability
- Player: A/V Sync improvements (calculates the audio device delay)
- Renderer: D3D11 minor performance improvements
Changelog (v3.7.1)
- Demuxer: Open implementation improvements
- Demuxer: Fixes a critical null reference issue with custom I/O streams (Fixes torrents for Sample)
- Renderer: Fixes a dead lock (during Open)
Changelog (v3.7.0)
- Renderer: New implementation for FlyleafVP's pixel shaders which now supports almost all YUV/RGB formats (GPU process instead of SwsScale CPU)
- Demuxer: Improves Url syntax which combines force format with devices in one and allows to pass optons (fmt://$format$[/]?$input$&$options$) to force a specific format for an input and pass options directly
- Demuxer: Fixes an issue when FindStreamInfo is disabled it wouldn't find the video stream
- Demuxer: Fixes an issue with Extension which could cause Remuxer(Downloader/Recorder) to fail
- Engine: Improves Video Cap Devices by including all the supported streams/formats (thanks to @anguzo )
- Player: Allows slower FPS (it could cause issues with 1fps)
- Player: Fixes a null reference issue with AudioOnly screamer
New API
- Config.Demuxer.ForceFormat (to force a specific input format)
- Config.Video.SwsForce (to use Sws instead of FlyleafVP pixel shaders if required)
- Config.Video.SwapForceR8G8B8A8 (to force R8G8B8A8 instead of B8G8R8A8 for the swapchain)
- Config.Audio.FiltersEnabled (if you want to use filters, atempo by default)
- Config.Audio.Filters (to add your filters)
- Player.Audio.UpdateFilter (to update filter's property)
- Player.Audio.ReloadFilters (to reload all the graph filters)
Breaking Changes
- Drops support for FFmpeg v4 (it had different values for AVPixelFormats and could cause issues)
- Drops support for Player.Usage.LowLatencyVideo/ZeroLatencyAudioVideo as they have been replaced with Config.Player.MaxLatency
- Reduces default value for Config.Demuxer.BufferDuration from 2min to 30sec
- Changing speed from 8 down to 1 directly will cause atempo to crash
- Min value changed for Speed from 0.25 to 0.5
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 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.11 (AIO x64 .NET7 / FFmpeg v5.1.2)
Changelog
- DecoderContext: Fixes a rare dead lock while opening a stream and seeking
- Demuxer: Introduces Config.Demuxer.AllowFindStreamInfo which can be disabled for faster opening of the input
- Engine: Adds FFmpeg.Autogen latest 5.1.2.1 support (removes deprecated LoadedLibraries)
- Engine: Improves High Performance Timers for multiple players and enables them only when required
- Updates Vortice
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.10 (AIO x64 .NET7 / FFmpeg v5.1.2)
Changelog (3.6.8-3.6.10)
- Engine: Fixes a possible crashing issue with threading and ObservableCollections (it could happen on audio device changes)
- Player: Changes Zoom from pixels to percentage
- Player: Introduces ZoomIn, ZoomOut based on specific Point
- Config: Changes Player.ZoomOffset from 50 to 10 (as now indicates percentage instead of pixels)
- FlyleafHost (WPF/WinForms): Improves Zoom with Ctrl+MouseWheel to use mouse pointer as center
- FlyleafME: Adds Zoom percentage to pop-up menu
- FlyleafME: Adds Zoom Offset to Settings
- Plugins: Updates BitSwarm
- Plugins: Updates YoutubeDL (exe only)
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.7 (AIO x64 .NET7 / FFmpeg v5.1.2)
Changelog
-
Renderer: Introduces Composition and currently supports CornerRadius windows (thanks to @xmine64)
-
Renderer: Improves D3D11 Pan Move/Zoom and fixes issues when combined with rotation (fixes #241)
-
Renderer: Fixes an idle rendering issue
-
FlyleafHost.Wpf: Introduces CornerRadius
-
FlyleafHost.Wpf: Fixes a possible NPE issue with multiple monitors
-
FlyleafHost.Wpf: Fixes an issue with AllowsTransparency when is already set (thanks to @afunc233)
-
FlyleafME: Fixes an issue during initialization when Overlay is already loaded
-
Samples.FlyleafPlayer: Fixes Player disposal on new window close
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.6 (AIO x64 .NET7 / FFmpeg v5.1.2)
Changelog
- Audio: Introduces SamplesAdded event which informs of the currently playing audio samples
- Demuxer: Programs improvements
- Engine: Boot load performance improvements
- Engine: Introduces StartAsync method and Loaded event which allows faster boot of the application without blocking the UI thread
- FlyleafHost.Wpf: Fixes possible issues with release mouse capture
- FlyleafHost.Wpf: Fullscreen performance improvements
- FlyleafHost.Wpf: In Standalone mode will show the Surface only when the Overlay has been fully loaded
Release Notes / Breaking Changes
- If you use Engine.StartAsync you will need to make sure that it has been fully loaded before initializing a Player/Configuration (use Engine.Loaded event)
- You will need to manually load your assembly that contains embedded plugins after the Engine has been loaded from Engine.Plugins.LoadPlugin(your_assembly)
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.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)