VT_Player/TODO.md
Stu a026f723ed Update TODO and DONE docs for GTK player
Replace VideoTools-focused docs with VT Player GTK/MPV documentation:
- TODO.md: Comprehensive roadmap for GTK player features
- DONE.md: Detailed v0.2.0-dev1 completion summary

Includes:
- High/medium/low priority features
- Technical debt tracking
- Known issues
- Complete implementation details
- Code metrics and performance data
- Platform support matrix

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-15 06:17:12 -05:00

206 lines
6.6 KiB
Markdown

# VT Player TODO
This file tracks upcoming features, improvements, and known issues for the GTK/MPV-based dual-pane video player.
## Current Focus: GTK Player with MPV
### High Priority Features
#### Playback Controls
- [ ] Add seek bar/slider for timeline scrubbing
- [ ] Add current time / duration display
- [ ] Add playback speed control (0.25x, 0.5x, 1x, 2x, etc.)
- [ ] Add volume controls (currently no UI for volume)
- [ ] Add mute toggle button
- [ ] Add fullscreen mode toggle
- [ ] Keyboard shortcuts for playback control
- [ ] Space: Play/Pause
- [ ] Left/Right arrows: Seek backward/forward
- [ ] Up/Down arrows: Volume
- [ ] F: Fullscreen
- [ ] 0: Seek to start
- [ ] , and .: Frame step backward/forward
#### Video Management
- [ ] Add "Clear Left" and "Clear Right" buttons
- [ ] Add video swap button (swap left and right panes)
- [ ] Add playlist panel showing loaded videos
- [ ] Add "Remove from playlist" option
- [ ] Save/load playlist functionality
- [ ] Remember last loaded videos on startup
#### Drag & Drop Improvements
- [ ] Show visual feedback during drag hover
- [ ] Support dropping onto specific pane (left or right)
- [ ] Support dropping video onto empty space to open file dialog
- [ ] Handle multiple files dropped simultaneously (load into queue)
#### Sync Features
- [ ] Add sync lock toggle (when enabled, both videos seek/play together)
- [ ] Add offset adjustment (sync videos with time offset)
- [ ] Visual indicator when videos are synced
- [ ] Smart sync based on similar durations
#### Display & Layout
- [ ] Add video zoom controls (fit, fill, actual size)
- [ ] Add aspect ratio override options
- [ ] Add grid overlay option for alignment checking
- [ ] Add split position slider (adjust left/right pane sizes)
- [ ] Add vertical split mode option
- [ ] Add single-pane mode (hide one side)
- [ ] Dark theme refinements and color scheme options
#### File Information
- [ ] Show more video metadata in info label
- [ ] Codec details
- [ ] Bitrate
- [ ] File size
- [ ] Frame rate
- [ ] Add tooltip on hover showing full file path
- [ ] Add metadata panel (collapsible)
### Medium Priority Features
#### Export & Comparison
- [ ] Screenshot capture for current frame (both panes or individual)
- [ ] Export comparison frame (side-by-side screenshot)
- [ ] Export difference map (visual difference between frames)
- [ ] Frame-by-frame comparison mode with metrics (SSIM, PSNR)
#### Performance
- [ ] Hardware decoding options (VA-API, VDPAU, NVDEC)
- [ ] Configurable preview quality (for smoother playback on slower systems)
- [ ] Memory usage optimization for long videos
- [ ] Cache recently viewed frames
#### Settings & Configuration
- [ ] Settings dialog
- [ ] Default window size
- [ ] Default playback behavior (auto-pause on load, etc.)
- [ ] Hardware acceleration preferences
- [ ] Preview thumbnail settings
- [ ] Auto-sync settings
- [ ] Save/restore window position and size
- [ ] Remember last used pane assignments
#### Audio
- [ ] Audio track selection (for multi-track videos)
- [ ] Audio visualization (waveform or spectrum)
- [ ] Audio sync offset adjustment
- [ ] Independent audio muting per pane
### Low Priority / Future Features
#### Advanced Playback
- [ ] A-B loop (repeat between two points)
- [ ] Slow-motion playback with frame interpolation
- [ ] Chapter support (if video has chapters)
- [ ] Bookmark/marker system for quick navigation
#### Video Analysis
- [ ] Histogram display
- [ ] Vectorscope display
- [ ] Waveform monitor
- [ ] Scopes in separate window or overlay
#### Filters & Effects
- [ ] Real-time color adjustment (brightness, contrast, saturation)
- [ ] Deinterlacing toggle
- [ ] Rotate/flip controls
- [ ] Crop preview
#### Batch Operations
- [ ] Batch screenshot export (every N frames)
- [ ] Batch comparison report generation
- [ ] Export comparison video (both videos side-by-side in single file)
#### File Management
- [ ] Recent files list
- [ ] Favorite files/folders
- [ ] File browser panel
- [ ] Watch folder (auto-load new videos from folder)
#### Collaboration Features
- [ ] Export playback session (timestamps, notes)
- [ ] Import playback session
- [ ] Notes/comments system with timestamps
- [ ] Export comparison report (PDF/HTML)
## Technical Debt & Improvements
### Code Quality
- [ ] Add unit tests for core functionality
- [ ] Add integration tests for mpv wrapper
- [ ] Improve error handling and user feedback
- [ ] Add comprehensive logging system
- [ ] Refactor main.go into multiple files/packages
- [ ] Split UI code from logic
- [ ] Separate pane management
- [ ] Separate playlist management
- [ ] Separate mpv wrapper improvements
### Build & Distribution
- [ ] Create proper installation script
- [ ] Create .desktop file for Linux
- [ ] Add to Linux app stores (Flathub, Snap Store)
- [ ] Package as AppImage
- [ ] Create .deb and .rpm packages
- [ ] Test on different Linux distributions
- [ ] Test on different desktop environments (GNOME, KDE, XFCE)
### Documentation
- [ ] User guide with screenshots
- [ ] Keyboard shortcuts reference card
- [ ] Video tutorial (getting started)
- [ ] Contributing guide
- [ ] Architecture documentation
- [ ] API documentation for mpvembed package
### Platform Support
- [ ] Test Wayland compatibility (currently uses X11)
- [ ] Test on macOS (via XQuartz)
- [ ] Windows support evaluation
- [ ] Test GTK3 on Windows
- [ ] Test MPV embedding on Windows
- [ ] Create Windows installer
## Known Issues
### Critical
- None currently
### Minor
- [ ] No visual feedback when drag-and-drop is active
- [ ] Window title doesn't update with loaded video names
- [ ] No warning when closing with videos loaded
- [ ] Metadata display truncates long filenames
### Enhancement Needed
- [ ] Better error messages when MPV fails to load video
- [ ] Improve startup time for large video files
- [ ] Add progress indicator for video loading
- [ ] Better handling of unsupported video formats
## Research & Investigation
- [ ] Investigate MPV render API for better integration
- [ ] Research best practices for video sync across players
- [ ] Explore frame-accurate seeking optimizations
- [ ] Investigate color management and HDR support
- [ ] Research subtitle rendering options
- [ ] Evaluate audio normalization for comparison mode
## Completed (See DONE.md)
- ✅ Basic GTK player with MPV embedding
- ✅ Dual-pane layout with independent playback
- ✅ Drag-and-drop file loading
- ✅ Basic playback controls (play, pause, seek, frame step)
- ✅ Video playlist tracking with IDs
- ✅ Metadata display (resolution, duration, position)
- ✅ CGO/MPV render context implementation
---
*Last Updated: 2025-12-15*