Added RTP payload (draft) to the manual
[speexdsp.git] / doc / rtp.txt
1 The Speex RTP payload is defined as a header, followed by any number of
2 requests to the remote encoder and all encoded speech frames.
3
4 +--------+----------+----------------+
5 | Header | Requests | Speech data... |
6 +--------+----------+----------------+
7
8 The header contains only the number of frames present 
9 encoded in 6 bits
10
11  0 1 2 3 4 5 
12 +-+-+-+-+-+-+
13 | NB frames |
14 +-+-+-+-+-+-+
15
16 There can be any number of requests of the form
17
18  0 1 2 3 4 5 6 7 0 1
19 +-+-+-+-+-+-+-+-+-+-+
20 |R| ReqID | ReqVal  |
21 +-+-+-+-+-+-+-+-+-+-+
22
23 where R is 1 when a request is following and 0 when there is no more
24 request. Each request (if R=1) is composed of a 4-bit request ID (ReqID) and
25 a 5-bit value (ReqVal)
26
27 Possible values for ReqID are:
28  0: REQ_PERSIST   1 for persistent requests/mode selection
29  1: MODE          Choose the encoder mode directly
30  2: QUALITY       Choose the encoder quality
31  3: VBR           Set VBR on (ReqVal=1) or off (ReqVal=2)
32  4: VBR_QUALITY   Set the encoder quality for VBR mode
33  5: LOW_MODE      Set the encoder mode for low-band (wideband only)
34  6: HIGH_MODE     Set the encoder mode for high-band (wideband only)
35  7: MAX_MODE
36  8: MIN_MODE
37
38 The speech data part contains speech frames one after the other. The size of
39 the encoded frames can be found since the mode is directly encoded into each
40 frame.
41
42 For example, a frame where we request VBR to be on with quality 8 and we
43 transmit two frames encoded at 8.35 kbps (167 bits/frame) will be:
44
45  0               1               2               3
46  0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
47 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
48 |   NB=2    |1|ReqID=2| ReqVal=0|1|ReqID=3|ReqVal=8 |0| frame 1 |
49 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
50 |                         frame 1                               |
51 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
52 |                         frame 1                               |
53 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
54 |                         frame 1                               |
55 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
56 |                         frame 1                               |
57 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
58 |                         frame 1                               |
59 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
60 |end|                     frame 2                               |
61 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
62 |                         frame 2                               |
63 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
64 |                         frame 2                               |
65 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
66 |                         frame 2                               |
67 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
68 |                         frame 2                               |
69 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
70 |    end frame 2    |P|P|P|P|P|P|
71 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+