Implements visual timeline with smooth interaction and keyframe visualization: Timeline Widget Features: - Custom Fyne widget in internal/ui/timeline.go - Visual keyframe markers (yellow 1px vertical lines) - Current position scrubber (white 2px line with circle handle) - Progress fill showing played portion (gray) - Mouse click/drag for smooth seeking - In/out point marker support (for future cut functionality) Rendering Performance: - Cached rendering objects to minimize redraws - Only scrubber position updates on playback - Full redraw only on resize or keyframe data change - Optimized for 1000+ keyframes without lag UI Integration: - Timeline replaces slider when keyframing mode is enabled - Automatically loads keyframe timestamps from Index - Integrates with existing updateProgress callback - Maintains current time/total time labels Technical Implementation: - TimelineWidget extends widget.BaseWidget - Custom renderer implements fyne.WidgetRenderer - SetOnChange() for seek callback - SetPosition() for playback updates - SetKeyframes() for keyframe marker display - Desktop mouse events for hover and drag Visual Design: - Dark gray background (#282828) - Lighter gray progress fill (#3C3C3C) - Yellow keyframe markers (#FFDC00 with transparency) - White scrubber with circular handle - Blue in-point marker for cuts - Red out-point marker for cuts References: DEV_SPEC lines 192-241 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| convert | ||
| inspect | ||
| rip | ||
| BUILD_AND_RUN.md | ||
| COMPLETION_SUMMARY.md | ||
| DONE.md | ||
| DVD_IMPLEMENTATION_SUMMARY.md | ||
| DVD_USER_GUIDE.md | ||
| FEATURE_ROADMAP.md | ||
| GNOME_COMPATIBILITY.md | ||
| ICONS_NEEDED.md | ||
| INTEGRATION_GUIDE.md | ||
| LATEST_UPDATES.md | ||
| MATERIAL_ICONS_MAPPING.md | ||
| MODULES.md | ||
| PERSISTENT_VIDEO_CONTEXT.md | ||
| QUEUE_SYSTEM_GUIDE.md | ||
| README.md | ||
| TEST_DVD_CONVERSION.md | ||
| TESTING_DEV13.md | ||
| TODO.md | ||
| VIDEO_PLAYER_FORK.md | ||
| VIDEO_PLAYER.md | ||
VideoTools Documentation
VideoTools is a comprehensive FFmpeg GUI wrapper that provides user-friendly interfaces for common video processing tasks.
Documentation Structure
Core Modules (Implemented/Planned)
- Convert - Video transcoding and format conversion
- Merge - Join multiple video clips
- Trim - Cut and split videos
- Filters - Video and audio effects
- Upscale - Resolution enhancement
- Audio - Audio track operations
- Thumb - Thumbnail generation
- Inspect - Metadata viewing and editing
- Rip - DVD/Blu-ray extraction
Additional Modules (Proposed)
- Subtitle - Subtitle management
- Streams - Multi-stream handling
- GIF - Animated GIF creation
- Crop - Video cropping tools
- Screenshots - Frame extraction
Design Documents
- Persistent Video Context - Cross-module video state management
- Module Overview - Complete module feature list
- Custom Video Player - Embedded playback implementation
Development
- Architecture - Application structure and design patterns (coming soon)
- FFmpeg Integration - FFmpeg command building and execution (coming soon)
- Contributing - Contribution guidelines (coming soon)
User Guides
- Getting Started - Installation and first steps (coming soon)
- Workflows - Common multi-module workflows (coming soon)
- Keyboard Shortcuts - Keyboard shortcuts reference (coming soon)