1 MPEG_PLAY
Plays mpeg-1 encoded bitstreams using MOTIF

SYNOPSIS
$ mpeg_play [-nob] [-nop] [-display display_name] [-dither dither_option]
  [-loop] [-eachstat] [-no_display] [-shmem_off ] [-l_range num]
  [-cr_range num] [-cb_range num] [-quiet]  file_name

DESCRIPTION
mpeg_play decodes and displays mpeg-1 encoded bitstreams on systems running 
X11. The player will create a new window, display the bitstream, and exit.
Any error messages or notices are sent to stderr. 

2 OPTIONS
-nob : causes the player to ignore and not display any B frames.

-nop : causes the player to ignore and not display any P frames.

-display display_name : causes the player to open the window on the display 

-dither dither_option : selects from a variety of dither options. The 
 possible values are:

    ordered  - ordered dither. 

    ordered2 - a faster ordered dither. This is the default.

    mbordered - ordered dithering at the macroblock level. Although there
    is a noticeable decrease in dither quality, this is the fastest dither
    available.

    fs4 - Floyd-Steinberg dithering with 4 error values propogated.

    fs2 - Floyd-Steinberg dithering with 2 error values propogated.

    fs2fast - Fast Floyd-Steinberg dithering with 2 error values propogated.

    hybrid - Hybrid dithering, a combination of ordered dithering for the 
    luminance channel and Floyd-Steinberg 2 error dithering for the 
    chrominance channels. Errors are NOT propogated properly and are dropped 
    all togethor every two pixels in either direction.

    hybrid2 - Hybrid dithering as above, but with error propogation among 
    pixels.

    2x2 - A dithering technique using a 2x2 pixel area for each pixel. The 
    image displayed is 4 times larger than the original image encoded. Random 
    error terms are added to each pixel to break up contours and gradients.
    gray - Grayscale dithering. The image is dithered into 128 grayscales. 
    Chrominance information is thrown away.

    color - Full color display (only available on 24 bit color displays).

    none - no dithering is done, no image is displayed. Used to time 
    decoding process.

    mono - Floyd-Steinberg dithering for monochrome displays.

    threshold - Floyd-simple dithering for monochrome displays.

-loop : makes the player loop back to the beginning after reaching the end.

-quiet: supresses printing of frame numbers, timing information, and most error
messages.

-eachstat: causes statistics to be displayed after each frame. Only valid when
compiled with -DANALYSIS.

-shmem_off: turns shared memory off.

-l_range num_colors: sets the number of colors assigned to the luminance 
component when dithering the image.  The product of l_range, cr_range and 
cb_range should be less than the number of colors on the display.

-cr_range num_colors: sets the number of colors assigned to the red component
of the chrominace range when dithering the image.  The product of l_range,
cr_range and cb_range should be less than the number of colors on the
display.

-cb_range num_colors: sets the number of colors assigned to the blue 
component of the chrominace range when dithering the image.  The product 
of l_range, cr_range and cb_range should be less than the number of colors 
on the display.

-no_display: dithers, but does not display, usually used for testing and timing
purposes.

2 NOTES
The player expects MPEG-1 video streams only. It can not handle multiplexed 
MPEG streamsor video+audio streams. The player uses the paris entropy coding 
table set (which we believe to be the MPEG-1 standard), but can not handle 
any bitstreams that use the "berlin" entropy coding table set. Berlin data 
is relatively rare so there shouldn't be too much to worry about here, but 
be aware of the difference when looking for streams to play. 

Some streams do not end with the proper sequence end code and will probably 
generate an "Improper sequence end code." error when done playing.

This player can play XING data files. Be aware that XING makes no use of 
temporal  redundancy or motion vector information. In other words, they do 
not use any P or B frames in their streams. Instead, XING data is simply a 
sequence of I frames. Since I frames take significantly longer to decode, 
performance of the player using XING data is not representative of the 
player's ability.

2 AUTHORS
Ketan Patel - University of California, Berkeley, kpatel@cs.berkeley.edu
Brian Smith - University of California, Berkeley, bsmith@cs.berkeley.edu
Henry Chi-To Ma - University of California, Berkeley, cma@cs.berkeley.edu
Kim Man Liu - University of California, Berkeley, kliu@cs.berkeley.edu

