Drag-and-Drop on Main Menu: - Implemented position-based drop detection on main menu module tiles - Added detectModuleTileAtPosition() to calculate which tile receives the drop - Modified window drop handler to pass position and route to appropriate module - Bypasses Fyne's drop event hierarchy limitation where window-level handlers intercept drops before widgets can receive them - Only enabled tiles (currently Convert) respond to drops - Loads video and switches to module automatically Cover Art Embedding Fixes: - Fixed FFmpeg exit code 234 error when embedding cover art - Added explicit PNG codec specification for cover art streams - Snippet generation: Added `-c✌️1 png` after mapping cover art stream - Full conversion: Added `-c✌️1 png` for proper MP4 thumbnail encoding - MP4 containers require attached pictures to be PNG or MJPEG encoded Embedded Cover Art Extraction: - Added EmbeddedCoverArt field to videoSource struct - Extended ffprobe parsing to detect attached_pic disposition - Automatically extracts embedded thumbnails when loading videos - Extracted cover art displays in metadata section (168x168) - Enables round-trip workflow: generate snippet with thumbnail, load snippet and see the embedded thumbnail displayed Technical Details: - Modified handleDrop to accept position parameter - Added Index and Disposition fields to ffprobe stream parsing - Cover art streams now excluded from main video stream detection - Grid layout: 3 columns, ~302px per column, ~122px per row, starts at y=100 - Embedded thumbnails extracted to /tmp/videotools-embedded-cover-*.png 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| logging | ||
| modules | ||
| player | ||
| ui | ||
| utils | ||