Subversion Repositories shark

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 pj 1
MPEG_PLAY(1)                                                   MPEG_PLAY(1)
2
                                28 May 1995
3
 
4
NAME
5
     mpeg_play - plays mpeg-1 encoded bitstreams using X11
6
 
7
SYNOPSIS
8
     mpeg_play [ -nob ] [ -nop ] [ -display display_name ] [ -quality
9
     {on|off} ] [ -dither dither_option ] [ -loop ] [ -eachstat ] [ -seek
10
     offset ] [ -start num ] [ -end num ] [ -gamma gamma_correction_value ]
11
     [ -framerate num ] [ -no_display ] [ -controls {on|off|none} ] [ -
12
     shmem_off ] [ -l_range num ] [ -cr_range num ] [ -cb_range num ] [ -
13
     quiet ] file_name
14
 
15
DESCRIPTION
16
     mpeg_play decodes and displays mpeg-1 encoded bitstreams on systems
17
     running X11.  The player will create a new window, display the
18
     bitstream, and exit.  Any error messages or notices are sent to
19
     stderr.
20
 
21
OPTIONS
22
     -nob : causes the player to ignore and not display any B frames.
23
 
24
     -nop : causes the player to ignore and not display any P and B frames.
25
 
26
     -display display_name : causes the player to open the window on the
27
          display display_name.
28
 
29
     -quality {on|off} : forces player to choose output quality over speed
30
          when on, and vice versa when off.  When quality is on, the player
31
          uses a computationally expensive IDCT and also improves playback
32
          through improved handling of half pixel motion vectors.  The
33
          default can be set to on if you compile mpeg_play with the flag
34
          -DQUALITY.
35
 
36
     -dither dither_option : selects from a variety of dither options. The
37
          possible values are:
38
 
39
          ordered - ordered dither.
40
 
41
          ordered2 - a faster ordered dither. This is the default.
42
 
43
          mbordered - ordered dithering at the macroblock level. Although
44
               there is a noticeable decrease in dither quality, this is
45
               the fastest dither available.
46
 
47
          fs4 - Floyd-Steinberg dithering with 4 error values propagated.
48
 
49
          fs2 - Floyd-Steinberg dithering with 2 error values propagated.
50
 
51
          fs2fast - Fast Floyd-Steinberg dithering with 2 error values
52
               propagated.
53
 
54
          hybrid - Hybrid dithering, a combination of ordered dithering for
55
               the luminance channel and Floyd-Steinberg 2 error dithering
56
               for the chrominance channels. Errors are NOT propagated
57
               properly and are dropped all together every two pixels in
58
               either direction.
59
 
60
          hybrid2 - Hybrid dithering as above, but with error propagation
61
               among pixels.
62
 
63
          2x2 - A dithering technique using a 2x2 pixel area for each
64
               pixel. The image displayed is 4 times larger than the
65
               original image encoded. Random error terms are added to each
66
               pixel to break up contours and gradients.
67
 
68
          gray - Grayscale dithering. The image is dithered into 128
69
               grayscales. Chrominance information is thrown away.
70
 
71
          gray256 - Grayscale dithering. The image is dithered into 256
72
               grayscales (requires private colormap). Chrominance
73
               information is thrown away.
74
 
75
          color - Full color display (only available on 16/24 bit color
76
               displays).
77
 
78
          color2 - Full color display with increased size (only available
79
               on 16/24 bit color displays).
80
 
81
          none - no dithering is done, no image is displayed. Used to time
82
               decoding process.
83
 
84
          mono - Floyd-Steinberg dithering for monochrome displays.
85
 
86
          threshold - Floyd-simple dithering for monochrome displays.
87
 
88
          ppm - Write a PPM file for each frame.
89
 
90
     -loop : makes the player loop back to the beginning after reaching the
91
          end.
92
 
93
     -owncm : makes the player use a private colormap for the window.
94
 
95
     -step : requires the user to press return for each new frame.
96
 
97
     -seek offset : before playing the movie, seek to the given offset in
98
          the file (useful for large movies).  In this case -end is
99
          redefined to give the number of frames to play, and -start has no
100
          meaning.  The offset should point to a Sequence or (closed) GOP
101
          header, but data will be discarded until one is found.  The
102
          initial sequence header will be parsed before the seek.  The
103
          skipped sections must not change the quantization matrices or the
104
          results are undefined.
105
 
