- 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)
3.0 KiB
3.0 KiB
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]