Flyleaf

Media Player .NET Library for WinUI 3/ WPF/WinForms (based on FFmpeg/DirectX)

LGPL-3.0 License

Stars
673
Committers
7

Bot releases are hidden (Show)

Flyleaf - Flyleaf v3.7.10 (AIO x64 .NET7 / FFmpeg v5.1.2)

Published by SuRGeoNix over 1 year ago

Changelog (v3.7.12)

  • Player: Switching playback's task to thread and set's default priority to above normal
  • Player: Introduces Config.Player.ThreadPriority to change the playback's thread priority
  • Plugins.StreamSuggester: Fixes an issue when AllowFindStreamInfo is disabled it wouldn't suggest any stream at all
  • FlyleafHost.WinForms: Possible fix for a possible? designer issue

Changelog (v3.7.11)

  • Demuxer: Introduces Config.Demuxer.IOStreamBufferSize to specify the AVIO Context's buffer size
  • Player: Fixes an issue that it wouldn't respect MinBufferDuration (when demuxer's StartTime wasn't 0)
  • Renderer: Adds HDR10+ support
  • Renderer: Adds HDR HLG transfer function support
  • Renderer: Adds Rotation support based on VideoStream DisplayMatrix data

Changelog (v3.7.10)

  • AudioDecoder: Fixes an issue with audio filters when the input channel layout is unspecified (mainly noticed with ffmpeg devices and microphones)
  • AudioDecoder: Improves speed quality and adds atempo only if required (up to 3 atempo and supports lower speeds)
  • DecoderContext: Fixes a race condition between Open/Dispose which could cause memory leaks
  • Player: Brings back support for lower speeds (down limit to 0.125)
  • Player: Adds Config.Player.SpeedOffset (1-2), Commands and extra Keybindings (shift +-)
  • Player: Adds an extra SeekOffset3 and Commands
  • Player: Fixes a race condition during OpenAsync/Stop/OpenAsync
  • FlyleafHost(All): Fixes a critical issue with resize and rendering after Player.Stop/Renderer.Flush from a non-UI thread (SetWindowSubclass requires UI thread)
  • FlyleafMe: Adds Use Filters in Audio Settings

Changelog (v3.7.9)

  • AudioDecoder: Fixes audio filters desync issues and improves quality on speed change
  • Player: Introduces Config.Player.LatencySpeedChangeInterval to prevent frequent speed changes on MaxLatency (adds speed support with audio filters)
  • FlyleafHost.Wpf: Fixes issues with resize and DPI
  • FlyleafHost.Wpf: Fixes an issue with multiple screens and fullscreen
  • FlyleafHost.Wpf: Fixes an issue with standalone and show in taskbar when initialized
  • Sample Player: Adds OSD messages

Changelog (v3.7.8)

  • Audio: Memory/Performance improvements
  • Render: Memory/Performance improvements
  • Player: Fixes a memory leak issue when started before the control handle has been created
  • Player: Changes the default Seek when setting the CurTime to backward (instead of comparing with the prev value) as the forward creates a long delay on some formats (such as dash with h264)
  • Player: Fixes an issue with Audio/Subtitles that they would not refresh their status on external video stream switch
  • FlyleafHost.Wpf: Fixes a DPI issue with Overlay

Notes

FlyleafHost.Wpf has been changed from v3.7.4 and might not work as the older one. If you still want to use the old one, it has been renamed to FlyleafHostOld. Feel free to open an issue for the new one

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 can disable them from the Flyleaf.Engine.xml (set FFmpegDevices to false)

Flyleaf - Flyleaf v3.7.7 (AIO x64 .NET7 / FFmpeg v5.1.2)

Published by SuRGeoNix over 1 year ago

Changelog

  • Audio: Fixes an issue with the calculation of the buffered duration
  • Audio: Proper ClearBuffer to ensure no samples left
  • Player: MaxLatency improvements, introduces MinLatency (to restore speed to x1)
  • Player: More accurate buffered duration calculation and tries to avoid re-buffering for stability
  • FlyleafHost.Wpf: Fixes issues with mouse capture/release
  • FlyleafHost.Wpf: Fixes issues with dispose
  • FlyleafHost.Wpf: Fixes issues in case of reload (unload/load)

Notes

FlyleafHost.Wpf has been changed from v3.7.4 and might not work as the older one. If you still want to use the old one, it has been renamed to FlyleafHostOld. Feel free to open an issue for the new one

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 can disable them from the Flyleaf.Engine.xml (set FFmpegDevices to false)

Flyleaf - Flyleaf v3.7.6 (AIO x64 .NET7 / FFmpeg v5.1.2)

Published by SuRGeoNix over 1 year ago

