forked from Leak_Technologies/VideoTools
Major refactoring to improve code organization and enhance UI: Architecture: - Split monolithic main.go into modular internal/ package structure - Created internal/logging for centralized logging system - Created internal/modules for module handler functions - Created internal/ui for UI components and layouts - Created internal/utils for shared utility functions UI Enhancements: - Implemented rainbow gradient across 8 module buttons (violet→red) - Increased module button text size to 20 for better readability - Fixed text centering on module tiles - Converted Simple/Advanced mode toggle to tabs to save vertical space - Added vertical scrollbars to prevent UI overflow - Added metadata copy button (📋) to copy all metadata to clipboard Video Processing: - Fixed aspect ratio conversion to default to center-crop behavior - Added 6 aspect handling modes: Auto, Crop, Letterbox, Pillarbox, Blur Fill, Stretch - Fixed blur fill to maintain source resolution with padding (no scaling) - Ensured all FFmpeg filters produce even-numbered dimensions for H.264 Known Issues: - WMV files still produce FFmpeg error 234 during aspect conversions (requires codec-specific handling in future update) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
301 lines
8.3 KiB
Markdown
301 lines
8.3 KiB
Markdown
# VideoTools TODO
|
|
|
|
This file tracks upcoming features, improvements, and known issues.
|
|
|
|
## Critical Issues
|
|
|
|
### Build System
|
|
- [ ] **Fix GCC 15.2.1 CGO compilation hang** - Current builds hang during OpenGL/CGO compilation
|
|
- Investigate GCC version compatibility
|
|
- Test with older GCC versions
|
|
- Consider Docker build environment
|
|
- Document workaround for development builds
|
|
|
|
## 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
|
|
- [ ] 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
|
|
- [ ] Add batch conversion queue
|
|
- [ ] Estimated file size calculator
|
|
- [ ] Preview/comparison mode
|
|
- [ ] Audio-only output option
|
|
- [ ] Add more codec options (AV1, VP9)
|
|
|
|
### 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 (Not Started)
|
|
- [ ] Design UI with timeline
|
|
- [ ] Implement frame-accurate seeking
|
|
- [ ] Visual timeline with preview thumbnails
|
|
- [ ] Multiple trim ranges selection
|
|
- [ ] Chapter-based splitting
|
|
- [ ] Smart copy mode (no re-encode)
|
|
- [ ] Batch trim operations
|
|
- [ ] Keyboard shortcuts for marking in/out points
|
|
|
|
### Filters Module (Not Started)
|
|
- [ ] Design filter selection UI
|
|
- [ ] Implement color correction filters
|
|
- [ ] Brightness/Contrast
|
|
- [ ] Saturation/Hue
|
|
- [ ] 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 (Not Started)
|
|
- [ ] Design thumbnail generation UI
|
|
- [ ] Single thumbnail extraction
|
|
- [ ] Grid/contact sheet generation
|
|
- [ ] Customizable layouts
|
|
- [ ] Scene detection
|
|
- [ ] Animated thumbnails
|
|
- [ ] Batch processing
|
|
- [ ] Template system
|
|
|
|
### 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
|
|
|
|
### 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
|
|
- [ ] Drag-and-drop file loading
|
|
- [ ] 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
|
|
- [ ] Global job queue
|
|
- [ ] Priority management
|
|
- [ ] Pause/resume individual jobs
|
|
- [ ] Parallel processing option
|
|
- [ ] Queue persistence
|
|
- [ ] Estimated completion time
|
|
- [ ] Job history
|
|
|
|
### 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, macOS, 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 macOS app bundle (.dmg)
|
|
- [ ] 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/macOS builds tested yet
|
|
- Limited error messages for FFmpeg failures
|
|
- No progress indication during metadata parsing
|
|
- Preview frames not cleaned up on crash
|
|
|
|
## 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
|