omniter
14-01-2009 00:51:07
Heya, Kreso.
First off, great job on this project. I've already integrated it into my engine for video playback. =) I heard you're pretty busy lately, and you're gonna resume development soon, so in the meantime, I thought I'd bring some stuff your attention.
This is probably not a bug so much as an incomplete feature, but seeking and looping don't work. When I try to seek, the video travels to the desired time, then quickly scrubs back to where it was before. It's the same when i stop and continue. Instead of continuing where the video left off, it fast-forwards to where the video would be if it hadn't been paused at all.
Another problem is that I find the memory used by the videos is not being freed up at all. This is very strange because I looked through your code, and I could find nothing wrong. I noticed this because as a temporary solution to the lack of looping, I'm freeing and reloading video clips, and this would cause my memory usage to climb continuously before crashing my program.
Finally, I thought you might to try out this tiny modification: It seems that when you destroy a video, you also destroy the texture unit it was occupying. I think this isn't a good approach, because the texture unit wasn't created by the video, so it should be left the way it was. I modified TheoraVideoDriver to save off the original texture name of the texture unit, and upon destruction, instead of removing the texture unit, simply restore the original texture name and also restore the original texture transformation. This was a very nice change, because I was able to play a video on a random surface, then get rid of it, and leave the original object intact, for as many times as I wanted. =)
Anyway, until you get back, I'm going to put the video module of my engine on hold and work on something else. Again, thanks for the great work!
First off, great job on this project. I've already integrated it into my engine for video playback. =) I heard you're pretty busy lately, and you're gonna resume development soon, so in the meantime, I thought I'd bring some stuff your attention.
This is probably not a bug so much as an incomplete feature, but seeking and looping don't work. When I try to seek, the video travels to the desired time, then quickly scrubs back to where it was before. It's the same when i stop and continue. Instead of continuing where the video left off, it fast-forwards to where the video would be if it hadn't been paused at all.
Another problem is that I find the memory used by the videos is not being freed up at all. This is very strange because I looked through your code, and I could find nothing wrong. I noticed this because as a temporary solution to the lack of looping, I'm freeing and reloading video clips, and this would cause my memory usage to climb continuously before crashing my program.
Finally, I thought you might to try out this tiny modification: It seems that when you destroy a video, you also destroy the texture unit it was occupying. I think this isn't a good approach, because the texture unit wasn't created by the video, so it should be left the way it was. I modified TheoraVideoDriver to save off the original texture name of the texture unit, and upon destruction, instead of removing the texture unit, simply restore the original texture name and also restore the original texture transformation. This was a very nice change, because I was able to play a video on a random surface, then get rid of it, and leave the original object intact, for as many times as I wanted. =)
Anyway, until you get back, I'm going to put the video module of my engine on hold and work on something else. Again, thanks for the great work!