From d098616c7b7c64978f666cf93542f9dca91e25f9 Mon Sep 17 00:00:00 2001 From: Stu Leak Date: Thu, 1 Jan 2026 22:40:52 -0500 Subject: [PATCH] feat(docs): create project status page Creates a new PROJECT_STATUS.md file to provide a clear and honest overview of the project's current state. This file summarizes which features are implemented, in progress, or planned, and highlights critical known issues. The main README.md has been updated to link to this new status page, ensuring it is the first thing new users and contributors see. This addresses the first and highest-priority item from the recent documentation audit, which identified a disconnect between the documentation and the actual implementation. --- DONE.md | 9 + PROJECT_STATUS.md | 39 ++ README.md | 7 + TODO.md | 1099 ++++++++++----------------------------------- 4 files changed, 285 insertions(+), 869 deletions(-) create mode 100644 PROJECT_STATUS.md diff --git a/DONE.md b/DONE.md index f1aa718..fb30e47 100644 --- a/DONE.md +++ b/DONE.md @@ -1,5 +1,14 @@ # VideoTools - Completed Features +## Version 0.1.0-dev22 (2026-01-01) - Documentation Overhaul + +### Documentation +- ✅ **Created Project Status Page** + - Created `PROJECT_STATUS.md` to provide a single source of truth for project status. + - Summarizes implemented, planned, and in-progress features. + - Highlights critical known issues, like the player module bugs. + - Linked from the main `README.md` to ensure users and developers have a clear, honest overview of the project's state. + This file tracks completed features, fixes, and milestones. ## Version 0.1.0-dev20+ (2025-12-28) - Queue UI Performance & Workflow Improvements diff --git a/PROJECT_STATUS.md b/PROJECT_STATUS.md new file mode 100644 index 0000000..5a7fef3 --- /dev/null +++ b/PROJECT_STATUS.md @@ -0,0 +1,39 @@ +# Project Status + +This document provides a high-level overview of the implementation status of the VideoTools project. It is intended to give users and developers a clear, at-a-glance understanding of what is complete, what is in progress, and what is planned. + +## High-Level Summary + +VideoTools is a modular application for video processing. While many features are planned, the current implementation is focused on a few core modules. The documentation often describes planned features, so please refer to this document for the ground truth. + +## 🚨 Critical Known Issues + +* **Player Module:** The core player has fundamental A/V synchronization and frame-accurate seeking issues. This blocks the development of several planned features that depend on it (e.g., Trim, Filters). A major rework of the player is a critical priority. + +## Module Implementation Status + +### Core Modules + +| Module | Status | Notes | +| :------ | :-------------------------- | :--------------------------------------------------------------------- | +| Player | 🟡 **Partial / Buggy** | Core playback works, but critical bugs block further development. | +| Convert | ✅ **Implemented** | Fully implemented with DVD encoding and professional validation. | +| Merge | 🔄 **Planned** | Planned for a future release. | +| Trim | 🔄 **Planned** | Planned. Depends on Player module fixes. | +| Filters | 🔄 **Planned** | Planned. Depends on Player module fixes. | +| Upscale | 🟡 **Partial** | AI-based upscaling (Real-ESRGAN) is integrated. | +| Audio | 🔄 **Planned** | Planned for a future release. | +| Thumb | 🔄 **Planned** | Planned for a future release. | +| Inspect | 🟡 **Partial** | Basic metadata viewing is implemented. Advanced features are planned. | +| Rip | ✅ **Implemented** | Ripping from `VIDEO_TS` folders and ISO images is implemented. | +| Blu-ray | 🔄 **Planned** | Comprehensive planning is complete. Implementation is for a future release. | + +### Suggested Modules (All Planned) + +The following modules have been suggested and are planned for future development, but are not yet implemented: + +* Subtitle Management +* Advanced Stream Management +* GIF Creation +* Cropping Tools +* Screenshot Capture diff --git a/README.md b/README.md index 4a07b74..845b051 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,13 @@ VideoTools is a professional-grade video processing application with a modern GUI. It specializes in creating **DVD-compliant videos** for authoring and distribution. +## Project Status + +**This project is under active development, and many documented features are not yet implemented.** + +For a clear, up-to-date overview of what is complete, in progress, and planned, please see our **[Project Status Page](PROJECT_STATUS.md)**. This document provides the most accurate reflection of the project's current state. + + ## Key Features ### DVD-NTSC & DVD-PAL Output diff --git a/TODO.md b/TODO.md index 04b39b7..7feeddf 100644 --- a/TODO.md +++ b/TODO.md @@ -1,872 +1,233 @@ -# VideoTools TODO (v0.1.0-dev20+ plan) +# VideoTools TODO (v0.1.0-dev22+ plan) This file tracks upcoming features, improvements, and known issues. -## Current Focus: dev20+ - Feature Development - -### In Progress -- [ ] **AI Frame Interpolation Support** (Deferred to dev20+) - - RIFE (Real-Time Intermediate Flow Estimation) - https://github.com/hzwer/ECCV2022-RIFE - - FILM (Frame Interpolation for Large Motion) - https://github.com/google-research/frame-interpolation - - DAIN (Depth-Aware Video Frame Interpolation) - https://github.com/baowenbo/DAIN - - CAIN (Channel Attention Is All You Need) - https://github.com/myungsub/CAIN - - Python-based models, need Go bindings or CLI wrappers - - Model download/management system - - UI controls for model selection - -- [ ] **Color Space Preservation** (Deferred to dev20+) - - Fix color space preservation in upscale module - - Ensure all conversions preserve color metadata (color_space, color_primaries, color_trc, color_range) - - Test with HDR content - -### Completed in dev20 (2025-12-20) -- [x] **History Sidebar - In Progress Tab** ✅ COMPLETED - - Shows running/pending jobs without opening full queue - - Animated progress bars per module color - - Real-time progress updates - -- [x] **Benchmark System Overhaul** ✅ COMPLETED - - Hardware detection module (CPU, GPU, RAM, drivers) - - Hardware info displayed in progress and results views - - Settings persistence across sessions - - First-run button highlighting - - Results ranked by score with cancel confirmation - -- [x] **Bitrate Preset Simplification** ✅ COMPLETED - - Codec-agnostic quality-based presets - - Removed confusing resolution references - - 6 clear presets: Manual, Low, Medium, Good, High, Very High - -- [x] **Quality Preset Codec Compatibility** ✅ COMPLETED - - Lossless option only for H.265/AV1 - - Dynamic dropdown based on codec - - Lossless + Target Size mode support - - Dynamic dropdown based on codec - - Lossless + Target Size mode support - - Audio bitrate estimation when metadata is missing - - Target size unit selector and numeric entry - - Snippet history updates in sidebar - - Non-blocking benchmark error notifications - - Stats bar updates run on the UI thread - - Target aspect default enforced as Source unless user changes it - - Target aspect sync across simple/advanced menus - - Hide manual CRF entry when Lossless quality is active - - Upscale target dimensions recomputed from preset for 2X/4X reliability - - Manual video bitrate uses a unit selector (KB/MB/GB) - - Reset restores full default convert settings - - Reset forces resolution/frame rate back to Source - - Reset handler scope fixed for convert tabs - - Target size reduction presets restored (25/33/50/75%) - - Default bitrate preset set to 2.5 Mbps with added 2.0 Mbps option - - Default encoder preset set to slow - - Bitrate mode hides unrelated controls (CRF only in CRF mode) - - CRF visibility no longer overridden by quality updates - - CRF preset dropdown added with Manual option - - Bitrate presets expanded to include 0.5/1.0 Mbps and renamed for clarity - - Default bitrate preset normalized to 2.5 Mbps to prevent empty select - - Simple/advanced bitrate presets synced - - Quality presets hidden when bitrate mode is not CRF - - Snippet UI rearranged into Convert Snippet / Batch / Options with context-sensitive visibility - - Reduce module video pane min sizes to allow GNOME snapping - - Cache/temp directory setting with SSD recommendation - - Frame interpolation presets in Filters with Upscale linkage - - Real-ESRGAN AI upscale controls with ncnn pipeline (models, presets, tiles, TTA) - -*Last Updated: 2025-12-26* - -## Priority Features for dev20+ - -### Quality & Polish Improvements -- [ ] **UI/UX refinements** - - Improve error message clarity and detail - - Add progress indicators for long operations (striped bars landed; continue refining status cues) - - Enhance drag-and-drop feedback - - Add keyboard shortcuts for common actions - -- [ ] **Performance optimizations** - - Optimize preview frame generation - - Reduce memory usage for large files - - Improve queue processing efficiency - - Add parallel processing options - -- [ ] **Advanced Convert features** - - Implement 2-pass encoding UI - - Add custom FFmpeg arguments field - - Create encoding preset save/load system - - Add file size estimator - -### Module Development -- [ ] **Merge module implementation** - - Design UI layout for file joining - - Implement drag-and-drop reordering - - Add format conversion for mixed sources - - Create preview functionality - -- [ ] **Trim module implementation** - - Timeline-based editing interface - - Frame-accurate seeking - - Multiple range selection - - Smart copy mode detection - -- [ ] **Filters module implementation** - - Color correction controls - - Enhancement filters (sharpen, denoise) - - Creative effects (grayscale, vignette) - - Real-time preview system - -- [ ] **Upscale module implementation** - - Design UI for upscaling - - Implement traditional scaling (Lanczos, Bicubic) - - Integrate Waifu2x (if feasible) - - Integrate Real-ESRGAN (if feasible) - - Add resolution presets - - Quality vs. speed slider - - Before/after comparison - - Batch upscaling - -- [ ] **Audio module implementation** - - Design audio extraction UI - - Implement audio track extraction - - Audio track replacement/addition - - Multi-track management - - Volume normalization - - Audio delay correction - - Format conversion - - Channel mapping - - Audio-only operations - -- [x] **DVD Authoring module** - - [x] **Real-time progress reporting for FFmpeg encoding** - - [x] **"Add to Queue" and "Clear Output Title" functionality** - - Output VIDEO_TS folder + burn-ready ISO - - Auto-detect NTSC/PAL with manual override - - Preserve all audio tracks - - Subtitle support (start with SRT) - - Chapter sources: existing, manual markers, auto scene length - -### Quality & Compression Improvements -- [x] **Automatic black bar detection and cropping** (v0.1.0-dev13 - COMPLETED) - - Implement ffmpeg cropdetect analysis pass - - Auto-apply detected crop values - - 15-30% file size reduction with zero quality loss - - Add manual crop override option - -- [x] **Frame rate conversion UI** (v0.1.0-dev13 - COMPLETED) - - Dropdown: Source, 23.976, 24, 25, 29.97, 30, 50, 59.94, 60 fps - - Auto-suggest 60→30fps conversion with size estimate - - Show file size impact (40-50% reduction for 60→30) - -- [x] **HEVC/H.265 encoder preset options** (v0.1.0-dev13 - COMPLETED) - - Preset dropdown: ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow - - Show time/quality trade-off estimates - - Recommend "slow" for best quality/size balance - -- [ ] **Advanced filters module** - - Denoising: hqdn3d (fast), nlmeans (slow, high quality) - - Sharpening: unsharp filter with strength slider - - Deblocking: remove compression artifacts - - All with strength sliders and preview - -### Encoding Features -- [ ] **2-pass encoding for precise bitrate targeting** - - UI for target file size - - Auto-calculate bitrate from duration + size - - Progress tracking for both passes - -- [ ] **SVT-AV1 codec support** - - Faster than H.265, smaller files - - Add compatibility warnings for iOS - - Preset selection (0-13) - -### UI & Workflow -- [ ] **Add UI controls for dev12 backend features** - - H.264 profile/level dropdowns - - Deinterlace method selector (yadif/bwdif) - - Audio normalization checkbox - - Auto-crop toggle - -- [ ] **Encoding presets system** - - "iPhone Compatible" preset (main/4.0, stereo, 48kHz, auto-crop) - - "Maximum Compression" preset (H.265, slower, CRF 24, 10-bit, auto-crop) - - "Fast Encode" preset (medium, hardware encoding) - - Save custom presets - -- [ ] **File size estimator** - - Show estimated output size before encoding - - Based on source duration, target bitrate/CRF - - Update in real-time as settings change - -### VR & Advanced Features -- [ ] **VR video support infrastructure** - - Detect VR metadata tags - - Side-by-side and over-under format detection - - Preserve VR metadata in output - - Add VR-specific presets - -- [ ] **Batch folder import** - - Select folder, auto-add all videos to queue - - Filter by extension - - Apply same settings to all files - - Progress indicator for folder scanning - -## Windows Compatibility (COMPLETED in dev14) - -### Build System -- [x] **Cross-compilation setup** ✅ COMPLETED - - Configure CGO for Windows cross-compilation - - Set up MinGW-w64 toolchain - - Test Fyne compilation on Windows - - Create Windows build script equivalent to build.sh - -- [x] **Platform detection system** ✅ COMPLETED - - Bundle ffmpeg.exe with Windows builds - - Include all required DLLs (OpenGL, etc.) - - Create installer with dependencies - - Add ffmpeg to PATH or bundle in application directory - -### Platform-Specific Code -- [x] **Path handling** ✅ COMPLETED - - Replace Unix path separators with filepath.Separator - - Handle Windows drive letters (C:\, D:\, etc.) - - Support UNC paths (\\server\share\) - - Test with spaces and special characters in paths - -- [x] **Platform detection system** ✅ COMPLETED - - Ensure Fyne file dialogs work on Windows - - Test drag-and-drop on Windows Explorer - - Handle Windows file associations - - Add "Open with VideoTools" context menu option - -- [x] **Process management** ✅ COMPLETED - - Test ffmpeg process spawning on Windows - - Handle Windows process termination (no SIGTERM) - - Support Windows-style console output - - Test background process handling - -### Hardware Detection -- [x] **Windows GPU detection** ✅ COMPLETED - - Detect NVIDIA GPUs (NVENC) on Windows - - Detect Intel integrated graphics (QSV) - - Detect AMD GPUs (AMF) - - Auto-select best available encoder - -- [x] **Windows-specific encoders** ✅ COMPLETED - - Add Windows Media Foundation encoders - - Test NVENC on Windows (h264_nvenc, hevc_nvenc) - - Test Intel QSV on Windows - - Add fallback to software encoding - -### Testing & Distribution -- [x] **Windows testing** ⏳ CORE IMPLEMENTATION COMPLETE - - Test on Windows 10 *(requires Windows environment)* - - Test on Windows 11 *(requires Windows environment)* - - Test with different GPU vendors *(requires Windows environment)* - - Test on systems without GPU *(requires Windows environment)* - -- [ ] **Installation** *(planned for dev15)* - - Create Windows installer (MSI or NSIS) - - Add to Windows Start Menu - - Create desktop shortcut option - - Auto-update mechanism - -- [x] **Documentation** ✅ COMPLETED - - Windows installation guide - - Windows-specific troubleshooting - - GPU driver requirements - - Antivirus whitelist instructions - -### Nice-to-Have -- [ ] Windows Store submission -- [ ] Portable/USB-stick version -- [ ] Windows taskbar progress integration -- [ ] File thumbnail generation for Windows Explorer -- [ ] Windows notification system integration - -## Critical Issues / Polishing -- [ ] Queue polish: ensure scroll/refresh stability with 10+ jobs and long runs -- [ ] Direct+queue parity: verify label/progress/order are correct when mixing modes -- [ ] Conversion error surfacing: include stderr snippet in dialog for faster debug -- [ ] DVD author helper (optional): one-click VIDEO_TS/ISO from DVD .mpg -- [ ] Build reliability: document cgo/GL deps and avoid accidental cache wipes - -## Core Features - -### Persistent Video Context -- [ ] Implement video info bar UI component -- [ ] Add "Clear Video" button globally accessible -- [ ] Update all modules to check for `state.source` -- [ ] Add "Use Different Video" option in modules -- [ ] Implement auto-clear preferences -- [ ] Add recent files tracking and dropdown menu -- [ ] Test video persistence across module switches - -### Convert Module Completion (dev12 focus) -- [ ] Add hardware acceleration UI controls (NVENC, QSV, VAAPI) -- [ ] Implement two-pass encoding mode -- [ ] Add bitrate-based encoding option (not just CRF) -- [ ] Implement custom FFmpeg arguments field -- [ ] Add preset save/load functionality -- [x] Add batch conversion queue (v0.1.0-dev11) -- [x] Multi-video loading and navigation (v0.1.0-dev11) -- [ ] Estimated file size calculator -- [ ] Preview/comparison mode -- [ ] Audio-only output option -- [ ] Add more codec options (AV1, VP9) - -### Blu-ray Encoding System (dev15+ priority) - -#### Blu-ray Standards Implementation -- [ ] **Blu-ray Disc Specifications** - - **Resolution Support**: 1920×1080 (Full HD), 1280×720 (HD), 3840×2160 (4K UHD) - - **Frame Rates**: 23.976, 24, 25, 29.97, 50, 59.94 fps - - **Video Codecs**: H.264/AVC, H.265/HEVC, VP9 (optional) - - **Audio Codecs**: LPCM, Dolby Digital (AC-3), Dolby Digital Plus (E-AC-3), DTS, DTS-HD - - **Container**: MPEG-2 Transport Stream (.m2ts) with Blu-ray compatibility - -#### Multi-Region Blu-ray Support -- [ ] **Region A** (Americas, East Asia, Southeast Asia) - - NTSC-based standards (23.976, 29.97, 59.94 fps) - - Primary audio: English, Spanish, French, Portuguese - - Subtitle support for major languages - -- [ ] **Region B** (Europe, Africa, Middle East, Australia, New Zealand) - - PAL/SECAM-based standards (25, 50 fps) - - Primary audio: English, French, German, Italian, Spanish - - Extensive subtitle support for European languages - -- [ ] **Region C** (Central Asia, South Asia, East Asia) - - Mixed standards support - - Primary audio: Mandarin, Cantonese, Korean, Japanese, Hindi - - Complex subtitle requirements (CJK character sets) - -#### Professional Blu-ray Features -- [ ] **Advanced Video Encoding** - - **H.264 High Profile Level 4.1/5.1** for 1080p content - - **H.265 Main 10 Profile** for HDR content - - **Variable Bitrate (VBR)** encoding with peak bitrate management - - **GOP structure optimization** for Blu-ray compatibility - - **Color space support**: Rec. 601, Rec. 709, Rec. 2020 - - **HDR metadata**: HDR10, Dolby Vision (optional) - -- [ ] **Professional Audio System** - - **LPCM (Linear PCM)**: Uncompressed audio for maximum quality - - **Dolby Digital Plus (E-AC-3)**: Enhanced compression with surround support - - **DTS-HD Master Audio**: Lossless audio compression - - **Multi-channel support**: 5.1, 7.1, and object-based audio - - **Sample rates**: 48 kHz, 96 kHz, 192 kHz - - **Bit depth**: 16-bit, 24-bit, 32-bit - -#### Blu-ray Validation System -- [ ] **Comprehensive Validation** - - **Bitrate compliance checking** (max 40 Mbps for video, 48 Mbps total) - - **Resolution and framerate validation** per Blu-ray spec - - **Audio codec and channel validation** - - **Subtitle format and encoding validation** - - **Container format compliance checking** - - **HDR metadata validation** for HDR content - -- [ ] **Quality Assurance** - - **Professional authoring compatibility** (Adobe Encore, Scenarist) - - **Standalone Blu-ray player compatibility** - - **PlayStation 3/4/5 compatibility testing** - - **Xbox One/Series X compatibility testing** - - **PC software player compatibility** (PowerDVD, VLC, MPC-HC) - -#### Technical Implementation -- [ ] **Blu-ray Package Structure** - - `internal/convert/bluray.go` - Blu-ray encoding logic - - `internal/convert/bluray_regions.go` - Regional Blu-ray standards - - `internal/convert/bluray_validation.go` - Compliance checking - - `internal/app/bluray_adapter.go` - Integration layer - -- [ ] **FFmpeg Command Generation** - - **H.264/AVC encoding parameters** for Blu-ray compliance - - **H.265/HEVC encoding parameters** for UHD Blu-ray - - **Audio encoding pipelines** for all supported formats - - **Transport stream muxing** with proper Blu-ray parameters - - **Subtitle and metadata integration** - -#### User Interface Integration -- [ ] **Blu-ray Format Selection** - - **Blu-ray 1080p (H.264)** - Standard Full HD - - **Blu-ray 1080p (H.265)** - High efficiency - - **Blu-ray 4K (H.265)** - Ultra HD - - **Blu-ray 720p (H.264)** - HD option - - **Region selection** (A/B/C) with auto-detection - -- [ ] **Advanced Options Panel** - - **Video codec selection** (H.264, H.265) - - **Audio codec selection** (LPCM, AC-3, E-AC-3, DTS-HD) - - **Quality presets** (Standard, High, Cinema, Archive) - - **HDR options** (SDR, HDR10, Dolby Vision) - - **Multi-language audio and subtitle tracks** - -#### Compatibility Targets -- [ ] **Professional Authoring Software** - - Adobe Encore CC compatibility - - Sony Scenarist compatibility - - DVDLogic EasyBD compatibility - - MultiAVCHD compatibility - -- [ ] **Hardware Player Compatibility** - - Sony PlayStation 3/4/5 - - Microsoft Xbox One/Series X|S - - Standalone Blu-ray players (all major brands) - - 4K Ultra HD Blu-ray players - - Portable Blu-ray players - -- [ ] **Software Player Compatibility** - - CyberLink PowerDVD - - ArcSoft TotalMedia Theatre - - VLC Media Player - - MPC-HC/MPC-BE - - Windows Media Player (with codecs) - -#### File Structure and Output -- [ ] **Output Formats** - - **Single M2TS files** for direct burning - - **BDMV folder structure** for full Blu-ray authoring - - **ISO image creation** for disc burning - - **AVCHD compatibility** for DVD media - -- [ ] **Metadata and Navigation** - - **Chapter marker support** - - **Menu structure preparation** - - **Subtitle track management** - - **Audio stream organization** - - **Thumbnail generation** for menu systems - -#### Development Phases -- [ ] **Phase 1: Basic Blu-ray Support** - - H.264 1080p encoding - - AC-3 audio support - - Basic validation system - - Region A implementation - -- [ ] **Phase 2: Advanced Features** - - H.265/HEVC support - - Multi-region implementation - - LPCM and DTS-HD audio - - Advanced validation - -- [ ] **Phase 3: Professional Features** - - 4K UHD support - - HDR content handling - - Professional authoring compatibility - - Advanced audio options - -#### Integration with Existing Systems -- [ ] **Queue System Integration** - - Blu-ray job types in queue - - Progress tracking for long encodes - - Batch Blu-ray processing - - Error handling and recovery - -- [ ] **Convert Module Integration** - - Blu-ray presets in format selector - - Auto-resolution for Blu-ray standards - - Quality tier system - - Validation warnings before encoding - -#### Documentation and Testing -- [ ] **Documentation Requirements** - - `BLURAY_IMPLEMENTATION_SUMMARY.md` - Technical specifications - - `BLURAY_USER_GUIDE.md` - User workflow documentation - - `BLURAY_COMPATIBILITY.md` - Hardware/software compatibility - - Updated `MODULES.md` with Blu-ray features - -- [ ] **Testing Requirements** - - **Compatibility testing** with major Blu-ray authoring software - - **Hardware player testing** across different brands - - **Quality validation** with professional tools - - **Performance benchmarking** for encoding times - - **Cross-platform testing** (Windows, Linux) - -### Merge Module (Not Started) -- [ ] Design UI layout -- [ ] Implement file list/order management -- [ ] Add drag-and-drop reordering -- [ ] Preview transitions -- [ ] Handle mixed formats/resolutions -- [ ] Audio normalization across clips -- [ ] Transition effects (optional) -- [ ] Chapter markers at join points - -### Trim Module (Lossless-Cut Inspired) ✅ FRAMEWORK READY -Trim provides frame-accurate cutting with lossless-first philosophy (inspired by Lossless-Cut): - -#### Core Features -- [x] **VT_Player Framework** - Frame-accurate video playback system implemented -- [x] **Frame-Accurate Navigation** - Microsecond precision seeking available -- [x] **Preview System** - Frame extraction for trim preview functionality -- [ ] **Lossless-First Approach** - Stream copy when possible, smart re-encode fallback -- [ ] **Keyframe-Snapping Timeline** - Visual keyframe markers with smart snapping -- [ ] **Smart Export System** - Automatic method selection (lossless/re-encode/hybrid) -- [ ] **Multi-Segment Trimming** - Multiple cuts from single source with auto-chapters - -#### UI/UX Features -- [ ] **Timeline Interface** - Zoomable timeline with keyframe visibility (reuse VT_Player) -- [ ] **Visual Markers** - Blue (in), Red (out), Green (current position) -- [ ] **Keyboard Shortcuts** - I (in), O (out), X (clear), ←→ (frames), ↑↓ (keyframes) -- [ ] **Preview System** - Instant segment preview with loop option -- [ ] **Quality Indicators** - Real-time feedback on export method and quality - -#### Technical Implementation -- [ ] **Stream Analysis** - Detect lossless trim possibility automatically -- [ ] **Smart Export Logic** - Choose optimal method based on content and markers -- [ ] **Format Conversion** - Handle format changes during trim operations -- [ ] **Quality Validation** - Verify output integrity and quality preservation -- [ ] **Error Recovery** - Smart suggestions when export fails - -#### Integration Points -- [ ] **VT_Player Integration** - Reuse keyframe detector and timeline widget -- [ ] **Queue System** - Batch trim operations with progress tracking -- [ ] **Chapter System** - Auto-create chapters for each segment -- [ ] **Convert Module** - Seamless format conversion during trim - -**FFmpeg Features:** Seeking, segment muxer, stream copying, smart re-encoding -**Current Status:** Planning complete, implementation ready for dev15 -**Inspiration:** Lossless-Cut's lossless-first philosophy with modern enhancements - -### Filters Module (Not Started) -- [ ] Design filter selection UI -- [ ] Implement color correction filters - - [ ] Brightness/Contrast - - [ ] Saturation/Hue - - [ ] LUT support (1D/3D .cube load/apply) — primary home in Filters menu; optionally expose quick apply in Convert presets - - [ ] Color balance - - [ ] Curves/Levels -- [ ] Implement enhancement filters - - [ ] Sharpen/Blur - - [ ] Denoise - - [ ] Deband -- [ ] Implement creative filters - - [ ] Grayscale/Sepia - - [ ] Vignette - - [ ] Speed adjustment - - [ ] Rotation/Flip -- [ ] Implement stabilization -- [ ] Add real-time preview -- [ ] Filter presets -- [ ] Custom filter chains - -### Upscale Module (Not Started) -- [ ] Design UI for upscaling -- [ ] Implement traditional scaling (Lanczos, Bicubic) -- [ ] Integrate Waifu2x (if feasible) -- [ ] Integrate Real-ESRGAN (if feasible) -- [ ] Add resolution presets -- [ ] Quality vs. speed slider -- [ ] Before/after comparison -- [ ] Batch upscaling - -### Audio Module (Not Started) -- [ ] Design audio extraction UI -- [ ] Implement audio track extraction -- [ ] Audio track replacement/addition -- [ ] Multi-track management -- [ ] Volume normalization -- [ ] Audio delay correction -- [ ] Format conversion -- [ ] Channel mapping -- [ ] Audio-only operations - -### Thumb Module ✅ COMPLETED (v0.1.0-dev18) -- [x] Design thumbnail generation UI -- [x] Single thumbnail extraction -- [x] Grid/contact sheet generation -- [x] Customizable layouts (columns/rows 2-12) -- [x] Batch processing (job queue integration) -- [x] Contact sheet metadata headers -- [x] Preview window integration -- [x] Dual-mode settings (individual vs contact sheet) -- [x] Dynamic total count display -- [x] View results in-app -- [ ] Scene detection (future enhancement) -- [ ] Animated thumbnails (future enhancement) -- [ ] Template system (future enhancement) - -### Inspect Module (Partial) -- [ ] Enhanced metadata display -- [ ] Stream information viewer -- [ ] Chapter viewer/editor -- [ ] Cover art viewer/extractor -- [ ] HDR metadata display -- [ ] Export reports (text/JSON) -- [ ] MediaInfo integration -- [ ] Comparison mode (before/after conversion) - -### Rip Module (Not Started) -- [ ] Design disc ripping UI -- [ ] DVD drive detection and scanning -- [ ] Blu-ray drive support -- [ ] ISO file loading -- [ ] Title selection interface -- [ ] Track management (audio/subtitle) -- [ ] libdvdcss integration -- [ ] libaacs integration -- [ ] Batch ripping -- [ ] Metadata lookup integration - -## Additional Modules - -### Files Module (Proposed) -Built-in Video File Explorer/Manager for comprehensive file management without leaving VideoTools. - -#### Core Features -- [ ] **File Browser Interface** - - Open folder selection with hierarchical tree view - - Batch drag-and-drop support for multiple files - - Recursive folder scanning with file filtering - - Video file type detection and filtering - - Recent folders quick access - -- [ ] **Metadata Table/Grid View** - - Sortable columns: Filename, Size, Duration, Codec, Resolution, FPS, Bitrate, Format - - Fast metadata loading with caching - - Column customization (show/hide, reorder) - - Multi-select support for batch operations - - Search/filter capabilities - -- [ ] **Integration with Existing Modules** - - Seamless Compare module integration for video comparison - - Direct file loading into Convert module - - Quick access to Inspect module for file properties - - Return navigation flow after module actions - - Maintain selection state across module switches - -- [ ] **File Management Tools** - - Delete with confirmation dialog ("Are you sure?") - - Move/copy file operations - - Rename functionality - - File organization tools - - Recycle bin safety (platform-specific) - -- [ ] **Context Menu System** - - Right-click context menu for all file operations - - "Open in Player" - Launch VT_Player or internal player - - "Open in External Player" - System default or configured external player - - "File Properties" - Open in Inspect module - - "Convert" - Pre-load file into Convert module - - "Compare" - Add to Compare module - - "Delete" - Confirmation prompt before deletion - -- [ ] **UI/UX Enhancements** - - Grid view and list view toggle - - Thumbnail preview column (optional) - - File size/duration statistics for selections - - Batch operation progress indicators - - Drag-and-drop to other modules - -#### Technical Implementation -- [ ] **Efficient Metadata Caching** - - Background metadata scanning - - SQLite database for fast lookups - - Incremental folder scanning - - Smart cache invalidation - -- [ ] **Cross-Platform File Operations** - - Platform-specific delete (trash vs recycle bin) - - External player detection and configuration - - File association handling - - Permission management - -#### Integration Architecture -- [ ] **Module Interconnection** - - Files → Compare: Select 2+ files for comparison - - Files → Convert: Single-click pre-load into Convert - - Files → Inspect: Double-click or context menu - - Module → Files: "Return to Files" button in other modules - - Persistent selection state across navigation - -- [ ] **Color-Coded Module Navigation** - - Each module has a signature color (already established) - - Buttons/links to other modules use that module's color - - Creates visual consistency and intuitive navigation - - Example: "Compare" button in Files uses Compare module's color - - Example: "Convert" button in Files uses Convert module's color - -**Current Status:** Proposed for VideoTools workflow integration -**Priority:** High - Significantly improves user workflow and file management - -### Subtitle Module (Proposed) -- [ ] Requirements analysis -- [ ] UI design -- [ ] Extract subtitle tracks -- [ ] Add/replace subtitles -- [ ] Burn subtitles into video -- [ ] Format conversion -- [ ] Timing adjustment -- [ ] Multi-language support - -### Streams Module (Proposed) -- [ ] Requirements analysis -- [ ] UI design -- [ ] Stream viewer/inspector -- [ ] Stream selection/removal -- [ ] Stream reordering -- [ ] Map streams to outputs -- [ ] Default flag management - -### GIF Module (Proposed) -- [ ] Requirements analysis -- [ ] UI design -- [ ] Video segment to GIF -- [ ] Palette optimization -- [ ] Frame rate control -- [ ] Loop settings -- [ ] Dithering options -- [ ] Preview before export - -### Crop Module (Proposed) -- [ ] Requirements analysis -- [ ] UI design -- [ ] Visual crop selector -- [ ] Auto-detect black bars -- [ ] Aspect ratio presets -- [ ] Preview with crop overlay -- [ ] Batch crop with presets - -### Screenshots Module (Proposed) -- [ ] Requirements analysis -- [ ] UI design -- [ ] Single frame extraction -- [ ] Burst capture -- [ ] Scene-based capture -- [ ] Format options -- [ ] Batch processing - -## UI/UX Improvements - -### General Interface -- [ ] Keyboard shortcuts system -- [x] Drag-and-drop file loading (v0.1.0-dev11) -- [x] Multiple file drag-and-drop with batch processing (v0.1.0-dev11) -- [ ] **Color-Coded Module Navigation System** - - Apply module signature colors to all references/buttons pointing to that module - - Creates visual consistency and intuitive navigation loop - - Example: "Convert" button anywhere uses Convert module's color - - Example: "Compare" link uses Compare module's color - - Applies globally across all modules for unified experience -- [ ] Dark/light theme toggle -- [ ] Custom color schemes -- [ ] Window size/position persistence -- [ ] Multi-window support -- [ ] Responsive layout improvements - -### Media Player -- [ ] Enhanced playback controls -- [ ] Frame-by-frame navigation -- [ ] Playback speed control -- [ ] A-B repeat loop -- [ ] Snapshot/screenshot button -- [ ] Audio waveform display -- [ ] Subtitle display during playback - -### Queue/Batch System -- [x] Global job queue (v0.1.0-dev11) -- [x] Priority management (v0.1.0-dev11) -- [x] Pause/resume individual jobs (v0.1.0-dev11) -- [x] Queue persistence (v0.1.0-dev11) -- [x] Job history (v0.1.0-dev11) -- [x] Persistent status bar showing queue stats (v0.1.0-dev11) -- [ ] Parallel processing option -- [ ] Estimated completion time - -### Settings/Preferences -- [ ] Settings dialog -- [ ] Default output directory -- [ ] FFmpeg path configuration -- [ ] Hardware acceleration preferences -- [ ] Auto-clear video behavior -- [ ] Preview quality settings -- [ ] Logging verbosity -- [ ] Update checking - -## Performance & Optimization - -- [ ] Optimize preview frame generation -- [ ] Cache metadata for recently opened files -- [ ] Implement progressive loading for large files -- [ ] Add GPU acceleration detection -- [ ] Optimize memory usage for long videos -- [ ] Background processing improvements -- [ ] FFmpeg process management enhancements - -## Testing & Quality - -- [ ] Unit tests for core functions -- [ ] Integration tests for FFmpeg commands -- [ ] UI automation tests -- [ ] Test suite for different video formats -- [ ] Regression tests -- [ ] Performance benchmarks -- [ ] Error handling improvements -- [ ] Logging system enhancements - -## Documentation - -### User Documentation -- [ ] Complete README.md for all modules -- [ ] Getting Started guide -- [ ] Installation instructions (Windows, Linux) -- [ ] Keyboard shortcuts reference -- [ ] Workflow examples -- [ ] FAQ section -- [ ] Troubleshooting guide -- [ ] Video tutorials (consider for future) - -### Developer Documentation -- [ ] Architecture overview -- [ ] Code structure documentation -- [ ] FFmpeg integration guide -- [ ] Contributing guidelines -- [ ] Build instructions for all platforms -- [ ] Release process documentation -- [ ] API documentation (if applicable) - -## Packaging & Distribution - -- [ ] Create installers for Windows (.exe/.msi) -- [ ] Create Linux packages (.deb, .rpm, AppImage) -- [ ] Set up CI/CD pipeline -- [ ] Automatic builds for releases -- [ ] Code signing (Windows/macOS) -- [ ] Update mechanism -- [ ] Crash reporting system - -## Future Considerations - -- [ ] Plugin system for extending functionality -- [ ] Scripting/automation support -- [ ] Command-line interface mode -- [ ] Web-based remote control -- [ ] Cloud storage integration -- [ ] Collaborative features -- [ ] AI-powered scene detection -- [ ] AI-powered quality enhancement -- [ ] Streaming output support -- [ ] Live input support (webcam, capture card) - -## Known Issues - -- **Build hangs on GCC 15.2.1** - CGO compilation freezes during OpenGL binding compilation -- No Windows builds tested yet -- Preview frames not cleaned up on crash - -## Fixed Issues (v0.1.0-dev11) - -- ✅ Limited error messages for FFmpeg failures - Added "Copy Error" button to all error dialogs -- ✅ No progress indication during metadata parsing - Added persistent stats bar showing real-time progress -- ✅ Crash when dragging multiple files - Improved error handling with detailed reporting -- ✅ Queue callback deadlocks - Fixed by running callbacks in goroutines -- ✅ Queue deserialization panic - Fixed formatOption struct handling - -## Research Needed - -- [ ] Best practices for FFmpeg filter chain optimization -- [ ] GPU acceleration capabilities across platforms -- [ ] AI upscaling integration options -- [ ] Disc copy protection legal landscape -- [ ] Cross-platform video codecs support -- [ ] HDR/Dolby Vision handling \ No newline at end of file +## Documentation Alignment + +**Priority:** High + +- [ ] **Audit and Tag Planned Features:** + - Go through all `.md` files in the `docs/` directory and the root. + - For any feature that is described but not yet implemented, add a clear and consistent marker (e.g., `[PLANNED]`). + - This will help manage user expectations and provide a more honest representation of the project's capabilities. + +## Critical Priority: dev22 + +### VIDEO PLAYER IMPLEMENTATION + +**CRITICAL BLOCKER:** All advanced features (enhancement, trim, advanced filters) depend on stable player foundation. + +#### Current Player Issues (from PLAYER_PERFORMANCE_ISSUES.md): + +1. **Separate A/V Processes** (lines 10184-10185 in main.go) + - Video and audio run in completely separate FFmpeg processes + - No synchronization mechanism between them + - They will inevitably drift apart, causing A/V desync and stuttering + - **FIX:** Implement unified FFmpeg process with multiplexed output + +2. **Audio Buffer Too Small** (lines 8960, 9274 in main.go) + - Currently 8192 samples = 170ms buffer + - Modern systems need 100-200ms buffers for smooth playback + - **FIX:** Increase to 16384-32768 samples (340-680ms) + +3. **Volume Processing in Hot Path** (lines 9294-9318 in main.go) + - Processes volume on EVERY audio sample in real-time + - CPU-intensive and blocks audio read loop + - **FIX:** Move volume processing to FFmpeg filters + +4. **Video Frame Pacing Issues** (lines 9200-9203 in main.go) + - time.Sleep() is not precise, cumulative timing errors + - No correction mechanism if we fall behind + - **FIX:** Implement adaptive timing with drift correction + +5. **UI Thread Blocking** (lines 9207-9215 in main.go) + - Frame updates queue up if UI thread is busy + - No frame dropping mechanism + - **FIX:** Implement proper frame buffer management + +6. **No Frame-Accurate Seeking** (lines 10018-10028 in main.go) + - Seeking kills and restarts both FFmpeg processes + - 100-500ms gap during seek operations + - No keyframe awareness + - **FIX:** Implement frame-level seeking without process restart + +#### Player Implementation Plan: + +**Phase 1: Foundation (Week 1-2)** +- [ ] **Unified FFmpeg Architecture** + - Single process with multiplexed A/V output using pipes + - Master clock reference for synchronization + - PTS-based drift correction mechanisms + - Ring buffers for audio and video + +- [ ] **Hardware Acceleration Integration** + - Auto-detect available backends (CUDA, VA-API, VideoToolbox) + - FFmpeg hardware acceleration through native flags + - Fallback to software acceleration when hardware unavailable + +- [ ] **Frame Extraction System** + - Frame extraction without restarting playback + - Keyframe detection and indexing + - Frame buffer pooling to reduce GC pressure + +**Phase 2: Core Features (Week 3-4)** +- [ ] **Frame-Accurate Seeking** + - Seek to specific frames without restarts + - Keyframe-aware seeking for performance + - Frame extraction at seek points for preview + +- [ ] **Chapter System Integration** + - Port scene detection from Author module + - Manual chapter support with keyframing + - Chapter navigation (next/previous) + - Chapter display in UI + +- [ ] **Performance Optimization** + - Adaptive frame timing with drift correction + - Frame dropping when UI thread can't keep up + - Memory pool management for frame buffers + - CPU usage optimization + +**Phase 3: Advanced Features (Week 5-6)** +- [ ] **Preview System** + - Real-time frame extraction + - Thumbnail generation from keyframes + - Frame buffer caching for previews + +- [ ] **Error Recovery** + - Graceful failure handling + - Resume capability after crashes + - Smart fallback mechanisms + +### ENHANCEMENT MODULE FOUNDATION + +**DEPENDS ON PLAYER COMPLETION** + +#### Current State: +- [X] Basic filters module with color correction, sharpening, transforms +- [X] Stylistic effects (8mm, 16mm, B&W Film, Silent Film, VHS, Webcam) +- [X] AI upscaling with Real-ESRGAN integration +- [X] Basic AI model management +- [ ] No content-aware processing +- [ ] No multi-pass enhancement pipeline +- [ ] No before/after preview system + +#### Enhancement Module Plan: + +**Phase 1: Architecture (Week 1-2 - POST PLAYER)** +- [ ] **Model Registry System** + - Abstract AI model interface for easy extension + - Dynamic model discovery and registration + - Model requirements validation + - Configuration management for different model types + +- [ ] **Content Detection Pipeline** + - Automatic content type detection (general/anime/film) + - Quality assessment algorithms + - Progressive vs interlaced detection + - Artifact analysis (compression noise, film grain) + +- [ ] **Unified Enhancement Workflow** + - Combine Filters + Upscale into single module + - Content-aware model selection logic + - Multi-pass processing framework + - Quality preservation controls + +**Phase 2: Model Integration (Week 3-4)** +- [ ] **Open-Source AI Model Expansion** + - BasicVSR integration (video-specific super-resolution) + - RIFE models for frame interpolation + - Real-CUGan for anime/cartoon enhancement + - Model selection based on content type + +- [ ] **Advanced Processing Features** + - Sequential model application capabilities + - Custom enhancement pipeline creation + - Parameter fine-tuning for different models + - Quality vs Speed presets + +### TRIM MODULE ENHANCEMENT + +**DEPENDS ON PLAYER COMPLETION** + +#### Current State: +- [X] Basic planning completed +- [ ] No timeline interface +- [ ] No frame-accurate cutting +- [ ] No chapter integration from Author module + +#### Trim Module Plan: + +**Phase 1: Foundation (Week 1-2 - POST PLAYER)** +- [ ] **Timeline Interface** + - Frame-accurate timeline visualization + - Zoom capabilities for precise editing + - Scrubbing with real-time preview + - Time/frame dual display modes + +- [ ] **Chapter Integration** + - Import scene detection from Author module + - Manual chapter marker creation + - Chapter navigation controls + - Visual chapter markers on timeline + +- [ ] **Frame-Accurate Cutting** + - Exact frame selection for in/out points + - Preview before/after trim points + - Multiple segment trimming support + +**Phase 2: Advanced Features (Week 3-4)** +- [ ] **Smart Export System** + - Lossless vs re-encode decision logic + - Format preservation when possible + - Quality-aware encoding settings + - Batch trimming operations + +### DOCUMENTATION UPDATES + +- [X] **Create PLAYER_MODULE.md** - Comprehensive player architecture documentation +- [X] **Update MODULES.md** - Player and enhancement integration details +- [X] **Update ROADMAP.md** - Player-first development strategy +- [ ] **Create enhancement integration guide** - How modules work together +- [ ] **API documentation** - Player interface for module developers + +## Future Enhancements (dev23+) + +### AI Model Expansion +- [ ] **Diffusion-based models** - SeedVR2, SVFR integration +- [ ] **Advanced restoration** - Scratch repair, dust removal, color fading +- [ ] **Face enhancement** - GFPGAN integration for portrait content +- [ ] **Specialized models** - Content-specific models (sports, archival, etc.) + +### Professional Features +- [ ] **Batch enhancement queue** - Process multiple videos with enhancement pipeline +- [ ] **Hardware optimization** - Multi-GPU support, memory management +- [ ] **Export system** - Professional format support (ProRes, DNxHD, etc.) +- [ ] **Plugin architecture** - Extensible system for community contributions + +### Integration Improvements +- [ ] **Module communication** - Seamless data flow between modules +- [ ] **Unified settings** - Shared configuration across modules +- [ ] **Performance monitoring** - Resource usage tracking and optimization +- [ ] **Cross-platform testing** - Linux, Windows, macOS parity + +## Technical Debt Addressed + +### Player Architecture +- [X] Identified root causes of instability +- [X] Planned Go-based unified solution +- [X] Hardware acceleration strategy defined +- [X] Frame-accurate seeking approach designed + +### Enhancement Strategy +- [X] Open-source model ecosystem researched +- [X] Scalable architecture designed +- [X] Content-aware processing planned +- [X] Future-proof model integration system + +## Notes + +- **Player stability is BLOCKER**: Cannot proceed with enhancement features until player is stable +- **Go implementation preferred**: Maintains single codebase, excellent testing ecosystem +- **Open-source focus**: No commercial dependencies, community-driven model ecosystem +- **Modular design**: Each enhancement system can be developed and tested independently \ No newline at end of file