VideoTools/TODO.md

9.1 KiB

VideoTools TODO (v0.1.0-dev12 plan)

This file tracks upcoming features, improvements, and known issues.

Critical Issues / Polishing for dev12

  • Queue polish: ensure scroll/refresh stability with 10+ jobs and long runs
  • Direct+queue parity: verify label/progress/order are correct when mixing modes
  • Conversion error surfacing: include stderr snippet in dialog for faster debug
  • DVD author helper (optional): one-click VIDEO_TS/ISO from DVD .mpg
  • Build reliability: document cgo/GL deps and avoid accidental cache wipes

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 (dev12 focus)

  • 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 (v0.1.0-dev11)
  • Multi-video loading and navigation (v0.1.0-dev11)
  • 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 (v0.1.0-dev11)
  • Multiple file drag-and-drop with batch processing (v0.1.0-dev11)
  • 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 (v0.1.0-dev11)
  • Priority management (v0.1.0-dev11)
  • Pause/resume individual jobs (v0.1.0-dev11)
  • Queue persistence (v0.1.0-dev11)
  • Job history (v0.1.0-dev11)
  • Persistent status bar showing queue stats (v0.1.0-dev11)
  • Parallel processing option
  • Estimated completion time

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
  • Preview frames not cleaned up on crash

Fixed Issues (v0.1.0-dev11)

  • Limited error messages for FFmpeg failures - Added "Copy Error" button to all error dialogs
  • No progress indication during metadata parsing - Added persistent stats bar showing real-time progress
  • Crash when dragging multiple files - Improved error handling with detailed reporting
  • Queue callback deadlocks - Fixed by running callbacks in goroutines
  • Queue deserialization panic - Fixed formatOption struct handling

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