TheoraVideoPlugin Player        

thumb|screenshot from the demo
This demo plays media/oggs/clip.ogg (be sure to put one there before testing) and prints some benchmarking information.

Legend

  • Frame number - the index of the currently displayed frame
  • Frames dropped - number of frames that couldn't be displayed to keep the video clip in sync
  • Video time - current time in seconds of the playing video
  • Decoding time - average time it took to decode the last frame,(in milliseconds)
  • YUV--RGB time - average time it took to decode YUV pixels to an RGB buffer
  • TexBlit time - average time it took to upload the current frame from RAM to the texture buffer on the display card
  • Time per frame - average number of milliseconds it takes to prepare one video frame
  • Max FPS - how many frames per second can be prepared (estimated)
  • Precached frames - how many frames are prepared in advance

Code

The code is a modified and stripped down version of OGRE's CEGUI demo. It uses OGRE's sample framework headers.
The only demo relevant code is located in the ClipListener class and frameStarted() function.

  • The demo loads clip.ogg located in one of the resource locations.

Material

  • located in demos/media/materials/scripts/Example.material
material SimpleVideo
 {
   technique
   {
     pass
     {
       cull_software none
       cull_hardware none
       lighting off
 
       texture_unit
       {
         '''texture_source ogg_video'''
         {
           '''filename clip.ogg'''
           '''precache 50'''
           '''play_mode play'''
         }
       }
     }
   }
 }


As you can see, displaying a video in OGRE is as simple as putting a few lines in the material file.
See Material documentation for explanations of these parameters.