rtp.txt 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. | Header | Requests | Speech data... |
  5. +--------+----------+----------------+
  6. The header contains only the number of frames sent
  7. encoded in 6 bits
  8. 0 1 2 3 4 5
  9. +-+-+-+-+-+-+
  10. | NB frames |
  11. +-+-+-+-+-+-+
  12. There can be any number of requests of the form
  13. 0 1 2 3 4 5 6 7 0 1
  14. +-+-+-+-+-+-+-+-+-+-+
  15. |R| ReqID | ReqVal |
  16. +-+-+-+-+-+-+-+-+-+-+
  17. where R is 1 when a request is following and 0 when there is no more
  18. request. Each request (if R=1) is composed of a 4-bit request ID (ReqID) and
  19. a 5-bit value (ReqVal)
  20. Possible values for ReqID are:
  21. 0: REQ_PERSIST ReqVal=1 for persistent requests/mode selection,
  22. 0 otherwise
  23. 1: PERSIST_ACK Acknowledge a REQ_PERSIST from the other end,
  24. ReqVal equals the value received
  25. 2: MODE Choose the encoder mode directly
  26. 3: QUALITY Choose the encoder quality
  27. 4: VBR Set VBR on (ReqVal=1) or off (ReqVal=2)
  28. 5: VBR_QUALITY Set the encoder quality for VBR mode
  29. 6: LOW_MODE Set the encoder mode for low-band (wideband only)
  30. 7: HIGH_MODE Set the encoder mode for high-band (wideband only)
  31. All requests should be considered at the receiver as a suggestion and
  32. compliance is not mandatory. The PERSIST_ACK should be sent upon receiving a
  33. REQ_PERSIST request to indicate that the request has been received.
  34. The speech data part contains speech frames one after the other. The size of
  35. the encoded frames can be found since the mode is directly encoded into each
  36. frame.
  37. For example, a frame where we request VBR to be on with quality 8 and we
  38. transmit two frames encoded at 8.35 kbps (167 bits/frame) will be:
  39. 0 1 2 3
  40. 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
  41. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  42. | NB=2 |1|ReqID=2| ReqVal=0|1|ReqID=3|ReqVal=8 |0| frame 1 |
  43. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  44. | frame 1 |
  45. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  46. | frame 1 |
  47. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  48. | frame 1 |
  49. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  50. | frame 1 |
  51. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  52. | frame 1 |
  53. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  54. |end| frame 2 |
  55. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  56. | frame 2 |
  57. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  58. | frame 2 |
  59. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  60. | frame 2 |
  61. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  62. | frame 2 |
  63. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  64. | end frame 2 |P|P|P|P|P|P|
  65. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+