VideoTools/internal/player
Stu Leak 9c801e4910 fix(player): ensure GStreamer produces and displays frames properly
Critical fixes for GStreamer playback:

1. Add preroll waiting in GStreamer.Load():
   - Wait for ASYNC_DONE message after setting to PAUSED
   - Ensures first frame is ready before playback
   - Prevents black screen on load

2. Fix frameDisplayLoop to always pull frames:
   - Remove paused check that blocked frame extraction
   - Frames now pulled even when paused (enables scrubbing)
   - Only update progress bar when playing

3. Add comprehensive logging:
   - Log each frame update with size and timestamp
   - Debug frame pull errors
   - Track paused state during updates

4. Fix initial paused state:
   - Explicitly set paused=true after load
   - Matches GStreamer's PAUSED state

These changes fix:
- Black screen issue (no frames displaying)
- Scrubbing not working (frames not available when paused)
- Fast duration counting (progress only updates when playing)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-09 19:22:08 -05:00
..
linux fix: suppress ffmpeg popups on Windows and improve codec performance 2026-01-02 15:22:13 -05:00
controller_gstreamer.go feat(player): integrate GStreamer for stable video playback 2026-01-09 03:43:34 -05:00
controller_linux.go feat(player): integrate GStreamer for stable video playback 2026-01-09 03:43:34 -05:00
controller_stub.go Checkpoint media player playback 2025-11-21 16:08:38 -05:00
controller.go Checkpoint media player playback 2025-11-21 16:08:38 -05:00
factory.go Implement VT_Player module with frame-accurate video playback 2025-12-21 16:31:44 -05:00
ffplay_wrapper.go Implement VT_Player module with frame-accurate video playback 2025-12-21 16:31:44 -05:00
frame_player_default.go Add GStreamer preview backend 2026-01-07 02:50:27 -05:00
frame_player_gstreamer.go Add GStreamer preview backend 2026-01-07 02:50:27 -05:00
frame_player.go Add GStreamer preview backend 2026-01-07 02:50:27 -05:00
fyne_ui.go Implement VT_Player module with frame-accurate video playback 2025-12-21 16:31:44 -05:00
gstreamer_player.go fix(player): ensure GStreamer produces and displays frames properly 2026-01-09 19:22:08 -05:00
mpv_controller.go Implement VT_Player module with frame-accurate video playback 2025-12-21 16:31:44 -05:00
unified_ffmpeg_player.go Fix player frame generation and video playback 2026-01-07 22:20:00 -05:00
unified_player_adapter.go Fix player frame generation and video playback 2026-01-07 22:20:00 -05:00
vlc_controller.go Implement VT_Player module with frame-accurate video playback 2025-12-21 16:31:44 -05:00
vtplayer.go Implement VT_Player module with frame-accurate video playback 2025-12-21 16:31:44 -05:00