/[rdesktop]/sourceforge.net/trunk/rdesktop/doc/rdpsnd-rec.txt
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /sourceforge.net/trunk/rdesktop/doc/rdpsnd-rec.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1359 - (show annotations)
Tue Jan 2 16:30:06 2007 UTC (17 years, 5 months ago) by ossman_
File MIME type: text/plain
File size: 5528 byte(s)
Add experimental extension to the RDPSND protocol that allows recording.

1 Overview
2 ========
3
4 This is a rdesktop specific extension to the RDPSND protocol to
5 support recording.
6
7 The basic protocol is the same as RDPSND (described in rdpsnd.txt),
8 but with a bunch of new opcodes.
9
10 A client indicates to the server that it can support recording by
11 setting bit 24 (0x00800000) in "Flags" in RDPSND_NEGOTIATE.
12
13 New opcodes
14
15 0x27 RDPSND_REC_NEGOTIATE
16 0x28 RDPSND_REC_START
17 0x29 RDPSND_REC_STOP
18 0x2A RDPSND_REC_DATA
19 0x2B RDPSND_REC_SET_VOLUME
20
21 Opcodes
22 =======
23
24 The following is a list of the new opcodes and their payload.
25
26 RDPSND_REC_NEGOTIATE
27 --------------------
28
29 Sent immediatly after RDPSND_NEGOTIATE when the client indicates that
30 it supports recording. Allows the server to determine the
31 capabilities of the client.
32
33 The client should reply with an identical packet, with the relevant
34 fields filled in, and a filtered list of formats (based on what the
35 client supports).
36
37 0 1 2 3
38 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
39 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
40 | Flags |
41 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
42 | Left channel | Right channel |
43 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
44 | Format count | Version |
45 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
46 | ... |
47 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
48 | Format tag | Channels |
49 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
50 | Frames per sec. |
51 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
52 | Bytes per sec. |
53 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
54 | Block align | Bits per sample |
55 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
56 | Extra size | Extra data ... |
57 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
58 | ... |
59 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
60
61 Flags
62
63 Flags for capabilities. Currently unused.
64
65 Left channel
66
67 Initial volume for left channel. Reserved when sent from server.
68
69 Right channel
70
71 Initial volume for right channel. Reserved when sent from server.
72
73 Format count
74
75 Number of format structures following the header.
76
77 Version
78
79 Version of the RDPSND record protocol. Current version is 1.
80
81 Format tag
82
83 Audio format type as registered at Microsoft.
84
85 Channels
86
87 Number of channels per frame.
88
89 Frames per sec.
90
91 Frames per second in Hz.
92
93 Bytes per sec.
94
95 Number of bytes per second. Should be the product of
96 "Frames per sec." and "Block align".
97
98 Block align
99
100 The size of each frame. Note that not all bytes may contain
101 useful data.
102
103 Bits per sample
104
105 Number of bits per sample. Commonly 8 or 16.
106
107 Extra size
108
109 Number of bytes of extra information following this format
110 description.
111
112 Extra data
113
114 Optional extra format data. Contents specific to each format
115 type.
116
117 RDPSND_REC_START
118 ----------------
119
120 Sent from the server to tell the client to start recording.
121
122 0 1 2 3
123 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
124 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
125 | Format index | |
126 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
127
128 Format index
129
130 Waveform data format in the form of an index to the previously
131 negotiated format list.
132
133 RDPSND_REC_STOP
134 ---------------
135
136 Tells the client to stop sending record data. Must be sent before a
137 new RDPSND_REC_START is sent.
138
139 No payload and no response.
140
141 RDPSND_REC_DATA
142 ---------------
143
144 Chunk of recorded data. The client is free to choose how much data
145 should be queued up before a packet is sent. The payload must not
146 exceed 32768 bytes though.
147
148 No response.
149
150 0 1 2 3
151 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
152 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
153 | Waveform data |
154 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
155 | ... |
156 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
157
158 Waveform data
159
160 Binary waveform data in the format specified by the format index.
161 Size defined by the packet boundary.
162
163 RDPSND_REC_SET_VOLUME
164 ---------------------
165
166 Request from the server to the client to change the input volume.
167 No response.
168
169 0 1 2 3
170 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
171 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
172 | Left channel | Right channel |
173 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
174
175 Left channel
176
177 Volume of left channel in the range [0, 65535].
178
179 Right channel
180
181 Volume of right channel in the range [0, 65535].

  ViewVC Help
Powered by ViewVC 1.1.26