Fork of VideoTools focused on player/inspection. VT Player lets us iterate on playback, navigation, and analysis workflows independently of the full suite.
Go to file
Stu Leak cfb608e191 Fix Fyne threading error and queue persistence issues
This commit resolves three critical issues:

1. **Fyne Threading Error on Startup**: Fixed by improving setContent() to
   check the initComplete flag. During initialization, setContent() calls
   SetContent() directly since we're on the main thread. After initialization,
   it safely marshals calls via app.Driver().DoFromGoroutine().

2. **Queue Persisting Between Sessions**: Fixed by removing queue persistence.
   The shutdown() function no longer saves the queue to disk, ensuring a
   clean slate for each new app session.

3. **Queue Auto-Processing**: Fixed by making the queue start in 'paused'
   state. Users must explicitly click 'Process Queue' to start batch
   conversion. Queue methods PauseProcessing() and ResumeProcessing()
   control the paused state.

Changes:
- main.go: Added initComplete flag to appState, improved setContent()
  logic, disabled queue persistence in shutdown()
- queue/queue.go: Added paused field to Queue struct, initialize paused=true,
  added PauseProcessing()/ResumeProcessing() methods
- ui/queueview.go: Added UI controls for queue processing and clearing

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 00:06:19 -05:00
assets/logo Refactor to modular architecture with rainbow UI (v0.1.0-dev8) 2025-11-23 14:56:37 -05:00
docs Refactor to modular architecture with rainbow UI (v0.1.0-dev8) 2025-11-23 14:56:37 -05:00
internal Fix Fyne threading error and queue persistence issues 2025-11-27 00:06:19 -05:00
.gitignore Ignore built binary and remove from repo 2025-11-21 18:57:48 -05:00
DONE.md Update TODO and DONE files for v0.1.0-dev11 2025-11-26 18:50:05 -05:00
go.mod Implement in-app playback with ffmpeg frame pump and Go audio 2025-11-20 16:11:56 -05:00
go.sum Implement in-app playback with ffmpeg frame pump and Go audio 2025-11-20 16:11:56 -05:00
install.sh Add persistent conversion stats, multi-video navigation, and error debugging 2025-11-26 18:44:54 -05:00
main.go Fix Fyne threading error and queue persistence issues 2025-11-27 00:06:19 -05:00
README.md Improve video player layout with overlay controls 2025-11-20 15:06:52 -05:00
TODO.md Update TODO and DONE files for v0.1.0-dev11 2025-11-26 18:50:05 -05:00

VideoTools Prototype

Requirements

  • Go 1.21+
  • Fyne 2.x (pulled automatically via go mod tidy)
  • FFmpeg (not yet invoked, but required for future transcoding)

Running

Launch the GUI:

go run .

Run a module via CLI:

go run . convert input.avi output.mp4
go run . combine file1.mov file2.wav / final.mp4
go run . logs

Add -debug or VIDEOTOOLS_DEBUG=1 for verbose stderr logs.

Logs

  • All actions log to videotools.log (override with VIDEOTOOLS_LOG_FILE=/path/to/log).
  • CLI command videotools logs (or go run . logs) prints the last 200 lines.
  • Each entry is tagged (e.g. [UI], [CLI], [FFMPEG]) so issues are easy to trace.

Notes

  • GUI requires a running display server (X11/Wayland). In headless shells it will log [UI] DISPLAY environment variable is empty.
  • Convert screen accepts drag-and-drop or the "Open File…" button; ffprobe metadata populates instantly, the preview box animates extracted frames with simple play/pause + slider controls (and lets you grab cover art), and the "Generate Snippet" button produces a 20-second midpoint clip for quick quality checks (requires ffmpeg in PATH).
  • Simple mode now applies smart inverse telecine by default—automatically skipping it on progressive footage—and lets you rename the target file before launching a convert job.
  • Other module handlers are placeholders; hook them to actual FFmpeg calls next.