1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
|
Following are the instructions for installing the distributed
real-time MPEG video and audio player.
To install this MPEG video audio player on an architecture, you need
to login to a machine of the same architecture, and follow the
instructions below.
Building this software needs a Motif environment.
The player can be built to have or not to have audio capacity. If your
workstation or X-terminal has audio output, you may want to play audio
with the player.
Audio can be supported either through native audio device or
AudioFile. If you want to build the player to use AudioFile, you need
AudioFile client environment: header files and libraries. Those who
are interested in getting AudioFile may want to follow the pointer(ftp
or WWW):
file://crl.dec.com/pub/DEC/AF/
Upon reading this file, you should have uncompressed and untared the
file vcr.tar.Z. Suppose you are now in the root directory of the
source tree, which contains this file and several other files as well
as a source subdirectory ./source.
Prior to installation, please read all files 'INSTALL*', and 'README*'
in current directory, to get more information.
The software and Makefile's are coded so that you can build the player
for several architectures at the same time, without copying the source
code, or making symbolic links to source files.
There are plenty of sample Makefile's in directory ./source for
architectures HPUX (Makefile.ohp[.debug|.static]), SunOS4 for
Sparc-stations (Makefile.osun4[.debug|.static]), Solaris 2.4 for x86
(Makefile.osolpc[.debug]) and Solaris 2.x for SparcStation
(Makefile.solsparc). Makefile's with suffix '.debug' are with
debugging mode turned on, otherwise most optimizations are turned on.
Also you will find a file 'Makefile.rules'. This file contains all
dependency information, which is independent from specific environment
setting. This file is included by all other sample Makefile's in that
directory. Separate 'Makefile.rules' make it easier for you to
understand and modify the sample Makefile's, and/or create your own
Makefile's.
The Makefile's in ./source defines following variables:
LIBDIRS -- a list of internal library directories your version
of binaries need.
CC -- name of the compiler used.
CFLAGS -- flags for the compiler. This should also include
paths of the header files for X11, AudioFile, etc.
In the sample Makefile's, the pathes are defined by
the name INCLUDEDIR.
LD -- name of the linker used.
LDFLAGS -- flags for the linker.
AR -- name and options of archive mantenance program
RANLIB -- name an option of ranlib, if your platform (like SunOS4)
needs ranlib, you need to define this, otherwise leave it
undefined.
CLIBS -- a list of external libraries for client, like X11,
Xm, AF, etc. including the paths of these libraries,
if they are not in default path.
CILIBS -- a list of internal libraries for client, each element
in this list should be in a directory listed in LIBDIRS.
SLIBS -- a list of external libraries for server, like X11,
Xm, AF, etc. including the paths of these libraries,
if they are not in default path.
SILIBS -- a list of internal libraries for server, each element
in this list should be in a directory listed in LIBDIRS.
The Makefile's finally include the 'Makefile.rules' in ./source.
In the definition of the name CFLAGS, one or more of following micros
may need to be defined through '-D' compiler option, for compiling the
client and/or the server:
Shared by client and server:
SunOS -- If you are building the player on SunOS4. For both
the client and the server.
__srv4__ -- If you are building the player on Solaris 2.x.
For both the client and the server.
_HPUX_SOURCE -- If you are building the player on HPUX.
For both the client and the server.
ULTRIX -- If you are building the player on Ultrix 4.x. For
both the client and the server
IRIX -- For SGI IRIX 5.x
FreeBSD -- For FreeBSD 2.x
LINUX -- For Linux 1.x
BIG_ENDIAN -- If you are building the player on big-endian
machines, like HP and SunSPARC. For both the
client and the server.
LITTLE_ENDIAN -- If you are building the player on little-endian
machines, like x86 PC and DEC MIPS. For both the
client and the server.
STAT -- If you want to build the player WITH the code for
statistics. For both the client and the server.
NDEBUG -- If you want to include assertion checking in the
player. For both the client and the server.
Used by client only:
AUDIOFILE -- If you want to build the player to output audio
to AudioFile server. You need to have at least
AudioFile client side library to use AudioFile.
Otherwise, you may access directly audio devices.
SH_MEM -- If you want the player to output to X-window via
shared memory. For the client only.
Following are the steps for installing the software, with
installing on HPUX as an example.
If you are installing on an architecture other than HPUX, you may want
to create working directories with different names. If your
architecture is in above architecture list, you may want to make use
of the sample Makefile's for your architecture instead of HPUX, and
edit them to suit your environment.
If you are porting the player to an architecture which is not in above
list, you may need to create your own Makefile's. Nevertheless, you
will find useful hints from existing sample Makefile's. Among other
things, choose to define BIG_ENDIAN or LITTLE_ENDIAN in CFLAGS
depending on the endianness of your platform, and you may need to
define a name for your porting, like SunOS ULTRIX etc. mentioned
above. Also, you may need to modify some architecture specific code,
which is usually around where names like ULTRIX, _HPUX_SOURCE or
__svr4__ show up.
Suppose now you are to build the player on the HPUX architecture, in
working subdirectory ./hpux. In fact, you can choose any names you
like for this working directory.
Now, you have or will create following directories for building the
software:
./ -- root directory for the source package.
./source -- source code directory tree.
Above directories have been created automatically when you untar the
source package. You will create following working directory for
compiling the software.
./hpux -- directory for building the whole package.
Steps for building the package on HPUX
(1).
% mkdir ./hpux
% cd ./hpux
% tar xf ../dirtree.tar
% ln -s ../source/Makefile.hp Makefile
(2). Edit ./Makefile, to suit your environment.
(3).
% make
% make clean
% cd ..
If no error is reported, you should have got ./hpux/vcrs, the server
program, and ./hpux/vcr, the client programs of the player.
In editing the Makefile's, make sure to set right values to all
variables like CC, CFLAGS, etc., so that the right compiler is chosen,
the right compile flags are set, the header files and the libraries
for TCP/UNIX socket are accessible when compiling both the server and
the client, and the header files and the libraries for X11,
X11-toolkit, Motif, and AudioFile (if applicable) are all accessible
when compiling the client. Also make sure you set all reasonal
compile-time optimization flags on with CFLAGS. This makes things
different, because the client takes very much CPU time to decode video
frames.
If you have problem with the meaning of CC, CFLAGS, LD, LDFLAGS,
etc. or the syntax or structure of the Makefile's you are to edit or
create, please read the man page of 'make'. If you are not sure which
compiler to use and what compile and link flags to set, please find
out the compilers available in your system (usually they are 'cc' or
'gcc') and read their man pages.
Only compilers accepting prototypes will compile successfully. gcc is
one of them. The Makefiles in this package work with 'make' programs
which support pattern match rules. gnu make is one of them.
3. Install the compiled programs into proper directories
For example, suppose you are in the root dir of the source kit, and
want to install the player in /usr/local, run following commands:
% cp ./vcr.1 ./vcrs.1 /usr/local/man/man1/.
% cp ./hpux/vcrs ./hpux/vcr /usr/local/bin/.
4. Run the player.
(1). Start the server program on hosts on which there are video and/or
audio files to be played. Refer to vcrs(1) for instructions.
(2). Set environment for accessing AudioFile, X, Motif, start the client
program. Refer to vcr(1) for instructions. Following are sample steps
(assume you are using csh on Sparc-station, and use AudioFile):
% set path=(/usr/local/bin $path)
% setenv LD_LIBRARY_PATH /usr/lib:/usr/local/lib
% setenv DISPLAY hostname:0.0
% Asparc &
% ahost hostname
% vcr
(3). The first invocation of the client programs will create a
directory $(HOME)/.vcr, and a movie list file $(HOME)/.vcr/vcrPrograms
with default movie list. After the first invocation, edit the movie
list file to include all your favorite programs in this file, and
invoke the client again to play your favorite programs. Refer to man
page vcr(1) for structure of this file.
5. Add yourself to our mailing list by sending a mail (with your name
and email address) to the following address, so that we can keep you
informed of software upgrade and bug fix.
scen@cse.ogi.edu
If you experience any problem, please read file BUGS for bug report.
|