Commit Graph

27 Commits

Author SHA1 Message Date
3b84e0cd7f 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.
2025-12-30 15:41:03 -05:00
71588111c9 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.
2025-12-30 12:05:21 -05:00
0fce3f7aa1 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.
2025-12-29 22:14:45 -05:00
95d8541866 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)
2025-12-29 22:02:35 -05:00
a89ab6cb13 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
2025-12-28 06:30:48 -05:00
3037ff44bd 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
dd79bedc9a 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
b723e8f642 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
282db38c4f 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
2025-12-25 21:20:14 -05:00
89292a0a0f Add persistent configs for author/subtitles/merge/rip 2025-12-24 15:39:22 -05:00
ed9939905b 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
df1ff0c605 Support VIDEO_TS drop to ISO 2025-12-23 21:10:46 -05:00
57c43882cb Default author output path without dialogs 2025-12-23 21:06:49 -05:00
0c4af03fb5 Fix author warnings dialog thread 2025-12-23 20:49:34 -05:00
c28a0ea91e Simplify authoring error messaging 2025-12-23 20:48:45 -05:00
269a0209d3 Add authoring log/progress and queue job 2025-12-23 20:47:10 -05:00
07609406eb Link author subtitles to subtitles tool 2025-12-23 20:38:05 -05:00
179abbe8c5 Move chapter buttons to bottom 2025-12-23 20:36:58 -05:00
1294c7f156 Add DVD5/DVD9 disc size guidance 2025-12-23 20:20:15 -05:00
d51b62d1d1 Show clip-based chapters in author chapters tab 2025-12-23 17:58:45 -05:00
cf657b5b6f Add chapter naming per clip in author videos tab 2025-12-23 17:56:39 -05:00
a4c95f222a Add author chapter sources and scene detection 2025-12-23 17:54:01 -05:00
b3375dd067 Add right column for author clip duration 2025-12-23 17:40:19 -05:00
a78e986d1e Improve author subtitles layout and summary refresh 2025-12-23 17:39:47 -05:00
e0a44e56f4 Align author clip list styling with merge 2025-12-23 17:36:01 -05:00
c52f29bb54 Refresh author clip list after Add Files 2025-12-23 17:33:45 -05:00
60fd6e93ee Finalize authoring workflow and update install docs 2025-12-23 14:24:09 -05:00