Xuggler should decode the video into BGR24 format. Creating a BufferedImage is unecessary.
Since you are dealing with something that needs very high performance, you should avoid AWT and dive into OpenGL a little more:
- Create a single video player texture that matches the pixel format Xuggler will be using
- When a new video frame is decoded, get the RGB data from Xuggler
- Update the video player texture with the new RGB data with glTexSubImage2D
Problem is, you can't ensure that glTexSubImage2D will place textures in memory at the exact necessary time. You might have more control over this with FBO/PBO.
This is beyond the scope of slick; and it is a fair bit of work if you don't know much about Xuggler or OpenGL. Good luck.