VT_Player/TODO.md
Stu 18a14c6020 Refactor to modular architecture with rainbow UI (v0.1.0-dev8)
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>
2025-11-23 14:56:37 -05:00

8.3 KiB

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