Skip to content

Conversation

@umlx5h
Copy link
Owner

@umlx5h umlx5h commented Oct 22, 2025

No description provided.

umlx5h and others added 15 commits October 22, 2025 15:26
Update FlyleafLib v3.8.5 from v3.8.4

## Changelog

- Config.Subs: Includes UNC for SearchOnlineOnInputType

- Plugins.OpenDefault: Fixes an issue with FileSize not properly set in some cases (it would prevent searching subtitles online)
- Plugins.OpenDefault: Fixes an issue with InputType not properly set to UNC

New commits are cherry-picked from the following diff.

SuRGeoNix/Flyleaf@6838775...50557f9
Update FlyleafLib v3.8.6 from v3.8.5

## Changelog
- FlyleafHost: Fixes dynamic changes issue with DPI awareness
- Player.Open: Fixes a null reference issue
- Renderer: Adds support for custom Direct2D (with Vortice) overlay drawing
- Renderer: Better handling of common HDR to SDR (HDR10/HLG)
- Renderer: Tonemaps (Hable/Reinhard/Aces) Improvements
- Renderer: Adds Config.Video.SDRDisplayNits which improves HDR to SDR based on monitor's peak brightness
- Renderer: Adds support for BT.2020 SDR
- Renderer: Improves support for YUV full color range sources
- Renderer: Adds Hue/Saturation Filters
- Renderer: Overall Performance Improvements
- FlyleafME: Support for > 24h
- FlyleafME: Updated Settings

[Breaking Changes]
- Config.Video.HDRtoSDRTone replaces by SDRDisplayNits

New commits are cherry-picked from the following diff.

SuRGeoNix/Flyleaf@50557f9...43f523c
Update FlyleafLib v3.8.7 from v3.8.6

## Changelog

- Config: Introduces Config.Video.SyncVPFilters to allow D3D11VP/FlyleafVP filters syncing
- Config: Introduces Config.Video.DeInterlace for [Auto/Progressive/Top/Bottom]
- Engine.Video: Introduces MaxLuminance/RecommendedLuminance (for SDRDisplayNits)
- Player: Improves and Fixes issues with Frame Stepping (mainly backwards)
- PlayerDebug: Updates Video Box
- Renderer: Video Filters Improvements (Separates D3D11VP/FlyleafVP filters)
- Renderer: Pixel Shader Improvements
- Renderer: DeInterlace: Adds Bob support for FlyleafVP (still defaults to D3D11VP)
- Renderer: DeInterlace: Can identify interlaced source and automatically enable it
- Renderer: DeInterlace: Playback-Rendering for both Top/Bottom fields
- Renderer: Handles Device Removed/Reset
- Renderer: Fixes an issue with Yuyv422/Yvyu422/Uyvy422 formats cause from v3.8.6
- Renderer: Fixes a backwards compatibility issue caused from v3.8.6

- FlyleafME: Updates Video Settings
- FlyleafME: Fixes a possible performance issue with PlayerDebug

[Breaking Changes]
- Deprecates Config.Video.Deinterlace/DeinterlaceBottomFirst
- Config.Video.Filters are now only for FlyleafVP. For D3D11VP use Config.Video.D3Filters

New commits are cherry-picked from the following diff.

SuRGeoNix/Flyleaf@43f523c...d117b49
Update FlyleafLib v3.8.8 from v3.8.7

## Changelog

- Config: Fixes a critical issue with Load/Save (Serialization)

New commits are cherry-picked from the following diff.

SuRGeoNix/Flyleaf@d117b49...49a695a
Update FlyleafLib v3.8.9 from v3.8.8

## Changelog

- Demuxer: Adds Duration Estimation support for non-analyzed inputs
- Demuxer: Fixes a possible null issue when having broken/image streams
- Demuxer: Improves Logging for Format/Stream Info
- Renderer.FlyleafVP: Shader Compiler and Pixel Shader Improvements
- Renderer.FlyleafVP: Adds RGB Full to Limited support
- Renderer.FlyleafVP: Adds support for Mono/Gray pixel format types and GBR(A)32
- Renderer.FlyleafVP: Removes Bob DeInterlace as is not accurate enough
- Renderer.FlyleafVP: Fixes alpha channel
- Renderer.FlyleafVP: Fixes an issue with YUV full range
- Renderer.Filters: Fixes an issue from a loaded config (it wouldn't enable filters)
- MediaStream: Improves handling of AVFrame/AVCodecContext/AVCodecParameters metadata
- MediaStream: Improves fallbacks when dealing with unspecified metadata
- Player: Improves and Fixes issues with Frame Stepping (mainly backwards and VFR)
- Player: Don't treat .txt as subtitle
- Player.Keys: Adds Home/End for Seek to Start/End and Page Up/Down for Seek with 3rd offset from config
- PlayerDebug: Minor updates
- Logger: Few changes from Debug to Trace
- Samples.FlyleafPlayer: Fixes PlayerDebug to be at the right Zorder

New commits are cherry-picked from the following diff.

SuRGeoNix/Flyleaf@49a695a...d7d2606
Update FlyleafLib v3.8.10 from v3.8.9

## Changelog
- Demuxer: Fixes an issue with HLS Live Seek (caused by 3.8.9)
- Player: Adds StreamIndex property in Audio/Video/Subtitles [Fixes #617]
- Renderer: Adds Cropping Support (Always ZeroCopy)
- Renderer: Adds User Cropping Support (Config.Video.Crop)

[Breaking Changes]
- Config.Decoder.ZeroCopy removed
- Player.Video.ZeroCopy removed

New commits are cherry-picked from the following diff.

SuRGeoNix/Flyleaf@d7d2606...9542682
Update FlyleafLib v3.8.11 from v3.8.10

## 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

[Breaking Changes]
- Globals.AspectRatio: Changes floats to doubles

New commits are cherry-picked from the following diff.

SuRGeoNix/Flyleaf@9542682...c7873a2
Update FlyleafLib v3.8.12 from v3.8.11

## 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
- 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)

New commits are cherry-picked from the following diff.

SuRGeoNix/Flyleaf@c7873a2...d63dfed
Update FlyleafLib v3.8.13 from v3.8.12

## 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

New commits are cherry-picked from the following diff.

SuRGeoNix/Flyleaf@d63dfed...f3bf065
Update FlyleafLib v3.8.14 from v3.8.13

## 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


New commits are cherry-picked from the following diff.

SuRGeoNix/Flyleaf@a1126fd...57fd5f2
Update FlyleafLib v3.9 from v3.8.14

## Changelog

# Major A/V (Playback & Rendering) Improvements

Significant performance and stability upgrades in both audio and video paths — resulting in no tearing, fewer dropped frames (even on high refresh rate displays), 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 audio/video 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
- 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

## 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
- 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)

New commits are cherry-picked from the following diff.

SuRGeoNix/Flyleaf@57fd5f2...8577292
Update FlyleafLib v3.9.1 from v3.9

## 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

New commits are cherry-picked from the following diff.

SuRGeoNix/Flyleaf@8577292...1979419
Update FlyleafLib v3.9.2 from v3.9.1

## Changelog
- 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

New commits are cherry-picked from the following diff.

SuRGeoNix/Flyleaf@1979419...08ed18b
Update FlyleafLib v3.9.3 from v3.9.2

## 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

New commits are cherry-picked from the following diff.

SuRGeoNix/Flyleaf@08ed18b...88bd869
Update FlyleafLib v3.9.4 from v3.9.3

## 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
New commits are cherry-picked from the following diff.

SuRGeoNix/Flyleaf@88bd869...262839d
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants