Commit Graph

37 Commits

Author SHA1 Message Date
f8a9844b53 feat(author): Add Cancel Job button to Author module
Added a "Cancel Job" button to the Author module top bar that:
- Appears only when an Author job is currently running
- Uses DangerImportance styling for clear visual indication
- Cancels the running author job when clicked
- Hides automatically when no author job is running

This addresses the user's request for cancel buttons in every module
where it's relevant. The button provides immediate job cancellation
without needing to navigate to the queue view.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-30 22:09:25 -05:00
52dce047b7 fix(author): Auto-navigate to queue when starting DVD authoring
When user clicks "COMPILE TO DVD", now automatically navigates to the
queue view so they can immediately see the job progress. This prevents
confusion about how to access the queue during authoring.

Fixes issue where users couldn't find the queue while authoring was
in progress - the queue was accessible via the button, but now the
navigation is automatic for better UX.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-30 22:09:25 -05:00
cc16352098 feat(author): Extract and display chapters from VIDEO_TS folders
Added chapter extraction from VIDEO_TS folders when importing:
- New extractChaptersFromVideoTS() function to parse chapters from VOB files
- Automatically loads chapters when VIDEO_TS folder is dropped
- Displays chapters in Chapters tab with "VIDEO_TS Chapters" source label
- Uses ffprobe to extract chapter info from main title VOB file

Chapters are now fully imported and visible in the UI when loading
VIDEO_TS folders, preserving the original DVD chapter structure.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-30 22:09:25 -05:00
75a8b900e8 feat(author): Add VIDEO_TS folder burning UI support
Added visual feedback in the Author module when a VIDEO_TS folder is loaded:
- Display VIDEO_TS path with info card in Videos tab
- Show message that folder will be burned directly without re-encoding
- Add Remove button to clear VIDEO_TS folder
- Update empty state message to indicate VIDEO_TS folder support

Backend support for VIDEO_TS burning was already implemented, this adds
the missing UI elements to show users when a VIDEO_TS folder is loaded.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-30 22:09:25 -05:00
2964de5b14 Add notice that chapter names are for future DVD menu support
Added italic note "(For future DVD menus)" below chapter title entry
fields to inform users that:
- Chapter markers work and allow navigation between scenes
- Chapter names are saved but not displayed in basic DVDs
- Names will be used when DVD menu system is implemented

This prevents users from wasting time entering custom chapter names
expecting them to appear in DVD players, while preserving the data
for future menu implementation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-30 22:09:25 -05:00
673e914f5e Add notice that chapter names are for future DVD menu support
Added italic note "(For future DVD menus)" below chapter title entry
fields to inform users that:
- Chapter markers work and allow navigation between scenes
- Chapter names are saved but not displayed in basic DVDs
- Names will be used when DVD menu system is implemented

This prevents users from wasting time entering custom chapter names
expecting them to appear in DVD players, while preserving the data
for future menu implementation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-30 21:39:37 -05:00
a1a0a653e6 Use meaningful chapter names from metadata or filenames
When authoring DVDs from multiple videos, chapters now display:
- Video metadata title if available
- Filename without extension as fallback
- Instead of generic "Chapter 1", "Chapter 2", etc.

This provides better navigation experience in DVD players.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-30 20:37:24 -05:00
984088749c Fix chapter generation by creating clips from paths when clips array is empty 2025-12-30 17:09:36 -05:00
ad1da23c6c Add Clear ISO button and organize output under ~/Videos/VideoTools/ 2025-12-30 17:01:47 -05:00
1b4e504a57 Auto-create output directories for rip and author operations 2025-12-30 16:52:40 -05:00
e1c4d9ca50 Fix DVD authoring VOBU errors with proper MPEG-PS muxing
Critical fix for dvdauthor "Skipping sector at inoffset 0" errors:

- Add -f dvd format to initial MPEG encoding
- Add -muxrate 10080000 (10.08 Mbps DVD standard mux rate)
- Add -packetsize 2048 (DVD packet size requirement)
- Apply same parameters to remux and concat steps
- Ensures proper VOBU (Video Object Unit) boundaries
- Creates DVD-compliant MPEG-PS streams from encoding

This fixes the "dvdauthor structure creation failed" error when
authoring multi-scene DVDs. The MPEG files now have proper DVD
navigation structure that dvdauthor can process.

Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-30 15:41:03 -05:00
8896206b68 Create professional DVD structure with automatic chapter markers
Major improvements to DVD authoring for professional results:

- Always concatenate multiple videos into single title (not multiple titles)
- Automatically generate chapter markers from video clips
- Chapter markers created at each scene boundary regardless of checkbox
- One title with navigable chapters instead of separate titles
- Better logging showing chapter structure and timestamps

Before: 4 videos → 4 separate titles with no chapters
After: 4 videos → 1 title with 4 chapter markers

This creates a professional DVD that matches commercial disc structure
with proper chapter navigation.

Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-30 12:05:21 -05:00
f50edeb9c6 Add enhanced logging for DVD authoring pipeline
- Log all generated MPG files with sizes before dvdauthor
- Log complete DVD XML content for debugging
- Add specific error messages at each dvdauthor step
- Verify and log ISO file creation success
- Better error context for diagnosing 80% failure point

This will help diagnose the exit code 1 error when authoring
4-scene discs to ISO format.

Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-29 22:14:45 -05:00
de81c9f999 Add clear completed button to all module top bars
- Added clearCompletedJobs() method to appState in main.go
- Clears only completed and failed jobs, keeps pending/running/paused
- Added small ⌫ (backspace) icon button next to View Queue in all modules
- Button has LowImportance styling to keep it subtle
- Implements Jake's suggestion for quick queue cleanup

Modules updated:
- Convert (main.go)
- Author (author_module.go)
- Subtitles (subtitles_module.go)
- Rip (rip_module.go)
- Filters (filters_module.go)
- Thumbnails (thumb_module.go)
- Inspect (inspect_module.go)

Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-29 22:02:35 -05:00
953bfb44a8 fix(author): Clear DVD title when loading new file or clearing clips
- Reset authorTitle when loading new file via file browser
- Reset authorTitle when clearing all clips
- Rebuild author view to refresh title entry UI
- Ensures title field visually resets for fresh content

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-28 06:30:48 -05:00
c8f4eec0d1 feat(author): Implement real-time progress, add to queue, clear title
This commit introduces several enhancements to the Author module:
- **Real-time Progress Reporting:** Implemented granular, real-time progress updates for FFmpeg encoding steps during DVD authoring. The progress bar now updates smoothly, reflecting the actual video processing. Progress calculation is weighted by video durations for accuracy.
- **Add to Queue Functionality:** Added an 'Add to Queue' button to the Author module, allowing users to queue authoring jobs for later execution without immediate start. The authoring workflow was refactored to accept a 'startNow' parameter for this purpose.
- **Clear Output Title:** Modified the 'Clear All' functionality to also reset the DVD Output Title, preventing accidental naming conflicts for new projects.

Additionally, this commit includes a UI enhancement:
- **Main Menu Categorization:** Relocated 'Author', 'Rip', and 'Blu-Ray' modules to a new 'Disc' category on the main menu, improving logical grouping.

Fixes:
- Corrected a missing argument error in a call to .
- Added missing  import in .

Updates:
-  and  have been updated to reflect these changes.
2025-12-27 01:34:57 -05:00
0d1235d867 Add chapter detection visualizer with thumbnails
Allows visual verification of detected scene changes before accepting.

Features:
- Extracts thumbnail at each detected chapter timestamp
- Displays first 24 chapters in scrollable grid (4 columns)
- Shows timestamp below each thumbnail (160x90px previews)
- Accept/Reject buttons to confirm or discard detection
- Progress indicator during thumbnail generation

Implementation:
- showChapterPreview() function creates preview dialog
- extractChapterThumbnail() uses FFmpeg to extract frame
  - Scales to 320x180, saves as JPEG in temp dir
- Thumbnails generated in background, dialog updated when ready

Performance:
- Limits to 24 chapters for UI responsiveness
- Shows "(showing first 24)" if more detected
- Temp files stored in videotools-chapter-thumbs/

