Releases: SuRGeoNix/Flyleaf
Flyleaf v3.9.5 (AIO x64 .NET10 / FFmpeg v8)
Changelog
- Engine.Logger: Adds File Rolling support [Thanks @coldays]
- Engine.Config: Introduces LogRollMaxFileSize and LogRollMaxFiles for the new File Rolling impelementation
- Demuxer: Fixes an issue with Data streams that would be falsely included as Misc/Invalid streams instead
- VideoDecoder: Stability and Performance improvements for Open/Setup implementation
- Renderer.VideoProcessor: Fixes an issue with cropping not refreshing the layout
- Player: Introduces OpeningVideoStream event which fires during VideoDecoder's codec open
- Player.Video: Codec now returns the actual codec's name in use by the decoder
- FlyleafHost.Wpf: Fixes an issue with MouseWheel event for attached hosts would fire twice causing Zoom and Rotation to not work properly
- Plugins.YoutubeDL: Attempt for few fixes (mainly for audio languages on youtube)
- Samples.FlyleafPlayer: Introduces GeneralConfig.AllowTransparency which enables transparency support
Breaking Changes
- Config.Decoder: Defaults AllowProfileMismatch back to false as it seems that it causes more issues than it resolves
Package Contents
FlyleafPlayer Pop-up on first run is to add itself to windows firewall for proper yt-dlp and bitswarm playback
Plugins
- OpenSubtitlesOrg
- SubtitlesConverter
- TorrentBitSwarm
- YoutubeDL
FFmpeg v8.0 (d8605a6)
- Patched for HLS issue
- Patched for .NET issue
- No encoders
Flyleaf v3.9.4 (AIO x64 .NET10 / FFmpeg v8)
Changelog
- Engine: Prevents enumeration of A/V capture devices during start to avoid delays
- VideoDecoder/VideoStream: Fixes an issue while FFmpeg announces 60.00x fps instead of 60fps that could cause video decoder to drop frames (based on Config.Video.MaxOutputFps limit)
- Player.ScreamerVASD: Adds an ~60 FPS idle renderer embedded during playback to provide smoother resize and filter updates when the source FPS or speed is low
- Player.Audio: Few stability improvements (mainly for non-analyzed inputs)
Breaking Changes
- Engine: A/V captures devices will require manual enumeration with Engine.Audio/Video.RefreshCapDevices() if needed
- Config.Decoder: Defaults MaxAudioFrames from 10 to 5 for better syncing, smooth speed changes and resolves possible issues with MaxLatency
Package Contents
FlyleafPlayer Pop-up on first run is to add itself to windows firewall for proper yt-dlp and bitswarm playback
Plugins
- OpenSubtitlesOrg
- SubtitlesConverter
- TorrentBitSwarm
- YoutubeDL
FFmpeg v8.0 (d8605a6)
- Patched for HLS issue
- Patched for .NET issue
- No encoders
Flyleaf v3.9.3 (AIO x64 .NET10 / FFmpeg v8)
Changelog
- Config.Decoder: Introduces AudioCodec/VideoCodec/SubtitlesCodec to allow forcing the codec
- Config.Decoder: Introduces AllowDropFrames which handles decoder's skip_frame and AV_CODEC_FLAG_LOW_DELAY/AV_CODEC_FLAG2_FAST for low latency
- Config.Decoder: Introduces KeyFrameValidation which ensures no artifacts on some broken formats
- VideoDecoder: Fixes a possible issue with frame drops (with network streams) at decoder level
- Renderer.Present: Fixes an issue with ClearScreen when forced
- Renderer.PixelShader: Switching from OMSetBlendState to custom PixelShader alpha blending to avoid double blend with transparency
- Player.CurTime: Improves seeking forward when it has a chance to find it in cache
- FlyleafHost.Wpf: Adds full transparency support for media with alpha channel (through VideoBackground and Config.Video.BackgroundColor)
- FlyleafHost.Wpf: Introduces VideoBackground for Surface's Background color (deprecates Config.Video.BackgroundColor for this purpose)
- Updates Vortice / MaterialDesignThemes / WindowsAppSDK
Package Contents
FlyleafPlayer Pop-up on first run is to add itself to windows firewall for proper yt-dlp and bitswarm playback
Plugins
- OpenSubtitlesOrg
- SubtitlesConverter
- TorrentBitSwarm
- YoutubeDL
FFmpeg v8.0 (d8605a6)
- Patched for HLS issue
- Patched for .NET issue
- No encoders
Flyleaf v3.9.2 (AIO x64 .NET10 / FFmpeg v8)
Changelog
- Adds .NET 10 support
- Renderer.SwapChain: Fixes an issue during initialization (could cause black screens and wrong aspect ratios during initialize/swap)
- Renderer.Present: Respects Config.Video.ClearScreen and avoids clearing the screen when not set
- Player: Fixes a crashing issue for Audio only
Package Contains (x64)
FlyleafPlayer Pop-up on first run is to add itself to windows firewall for proper yt-dlp and bitswarm playback
Plugins
- OpenSubtitlesOrg
- SubtitlesConverter
- TorrentBitSwarm
- YoutubeDL
FFmpeg v8.0 (d8605a6)
- Patched for HLS issue
- Patched for .NET issue
- No encoders
Flyleaf v3.9.1 (AIO x64 .NET8 / FFmpeg v8)
Changelog
- Player.ScreamerVASD: Fixes/Improves MaxLatency with the new implementation
- Player.ScreamerVASD: Simplifies/Improves GetBufferedDuration calculation
- Player.Screamers: Few Fixes/Improvements with the new implementation
- Renderer: Fixes a critical crash issue during initialization when handle/control has not been assigned yet
- Renderer.Present: Fixes possible issues with locks to ensure stability
- AudioFrame: Attaches speed on audio frame which handles better speed changes
Package Contains (x64)
FlyleafPlayer Pop-up on first run is to add itself to windows firewall for proper yt-dlp and bitswarm playback
Plugins
- OpenSubtitlesOrg
- SubtitlesConverter
- TorrentBitSwarm
- YoutubeDL
FFmpeg v8.0 (d8605a6)
- Patched for HLS issue
- Patched for .NET issue
- No encoders
Flyleaf v3.9 (AIO x64 .NET8 / FFmpeg v8)
Major A/V (Playback & Rendering) Improvements
Significant A/V performance and stability upgrades resulting in no tearing, fewer dropped frames (even on high refresh rates) and no audio crackling.
Core Changes
-
Switched from DXGI swapchain to DirectComposition (DComp) with WS_EX_NOREDIRECTIONBITMAP, bypassing the WPF/WinForms/WinUI rendering pipeline and rendering directly to the DWM compositor
β Eliminates GPUβCPU copies, frame drops, and UI freezes -
Re-implemented high-performance rendering loops (for both Playback and Idle modes)
β Calls to ResizeBuffers and SetViewPort occur only when necessary
β Avoids locking and improves frame throughput -
Re-implemented A/V Playback (Screamer)
β Fully separated A/V threads to prevent desync and delay issues
β Decoupled Render/Draw from Present, giving the GPU more time per frame for smooth playback
Changelog
- Renderer.Device: Improves creation implementation
- Renderer.Swapchain: Switches to DirectComposition (DComp)
- Renderer.Swapchain: Gets dynamically the GPU output from the adapter during creation
- Renderer.Swapchain: Fixes support for RGBA (instead of BGRA) and might perform even better (currently not default as causes critical issues with Super Resolution - see Config.Video.SwapForceR8G8B8A8)
- Renderer.Present: Re-implementation with new rendering loops for playback and idle modes with VSync-Wait mode (deprecates DoNotWait)
- Renderer.Present: Separates rendering and presenting for playback to achieve less dropped frames
- Renderer.D3D11VP: Fixes an issue with Super Resolution during Rotation
- Renderer.D3D11VP: Fixes issues with DeInterlace (separates Bob for double rate with Weave/Blend for normal rate)
- Player.Screamer: New AVSD implementation which separates A/V threads with less dropped frames, less audio crackling and better A/V sync
- Player.Stats: Real-time accurate frame statistics from DWM
- AudioDecoder: Workaround with Circular Buffer that could cause unexpected results during re-allocation
- VideoDecoder: Fixes issues with extra frames (+1 required for renderer and handle max allowed by the system)
- VideoStream: Better handling of Fps (could cause issues with interlace and formats that announce huge wrong numbers)
- Demuxer: Fixes an issue with IsHLSLive falsely set to true
- Demuxer: Fixes an issue with backwards seeking that it would return forward packets from cache
- Config.Video: Introduces DoubleRate for DeInterlace (forces D3D11VP to use Bob instead of Weave/Blend)
- FlyleafME.Settings.Video: Adds DoubleRate for DeInterlace
Breaking Changes
- Config.Video: Defaults VSync to 1 to avoid tearing
- Config.Video: Deprecates PresentFlags (no support for DoNotWait - no reason)
- Config.Player: Deprecates IdleFps
- Config.Player: Renames UICurTimePerFrame to UICurTime
- Config.Decoder: Defaults AllowProfileMismatch to true
- Engine.Config: Deprecates UICurTimePerSecond (use Config.Player.UICurTime instead)
- Engine.Config: Defaults UIRefresh to true (for proper UI updates/refreshes)
- Engine.Video: Deprecates Screens and RecommendedLuminance (use GPUAdapter.GetGPUOutputs instead)
- Engine.Video: Separates GPUOutput from GPUAdapter
- Renderer/FlyleafHost.Wpf: Deprecates replica/child (might re-include it in the future)
Package Contains (x64)
FlyleafPlayer Pop-up on first run is to add itself to windows firewall for proper yt-dlp and bitswarm playback
Plugins
- OpenSubtitlesOrg
- SubtitlesConverter
- TorrentBitSwarm
- YoutubeDL
FFmpeg v8.0 (d8605a6)
- Patched for HLS issue
- Patched for .NET issue
- No encoders
Flyleaf v3.8.14 (AIO x64 .NET8 / FFmpeg v8)
Changelog
- Renderer: Fixes an issue with alpha channel (wrongly was blending RGB(0), also tries to support more formats)
- Renderer: Fixes an issue with negative linesize (use VFlip instead of 180 rotation)
- Renderer: Fixes an issue with viewport that could cause a half pixel off
- Renderer: Disables rendering when window is minimized
- Renderer.D3D11VP: Fixes a critical issue when window is minimized
- Renderer.D3D11VP: Adds Bitmap Subtitles support
- Renderer.D3D11VP: Adds Custom 2D Graphics support
- Renderer.D3D11VP: Improves Super Resolution (enable only when actually required)
- Player.Audio: Fixes an issue with Audio that it could cause crackling
- VideoDecoder: Handles broken formats with no key frame after key packet
- FlyleafHost.Wpf: Performance and Stability Improvements (DPI/Resize/Ratio)
- PlayerDebug.Wpf: Adds Super Resolution
- FlyleafME.Settings.Video: Merges Nvidia/Intel Super Resolution
Breaking Changes
- Config.Audio: Defaults FiltersEnabled to true (stable enough now)
- Config.Video: SuperResolutionNvidia and SuperResolutionIntel renamed/merged to SuperResolution
- GPUAdapter: Changes Vendor from string to GPUVendor enum
- Renderer: Defaults VideoProcessor to D3D11 (less power consumption)
- FlyleafHost.Wpf: Changes Is* (readonlys and ResizeSensitivity) Dependency Properties to Simple Properties
Package Contains (x64)
Samples
- FlyleafPlayer Pop-up on first run is to add itself to windows firewall for proper yt-dlp and bitswarm playback
- FlyleafDownloader
- FlyleafExtractor
Plugins
- OpenSubtitlesOrg
- SubtitlesConverter
- TorrentBitSwarm
- YoutubeDL
FFmpeg v8.0 (d8605a6)
- Patched for HLS issue
- Patched for .NET issue
- No encoders
Flyleaf v3.8.13 (AIO x64 .NET8 / FFmpeg v8)
Changelog
- Engine: Adds FFmpeg v8.0 support (use Flyleaf.FFmpeg.Bindings v8.0 at your project)
- Config.Player: Introduces ZeroLatency
- Player.Screamer: Adds ZeroLatency support (Video Only)
- Player.Open: Prevents resync on Live inputs (non-seekable)
- VideoStream: Fixes TotalFrames
- PlayerDebug.Wpf: Minor Improvements
- Players.Stats: Minor Improvements
- FlyleafME: Updates Settings with Super Resolution and Zero Latency
Package Contains (x64)
Samples
- FlyleafPlayer Pop-up on first run is to add itself to windows firewall for proper yt-dlp and bitswarm playback
- FlyleafDownloader
- FlyleafExtractor
Plugins
- OpenSubtitlesOrg
- SubtitlesConverter
- TorrentBitSwarm
- YoutubeDL
FFmpeg v8.0 (d8605a6)
- Patched for HLS issue
- Patched for .NET issue
- No encoders
Flyleaf v3.8.12 (AIO x64 .NET8 / FFmpeg v8)
Changelog
- Renderer.D3D11VP: Adds SuperResolution support (Nvidia/Intel)
- Renderer: Improves VideoProcessor selection based on input
- Config.Video: Introduces SuperResolutionNvidia and SuperResolutionIntel
- Player: Fixes a sync issue with Data streams [Thanks to @coldays]
- FlyleafHost.Wpf: Improves transition from normal to fullscreen
- FlyleafHost.Wpf: Introduces CloseCanceled to properly cancel the process when required
- FlyleafHost.Wpf: Fixes an issue when hiding and showing back a window which was out of screen bounds (invalid pos/size for windows)
Package Contains (x64)
Samples
- FlyleafPlayer Pop-up on first run is to add itself to windows firewall for proper yt-dlp and bitswarm playback
- FlyleafDownloader
- FlyleafExtractor
Plugins
- OpenSubtitlesOrg
- SubtitlesConverter
- TorrentBitSwarm
- YoutubeDL
FFmpeg v8.0 (d8605a6)
- Patched for HLS issue
- Patched for .NET issue
- No encoders
Flyleaf v3.8.11 (AIO x64 .NET8 / FFmpeg v7.1.1-48c0f071d4+HLSpatch)
Changelog
- Engine: Fixes possible issues with ObservableCollections and EnableCollectionSynchronization
- FlyleafHost.Wpf: Fixes an issue with KeepRatioOnResize (after crop DAR)
- VideoDecoder: Adds D3D11/AV1 FFmpeg bug workaround
- Samples.FlyleafPlayer: Fixes a lock issue with SlideShowGoTo
- Samples.FlyleafPlayer: Fixes a UI freeze issue with ctrl+w for closing
Breaking Changes
- Globals.AspectRatio: Changes floats to doubles
Package Contains
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