Commit Graph

90 Commits

Author SHA1 Message Date
eaba5abe5f Quiet whisper model download output 2026-01-11 07:34:52 -05:00
e8e3a64cb3 Verify whisper model checksum on install 2026-01-11 07:26:41 -05:00
9999a1716a Auto-download whisper small model in install 2026-01-11 07:21:56 -05:00
813c8859d3 Prefer whisper small model for offline STT 2026-01-11 07:12:36 -05:00
e0abdd6a33 Include git commit in version string 2026-01-10 16:47:45 -05:00
749bdc6bf9 refactor(player): remove legacy UnifiedPlayer, GStreamer now mandatory
- Removed unified_ffmpeg_player.go and unified_player_adapter.go
- Updated frame_player_gstreamer.go to remove UnifiedPlayer fallback
- Updated frame_player_default.go to return error when GStreamer unavailable
- Updated PROJECT_STATUS.md: Player module now fully implemented with GStreamer
- Removed critical issues note about Player A/V sync problems

GStreamer is now the sole playback backend, providing stable A/V
synchronization and frame-accurate seeking. The broken FFmpeg pipe-based
UnifiedPlayer has been completely removed.
2026-01-09 22:02:22 -05:00
4f4504bae0 feat(scripts): add run-debug.sh for convenient debug mode launching
Add convenience script for running VideoTools in debug mode:
- Automatically enables --debug flag
- Outputs to both console and timestamped log file
- Creates logs/ directory with organized debug logs
- Shows log file location before and after run

Usage:
  ./scripts/run-debug.sh

Logs saved to:
  logs/videotools_debug_YYYYMMDD_HHMMSS.log

This makes debugging much easier without typing the full command
with tee redirection every time.
2026-01-09 21:36:36 -05:00
57eecf96df feat(player): integrate GStreamer for stable video playback
- Add GStreamer as mandatory core dependency in install.sh
- Create controller_gstreamer.go wrapping GStreamerPlayer
- Add missing methods to GStreamerPlayer (SetWindow, Stop, SetFullScreen)
- Fix GstSeekFlags type casting issue
- Update build scripts to always use -tags gstreamer
- Update controller_linux.go build tag to exclude when gstreamer enabled
- Add comprehensive migration documentation

GStreamer replaces the broken FFmpeg pipe-based UnifiedPlayer.
GStreamer 1.26+ provides frame-accurate seeking and reliable A/V sync.
2026-01-09 03:43:34 -05:00
f686323acc Harden Windows icon resource generation 2026-01-07 15:29:02 -05:00
d30229dfae Embed Windows app icon via windres 2026-01-07 14:40:53 -05:00
b868eae686 Add build time to scripts 2026-01-07 13:45:58 -05:00
88bc5ad4d4 Add GStreamer preview backend 2026-01-07 02:50:27 -05:00
27ba4317a0 Add GStreamer to dev install scripts 2026-01-07 02:40:06 -05:00
Stu Leak
b13467707a Ignore vendor dir for builds without modules.txt 2026-01-04 21:27:13 -05:00
Stu Leak
175cb7d8ce Make Whisper offline setup fully automatic 2026-01-04 19:45:28 -05:00
Stu Leak
06df69c44f Auto-seed offline Whisper model 2026-01-04 19:35:24 -05:00
Stu Leak
a76035cbff Drop qrencode dependency from installers 2026-01-04 04:28:28 -05:00
Stu Leak
6c95ef07a9 Require qrencode in Windows dependency installer 2026-01-04 04:25:00 -05:00
Stu Leak
a9926dbdfc Add qrencode dependency to install script 2026-01-04 04:20:05 -05:00
c56a936fac fix: QoL improvements and cleanup
- Fix audio module initialization order (SetSelected after bitrate entry)
- Remove unused onnxruntime_go dependency from go.mod
- Improve install.sh to skip prompts for already-installed tools
  (DVDStyler, dvdauthor, xorriso, Real-ESRGAN, Whisper)
2026-01-02 04:24:47 -05:00
fec9a86f56 feat(install): Add Whisper support for automated subtitling
Added optional Whisper installation to install.sh:
- New --skip-whisper flag to disable Whisper installation
- Interactive prompt asking if user wants Whisper for subtitling
- Automatic installation of openai-whisper via pip3
- PATH configuration hints for ~/.local/bin
- Python 3 and pip3 dependency checks

Whisper enables automated subtitle generation from audio using
OpenAI's speech recognition model.
2025-12-30 22:09:25 -05:00
cfe16f19a8 Remove terminal banner from alias.sh
The banner was displaying every time a new shell was opened,
which was intrusive. Now the aliases load silently.

