Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

A quick introduction to the SMUSH Player

What is this software for ?

This sofware can be used to play the animation files for the following LucasArts Entertainment Company games :

This software has been written at the same time as was written the documentation for the SMUSH file format.

I wrote this software because my most beloved game from LEC is Full Throttle, and because scummvm does not support this game yet.

Structure of the SMUSH Player.

I tried to used an object oriented design when I wrote this software.

The player itself is implemented in a specific class. The output (i.e. frames and sound) is then sent to a renderer, which is dependant on what we want to do.

See also:
player , renderer , sound_renderer

Synchronisation of Sound and Video.

I haven't found yet if there was a way to perfectly synchronise video and sound in the original format, so right now I use the following idea, which works great with Full Throttle (it's not as good with The Dig).

When a frame is terminated, The sound mixer enters a loop where it tries to output as much sound data as possible. For this, it iterates within all the active tracks and query them for their available size (look in mixer::handleFrame()). The loop is exited when either a track as no more data available, or there is no more active track. Then, the player will wait for all the sound data from the previous frame to have been played before starting to decode the next frame.

See also:
Documentation for the SMUSH File Format

Generated on Fri Aug 9 22:54:33 2002 for san_player by doxygen1.2.16