diff options
Diffstat (limited to 'TAO/orbsvcs/tests/AVStreams/mpeg/vcr.1')
-rw-r--r-- | TAO/orbsvcs/tests/AVStreams/mpeg/vcr.1 | 610 |
1 files changed, 610 insertions, 0 deletions
diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/vcr.1 b/TAO/orbsvcs/tests/AVStreams/mpeg/vcr.1 new file mode 100644 index 00000000000..24e9688f674 --- /dev/null +++ b/TAO/orbsvcs/tests/AVStreams/mpeg/vcr.1 @@ -0,0 +1,610 @@ +.\" Copyright (c) 1995 Oregon Graduate Institute +.TH vcr 1 "November 1995" "MPEG video audio player" + +.SH NAME +.B vcr vcrs +\- Distributed, real-time synchronized video audio player, version 2.0 +.SH SYNOPSIS + +.B vcrs +[ +.B \-rt +] [ +.B \-rm +] [ +.B \-s\fIsession_limit\fP +] [ +.B \-help +] + +.B vcr +[ +.B\-rt +] [ +.B \-shmem +] [ +.B \-rmsem +] +.ti +5n +[ +.BR \-dither " ordered\||\|ordered2\||\|fs4\||\|fs2\||\|fs2fast\||\|hybrid\||\| +.if n .ti +5n + hybrid2\||\|2x2\||\|gray\||\|color\||\|mono\||\|threshold +] +.if n .ti +5n +[ +.I X-window options +] +.if n .ti +5n +[ +.BR \-v " \fI[hostname:]video-filename\fP" +] +.if n .ti +5n +[ +.BR \-a " \fI[hostname:]audio-filename\fP" +] +.if n .ti +5n +[ +.BR \-p " \fImovie-file-name\fP" +] +.if n .ti +5n +[ +.BR \-l " \fImovie-list-file-name\fP" +] +.if n .ti +5n +[ +.BR \-quiet +] +.if n .ti +5n +[ +.BR \-help +] +.SH DESCRIPTION + +The player plays \fBMPEG\-1\fP video and \fB8\-bit mu\-law (Sun +Sparc)\fP audio. It supports +following \fBfour types\fP of playback: +.TP +\ \ \ \(bu +Plays both video and audio synchronously, in real-time mode. Video +frames, or even audio samples are dropped if needed. +.TP +\ \ \ \(bu +Plays video only, in real-time mode. Video frames are dropped if +needed. +.TP +\ \ \ \(bu +Plays video only, in best-effort mode, video frames are played as fast +as possible. +.TP +\ \ \ \(bu +Plays audio only, in real time mode. +.PP + +When video/audio is played in \fBreal-time\fP mode, play speed (defined in +terms of frames-per-second (fps) for video and samples-per-second (sps) +for audio) can be specified through a speed scale. If audio is played at a +speed other than the recording (normal) speed, samples are interpolated. + +When video is played in \fBbest-effort\fP mode, the player tries its +best to play video frame by frame, and not to drop frames. This mode +is not supported very well. Now and then some frames may be +dropped. Audio is disabled in this mode. + +As well as various types of playback, the player also supports other +common VCR functions such as fast forward, rewind, step +(forward), random positioning, etc.. + +The player is of \fBdistributed architecture\fP, with servers and +clients communicating across Internet. A \fBserver\fP resides on a +host, and services coming audio/video retrieval requests from clients. +A \fBclient\fP receives instructions from the user, makes connection +to servers, buffers incoming streams, decodes video frames, +interpolates audio samples, and outputs audio and video to +corresponding devices in a timely manner. A client can connect to +different servers for audio and video streams, and still plays them +synchronously. + + +.SH SERVER + +To start the server, type: + +.B vcrs +[ +.B \-rt +] [ +.B \-rm +] [ +.B \-s\fIsession_limit\fP +] [ +.B \-help +] + +One host can have a SINGLE server running, which responds to +connection requests from all clients to that host. Subsequent +invocation is terminated with an error message. + +\fBOptions\fP + +.IP "\fB-rt\fP" +On \fBhpux\fP, \fBsparc-sunos5.3\fP and \fBi86pc-solaris2.4\fP, if you +have real-time execution privilege, you can start the server with +the option \fB\-rt\fP to get better service. + +.IP "\fB-rm\fP" +With option \fB\-rm\fP, the server will try to remove socket names +left by previous crashed invocations before initialization. + +.IP "\fB-s\fIsession_limit\fP" + +With the option of \fB\-s\fP followed by a positive integer, e.g. +\fB-s2\fP, \fB-s4\fP or \fB-s10\fP, the number of sessions +serviced by the server at any time will be limited to be no more than +the given number. Both audio and video sessions are counted. The +default session number limit is \fB4\fI. + +.IP "\fB-help\fP" +This option tells the server to print all available options and then +quit. + +.PP + +In a video session, the server tries to find a +corresponding \fB.Info\fP file describing the structure of the MPEG +file of the session. If this fails, the server scans the MPEG file for +structure information and tries to create the \fB.Info\fP file. For +big MPEG files, this scanning process may take quite a few minutes +(some times even tens of minutes). If the \fB.Info\fP file is found, +the server simply reads structure information from it. + +.SH CLIENT + +The client program is available on \fBsun4\fP, \fBhpux\fP and +\fBi86pc-solaris2.4\fP. It needs a \fBMotif\fP environment, and +outputs audio to the default \fBAudioFile\fP server. If the client +fails to connect to the default AudioFile server, then the audio is +disabled. + +To start the client, type: + +.B vcr +[ +.B\-rt +] [ +.B \-shmem +] [ +.B \-rmsem +] +.ti +5n +[ +.BR \-dither " ordered\||\|ordered2\||\|fs4\||\|fs2\||\|fs2fast\||\|hybrid\||\| +.if n .ti +5n + hybrid2\||\|2x2\||\|gray\||\|color\||\|mono\||\|threshold +] +.if n .ti +5n +[ +.I X-window options +] +.if n .ti +5n +[ +.BR \-v " \fI[hostname:]video-filename\fP" +] +.if n .ti +5n +[ +.BR \-a " \fI[hostname:]audio-filename\fP" +] +.if n .ti +5n +[ +.BR \-p " \fImovie-file-name\fP" +] +.if n .ti +5n +[ +.BR \-l " \fImovie-list-file-name\fP" +] +.if n .ti +5n +[ +.BR \-quiet +] +.if n .ti +5n +[ +.BR \-help +] + +\fBOptions\fP + +.IP \fB-rt\fP +On \fBhpux\fP, and \fBi86pc-solaris2.4\fP, if you have real-time +execution privilege, with this option you may get better service. +.IP \fB-shmem\fP +With this option, the client tries to output video frames to the +X-server via shared memory instead of sockets. +.IP \fB-rmsem\fP +With this option, prior to initialization, the client tries to remove +\fBall\fP existing semaphore and shared memory ids you have access to. +\fBBe careful\fP, with this option, you also face the danger of +removing semaphores or shared memory ids being used by other programs, +as well as all the ones created by failed invocation of the player. See +\fBSemaphore ids and shared memory ids used up\fP in \fBKNOWN PROBLEMS\fP +section. +.IP "\fB-dither\fP ordered|ordered2|fs4|fs2|fs2fast|hybrid|" + hybrid2|2x2|gray|color|mono|threshold + +This option specifies the type of dithering performed on video frames +in order to be displayed on an X-window. The default is +\fIordered\fP. \fIcolor\fP only works with full color (24-bit) +displays. All others work with 8-bit color displays. \fImono\fP and +\fIthreshold\fP also work with mono displays. Different types of +dithering have different computational complexity and offer different +image quality. +.IP "\fIX-window options\fP" +All standard X-window Toolkit command line options are accepted +(see \fBX\fP(1)). +.IP "\fB-v\fP \fI[hostname:]video-filename\fP" +The very first program for the player can be specified in command line +with \fB-v\fP and/or \fB-a\fP options, for video and/or audio streams +respectively. + +This option specifies a video stream. If the \fIhostname\fP part is +given, the client tries to connect to a running server on the given +host, and plays the given file. If the hostname part is missing, the +client assumes there is a running server on the local host or tries to +fork one. and tries to connect to it. + +.IP "\fB-a\fP \fI[hostname:]audio-filename\fP" +This option specifies an audio stream of the very first program. +Only file names with suffix \fB.au\fP are accepted as audio files. +.IP "\fB-p\fP \fImovie-file-name\fP" +This option specifies a file specifying a movie to be played upon +client startup. A movies file contains \fBfive lines\fP lines: title, +video host name, video file path, audio host name, and audio file path. +.IP "\fB-l\fP \fImovie-list-file-name\fP" +This option specifies a movie list file to replace the default movie +list file \fI$(HOME)/.vcr/vcrPrograms\fP. A movie list file contains a +banner line, followed by a list of movies. +.IP "\fB-quiet\fP" +This option tells the client not to print any text message. This is +useful when the player is invoked from within a web browser. +.IP "\fB-help\fP" +This option tells the client to print all available options and quit. + +.PP + +\fBOperations\fP + +There are \fBtwelve buttons\fP and \fBfour scales\fP defined in the top-level window. +Buttons from left to right are: +.PP +.IP \fIExit\fP +Exits the client right away. +.IP \fIInfo\fP +Pops up a window containing information about the player. +.IP \fIPara\fP +Pops up a window with a list of parameters. Parameter values +can be viewed and modified through this window. +.IP \fIProg\fP +Pops up a window with a list of programs. You +can select a program from this list to play. +.IP \fIFile\fP +This is an alternative way to select programs. pressing this button +pops up a standard Motif file selection window. You can select +audio/video file on local host to play. The client assumes a running +server on local host, or tries to fork one. + +File names with suffix \fB.au\fP are accepted as audio, and file +names with suffices \fB.mpg\fP, or \fB.mpeg\fP (some or all letters in +the suffices can be upper-case ones) as MPEG video. Other types of +file names are rejected. + +Selection of a new program causes the current program to be discarded. +.IP \fILoop\fP +A toggle button. When pressed, the current program is played +repeatedly until stopped explicitly by the user, otherwise, playback stops when +program end is hit. This button has no effect on rewind and fast +forward. +.IP \fINorm\fP +Restores play speed to the normal (recording) speed. +.IP \fIRewind\fP +For video programs. Plays backward from the current position at a +speed given by the parameter \fI(Rewind frames-per-second)\fP. Only first +frames of MPEG picture groups (I-frames) are played. Audio is +disabled. +.IP \fIStop\fP +Stops active playback, fast forward or rewind. +.IP \fIFast-Forward\fP +For video programs. Plays forward from the current position at a speed +given by the parameter \fI(FF frames-per-second)\fP. Only first frames of MPEG +picture groups (I-frames) are played. Audio is disabled. +.IP \fIPlay\fP +Plays the program from the current position in one of the two modes, +depending on if video is involved and the value of an parameter \fI(Real +time(audio on)(tag))\fP: +.RS +.IP - +Best-effort mode, if the parameter is off (0), and video is involved. +.IP - +Real-time mode, otherwise. +.RE +.IP \fIStep\fP +Steps forward for one frame from the current position. +.PP +Clicking on buttons \fIRewind\fP, \fIFast-Forward\fP, \fIPlay\fP and +\fIStep\fP and dragging the \fIPlay-Speed\fP scale all stop current +active rewind, fast forward, or play. + +.B "Four scales \fP from left to right are:" + +.IP \fIBalance\fP +Currently not functional, because only mono audio is +supported. +.IP \fIVolume\fP +Audio volume. +.IP \fIPlay-Speed\fP +Specifies play speed for real-time mode playback. This scale is not +completely linear, with a special middle point (\fB50\fP). +.RS +.IP \fB50\fP +normal (recording) speed. +.IP "\fB[1 - 50)\fP" +linear speed value increase from zero to the normal speed. +.IP "\fB(50 - 100]\fP" +Linear speed value increase from the normal speed to the maximum +speed given by the parameter \fI(Video max frames-per-second)\fP when +video is involved in the current program, or \fI(Audio max +samples-per-second)\fP when only audio is involved. +.RE +This scale also defines the upper-limit of the best-effort playback +speed. +.IP \fIPosition\fP +This scale has multiple functionalities: +.RS +.IP - +Indicates the beginning position for rewind, fast forward and +playback. +.IP - +Shows the current position during rewind, fast forward, and playback. +.IP - +Random positioning: you can set the position by dragging the +slider. when video is involved, the first frame of the picture group +at the current position is displayed. +.RE +.PP +.B "Program list" + +.B Program list +is maintained through the \fBprogram list\fP window, which is popped up by +clicking the \fIProg\fP button in the main window. Currently only \fISelect\fP +and \fIDismiss\fP buttons are fully functional, and contents of a selected +program can be viewed (but not modified) by pressing the \fIModify\fP +button. To select a program, \fBhighlight\fP the desired item and +click \fISelect\fP. To modify the program list, edit the program file given +below. + +.B "Parameters" + +.B Parameters +are viewed and maintained through the parameter window, which is activated +by clicking the \fIPara\fP button in the main window. To update a parameter, +\fBhighlight\fP the item, enter the new value in the text window next +to the \fIUpdate\fP button, and press \fIUpdate\fP. Following parameters +are supported: + +.IP "\fIReal time (audio on)(tag)\fP" +Best-effort play mode when this parameter is 0 and video is involved +in the current program, otherwise real-time play mode. Default: 1, +range: 0, non-0. +.IP "\fIVideo max frames-per-second\fP" +For video programs, real-time mode play speed when speed scale has a +value of 100. Default: 60, range: > the normal speed. +.IP "\fIAudio max samples-per-second\fP" +For audio-only programs, play speed when speed scale has a value of +100. Default: 16000, range: > the normal speed. +.IP "\fIFF frames-per-second\fP" +Fast forward speed. Default: 150, range: > 0. +.IP "\fIRewind frames-per-second\fP" +Rewind speed. Default: 150, range: > 0. +.IP "\fIFeedback delay (msec)\fP" +Currently not used. +.IP "\fIAudio output mask\fP" +Currently not used. +.IP "\fIAudio_para.encodeType\fP" +Currently not used. +.IP "\fIAudio_para.channels\fP" +Currently not used. +.IP "\fIAudio_para.samplesPerSecond\fP" +Currently not used. +.IP "\fIAudio_para.bytesPerSamples\fP" +Currently not used. +.IP "\fIAudio timer interval (millisec)\fP" +For audio-only programs. Playback +timer interval in milliseconds. Playback of audio and video is +driven by a timer in the client. Default: 500, range: > 0. +.IP "\fIAudio buffered intervals\fP" +For audio-only programs. This number of timer intervals of audio +samples are to be buffered in the AudioFile server internal buffer. This +parameter and the previous one determine how many milliseconds of +audio samples are to be buffered in AudioFile. Buffering too +many samples reduces responsiveness, too few may degrade playback +quality. Default: 2, range: > 0. +.IP "\fIFrames per audio play\fP" +For audio+video programs, this parameter determines the ratio of the +audio timer interval over the video timer interval. Default: 4, +range: > 0. +.IP "\fIAudio forward (samples)\fP" +For audio+video programs, this number of samples of audio is +played ahead of video stream. This is supposed to compensate the +delay in AudioFile server. Default: 800, range: > 0. +.IP "\fIVS work-ahead (milli-seconds)\fP" +For video program, this number of milli-seconds the player tries to +keep the video server ahead of the client during playback, rewind and +fast forward. + +If the parameter \fISync effective\fP has a value of non-0, then this +parameter gives the initial value of the VS work-ahead time, and the +actual work ahead time is adjusted according to current network delay +jitter level. If a value less than the default is set, then the +default instead of the given one is used by the player. + +Default: 100, range: >= Default. + +.IP "\fIFrame rate limit (fps, float)\fP" +For video programs. In real-time play mode, if current play speed is +higher than the value of this parameter, then this +parameter defines the maximum frame rate the player tries to play. +Default: 60.0, range: >0. +.IP "\fICollect statistics(tag)\fP" +For video programs. If both the server and the client programs are compiled +with STAT defined, this tag indicates that, at the end of a playback +session, when \fIStop\fP button is pressed (or in loop-back mode when the +end of the program is reached) statistics is collected to file +stat.\fIn\fP in current directory (from which the client is +invoked). Default: 0, range: 0, non-0. +.IP "\fICollect video structure info(tag)\fP" +For video programs. If both the server and the client programs are compiled +with STAT defined, this tag indicates that, upon successful +initialization of a video stream, structure information of the MPEG +stream is collected to a file named struct.\fIn\fP in +current directory Default: 0, range: 0, non-0. +.IP "\fISync effective(tag)\fP" +For video programs, when set, server/client synchronization control is +effective during playback, rewind and fast forward. Default: 1, range: +0, non-0. +.IP "\fIQoS effective(tag)\fP" +For video programs, when set, automatic frame rate control is +effective during playback. Default: 1, range: 0, non-0. +.IP "\fIAudio offset(samples)\fP" +For audio+video programs. The player assumes that in a program, audio +and video are recorded strictly synchronously. But it is usually not +the case, and there is a certain amount of timing shift between audio +and video. This parameter specifies audio forward offset against video +in order to compensate the shift. Default: 0, range: integer +.IP "\fIFilter parameter(1/R or n-samples)\fP" +Parameter of the filters for client/server synchronization and frame rate +control. Default: 50, range: > 0. +.IP "\fIMax send pattern frames\fP" +This parameter sets the granularity of the frame rate control +algorithm. Default: 60, range: > 0. +.IP "\fIReliable byte-stream audio (tag)\fP" +In the case when the server is on a remote host, when this tag is set, +the client establishes a TCP connection to the server for shipping +audio samples, otherwise a UDP is used. The client always setup a TCP +connection to the server for control messages, no matter what value +the tag is. +.IP "\fIReliable byte-stream video (tag)\fP" +Similar effort as previous tag, but for video channel. +.IP "\fIVerbose message(tag)\fP" +If this tag is set, then verbose message is printed (provided that +command line option \fB-quiet\fP is not specified. Otherwise the +client will still print some, but less verbose message. +.PP +Parameter setting is for experienced user only. It is suggested that +you leave values of most parameters as default. If you like to change +some of them, be careful. It may make the player behave improperly. In +case you made some change, the player fails to work, and you are +unable to undo the change, delete the parameter file shown below and +restart the client. + +.SH FILES + +.IP "\fI($HOME)/.vcr/vcrPrograms\fP" +Program file. If this file is absent, it is created with a default +movie list of several basketball game sample movies in it. The movies +in the default movies list are maintained at CSE OGI. In a movie list +file, the first line is a banner. Following this line, each contiguous +four lines describe a movie: video host, MPEG file path, audio host, +audio file path. You may edit the movie list fileto include any movies +you like. + +.IP "\fI($HOME)/.vcr/vcrParameters\fP" +Parameter file. When absent, the system default parameter values +apply. Whenever you update a parameter, this parameter file is also +created or updated. + +.SH KNOWN PROBLEMS + +.B "The player stalls" +when or after playing audio program at very \fBlow speed\fP, or the +product of \fI(Audio timer interval)\fP and \fI(Audio buffered intervals)\fP +parameters \fBtoo large\fP, or \fI(Frames per audio play)\fP too +large. This is because the client tries to put too many audio +samples to AudioFile each time, blocking itself for output. + +In this version of the player, when an video+audio program is played, +some conditions are checked and low speed limit is enforced. You +are not able to set too low play speed (even if you set the speed +slider to 0 position). But the conditions might not be sufficient. + +.B "Play at too high speed\fP," +or \fI(Audio timer interval)\fP too small, or \fI(Video max +frames-per-second)\fP, \fI(FF frames-per-second)\fP, or \fI(Rewind +frames-per-second)\fP too high, presentation quality may be worse than +expected. This is because of the resolution limit of the UNIX interval +timer, which is about 10 milliseconds. + +.B "When Play speed jump from high to very low\fP," +a few seconds of worse-than-expected video presentation quality may be +experienced. Because at high speed, the video server usually drops +frames, and play speed changes, the player does not flush the video +pipeline. + +Various problems may be experienced if the \fBparameter\fP values are too +far from their default. The parameter values are seldomly guarded. + +.B "Audio doesn't work when played across the Internet\fP." +This is because audio is retrieved from the audio server to the +client via TCP, and the Internet TCP connection fails to provide +enough (e.g. 8KB/s) sustained bandwidth. In this case, all audio +samples would be too late showing up at the client, and thus are +dropped. + +.B "X shared memory problem\fP." +Parts of the user interface may not work correctly when the player +outputs to X-window via shared memory (with option \fB-shmem\fP). For +example, some of the buttons may not show up. Usually, the missing +buttons will show up by iconifying the user interface. + +.B "Core dump." +The player may core dump when playing a specific MPEG stream, at a +specific position. This may be because the parameters in the MPEG +stream is out of the ability of the decoder code. Upon core dump, you +may want to reproduce the problem, and recompile the player with +option -DNDEBUG, run the player again to see if any assertions fails. + +.B "Semaphore or shared memory ids used up\fP." +When this happens, an error shmget() or semget() is reported by the +player. This may happen if previous invocation(s) of the player have +exit abnormally causing core dump, and you try to run the player +again. Because semaphores and shared memory segments might not be +reclaimed when the player exits abnormally. You may run the client +with option \fB\-rmsem\fP to remove all existing semaphores and shared +memory ids accessable by you. See description of \fB\-rmsem\fP. If +\fB-rmsem\fP does not work, you may need to use tools like +\fBipcrm(1)\fP. + +.B "Undeleted UNIX socket pathes /tmp/vcrs*\fP" +Some UNIX socket names may remain in /tmp directory as "vcrs*", if the +server or the client has terminated abnormally. + +.SH BUG REPORT + +If you experience problems, look at the above KNOWN PROBLEM section +first. If the problem is not described, try to reproduce the problem, and +\fBreport bug\fP to \fBscen@cse.ogi.edu\fP. Thanks. + +.SH COPYRIGHT + +This software is covered by copyrights. It contains code contributed +by the author and several other parties. Please see the beginning of +source files and copyright file(s) in the root directory of the source +kit. + +.SH SEE ALSO + +.B "AF\fP(1), \fBX\fP(1)" + +.SH AUTHOR + + Shanwei Cen + Department of Computer Science and Engineering + Oregon Graduate Institute of Science and Technology + scen@cse.ogi.edu |