Commands are still available (VideoTools, VideoToolsRebuild,
VideoToolsClean) but without the banner on every terminal load.
2025-12-30 21:25:03 -05:00
4574ead2a3 Remove emojis from install script, use text indicators
Replaced all emojis with text-based indicators:
- ✓ → [OK] (with GREEN color)
- ✗ → [ERROR] (with RED color)
- ⚠ → WARNING: (with YELLOW color)

Color coding is preserved for visual distinction while remaining
accessible in all terminals and avoiding encoding issues.
2025-12-30 21:20:24 -05:00
583fb50d39 Add optional AI upscaling tools installation
Added support for installing Real-ESRGAN NCNN during setup:

**New Features:**
- Prompts user to install AI upscaling tools (Real-ESRGAN NCNN)
- Downloads and installs binary from GitHub releases
- Tries /usr/local/bin with sudo, falls back to ~/.local/bin
- Supports x86_64 architecture, warns for ARM
- Added --skip-ai flag to skip AI tools prompt

**Installation Flow:**
1. Ask: "Install DVD authoring tools?" (dvdauthor + xorriso)
2. Ask: "Install AI upscaling tools?" (Real-ESRGAN NCNN)
3. Auto-install all missing dependencies user requested

**Benefits:**
- Users get AI upscaling without manual download
- FFmpeg native upscaling still works without it
- Optional enhancement, not required
2025-12-30 21:15:47 -05:00
2ebf6704e1 Auto-install missing dependencies without additional prompt
Previously, install.sh would:
1. Ask "Install DVD authoring tools?"
2. Then ask again "Install missing dependencies now?"

Now it automatically installs any missing dependencies after the
user confirms they want DVD tools, eliminating the redundant prompt.

Changes:
- Removed second confirmation prompt for dependency installation
- Automatically installs missing deps when detected
- Shows clear message: "Missing dependencies: ... Installing..."
2025-12-30 21:11:06 -05:00
7cd7071480 Fix install script to specifically require xorriso
The dependency check was accepting any ISO tool (mkisofs, genisoimage,
or xorriso), but the install commands now specifically install xorriso.

Updated checks to require xorriso specifically since:
- It handles both ISO9660 and UDF formats
- Required for RIP module to extract UDF DVD ISOs
- Now installed by all package managers in the script

This ensures the install script will detect and install xorriso even
if older tools like genisoimage are already present.
2025-12-30 21:10:32 -05:00
290d042ea2 Fix metadata display and improve ISO extraction support
**Metadata Panel Fix:**
- Simplified makeRow layout to properly display values
- Changed from complex Border layout to simple HBox
- Metadata values now visible in Convert module

**RIP Module Improvements:**
- Added mount-based ISO extraction for UDF ISOs
- Added 7z extraction fallback
- Prioritizes xorriso > 7z > bsdtar for ISO extraction
- Handles both ISO9660 and UDF format DVDs

**Installation Script:**
- Updated all package managers to install xorriso
- Ensures proper UDF ISO support when disc modules enabled
- apt/dnf/zypper now install xorriso instead of genisoimage
2025-12-30 21:07:50 -05:00
584835000b Fix subtitle module drag and drop and remove emojis from scripts
- Wrap entire subtitle module content in droppable container for drag and drop anywhere
- Remove all emojis from build scripts (build-linux.sh, build.sh, build-windows.sh, alias.sh)
- Subtitle module now accepts video/subtitle file drops on any part of the view
2025-12-26 20:17:24 -05:00
05087a0fe8 Update Windows build guide for Git Bash users
Git Bash Optimizations:
- Create add-defender-exclusions.ps1 automated script
- Update guide with Git Bash-first instructions
- Add command for running PowerShell from Git Bash
- Document how to run Git Bash as Administrator

New Helper Script:
- scripts/add-defender-exclusions.ps1
- Automatically adds all necessary Defender exclusions
- Shows clear success/failure messages
- Can be run from Git Bash using powershell.exe