Changelog

  • VideoDecoder: Fixes a critical issues with decoder threads for software decoding (it was using only one thread, now should improve performance a lot for sw decoding)

  • Config: Introduces Config.Decoder.ShowCorrupted to allow corrupted frames to be shown

  • Engine: Fixes a possible null reference issue with the UI thread

  • Player.Screamer: Gives priority to audio samples in case of video rendering delay

  • Audio: Improves audio sync by clearing the buffer for re-sync based on actual buffered duration (instead of buffers number)

  • FlyleafHost.Wpf: Fixes and improvements for keyboard focus and mouse capture

  • FlyleafHost.Wpf: Fixes an issue with KeepRatioOnResize while exiting from fullscreen and updates the size when is changed

  • FlyleafHost.Wpf: Restores support for the previous FlyleafHost (WPF) implementation for those who prefer not to switch yet (renamed to FlyleafHostOld)

  • Plugins.Youtube-DL: Allows VP9 codec and dash protocol (dash for other codecs still has issues with seeking)

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 can disable them from the Flyleaf.Engine.xml (set FFmpegDevices to false)

Flyleaf - Flyleaf v3.7.5 (AIO x64 .NET7 / FFmpeg v5.1.2)

Published by SuRGeoNix over 1 year ago

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 - Flyleaf v3.7.3 (AIO x64 .NET7 / FFmpeg v5.1.2)

Published by SuRGeoNix over 1 year ago

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 - Flyleaf v3.6.11 (AIO x64 .NET7 / FFmpeg v5.1.2)

Published by SuRGeoNix over 1 year ago

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 - Flyleaf v3.6.10 (AIO x64 .NET7 / FFmpeg v5.1.2)

Published by SuRGeoNix over 1 year ago

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 - Flyleaf v3.6.7 (AIO x64 .NET7 / FFmpeg v5.1.2)

Published by SuRGeoNix over 1 year ago

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 - Flyleaf v3.6.6 (AIO x64 .NET7 / FFmpeg v5.1.2)

Published by SuRGeoNix almost 2 years ago

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 - Flyleaf v3.6.5 (AIO x64 .NET7 / FFmpeg v5.1.2)

Published by SuRGeoNix almost 2 years ago

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 - Flyleaf v3.6.3 (AIO x64 .NET7 / FFmpeg v5.1.2)

Published by SuRGeoNix almost 2 years ago

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 - Flyleaf v3.6.1 (AIO x64 .NET6 with FFmpeg v4 / v5)

Published by SuRGeoNix almost 2 years ago

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 - Flyleaf v3.6 (AIO x64 .NET6 with FFmpeg v4 / v5)

Published by SuRGeoNix almost 2 years ago

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 - Flyleaf v3.6-pre2 (AIO x64 .NET6 with FFmpeg v4/v5)

Published by SuRGeoNix almost 2 years ago

-= 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 - Flyleaf v3.5.10 (AIO x64 .NET6 with FFmpeg v4/v5)

Published by SuRGeoNix almost 2 years ago

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 - Flyleaf v3.5.8 (AIO x64 .NET6 with FFmpeg v4/v5)

Published by SuRGeoNix about 2 years ago

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 - Flyleaf v3.5.7 (AIO x64 .NET6 with FFmpeg v5)

Published by SuRGeoNix over 2 years ago

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 - Flyleaf v3.5.6 (AIO x64 .NET6 with FFmpeg v5)

Published by SuRGeoNix over 2 years ago

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 - Flyleaf v3.5.2 (AIO x64 .NET6) - Includes latest ffmpeg 4/5 patched libraries

Published by SuRGeoNix over 2 years ago

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
Flyleaf - Flyleaf v3.5 (AIO x64 .NET6)

Published by SuRGeoNix over 2 years ago

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.1.2 patched for HLS issue

[Enchantments]

  • Playlists: Adds playlists support (for M3U, PLS, YoutubeDL, Torrent)
  • Sessions: Allows to open a previously opened session with the same configuration
  • Subtitles: Improves suggestions and adds SearchLocal/SearchLocalOnInputType/SearchOnline/SearchOnlineOnInputType configuration
  • Renderer: Improves compatibility with proper fallback to WARP device and improves the way you specify a GPU adapter
  • ModelView: Includes playlist items and streams (embedded and external) in library's model view
  • OpenAsync: Improves threading implementation, locking and interrupts

[Issues]

  • Fixes a critical issue with timestamps (mainly for some avi files while using show frame prev/next)
  • Fixes an NPE on Renderer's SetViewport
  • Fixes an NPE on Audio.Mute

[Control.WPF Enchantments]

  • Playlists: Adds playlists support (on pop-up menu)
  • Settings: Adds Search Local / Search Online
  • External Streams: Will be all now be under External sub-menu
  • UI Config: Extends UI Config with the subtitles options

[Control.WPF Issues]

  • Fixes an issue that it wouldn't go idle when the mouse was above the sliders

[Important / Breaking Changes]

  • Player.Title can now be accessed from Player.Playlist.Selected.Title
  • Player.PlaybackCompleted renamed to Player.PlaybackStopped
  • Player.[AVS].Inputs and Player.[AVS].ExternalStreams can be accessed from Playlist.Items and Playlist.Items[N].External[AVS]Streams
  • LogOutput for files now will not append by default check Engine.Config.LogAppend
  • Config.Video.GPUAdapterLUID renamed to Config.Video.GPUAdapter (LUID can change on system reboot, now you can use a string to match)
  • Player can start playing now before the control's assignment or its handle creation
  • Changes the way that Player's Open Completed events will fire (only what user requested to open). If you still need to catch all the events subscribe on the Decoder Context's events (Player.decoder)