Fix Android TV quality switch overlay bug and respect default quality - #47
Fix Android TV quality switch overlay bug and respect default quality#47xayron wants to merge 2 commits into
Conversation
… for non-HLS streams This commit resolves two playback issues: 1. Android TV Stuttering/Overlay Bug on Quality Switch: By default, PlayerView retains the last decoded frame on the SurfaceView when the player is stopped/reset. On Android TV's hardware overlay, this caused the new video source to render as a smaller overlay on top of the stale, stuttering frame from the previous source. Added track selection override resets loading a new source to prevent previous bitrate caps or audio track choices from bleeding into the new decoder pipeline. 2. Global Default Quality (e.g., 720p) Ignored on Non-HLS Streams: Previously, the player ignored user preferences and hardcoded the choice to the absolute highest quality.
|
@xayron bump |
|
Hi. Sorry for the delayed response. I will look into your suggestions and try incoprating them. If nothing breaks, will push again with the changes you suggested. |
|
@NeighborhoodNerd made the changes as per your suggestion |
|
Thanks for the follow-up and for narrowing the track override reset to video-only — that addresses the audio-reset concern. This branch can't merge cleanly against current What we'd still like from this PR:
Please rebase onto latest Note: the Happy to re-review once rebased. |
What changed
This commit resolves two playback issues:
Android TV Stuttering/Overlay Bug on Quality Switch: By default, PlayerView retains the last decoded frame on the SurfaceView when the player is stopped/reset. On Android TV's hardware overlay, this caused the new video source to render as a smaller overlay on top of the stale, stuttering frame from the previous source. Added track selection override resets loading a new source to prevent previous bitrate caps or audio track choices from bleeding into the new decoder pipeline.
Global Default Quality (e.g., 720p) Ignored on Non-HLS Streams: Previously, the player ignored user preferences and hardcoded the choice to the absolute highest quality.
Checklist
flutter analyzeis cleanflutter testpassesandroid/orios/NOTICE.mdupdated in this PRAI_POLICY.mdScreenshots
Before:
After:
