Added advanced audio channel remixing features for videos with imbalanced
left/right audio channels (e.g., music in left ear, vocals in right ear).
New audio channel options using FFmpeg pan filter:
- Left to Stereo: Copy left channel to both speakers
- Right to Stereo: Copy right channel to both speakers
- Mix to Stereo: Downmix both channels together evenly
- Swap L/R: Swap left and right channels
Changes:
- Updated audioChannelsSelect dropdown with 8 options (was 4)
- Implemented pan filter logic in all 4 FFmpeg command builders:
- buildFFmpegCommandFromJob (main convert)
- DVD encoding function
- Convert command builder
- Snippet generation
- Removed unused "os" import from internal/convert/ffmpeg.go
- Updated DONE.md with audio channel remixing feature
The pan filter syntax allows precise channel routing:
- pan=stereo|c0=c0|c1=c0 (left to both)
- pan=stereo|c0=c1|c1=c1 (right to both)
- pan=stereo|c0=0.5*c0+0.5*c1|c1=0.5*c0+0.5*c1 (mix)
- pan=stereo|c0=c1|c1=c0 (swap)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit includes three critical bug fixes and Windows build improvements:
**Bug Fixes:**
1. **Queue Conversion Progress Tracking** (main.go:1471-1534)
- Enhanced executeConvertJob() to parse FPS, speed, and ETA from FFmpeg output
- Queue jobs now show detailed progress metrics matching direct conversions
- Stats stored in job.Config for display in the conversion stats bar
2. **AMD AMF Hardware Acceleration** (main.go)
- Added "amf" to hardware acceleration options
- Support for h264_amf, hevc_amf, and av1_amf encoders
- Added AMF-specific error detection in FFmpeg output parsing
3. **DVD Format Resolution Forcing** (main.go:1080-1103, 4504-4517)
- Removed automatic resolution forcing when DVD format is selected
- Removed -target parameter usage which was forcing 720×480/720×576
- Resolution now defaults to "Source" unless explicitly changed
- DVD compliance maintained through manual bitrate/GOP/codec parameters
**Windows Build Improvements:**
- Updated build.bat to enable CGO (required for Fyne/OpenGL)
- Added automatic GCC/MinGW-w64 detection and installation
- Automated setup via winget for one-command Windows builds
- Improved error messages with fallback manual instructions
**Documentation:**
- Added comprehensive Windows setup guides
- Created platform.go for future platform-specific code
- Updated .gitignore for Windows build artifacts
All changes tested and working. Ready for production use.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add comprehensive DVD-Video encoding functionality:
- New internal/convert package with modular architecture
- types.go: Core types (VideoSource, ConvertConfig, FormatOption)
- ffmpeg.go: FFmpeg codec mapping and video probing
- presets.go: Output format definitions
- dvd.go: NTSC-specific DVD encoding and validation
- dvd_regions.go: PAL, SECAM, and multi-region support
- New internal/app/dvd_adapter.go for main.go integration
Features implemented:
✓ DVD-NTSC preset (720×480@29.97fps, MPEG-2/AC-3)
✓ Multi-region support (NTSC, PAL, SECAM - all region-free)
✓ Comprehensive validation system with actionable warnings
✓ Automatic framerate conversion (23.976p, 24p, 30p, 60p)
✓ Audio resampling to 48 kHz
✓ Aspect ratio handling (4:3, 16:9, letterboxing)
✓ Interlacing detection and preservation
✓ DVDStyler-compatible output (no re-encoding)
✓ PS2-safe bitrate limits (max 9000 kbps)
Complete technical specifications and integration guide in:
- DVD_IMPLEMENTATION_SUMMARY.md
All packages compile without errors or warnings.
Ready for integration with existing queue and UI systems.
🤖 Generated with Claude Code