I am using the gsvideo lib to play a large background video scaled 2x. I play the video through once, then hold the last frame in the texture while other parts of the app animate, then the video resets and we go through the process of playing again.
However, it seems that sometimes, the second (or third, fourth, maybe not at all) the video stalls partway in (also inconsistant). Because other classes are waiting for the video to finish, the entire app halts. No errors, the video seems to just pause. I have even gone as far as to tell the video to play each frame it loads.
When the video is finished, I stop it and delete, then set it to null. when it replays I make a new GSMovie object. maybe this isn't necessary, but it seemed to make it work more often.
So Im wondering if the format of the video is a problem, it is currently a h264 mov file at about 3000x600 (for a large video wall, these dimensions are actually only half size) is there another format that works more consistently? or is there a way to tell the movie to keep playing? is my telling it to play each frame killing it somehow?
I can give some code, but there are a lot of dependancies, really if you have a way to replay a gsvideo, that seems like my main issue.
so here is a slimmed down version of what is happening, but for whatever reason, the issue dosen't show up. but maybe there is still something wrong with my method here that someone could suggest a better way.
I tried to detect if the video had frozen by saving the last frame's time time and testing against the current time, then seeking just slightly ahead, but it seems that the jump() method of GSMovie fails every time for me. hmm...
so it seems that animation compression works quite nicely, looks smoother, and seems to be a little more stable. I am still having issues of the video hanging, almost pausing on a frame, in fact, exactly pausing, the time just stopps, but the isPlaying() is still true.
I have removed the enableFastTextureLoad() from the GLtexture, as the docs said it is experimental, I replaced it with loadTextureFast() which seems to do the same thing?? but no results there either. I also clean up the texture by setting to zero and deleteing it at the end of the larger loop.
I tried increasing the pixel buffer to 10, with no results, currently I am working with it at 1, which seems to be better, but it's hard to say.
The biggest issue is that I need to feel comfortable walking away. The instal is on site at the client's global headquarters, and will be mostly unmonitored by someone who could reset if something goes wrong. Im going to look into a failsafe to help in a worst case situation.
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
which seems to be the ati opengl driver, that crashed the whole app, checking online, it looks like all my drivers are up to date. Seeing this brings back some thoughts that it could be the graphics card running out of memory?? or having troubles addressing the memory it has stored.
the error occoured on a loop of the video, right before it started. I am still suspicious that gs video could be the root of the issue
Is there a way to 'garbage collect' the graphics card, or somehow release/clean it's memory? i don't really know what I am talking about but thought I would ask.