Commit Graph

12 Commits

Author SHA1 Message Date
3f6f2b4784 Update DONE and TODO for UI/progress work 2025-12-17 14:53:46 -05: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
8a77756c99 Update version to v0.1.0-dev18
Updates application version constant, documentation, and completion tracking to reflect dev18 release. Build output now correctly shows v0.1.0-dev18.
2025-12-15 15:42:11 -05:00
1ad80b87fd Update documentation for dev16 and dev17
- Mark Interlacing Detection (dev16) as completed in DONE.md
- Mark Thumbnail Module (dev17) as completed in TODO.md and DONE.md
- Document all features, technical improvements, and bug fixes
- Add comprehensive changelog entries for both modules
2025-12-14 00:37:58 -05:00
f3eaa193c4 Update documentation for completed dev13 features
Mark auto-crop, frame rate conversion, and encoder presets as complete in TODO.md.
Add detailed feature descriptions to DONE.md for all three priority features.
2025-12-03 21:41:24 -05:00
233a270179 Add encoder preset descriptions with speed/quality trade-offs
This commit enhances the encoder preset selector with detailed information
about speed vs quality trade-offs for each preset option.

Preset Information:
- Ultrafast: ~10x faster than slow, ~30% larger files
- Superfast: ~7x faster than slow, ~20% larger files
- Very Fast: ~5x faster than slow, ~15% larger files
- Faster: ~3x faster than slow, ~10% larger files
- Fast: ~2x faster than slow, ~5% larger files
- Medium: Balanced baseline (default)
- Slow: ~2x slower than medium, ~5-10% smaller (recommended)
- Slower: ~3x slower than medium, ~10-15% smaller
- Very Slow: ~5x slower than medium, ~15-20% smaller

UI Enhancements:
- Dynamic hint label below encoder preset dropdown
- Updates automatically when preset changes
- Visual icons for different speed categories:
  -  Ultrafast/Superfast/Very Fast (prioritize speed)
  -  Faster/Fast (good balance)
  - ⚖️ Medium (baseline)
  - 🎯 Slow/Slower (recommended for quality)
  - 🐌 Very Slow (maximum compression)

Implementation:
- updateEncoderPresetHint() function provides preset details
- Called on preset selection change
- Initialized with current preset on view load
- Positioned directly under preset dropdown for visibility

Benefits:
- Helps users understand encoding time implications
- Shows file size impact of each preset
- Recommends "slow" as best quality/size ratio
- Prevents confusion about preset differences
- Enables informed decisions about encoding settings

Technical:
- All presets already supported by FFmpeg
- No changes to command generation needed
- Works with all video codecs (H.264, H.265, VP9, etc.)
- Preset names match FFmpeg standards
2025-12-03 21:36:30 -05:00
410a9f6ee6 Add comprehensive frame rate conversion UI with size estimates
This commit implements the frame rate conversion feature with intelligent
file size estimation and user guidance.

Frame Rate Options:
- Added all standard frame rates: 23.976, 24, 25, 29.97, 30, 50, 59.94, 60
- Maintained "Source" option to preserve original frame rate
- Replaced limited [24, 30, 60] with full broadcast standard options
- Supports both film (24 fps) and broadcast (25/29.97/30 fps) standards

Size Estimation:
- Calculates approximate file size reduction when downconverting
- Shows "Converting X → Y fps: ~Z% smaller file" hint
- Example: 60→30 fps shows "~50% smaller file"
- Dynamically updates hint when frame rate or video changes
- Only shows hint when conversion would reduce frame rate

User Warnings:
- Detects upscaling (target > source fps)
- Warns with ⚠ icon: "Upscaling from X to Y fps (may cause judder)"
- Prevents confusion about interpolation limitations
- No hint shown when target equals source

Implementation:
- updateFrameRateHint() function recalculates on changes
- Parses frame rate strings to float64 for comparison
- Calculates reduction percentage: (1 - target/source) * 100
- Updates automatically when video loaded or frame rate changed
- Positioned directly under frame rate dropdown for visibility

Technical:
- Uses FFmpeg fps filter (already implemented)
- Works in both direct convert and queue execution
- Integrated with existing frame rate handling
- No changes to FFmpeg command generation needed