106
     -start num : Waits to start display until this frame number (previous
107
          frames are parsed).
108
 
109
     -end num : ends display at this frame number (except when -seek is
110
          used).
111
 
112
     -gamma gamma_correction_param : specifies the amount of gamma
113
          correction.  Default is 1.0.  Use higher values if movie looks
114
          dark and hard to see.
115
 
116
     -framerate num : sets the framerate of the playback to num frames per
117
          second.  A value of 0 indicates that the stream should be played
118
          as fast as possible.  The default is to play at the rate
119
          specified in the stream (if possible).  Note this is merely a
120
          framerate limiter, it will not discard frames to meet the rate.
121
 
122
     -controls {on|off|none} : determines the initial interactive X user
123
          interface control bar state (if available).  The value on
124
          (default) opens the control bar at initialization and enters
125
          pause mode after displaying the first frame.  The value off
126
          leaves the control bar initially hidden and begins playback
127
          without pausing (similar to the old behavior).  The control bar
128
          can be toggled on and off at any time by clicking in the video
129
          display window, unless the -controls none option is specified, in
130
          which case the control bar is unavailable and playback functions
131
          as though the player were built without interactive controls
132
          (exactly the old behavior).
133
 
134
     -quiet : suppresses printing of frame numbers, timing information, and
135
          most error messages.
136
 
137
     -eachstat : causes statistics to be displayed after each frame. Only
138
          valid when compiled with -DANALYSIS.
139
 
140
     -shmem_off : turns shared memory off.
141
 
142
     -l_range num_colors : sets the number of colors assigned to the
143
          luminance component when dithering the image.  The product of
144
          l_range, cr_range and cb_range should be less than the number of
145
          colors on the display.
146
 
147
     -cr_range num_colors : sets the number of colors assigned to the red
148
          component of the chrominance range when dithering the image.  The
149
          product of l_range, cr_range and cb_range should be less than the
150
          number of colors on the display.
151
 
152
     -cb_range num_colors : sets the number of colors assigned to the blue
153
          component of the chrominance range when dithering the image.  The
154
          product of l_range, cr_range and cb_range should be less than the
155
          number of colors on the display.
156
 
157
     -no_display : dithers, but does not display, usually used for testing
158
          and timing purposes.
159
 
160
NOTES
161
     The player expects video streams only. It can handle multiplexed MPEG
162
     streams (video+audio streams) by discarding the audio. Some streams do
163
     not end with the proper sequence end code and will probably generate
164
     an "Improper sequence end code." error when done playing.  This player
165
     can play XING data files. Be aware that XING makes no use of temporal
166
     redundancy or motion vector information. In other words, they do not
167
     use any P or B frames in their streams. Instead, XING data is simply a
168
     sequence of I frames. Since I frames take significantly longer to
169
     decode, performance of the player using XING data is not
170
     representative of the player's ability.  The player does not play
171
     MPEG-1 D-frame streams, but they are a rarity.  If the player is
172
     compiled without the controlbar, then it can play multiple streams in
173
     different windows.
174
 
175
VERSION
176
     This is version 2.1a, containing some new features since 2.0, and
177
     several bug fixes.  It is a major change since version 1.0.
178
 
179
BUGS
180
     The only known bug is that multiple mpeg_plays cannot seem to be run
181
     simultaneously on a multiprocessor SPARC 20 or a SparcCenter 2000E
182
     using shared memory (in particular:  "On a bi-processor Sparc 20/20
183
     sparc-processor 2000E running Solaris 2.3 or 2.4, it is not possible
184
     to run two concurrent 'mpeg_play -loop' on the same bitstream.  One of
185
     the mpeg_play dies when it loops."  This may be a problem with the X
186
     shared memory library and not our code.)
187
 
188
AUTHORS
189
     Ketan Patel - University of California, Berkeley,
190
          kpatel@cs.berkeley.edu
191
 
192
     Brian Smith - University of California, Berkeley,
193
          bsmith@cs.berkeley.edu
194
 
195
     Henry Chi-To Ma - University of California, Berkeley,
196
          cma@cs.berkeley.edu
197
 
198
     Kim Man Liu - University of California, Berkeley, kliu@cs.berkeley.edu
199
 
200
     Steve Smoot - University of California, Berkeley,
201
          smoot@cs.berkeley.edu
202
 
203
     Eugene Hung - University of California, Berkeley,
204
          eyhung@cs.berkeley.edu