# 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*