Fix black video on VideoPlayerAndroid when fbo size changes.#112
Merged
SimonIT merged 4 commits intolibgdx:masterfrom Jul 14, 2025
lucas-viva:patch-1
Merged
Fix black video on VideoPlayerAndroid when fbo size changes.#112SimonIT merged 4 commits intolibgdx:masterfrom lucas-viva:patch-1
SimonIT merged 4 commits intolibgdx:masterfrom
lucas-viva:patch-1
Conversation
Contributor
There was a problem hiding this comment.
Pull Request Overview
Fixes a black video rendering issue when the FBO size changes by updating how the frame texture is tracked.
- Replaced the null-check on
framewith an identity comparison againstfbo.getColorBufferTexture(). - Ensures the filter is reset whenever a new texture instance is detected.
Comments suppressed due to low confidence (4)
gdx-video-android/src/com/badlogic/gdx/video/VideoPlayerAndroid.java:283
- [nitpick] Add a brief comment explaining why we're comparing by object identity here (to detect FBO texture recreation) so future maintainers understand the rationale.
if (frame != fbo.getColorBufferTexture()) {
gdx-video-android/src/com/badlogic/gdx/video/VideoPlayerAndroid.java:283
- [nitpick] The variable name
frameis somewhat ambiguous; consider renaming it to something likecurrentFrameTextureto clarify its purpose.
if (frame != fbo.getColorBufferTexture()) {
gdx-video-android/src/com/badlogic/gdx/video/VideoPlayerAndroid.java:279
- Consider adding a test case that simulates an FBO size change to ensure that the
frametexture is updated correctly and the video no longer appears black.
renderer.vertex(1, 1, 0);
…d.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When a video is played and the
fbosize changes,fbois recreated.The field
frameis set to null and after the firstupdate()call, it is initialized with thefbotexture.If
updateis called beforefbois re-initialized,framewill get the oldfbotexture and it will result into a black screen video.Proposed approach:
Check the
frameagainst the currentfbotexture instead of just checking if it is null.First approach I had:
Remove the
framefield, because we can get the texture directly fromfboand thus fixes the issue (and makes the code less brittle because we don't need to keep updating theframefield anymore). This solution has a caveat that until the first frame is available, the rendered texture will be black.