forked from Leak_Technologies/VideoTools
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>
206 lines
6.6 KiB
Markdown
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*
|