blob: 4440e8a7923b927c568857147046ed3f8c9d11fc (
plain)
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
|
// -*- C++ -*-
// $Id$
interface Video_Control
{
const long VIDEO_PATTERN_SIZE = 100;
struct INITvideoPara
{
long sn;
long version;
sequence <char> videofile;
};
struct INITvideoReply
{
long live;
long format;
long totalHeaders;
long totalFrames;
long totalGroups;
long horizontalSize;
long verticalSize;
long pelAspectRatio;
long pictureRate1000;
long vbvBufferSize;
long sizeIFrame;
long sizePFrame;
long sizeBFrame;
long sizeSystemHeader;
long sizeGop;
long averageFrameSize;
long firstGopFrames;
sequence <char> pattern;
};
/* CmdPOSITION, CmdPOSITIONrelease: followed by following parameter */
struct POSITIONpara
{
long sn;
long nextGroup;
};
/* CmdSTEP: followed by following parameter */
struct STEPpara
{
long sn;
long nextFrame;
};
/* CmdFF, CmdFB: followed by following parameter */
struct FFpara
{
long sn;
long nextGroup;
long usecPerFrame;
long framesPerSecond;
long VStimeAdvance;
};
typedef FFpara FBpara;
/*CmdPLAY: followed by following parameter */
struct PLAYpara
{
long sn;
long collectStat;
long nextFrame;
long usecPerFrame;
long framesPerSecond;
long frameRateLimit1000;
long VStimeAdvance;
long sendPatternGops;
sequence <char> sendPattern;
};
/* CmdSPEED: parameter */
struct SPEEDpara
{
long sn;
long usecPerFrame;
long framesPerSecond;
long frameRateLimit1000;
long sendPatternGops;
sequence <char> sendPattern;
};
boolean init_video (in INITvideoPara para,
out INITvideoReply reply_para);
boolean stat_stream (out char ch, out long size);
boolean close ();
boolean stat_sent ();
boolean fast_forward (in FFpara para);
boolean fast_backward (in FFpara para);
boolean step (in STEPpara para);
boolean play (in PLAYpara para, out long vts);
boolean position (in POSITIONpara para);
boolean speed (in SPEEDpara para);
boolean stop (in long cmdsn);
unsigned short set_peer (in string peer);
// Initializes the server to communicate to the <peer>, which can be
// "ip-number:port-number" (e.g., "tango.cs.wustl.edu:1234" or
// "128.252.166.57:1234"). If there is no ':' in the <address> it
// is assumed to be a port number, with the IP address being
// INADDR_ANY.
// Server returns it's UDP data port number.
};
|