Improve v2 usability, preview flow, and configuration without changing the core detection algorithm#158
Open
TheAutomatic wants to merge 36 commits intocirquit:v2from
Open
Improve v2 usability, preview flow, and configuration without changing the core detection algorithm#158TheAutomatic wants to merge 36 commits intocirquit:v2from
TheAutomatic wants to merge 36 commits intocirquit:v2from
Conversation
Replace hardcoded font size 12 with cfg.label_font_size (default 20) in both FpsPlotConfig and FrametimePlotConfig.
…k mode - Real-time preview: live composited frame display during processing - Seek rendering: compositor renders full overlays on seek - HEVC encoding: prefer hevc_videotoolbox/nvenc over h264, with fallback - Export FPS: configurable via YAML (10-120 range, default: source fps) - Multi-video fixes: multi-file picker, add/remove in READY state, FPS text positioned per-video region instead of all at top-left - Video filenames: shown in top-right of each video region with color - Dark mode: removed hardcoded colors, uses system QPalette - Plot overlay: bold text with black outline (DF-style), scaled spacing - QPainter state isolation: save/restore prevents rendering artifacts - Default FPS text font_size increased to 0.048 - Example preset YAML template added
- Replace broken 5-stage FFmpeg filter pipeline with numba-accelerated 256^3 3D LUT approach (PQ EOTF + BT.2020→BT.709 gamut + Reinhard tonemap + BT.709 OETF), ~13ms per 4K frame - Mark output video stream as BT.709 SDR to prevent players from double-tonemapping - Add comprehensive README.md (EN) and README_CN.md (CN) with usage guide, control bar reference, workflow, and HDR support docs - Add full comments to trdrop_preset.example.yaml explaining every parameter
Add PyInstaller spec and runtime hook to produce a ~102MB standalone Windows EXE. Icon path resolution is now freeze-aware via a new frozen.py helper so source-tree runs on all platforms are unaffected. Optimizations applied: - Exclude numba test suite from bundle - Exclude unused PyQt6 modules (QtPdf, QtSvg, QtNetwork, etc.) - Strip unnecessary Qt plugins and translation files - Runtime hook pre-loads FFmpeg DLLs in dependency order
…ata (MKV compatibility)
chore(release): clean up unused code in GitHub release workflow
… defaults with example yaml
Known issues:\n- frametime display still has layout/visibility problems in some multi-video cases\n- frametime overlay drawing may not currently take effect in all paths
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hi,
I’ve spent a fair amount of time working on top of the
v2branch because I really like the project and wanted to make it easier to use day to day.One important note up front: I did not intentionally change the core frame-duplication / framerate detection algorithm. I wasn’t trying to “improve” that part without fully understanding it, so I kept my changes focused on usability, preview/render flow, configuration, packaging, and CI.
This PR mainly includes:
So the goal here was not to change how TRDrop decides what is a duplicate frame. The goal was to make the
v2branch easier to use, easier to test/package, and more stable in actual use.I realize this is a fairly broad PR. If you’d prefer, I’m happy to split it into smaller PRs by area, for example:
Thanks again for the project.