826 lines
29 KiB
Markdown
826 lines
29 KiB
Markdown
# VideoTools TODO (v0.1.0-dev19+ 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 dev19 (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
|
||
- 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
|
||
|
||
*Last Updated: 2025-12-20*
|
||
|
||
## 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
|
||
|
||
### 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) 🔄 PLANNED
|
||
Trim provides frame-accurate cutting with lossless-first philosophy (inspired by Lossless-Cut):
|
||
|
||
#### Core Features
|
||
- [ ] **Lossless-First Approach** - Stream copy when possible, smart re-encode fallback
|
||
- [ ] **Keyframe-Snapping Timeline** - Visual keyframe markers with smart snapping
|
||
- [ ] **Frame-Accurate Navigation** - Reuse VT_Player's keyframe detection system
|
||
- [ ] **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
|