Page:
COMPARE_FULLSCREEN
Pages
AUTHOR_MODULE
BUGS
BUILD
BUILD_AND_RUN
CHANGELOG
CHOCO_INSTALL
COMPARE_FULLSCREEN
COMPLETION_SUMMARY
CONVERT_MODULARIZATION_PLAN
CROSS_PLATFORM_GUIDE
DEV14_WINDOWS_IMPLEMENTATION
DEV30_FINALIZATION_CHECKLIST
DVD_IMPLEMENTATION_SUMMARY
DVD_USER_GUIDE
Documentation
GNOME_COMPATIBILITY
GSTREAMER_MIGRATION_PLAN
Home
IMPLEMENTATION_SUMMARY
INSTALLATION
INSTALL_LINUX
INSTALL_WINDOWS
INTEGRATION_GUIDE
INTERNAL_DVD_AUTHORING_SPEC
LATEST_UPDATES
LATEX_PREPARATION
LOSSLESSCUT_INSPIRATION
MODULES
PERSISTENT_VIDEO_CONTEXT
PHASE2_COMPLETE
PHASE2_INTEGRATION_PLAN
PLAYER_MODULE
PLAYER_PERFORMANCE_ISSUES
PROJECT_STATUS
QUEUE_SYSTEM_GUIDE
QUICKSTART
REFACTOR_DEV30_PLAN
ROADMAP
TESTING_CHECKLIST
TESTING_DEV13
TESTING_MODULE_CHECKLIST
TEST_DVD_CONVERSION
TODO_EXTRACTION_NOTES
TRIM_MODULE_DESIGN
VIDEO_METADATA_GUIDE
VIDEO_PLAYER
VIDEO_PLAYER_FORK
VT_PLAYER_IMPLEMENTATION
VT_PLAYER_INTEGRATION_NOTES
WINDOWS_BUILD_PERFORMANCE
WINDOWS_COMPATIBILITY
WINDOWS_PACKAGING
WINDOWS_SETUP
WORKING_ON
localization policy
No results
3
COMPARE_FULLSCREEN
Gemini CLI edited this page 2026-03-15 14:37:09 -04:00
Compare Module - Fullscreen Mode
Overview
The Compare module now includes a Fullscreen Compare mode that displays two videos side-by-side in a larger view, optimized for detailed visual comparison.
Features
Current (v0.1)
- Side-by-side fullscreen layout
- Larger video players for better visibility
- Individual playback controls for each video
- File labels showing video names
- Back button to return to regular Compare view
- Pink colored header/footer matching Compare module
Planned (Future - requires VT_Player enhancements)
- Synchronized playback - Play/Pause both videos simultaneously
- Linked seeking - Seek to same timestamp in both videos
- Frame-by-frame sync - Step through both videos in lockstep
- Volume link - Adjust volume on both players together
- Playback speed sync - Change speed on both players at once
Usage
Accessing Fullscreen Mode
- Load two videos in the Compare module
- Click the "Fullscreen Compare" button
- Videos will display side-by-side in larger players
Controls
- Individual players: Each video has its own play/pause/seek controls
- "Play Both" button: Placeholder for future synchronized playback
- "Pause Both" button: Placeholder for future synchronized pause
- "< BACK TO COMPARE": Return to regular Compare view
Use Cases
Visual Quality Comparison
Compare encoding settings or compression quality:
- Original vs. compressed
- Different codec outputs
- Before/after color grading
- Different resolution scaling
Frame-Accurate Comparison
When VT_Player sync is implemented:
- Compare edits side-by-side
- Check for sync issues in re-encodes
- Validate frame-accurate cuts
- Compare different filter applications
A/B Testing
Test different processing settings:
- Different deinterlacing methods
- Upscaling algorithms
- Noise reduction levels
- Color correction approaches
Technical Notes
Current Implementation
- Uses standard
buildVideoPane()for each side - 640x360 minimum player size (scales with window)
- Independent playback state per video
- No shared controls between players yet
VT_Player API Requirements for Sync
For synchronized playback, VT_Player will need:
// Playback state access
player.IsPlaying() bool
player.GetPosition() time.Duration
// Event callbacks
player.OnPlaybackStateChanged(callback func(playing bool))
player.OnPositionChanged(callback func(position time.Duration))
// Synchronized control
player.SyncWith(otherPlayer *Player)
player.Unsync()
Synchronization Strategy
When VT_Player supports it:
- Master-Slave Pattern: One player is master, other follows
- Linked Events: Play/pause/seek events trigger on both
- Position Polling: Periodically check for drift and correct
- Frame-Accurate Sync: Step both players frame-by-frame together
Keyboard Shortcuts (Planned)
When implemented in VT_Player:
Space- Play/Pause both videosJ/L- Rewind/Forward both videos←/→- Step both videos frame-by-frameK- Pause both videos0-9- Seek to percentage (0% to 90%) in bothEsc- Exit fullscreen mode
UI Layout
┌─────────────────────────────────────────────────────────────┐
│ < BACK TO COMPARE │ ← Pink header
├─────────────────────────────────────────────────────────────┤
│ │
│ Side-by-side fullscreen comparison. Use individual... │
│ │
│ [▶ Play Both] [⏸ Pause Both] │
│ ───────────────────────────────────────────────────────── │
│ │
│ ┌─────────────────────────┬─────────────────────────────┐ │
│ │ File 1: video1.mp4 │ File 2: video2.mp4 │ │
│ ├─────────────────────────┼─────────────────────────────┤ │
│ │ │ │ │
│ │ Video Player 1 │ Video Player 2 │ │
│ │ (640x360 min) │ (640x360 min) │ │
│ │ │ │ │
│ │ [Play] [Pause] [Seek] │ [Play] [Pause] [Seek] │ │
│ │ │ │ │
│ └─────────────────────────┴─────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
← Pink footer
Future Enhancements
v0.2 - Synchronized Playback
- Implement master-slave sync between players
- Add "Link" toggle button to enable/disable sync
- Visual indicator when players are synced
v0.3 - Advanced Sync
- Offset compensation (e.g., if videos start at different times)
- Manual sync adjustment (nudge one video forward/back)
- Sync validation indicator (shows if videos are in sync)
v0.4 - Comparison Tools
- Split-screen view with adjustable divider
- A/B quick toggle (show only one at a time)
- Difference overlay (highlight changed regions)
- Frame difference metrics display
Notes
- Fullscreen mode is accessible from regular Compare view
- Videos must be loaded before entering fullscreen mode
- Synchronized controls are placeholders until VT_Player API is enhanced
- Window can be resized freely - players will scale
- Each player maintains independent state for now
Navigation
What is VideoTools?
Project Status
Capabilities
Codecs and Frame Rates
Installation (One Command)
Alternative: Developer Setup
DVD Workflow (Optional)
Documentation
- Project Status
- Installation
- Readme
- Build And Run
- DVD User Guide
- DVD Implementation Summary
- Integration Guide
- Queue System Guide
- Localization-Policy