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

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]