Documentation Updates:
- Prioritize Git Bash commands (Jake's workflow)
- Add "Quick Start for Git Bash Users" section
- Provide step-by-step Git Bash instructions
- Keep PowerShell/CMD options as alternatives

For Jake:
```bash
# From Git Bash as Administrator:
powershell.exe -ExecutionPolicy Bypass -File ./scripts/add-defender-exclusions.ps1
```
2025-12-23 20:55:47 -05:00
fe75a7310e Add Windows build performance optimizations
Build Script Improvements:
- Add -p flag for parallel compilation (use all CPU cores)
- Add -trimpath for faster builds and smaller binaries
- Detect CPU core count automatically
- Show parallel process count during build

Performance Guide:
- Create WINDOWS_BUILD_PERFORMANCE.md with troubleshooting steps
- Document Windows Defender exclusion fix (saves 2-5 minutes)
- Provide PowerShell commands for adding exclusions
- Include benchmarking and troubleshooting commands

Expected Improvements:
- With Defender exclusions: 5+ min → 30-90 sec
- Parallel compilation: 30-50% faster on multi-core CPUs
- Trimpath flag: 10-20% faster linking

Scripts Updated:
- build.ps1: Added core detection and optimization flags
- build.bat: Added parallel build support

Addresses Jake's 5+ minute Windows build issue.
2025-12-23 20:53:43 -05:00
3a02cfcae1 Allow local DVDStyler ZIP install 2025-12-23 20:00:54 -05:00
8f34ee1f92 Add more DVDStyler mirrors 2025-12-23 20:00:54 -05:00
df23fee585 Add manual DVDStyler download hint 2025-12-23 20:00:54 -05:00
2840da0983 Prompt for optional DVD authoring deps 2025-12-23 20:00:54 -05:00
5f48e041d0 Harden DVDStyler download fallback 2025-12-23 18:41:44 -05:00
d9686b20ed Make install.sh dependencies-only 2025-12-23 18:41:12 -05:00
d54c61a8ab Polish menu header and Windows DVDStyler download 2025-12-23 18:30:35 -05:00
30479fed4a Add DVDStyler URL override for Windows installer 2025-12-23 17:16:24 -05:00
95f0300839 Improve DVDStyler download mirrors for Windows 2025-12-23 15:59:17 -05:00
f6e8e95b3e Harden DVDStyler download for Windows deps 2025-12-23 15:33:54 -05:00
a075495a8a Fix Windows deps script encoding for PowerShell 2025-12-23 15:02:38 -05:00
60fd6e93ee Finalize authoring workflow and update install docs 2025-12-23 14:24:09 -05:00
d489e0301c Add automated Real-ESRGAN setup script for Linux
Created setup-realesrgan-linux.sh for easy one-command installation:
- Downloads Real-ESRGAN ncnn Vulkan binary from GitHub releases
- Installs to ~/.local/bin/realesrgan-ncnn-vulkan
- Installs all AI models to ~/.local/share/realesrgan/models/
- Sets proper permissions
- Provides PATH setup instructions

Installation:
  ./scripts/setup-realesrgan-linux.sh

Models included (45MB):
- realesr-animevideov3 (x2, x3, x4) - Anime/illustration upscaling
- realesrgan-x4plus - General photo/video upscaling
- realesrgan-x4plus-anime - Anime-specific upscaling

Tested and working on Fedora 43. Makes AI upscaling fully automated
for Linux users - no manual downloads or configuration needed.

Next step: Add in-app "Install AI Upscaling" button to VideoTools UI
for even easier setup without using terminal.
2025-12-21 14:10:46 -05:00
Jake P
f1c56ba778 Attempted to create GUI
Attempted to create GUIs for both lt-convert and lt-gui
2025-12-17 22:50:59 +00:00
9045460dbc Update documentation for snippet system overhaul
Documents the complete snippet system redesign with dual output modes:
- "Snippet to Default Format": Stream copy mode for bit-perfect source preservation
- "Snippet to Output Format": Conversion preview using actual settings

Updates ai-speak.md with comprehensive snippet testing requirements and Jake's AI communication. Updates DONE.md with detailed feature breakdown, technical improvements, and bug fixes. Includes testing checklist for both snippet modes and batch generation.
2025-12-16 23:09:09 -05:00
0f23953ba8 Complete dev18: Thumbnail enhancements, Player/Filters/Upscale modules, and precise snippet generation
Enhances screenshot module with comprehensive technical metadata display including audio bitrate, adds 8px padding between thumbnails for professional contact sheets. Implements new Player module for video playback access. Adds complete Filters and Upscale modules with traditional FFmpeg scaling methods (Lanczos, Bicubic, Spline, Bilinear) and resolution presets (720p-8K). Introduces configurable snippet length (5-60s, default 20s) with batch generation capability for all loaded videos. Fixes snippet duration precision by re-encoding instead of stream copy to ensure frame-accurate cutting at configured length.
2025-12-15 15:36:24 -05:00
Jake P
277d46859b Optimizations to framerates
Optimizations to framerates, attempt at making a GUI. Hardware detection compatibility moved into dedicated benchmarking tool.
2025-12-14 18:18:44 +00:00
43eae3d17e Note color looks for filters/upscale 2025-12-13 23:05:08 -05:00
c85031887b Add lt-convert presets mapping for VT 2025-12-13 23:04:48 -05:00
3aad613167 Note roles for Jake and Stu in ai-speak 2025-12-13 23:00:41 -05:00