Benefits:
- 40-50% file size reduction for 60→30 fps conversions
- Clear visual feedback before encoding
- Prevents accidental upscaling
- Helps users make informed compression decisions
2025-12-03 21:33:05 -05:00
f0bfb76f3c Implement automatic black bar detection and cropping
This commit implements the highest priority dev13 feature: automatic
cropdetect with manual override capability.

Features:
- Added detectCrop() function that analyzes 10 seconds of video
- Samples from middle of video for stable detection
- Parses FFmpeg cropdetect output using regex
- Shows estimated file size reduction percentage (15-30% typical)
- User confirmation dialog before applying crop values

UI Changes:
- Added "Auto-Detect Black Bars" checkbox in Advanced mode
- Added "Detect Crop" button to trigger analysis
- Button shows "Detecting..." status during analysis
- Runs detection in background to avoid blocking UI
- Dialog shows before/after dimensions and savings estimate

Implementation:
- Added CropWidth, CropHeight, CropX, CropY to convertConfig
- Crop filter applied before scaling for best results
- Works in both direct convert and queue job execution
- Proper error handling for videos without black bars
- Defaults to center crop if X/Y offsets not specified

Technical Details:
- Uses FFmpeg cropdetect filter with threshold 24
- Analyzes last detected crop value (most stable)
- 30-second timeout for detection process
- Regex pattern: crop=(\d+):(\d+):(\d+):(\d+)
- Calculates pixel reduction for savings estimate

Benefits:
- 15-30% file size reduction with zero quality loss
- Automatic detection eliminates manual measurement
- Confirmation dialog prevents accidental crops
- Clear visual feedback during detection
2025-12-03 20:25:27 -05:00
c06e08178a Release v0.1.0-dev12: Advanced encoding and compatibility
Major Features:
- Automatic hardware encoder detection (NVENC/QSV/VA-API)
- iPhone compatibility with H.264 profile/level support
- Dual deinterlacing methods (bwdif + yadif)
- 10-bit encoding for 10-20% size reduction
- Browser desync fix with genpts and CFR enforcement
- Audio normalization (stereo + 48kHz)
- Extended resolution support (8K)
- Black bar cropping infrastructure

Technical Improvements:
- Automatic best encoder selection
- VFR to CFR conversion prevents playback issues
- Backward compatible with legacy settings
- Comprehensive encoding decision logging
2025-12-02 18:12:50 -05:00
5edbde0011 Update DONE for dev11 and outline dev12 plan 2025-11-30 02:46:45 -05:00
cc143668e5 Update TODO and DONE files for v0.1.0-dev11
Document completed features and improvements:
- Persistent conversion stats bar
- Multi-video navigation
- Installation script with spinner
- Error copy dialogs
- Queue system improvements
- Bug fixes (deadlocks, crashes, deserialization)
2025-11-26 18:50:05 -05:00
Stu
1008f096dc Refactor to modular architecture with rainbow UI (v0.1.0-dev8)
Major refactoring to improve code organization and enhance UI:

Architecture:
- Split monolithic main.go into modular internal/ package structure
- Created internal/logging for centralized logging system
- Created internal/modules for module handler functions
- Created internal/ui for UI components and layouts
- Created internal/utils for shared utility functions

UI Enhancements:
- Implemented rainbow gradient across 8 module buttons (violet→red)
- Increased module button text size to 20 for better readability
- Fixed text centering on module tiles
- Converted Simple/Advanced mode toggle to tabs to save vertical space
- Added vertical scrollbars to prevent UI overflow
- Added metadata copy button (📋) to copy all metadata to clipboard

Video Processing:
- Fixed aspect ratio conversion to default to center-crop behavior
- Added 6 aspect handling modes: Auto, Crop, Letterbox, Pillarbox, Blur Fill, Stretch
- Fixed blur fill to maintain source resolution with padding (no scaling)
- Ensured all FFmpeg filters produce even-numbered dimensions for H.264

Known Issues:
- WMV files still produce FFmpeg error 234 during aspect conversions
  (requires codec-specific handling in future update)
2025-11-23 14:56:37 -05:00