Index: branches/avi_play/src/lib/graphics/importer/media_container.cc
===================================================================
--- branches/avi_play/src/lib/graphics/importer/media_container.cc	(revision 6068)
+++ branches/avi_play/src/lib/graphics/importer/media_container.cc	(revision 6094)
@@ -92,14 +92,33 @@
         PRINTF(1)("current_frame: %i\n", current_frame);
 
-        // Convert the image from its native format to RGB
+		    // Convert the image from its native format to RGB
         img_convert((AVPicture*)RGB_frame, PIX_FMT_RGB24, (AVPicture*)frame, codec_context->pix_fmt,
 					codec_context->width, codec_context->height);
+
+        picture = (AVPicture*)RGB_frame;
 			
+        //////////////////////////////////////////////
+        ////////// FIX THIS //////////////////////////
+        glGenTextures(1, &texture);
+        glBindTexture(GL_TEXTURE_2D, texture);
+        // if it is the first frame create texture
+        if(current_frame == 1)
+        {
+          glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+          glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+				  // build the texture
+          glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, codec_context->width, codec_context->height, 0, GL_RGBA, GL_UNSIGNED_BYTE, picture->data[0]);
+        }
+        // if its not the first use glTexSubImage2D <-- faster then creating always a new texture
+        else
+          glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, codec_context->width, codec_context->height, GL_RGBA, GL_UNSIGNED_BYTE, picture->data[0]);
+
+
+        glBindTexture(GL_TEXTURE_2D, 0);
+        //////////////////////////////////////////////
+        /////////////////////////////////////////////
+
         // save frame
-        this->saveCurrentFrame();
-
-
-        /* RGB_picture -> texture */
-
+        //this->saveCurrentFrame();
 
         return texture;
@@ -118,6 +137,4 @@
   char filename[32];
   int  y;
-
-  picture = (AVPicture*)RGB_frame;
 
   // Open file
@@ -183,5 +200,5 @@
   // Allocate video frame
   frame = avcodec_alloc_frame();
-  RGB_frame = avcodec_alloc_frame();
+	RGB_frame = avcodec_alloc_frame();
 
   // Determine required buffer size and allocate buffer
@@ -202,4 +219,9 @@
 {
   return codec_context->width;
+}
+
+int MediaContainer::getCurrentFrame()
+{
+  return this->current_frame;
 }
 
Index: branches/avi_play/src/lib/graphics/importer/media_container.h
===================================================================
--- branches/avi_play/src/lib/graphics/importer/media_container.h	(revision 6068)
+++ branches/avi_play/src/lib/graphics/importer/media_container.h	(revision 6094)
@@ -56,4 +56,5 @@
   int getHeight();
   int getWidth();
+	int getCurrentFrame();
   int getFrameRate();
   void getStream(/* stream */);
Index: branches/avi_play/src/lib/graphics/importer/texture_sequence.cc
===================================================================
--- branches/avi_play/src/lib/graphics/importer/texture_sequence.cc	(revision 6068)
+++ branches/avi_play/src/lib/graphics/importer/texture_sequence.cc	(revision 6094)
@@ -152,5 +152,16 @@
 }
 
-
+/**
+ * @brief adds a new Frame at the end of the Sequence.
+ * @param texture the texture to add at the end of the Sequence.
+ */
+bool TextureSequence::addFrame(GLuint texture)
+{
+  if (texture == NULL)
+    return false;
+  this->textures.push_back(texture);
+  
+  return true;
+}
 
 /**
Index: branches/avi_play/src/lib/graphics/importer/texture_sequence.h
===================================================================
--- branches/avi_play/src/lib/graphics/importer/texture_sequence.h	(revision 6068)
+++ branches/avi_play/src/lib/graphics/importer/texture_sequence.h	(revision 6094)
@@ -29,4 +29,5 @@
     bool addFrame(const char* image);
     bool addFrame(SDL_Surface* surface);
+    bool addFrame(GLuint texture);
 
     virtual bool rebuild();
Index: branches/avi_play/src/subprojects/importer/importer.cc
===================================================================
--- branches/avi_play/src/subprojects/importer/importer.cc	(revision 6068)
+++ branches/avi_play/src/subprojects/importer/importer.cc	(revision 6094)
@@ -60,5 +60,6 @@
 void Framework::moduleTick(float dt)
 {
-  while(movie->getNextFrame() != NULL);	
+  while(movie->getNextFrame() != NULL)
+    movie->saveCurrentFrame();	
 }
 
Index: branches/avi_play/src/subprojects/importer/multitex.cc
===================================================================
--- branches/avi_play/src/subprojects/importer/multitex.cc	(revision 6068)
+++ branches/avi_play/src/subprojects/importer/multitex.cc	(revision 6094)
@@ -29,4 +29,5 @@
 
 #include "resource_manager.h"
+#include "media_container.h"
 
 Model* obj;
@@ -34,4 +35,5 @@
 Texture* test;
 Material* testMat;
+MediaContainer* movie;
 
 float counter = 0;
@@ -40,4 +42,9 @@
 void Framework::moduleInit(int argc, char** argv)
 {
+  movie = new MediaContainer("/home/david/Desktop/Face2.avi");
+
+  // print information about the media file
+  movie->printMediaInformation();
+
   ResourceManager::getInstance()->addImageDir("./");
 
@@ -50,4 +57,8 @@
     printf("%s\n", argv[i]);
   }
+
+	// add one frame from the movie
+	seq->addFrame(movie->getNextFrame());
+
   test = new Texture(argv[1]);
   testMat->setDiffuseMap(argv[1]);