User workflow:
1. Adjust sensitivity slider
2. Click "Detect Scenes"
3. Review thumbnails to verify detection quality
4. Accept to use chapters, or Reject to try different sensitivity
2025-12-26 19:33:51 -05:00
d781ce2d58 Optimize author log viewer performance with tail behavior
Problem: Author log was causing severe UI lag and memory issues
- Unbounded string growth (entire log kept in RAM)
- Full widget rebuild on every line append
- O(n²) string concatenation performance

Solutions implemented:
1. Tail behavior - Keep only last 100 lines in UI
   - Uses circular buffer (authorLogLines slice)
   - Prevents unbounded memory growth
   - Rebuilds text from buffer on each append

2. Copy Log button
   - Copies full log from file (accurate)
   - Falls back to in-memory log if file unavailable

3. View Full Log button
   - Opens full log in dedicated log viewer
   - No UI lag from large logs

4. Track log file path
   - authorLogFilePath stored when log created
   - Used by copy and view buttons

Performance improvements:
- Memory: O(1) instead of O(n) - fixed 100 line buffer
- CPU: One SetText() per line instead of concatenation
- UI responsiveness: Dramatically improved with tail behavior

UI changes:
- Label shows "Authoring Log (last 100 lines)"
- Copy/View buttons for accessing full log
2025-12-26 19:33:51 -05:00
49e01f5817 Fix DVD authoring SCR errors and queue animation persistence
DVD Authoring Fix:
- Add remultiplex step after MPEG encoding for DVD compliance
- Use ffmpeg -fflags +genpts -c copy -f dvd to fix timestamps
- Resolves "ERR: SCR moves backwards" error from dvdauthor
- FFmpeg direct encoding doesn't always create DVD-compliant streams
- Remux regenerates presentation timestamps correctly

Queue Animation Fix:
- Stop stripe animation on completed jobs
- Bug: Refresh() was always incrementing offset regardless of state
- Now only increments offset when animStop != nil (animation running)
- Completed/failed/cancelled jobs no longer show animated stripes

Testing:
- DVD authoring should now succeed on AVI files
- Completed queue jobs should show static progress bar

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-25 21:20:14 -05:00
7226da0970 Add persistent configs for author/subtitles/merge/rip 2025-12-24 15:39:22 -05:00
e5dcde953b Commit incremental progress
- Current state: 3 modules partially/fully extracted
- upscale_module.go: showUpscaleView + AI helpers migrated successfully
- Build syntax:  Clean
- Build failing due to unrelated Fyne API issue in internal/ui/queueview.go
- Ready for next incremental extraction steps
2025-12-23 22:39:33 -05:00
ee67bffbd9 Support VIDEO_TS drop to ISO 2025-12-23 21:10:46 -05:00
ec7649aee8 Default author output path without dialogs 2025-12-23 21:06:49 -05:00
1b1657bc21 Fix author warnings dialog thread 2025-12-23 20:49:34 -05:00
9315a793ba Simplify authoring error messaging 2025-12-23 20:48:45 -05:00
588fc586a1 Add authoring log/progress and queue job 2025-12-23 20:47:10 -05:00
62802aa79e Link author subtitles to subtitles tool 2025-12-23 20:38:05 -05:00
364c3aa1ed Move chapter buttons to bottom 2025-12-23 20:36:58 -05:00
77ff859575 Add DVD5/DVD9 disc size guidance 2025-12-23 20:20:15 -05:00
f3f4ee0f3a Show clip-based chapters in author chapters tab 2025-12-23 17:58:45 -05:00
71021f5585 Add chapter naming per clip in author videos tab 2025-12-23 17:56:39 -05:00
595b1603ee Add author chapter sources and scene detection 2025-12-23 17:54:01 -05:00
23759caeea Add right column for author clip duration 2025-12-23 17:40:19 -05:00
bff07bd746 Improve author subtitles layout and summary refresh 2025-12-23 17:39:47 -05:00
0c91f63329 Align author clip list styling with merge 2025-12-23 17:36:01 -05:00
22eb734df2 Refresh author clip list after Add Files 2025-12-23 17:33:45 -05:00
8513902232 Finalize authoring workflow and update install docs 2025-12-23 14:24:09 -05:00