Pixelated Video

Hello -

I’m currently developing a video player which uses OpenGL to paint images on the screen. The stream I try to play is HD H.264 video and I use the glDrawPixels function to display my decoded RGBA images. Here is the problem, the bottom half of my application’s video window is pixelated. If I leave my application running and open VLC, the video magically fixes itself and is clear. I don’t have to open any video within VLC, I just have to bring the application up. When I close VLC, the video within my application is pixelated again.

I’m not sure if the problem is OpenGL related or not. Any ideas?

Thanks, Mike

screenshot ?
Does the pixelated part covers always the same region, or it depends ?
If you write to disk the decoded pixels (right before drawing it), does it still exhibits pixelation ?
Maybe you hit some undefined behaviour by forgetting to llocate some stuff, or thread concurrency problem, or driver/hardware bug.
What is your OS/videocard/driver version ?
Do you use PBO for async pixel upload (better perf) ?

This doesn’t sound like an OpenGL bug, the description suggests a content or decoding problem.

Verify that the in memory image is decoded correctly before you call drawpixels, i.e. write it to a file and check the results in a viewer.

Unfortunately I cannot provide a screenshot. The pixelated video is always the bottom half of the video. The OS is Win XP 32bit and 64bit editions. The video card is a NVidia Quadro FX 3800m with driver version dated 3/16/2010. If I dump the decoded data to a file before drawing, the data is clean (not pixelated) if VLC is open. If I dump it to a file when VLC is not open, the data is pixelated. I have no idea why VLC effects my application. The results of dumping the data to a file point directly to a problem with the decoded data and not OpenGL (IMO). I’m pretty sure it’s not a OpenGL issue but I need to make sure. Is it possible for OpenGL code in one application affect the OpenGL code in another application? Maybe some type of system or gpu call?


Is it possible to fix this pixelated behavior or improve the quality of the video with a OpenGL call? I’ve discovered that my encoder has a firmware issue. I only see pixelated video with the latest firmware. If I back up a version, the pixelation disappears. Backing up firmware versions is only a temporary fix. I do not believe the issue is with the decoder. VLC is making some magic call, or calls, on startup which fixes all my problems. Just trying to determine what that is and if it could possible be OpenGL related. I do have the VLC source but even with this I’ve made little progress.


then nothing to do with GL.