VideoTools/TESTING_CHECKLIST.md
Stu Leak 48eff3c8a1 feat: Add crash-safe logging and panic recovery
- Create organized logging system with subfolders
- Add dedicated crash log (logs/crashes.log)
- Add specific log paths for different components
- Implement panic recovery with stack traces
- Add crash-safe logging functions
- Update UnifiedPlayer with better error handling and recovery
- Special handling for test video file
- Add comprehensive testing checklist for Phase A

This makes crashes much easier to diagnose and debug when testing the UnifiedPlayer implementation.

Files:
- internal/logging/logging.go (enhanced)
- internal/player/unified_ffmpeg_player.go (crash-safe)
- TESTING_CHECKLIST.md (comprehensive checklist)
- CONVERSION_MODULARIZATION_PLAN.md (dev25 preparation)
2026-01-06 23:59:19 -05:00

77 lines
3.0 KiB
Markdown

# UnifiedPlayer Testing Checklist
## 🎬 Video Functionality Testing
- [ ] Basic video playback starts without crashing
- [ ] Video frames display correctly in Fyne canvas
- [ ] Frame rate matches source video (30fps, 24fps, 60fps)
- [ ] Resolution scaling works properly
- [ ] No memory leaks during video playback
- [ ] Clean video-only playback (no audio stream files)
## 🔊 Audio Functionality Testing
- [ ] Audio plays through system speakers
- [ ] Audio volume controls work correctly (0-100%)
- [ ] Mute/unmute functionality works
- [ ] A/V synchronization stays in sync (no drift)
- [ ] Audio works with different sample rates
- [ ] Audio stops cleanly on Stop()/Pause()
## ⚡ Play/Pause/Seek Controls
- [ ] Play() starts both video and audio immediately
- [ ] Pause() freezes both video and audio frames
- [ ] Seek() jumps to correct timestamp instantly
- [ ] Frame stepping works frame-by-frame
- [ ] Resume after pause continues from paused position
## 🛠️ Error Handling & Edge Cases
- [ ] Missing video file shows user-friendly error
- [ ] Corrupted video file handles gracefully
- [ ] Unsupported format shows clear error message
- [ ] Audio-only files handled without crashes
- [ ] Resource cleanup on player.Close()
## 📊 Performance & Resource Usage
- [ ] CPU usage is reasonable (<50% on modern hardware)
- [ ] Memory usage stays stable (no growing leaks)
- [ ] Smooth playback without stuttering
- [ ] Fast seeking without rebuffering delays
- [ ] Frame extraction is performant at target resolution
## 📋 Cross-Platform Testing
- [ ] Works on different video codecs (H.264, H.265, VP9)
- [ ] Handles different container formats (MP4, MKV, AVI)
- [ ] Works with various resolutions (720p, 1080p, 4K)
- [ ] Audio works with stereo/mono sources
- [ ] No platform-specific crashes (Linux/Windows/Mac)
## 🔧 Technical Validation
- [ ] FFmpeg process starts with correct args
- [ ] Pipe communication works (video + audio)
- [ ] RGB24 RGBA conversion is correct
- [ ] oto audio context initializes successfully
- [ ] Frame display loop runs at correct timing
- [ ] A/V sync timing calculations are accurate
## 🎯 Key Success Metrics
- [ ] Video plays without crashes
- [ ] Audio is audible and in sync
- [ ] Seeking is frame-accurate and responsive
- [ ] Frame stepping works perfectly
- [ ] Resource usage is optimal
- [ ] No memory leaks or resource issues
## 📝 Testing Notes
- **File**: [Test video file used]
- **Duration**: [Video length tested]
- **Resolution**: [Input and output resolutions]
- **Issues Found**: [List any problems discovered]
- **Performance**: [CPU/Memory usage observations]
- **A/V Sync**: [Any sync issues noted]
- **Seek Accuracy**: [Seek performance observations]
## 🔍 Debug Information
- **FFmpeg Args**: [Command line arguments used]
- **Audio Context**: [Sample rate, channels, format]
- **Buffer Sizes**: [Video frame and audio buffer sizes]
- **Error Logs**: [Any error messages during testing]
- **Pipe Status**: [Video/audio pipe communication status]