Playing Quicktime in OpenGL, with Java

Preview image
Modified version of code wrapping movie.

Introduction

Since I had a bit of time, I decided to start learning OpenGL, using JOGL, and while I was at it, I was curious to see whether I could play a movie in 3D environment. I started off by using a pure Java MPEG decoder ( see here), and modifying the code to suit my needs. Later on I decided that I needed something that was faster, so being on the MacOS X platform, the Quicktime for Java API (QTJ) seemed a good solution. A few days later, after having learnt about QTJ from other sites and the "Quicktime-Java" mailing list, and also correcting some newbie mistakes that I had made in the usage of OpenGL, I finally had a working program

Not being satisfied with simply having movie played in three dimensions, I decided to make a "room" and project the movie onto the four walls. I actually made the mistake of making the movie back-to-front on one of the walls, but decided to leave it as is, since I feel it shows that textures can be oriented in any way you like, without having to use byte flipping yourself.

Because Quicktime for Java is only available for MS-Windows and MacOS X, you will only be able to use this project on those platforms. It should be noted that inspite of this limitation, the project should still show how you can play a movie in an OpenGL 3D world.

Download

I provide this code as is, and also assume you have basic Java development knowledge:

[ download ]

2005-11-15