- Language dropdown (System/en/es/fr/de/ja/zh) persists to convertConfig.Language.
- Hardware Acceleration dropdown persists to convertConfig.HardwareAccel.
- Replace placeholder with working controls.
- Keep Preferences tab logically grouped; avoid menu surfing.
Note: No runtime language switching yet; selection persisted for future implementation.
This change provides user control of global defaults independent of benchmark,
and maintains decoupling introduced by benchmark refactor.
- Update loadMultipleThumbVideos call to loadMultipleThumbnailVideos in main.go
- Resolves build error: s.loadMultipleThumbVideos undefined
- All Thumb-to-Thumbnail refactoring now complete and functional
- Rename thumb_module.go to thumbnail_module.go and thumb_config.go to thumbnail_config.go
- Update all function names from showThumbView/addThumbSource/etc to showThumbnailView/addThumbnailSource/etc
- Update all struct fields from thumbFile/thumbFiles/etc to thumbnailFile/thumbnailFiles/etc
- Update config struct from thumbConfig to thumbnailConfig
- Update job type from JobTypeThumb to JobTypeThumbnail
- Update module registration from 'thumb' to 'thumbnail' in main.go
- Update UI components to show 'THUMBNAIL' instead of 'THUMB'
- Update handler function from HandleThumb to HandleThumbnail
- Update file naming patterns from 'thumb_*.jpg' to 'thumbnail_*.jpg'
- Update author module references to use Thumbnail naming
- Update documentation in QUEUE_SYSTEM_GUIDE.md
- Maintains all existing functionality while using clearer naming
- Enhanced Windows 11 native installer with GPU detection and DirectX 12 support
- Add cross-platform GUI detection utilities for improved platform handling
- Implement localization infrastructure foundation with i18n support
- Create comprehensive cross-platform deployment guide
- Add Inuktitut and Cree syllabics support framework
- Enhanced Arch Linux installation with desktop environment detection
- Implement Windows 11 DPI awareness and display scaling support
- Add automated cross-platform testing framework
- Prompt to install Go when not detected as required dependency
- Support cross-platform installation via package managers (apt, dnf, pacman, zypper, brew)
- Add Windows manual installation guidance
- Verify successful installation after attempt
- Maintain existing script flow and error handling
- Add base-devel and pkgconf packages for Go CGO compilation
- Add xorriso package for DVD ISO extraction (was missing)
- Add --needed flag to avoid reinstalling existing packages
- Add graphics driver detection with helpful warnings for NVIDIA/AMD GPUs
- Non-invasive: warns about missing drivers but doesn't auto-install them
- Add dual logo support (title logo + studio logo) for DVD menus
- Implement chapters menu with chapter navigation
- Implement extras menu for bonus content
- Add "Mark as Extra" checkbox for clips in UI
- Extras automatically appear in separate menu when marked
- Filter extras from chapters menu in real-time
- Encode extras as separate DVD titles (Title 2, 3, etc.)
- Update menu navigation with proper PGC looping
- Fix text escaping in DVD menus (alphanumeric only)
- Remove "future DVD menus" placeholder text from UI
Menu structure:
- Main menu: Play, Chapters (if >1), Extras (if present)
- Chapters menu: Lists all feature chapters + Back button
- Extras menu: Lists all extras as separate titles + Back button
- All menus loop and return to main menu after playback
Fixed FFmpeg filter parsing error by removing single quotes from font
paths and properly escaping special characters instead.
The Bug:
FFmpeg's drawtext filter was failing because fontfile paths were wrapped
in single quotes, which conflicted with the filter expression parsing:
drawtext=fontfile='/path/to/font.ttf':text='Some Text'
^ ^ ^ ^
These quotes broke FFmpeg's parser!
Error was:
[AVFilterGraph] No option name near ' I Fucked My Best…'
Error parsing filterchain ... around:
The Fix:
Before: fontfile='/home/.../IBMPlexMono-Regular.ttf'
After: fontfile=/home/.../IBMPlexMono-Regular.ttf (with : and ' escaped)
Now we:
1. Escape : as \: (FFmpeg filter requirement)
2. Escape ' as \' (FFmpeg filter requirement)
3. Don't wrap in quotes (FFmpeg doesn't need them)
Same fix applied to font= paths (system fonts).