MPEG_PLAY(1)

NAME
mpeg_play - plays mpeg-1 encoded bitstreams using X11

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.

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 display_name.

-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.

NOTES
The player expects MPEG-1 video streams only. It can not handle multiplexed MPEG streams or 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.

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