VideoTools/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

6.6 KiB

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