Subversion Repositories shark

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

These are the instructions for compiling mpeg_play, the software MPEG
decoder and player.

1) Untar the file mpeg_play.tar.gz. This is best done by creating a new
directory for the files involved, moving the tar file into this directory
and invoking the command:

        zcat mpeg_play-2.1.tar.gz | tar xvf -
        (or gtar -zxvf mpeg_play-2.1.tar.gz )

2) Create and customize the Makefile. Do this by copying the file
Makefile.proto to Makefile. Then edit Makefile for your particular needs.

In the Makefile the CFLAGS definition is multiply defined for a couple of
different machines, uncomment the one you want to use, or define your own
if necessary. 

The INCLUDEDIR variable should be set to include the paths leading to the
standard header files such as stdio.h as well as to X11/Xlib.h  (on most
systems, this is /usr/include).  To do this set the INCLUDEDIR variable to
-I followed by the pathname. For example, if the path is /usr/local/include,
edit the Makefile to look like this:

        INCLUDEDIR       = -I/usr/local/include

If more than one pathname is necessary, simply prepend -I to each path.
For example if you needed to include /usr/local/include and /usr/X11/include,
the variable definition would look like:

        INCLUDEDIR       = -I/usr/local/include -I/usr/X11/include

Finally, make sure the LIBS variable is set to the path and name of your 
Xext and X11 librarys. For example:

        LIBS             = /usr/lib/X11/libXext.a /usr/lib/X11/libX11.a

or 
        LIBS = -lXext -lX11

3) Type make all.

4) To remove .o files, type make clean

5) Install mpeg_play and mpeg_play.1 into the appropriate places.

6) Try it out! You can ftp some sample data files from the same site
   you got this player from. Data files usually end in .mpg or .mpeg
   The command line for the player is described in the man page, but
   is basically:

   mpeg_play [options] [file_name] 

7) If you want the player to collect statistics on size of frames, 
   macroblocks, time to decode, etc., add the following to the 
   definition of CFLAGS in the Makefile:
        -DANALYSIS
   Remove all .o files with "make clean" and remake with "make all"
   The player will now print summarized statistics at the end of the
   video clip and can be made to print frame by frame statistics with
   the use of the -eachstat flag. Read man page for more info.

   You may prefer to use mpeg_stat if you're really into statistics.

------------------------------------------------------------------------

Using Imake

We have included an Imakefile for use with Imake. Since we do not use
Imake ourselves and the file was provided by someone else, we can not
give any specific instructions on how to use it. Please, consult
someone more experienced with Imake. 
Thanks.

------------------------------------------------------------------------

Some platforms are "special", if you have problems read the PLATFORMS file
for hints.

------------------------------------------------------------------------

NOTES

It seems that much of the time is spent converting the 24 bit MPEG image
to an 8 bit color space. This process is called "dithering".  We've included
several dithering algorithms.  Read the man pages for more instructions.

The data files available are produced by XING. These images are
usually small (~160X120). XING data does not take advantage
of P or B frames (ie, frames with motion compensation). The data is simply
a series of I frames.  Performance of the player on XING data is
significantly lower (half or less) of the performance when motion compensated
MPEG data is decoded. 

Reporting bugs:
    If you find any bugs in this software, please send them to
    mpeg-bugs@plateau.cs.berkeley.edu.  Since this software
    is unsupported, we make no guarantees about how long it will
    take to fix the bug, or if it will be fixed at all.  Bug fixes
    will be cheerfully accepted.  Please include as much detailed
    information as possible, including:

        1) the version number of the program you are using (cf. VERSION)
        2) the data file that caused the bug (if possible)
        3) the OS version and machine type you ran the program on
        4) the compiler used to compile the program