3 AVT Working Group P. Kerr
4 Internet-Draft Xiph.Org
5 Expires: August 1, 2005 January 31, 2005
8 draft-ietf-avt-vorbis-rtp-00
9 RTP Payload Format for Vorbis Encoded Audio
13 This document is an Internet-Draft and is subject to all provisions
14 of section 3 of RFC 3667. By submitting this Internet-Draft, each
15 author represents that any applicable patent or other IPR claims of
16 which he or she is aware have been or will be disclosed, and any of
17 which he or she become aware will be disclosed, in accordance with
20 Internet-Drafts are working documents of the Internet Engineering
21 Task Force (IETF), its areas, and its working groups. Note that
22 other groups may also distribute working documents as
25 Internet-Drafts are draft documents valid for a maximum of six months
26 and may be updated, replaced, or obsoleted by other documents at any
27 time. It is inappropriate to use Internet-Drafts as reference
28 material or to cite them other than as "work in progress."
30 The list of current Internet-Drafts can be accessed at
31 http://www.ietf.org/ietf/1id-abstracts.txt.
33 The list of Internet-Draft Shadow Directories can be accessed at
34 http://www.ietf.org/shadow.html.
36 This Internet-Draft will expire on August 1, 2005.
40 Copyright (C) The Internet Society (2005).
44 This document describes an RTP payload format for transporting Vorbis
45 encoded audio. It details the RTP encapsulation mechanism for raw
46 Vorbis data and details the delivery mechanisms for the decoder
47 probability model, referred to as a codebook, metadata and other
50 Also included within the document are the necessary details for the
51 use of Vorbis with MIME and Session Description Protocol (SDP).
55 Kerr Expires August 1, 2005 [Page 1]
57 Internet-Draft draft-ietf-avt-vorbis-rtp-00 January 2005
62 All references to RFC XXXX are to be replaced by references to the
63 RFC number of this memo, when published.
67 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
68 1.1 Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
69 2. Payload Format . . . . . . . . . . . . . . . . . . . . . . . . 3
70 2.1 RTP Header . . . . . . . . . . . . . . . . . . . . . . . . 3
71 2.2 Payload Header . . . . . . . . . . . . . . . . . . . . . . 5
72 2.3 Payload Data . . . . . . . . . . . . . . . . . . . . . . . 6
73 2.4 Example RTP Packet . . . . . . . . . . . . . . . . . . . . 7
74 3. Frame Packetizing . . . . . . . . . . . . . . . . . . . . . . 8
75 3.1 Example Fragmented Vorbis Packet . . . . . . . . . . . . . 8
76 3.2 Packet Loss . . . . . . . . . . . . . . . . . . . . . . . 11
77 4. Configuration Headers . . . . . . . . . . . . . . . . . . . . 12
78 4.1 In-band Header Transmission . . . . . . . . . . . . . . . 12
79 4.1.1 Setup Header . . . . . . . . . . . . . . . . . . . . . 13
80 4.1.2 Codebook Header . . . . . . . . . . . . . . . . . . . 13
81 4.1.3 Metadata Header . . . . . . . . . . . . . . . . . . . 15
82 4.2 Packed Headers Delivery . . . . . . . . . . . . . . . . . 16
83 4.2.1 Packed Headers IANA Considerations . . . . . . . . . . 19
84 4.3 Codebook Caching . . . . . . . . . . . . . . . . . . . . . 20
85 4.4 Loss of Configuration Headers . . . . . . . . . . . . . . 20
86 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20
87 5.1 Mapping MIME Parameters into SDP . . . . . . . . . . . . . 21
88 6. Congestion Control . . . . . . . . . . . . . . . . . . . . . . 22
89 7. Security Considerations . . . . . . . . . . . . . . . . . . . 23
90 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 23
91 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 23
92 9.1 Normative References . . . . . . . . . . . . . . . . . . . . 23
93 9.2 Informative References . . . . . . . . . . . . . . . . . . . 24
94 Author's Address . . . . . . . . . . . . . . . . . . . . . . . 24
95 Intellectual Property and Copyright Statements . . . . . . . . 25
111 Kerr Expires August 1, 2005 [Page 2]
113 Internet-Draft draft-ietf-avt-vorbis-rtp-00 January 2005
118 Vorbis is a general purpose perceptual audio codec intended to allow
119 maximum encoder flexibility, thus allowing it to scale competitively
120 over an exceptionally wide range of bitrates. At the high
121 quality/bitrate end of the scale (CD or DAT rate stereo, 16/24 bits),
122 it is in the same league as MPEG-2 and MPC. Similarly, the 1.0
123 encoder can encode high-quality CD and DAT rate stereo at below 48k
124 bits/sec without resampling to a lower rate. Vorbis is also intended
125 for lower and higher sample rates (from 8kHz telephony to 192kHz
126 digital masters) and a range of channel representations (monaural,
127 polyphonic, stereo, quadraphonic, 5.1, ambisonic, or up to 255
130 Vorbis encoded audio is generally encapsulated within an Ogg format
131 bitstream [1], which provides framing and synchronization. For the
132 purposes of RTP transport, this layer is unnecessary, and so raw
133 Vorbis packets are used in the payload.
137 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
138 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
139 document are to be interpreted as described in RFC 2119 [2].
143 For RTP based transportation of Vorbis encoded audio the standard RTP
144 header is followed by a 5 octet payload header, then the payload
145 data. The payload headers are used to associate the Vorbis data with
146 its associated decoding codebooks as well as indicating if the
147 following packet contains fragmented Vorbis data and/or the the
148 number of whole Vorbis data frames. The payload data contains the
149 raw Vorbis bitstream information.
153 The format of the RTP header is specified in [3] and shown in Figure
154 1. This payload format uses the fields of the header in a manner
155 consistent with that specification.
167 Kerr Expires August 1, 2005 [Page 3]
169 Internet-Draft draft-ietf-avt-vorbis-rtp-00 January 2005
173 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
174 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
175 |V=2|P|X| CC |M| PT | sequence number |
176 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
178 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
179 | synchronization source (SSRC) identifier |
180 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
181 | contributing source (CSRC) identifiers |
183 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
187 The RTP header begins with an octet of fields (V, P, X, and CC) to
188 support specialized RTP uses (see [3] and [4] for details). For
189 Vorbis RTP, the following values are used.
193 This field identifies the version of RTP. The version used by this
194 specification is two (2).
198 Padding MAY be used with this payload format according to section 5.1
203 The Extension bit is used in accordance with [3].
205 CSRC count (CC): 4 bits
207 The CSRC count is used in accordance with [3].
211 Set to zero. Audio silence suppression not used. This conforms to
214 Payload Type (PT): 7 bits
216 An RTP profile for a class of applications is expected to assign a
217 payload type for this format, or a dynamically allocated payload type
218 SHOULD be chosen which designates the payload as Vorbis.
223 Kerr Expires August 1, 2005 [Page 4]
225 Internet-Draft draft-ietf-avt-vorbis-rtp-00 January 2005
228 Sequence number: 16 bits
230 The sequence number increments by one for each RTP data packet sent,
231 and may be used by the receiver to detect packet loss and to restore
232 packet sequence. This field is detailed further in [3].
236 A timestamp representing the sampling time of the first sample of the
237 first Vorbis packet in the RTP packet. The clock frequency MUST be
238 set to the sample rate of the encoded audio data and is conveyed
239 out-of-band as a SDP attribute.
241 SSRC/CSRC identifiers:
243 These two fields, 32 bits each with one SSRC field and a maximum of
244 16 CSRC fields, are as defined in [3].
248 After the RTP Header section the following five octets are the
249 Payload Header. This header is split into a number of bitfields
250 detailing the format of the following payload data packets.
253 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
254 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
256 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
260 Figure 2: Payload Header
262 Codebook Ident: 32 bits
264 This 32 bit field is used to associate the Vorbis data to a decoding
265 Codebook. It is created by making a CRC32 checksum of the codebook
266 required to decode the particular Vorbis audio stream.
268 Continuation (C): 1 bit
270 Set to one if this is a continuation of a fragmented packet.
272 Fragmented (F): 1 bit
274 Set to one if the payload contains complete packets or if it contains
275 the last fragment of a fragmented packet.
279 Kerr Expires August 1, 2005 [Page 5]
281 Internet-Draft draft-ietf-avt-vorbis-rtp-00 January 2005
284 Vorbis Data Type (VDT): 2 bits
286 This field sets the packet payload type for the Vorbis data. There
287 are currently four type of Vorbis payloads.
289 0 = Raw Vorbis payload
290 1 = Vorbis Setup payload
291 2 = Vorbis Codebook payload
292 3 = Vorbis Metadata payload
294 The last 4 bits are the number of complete packets in this payload.
295 This provides for a maximum number of 15 Vorbis packets in the
296 payload. If the packet contains fragmented data the number of
297 packets MUST be set to 0.
301 Raw Vorbis packets are unbounded in length currently, although at
302 some future point there will likely be a practical limit placed on
303 them. Typical Vorbis packet sizes are from very small (2-3 bytes) to
304 quite large (8-12 kilobytes). The reference implementation [10]
305 typically produces packets less than ~800 bytes, except for the
306 codebook header packets which are ~4-12 kilobytes. Within an RTP
307 context the maximum Vorbis packet size, including the RTP and payload
308 headers, SHOULD be kept below the path MTU to avoid packet
312 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
313 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
314 | length | vorbis packet data ..
315 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
317 Figure 3: Payload Data Header
319 Each Vorbis payload packet starts with a two octet length header,
320 which is used to represent the size of the following data payload,
321 followed by the raw Vorbis data.
323 For payloads which consist of multiple Vorbis packets the payload
324 data consists of the packet length followed by the packet data for
325 each of the Vorbis packets in the payload.
327 The Vorbis packet length header is the length of the Vorbis data
328 block only and does not count the length field.
330 The payload packing of the Vorbis data packets SHOULD follow the
331 guidelines set-out in [4] where the oldest packet occurs immediately
335 Kerr Expires August 1, 2005 [Page 6]
337 Internet-Draft draft-ietf-avt-vorbis-rtp-00 January 2005
340 after the RTP packet header.
342 Channel mapping of the audio is in accordance with BS. 775-1 ITU-R
345 2.4 Example RTP Packet
347 Here is an example RTP packet containing two Vorbis packets.
352 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
353 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
354 | 2 |0|0| 0 |0| PT | sequence number |
355 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
356 | timestamp (in sample rate units) |
357 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
358 | synchronisation source (SSRC) identifier |
359 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
360 | contributing source (CSRC) identifiers |
362 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
364 Figure 4: Example Packet (RTP Headers)
369 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
370 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
372 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
373 |0|1| 0 | 2 pks | length | vorbis data ..
374 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
376 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
377 | length | next vorbis packet data ..
378 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
380 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
382 Figure 5: Example Packet (Payload Data)
384 The payload data section of the RTP packet starts with the 32 bit
385 Codebook Ident field followed by the one octet configuration header,
386 which has the number of Vorbis frames set to 2. Each of the Vorbis
387 data frames is prefixed by the two octet length field.
391 Kerr Expires August 1, 2005 [Page 7]
393 Internet-Draft draft-ietf-avt-vorbis-rtp-00 January 2005
398 Each RTP packet contains either one complete Vorbis packet, one
399 Vorbis packet fragment, or an integer number of complete Vorbis
400 packets (up to a max of 15 packets, since the number of packets is
401 defined by a 4 bit value).
403 Any Vorbis data packet that is less than path MTU SHOULD be bundled
404 in the RTP packet with as many Vorbis packets as will fit, up to a
405 maximum of 15. Path MTU is detailed in [6] and [7].
407 If a Vorbis packet is larger than 65535 octets it MUST be fragmented.
408 A fragmented packet has a zero in the last four bits of the payload
409 header. Each fragment after the first will also set the Continued
410 (C) bit to one in the payload header. The RTP packet containing the
411 last fragment of the Vorbis packet will have the Fragmented (F) bit
412 set to one. To maintain the correct sequence for fragmented packet
413 reception the timestamp field of fragmented packets MUST be the same
414 as the first packet sent, with the sequence number incremented as
415 normal for the subsequent RTP packets.
417 3.1 Example Fragmented Vorbis Packet
419 Here is an example fragmented Vorbis packet split over three RTP
420 packets. Each packet contains the standard RTP headers as well as
421 the 5 octet Vorbis headers.
447 Kerr Expires August 1, 2005 [Page 8]
449 Internet-Draft draft-ietf-avt-vorbis-rtp-00 January 2005
455 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
456 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
457 |V=2|P|X| CC |M| PT | 1000 |
458 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
460 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
461 | synchronization source (SSRC) identifier |
462 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
463 | contributing source (CSRC) identifiers |
465 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
466 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
468 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
469 |0|0| 0 | 0| length | vorbis data ..
470 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
472 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
474 Figure 6: Example Fragmented Packet (Packet 1)
476 In this packet the initial sequence number is 1000 and the timestamp
477 is xxxxx. The Continuation (C) bit is set to one, indicating it is
478 not the continuation of a fragmented bit, and the Fragmentation (F)
479 is set to 0 indicating it is a fragmented packet. The number of
480 packets field is set to 0, and as the payload is raw Vorbis data the
481 VDT field is set to 0.
503 Kerr Expires August 1, 2005 [Page 9]
505 Internet-Draft draft-ietf-avt-vorbis-rtp-00 January 2005
511 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
512 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
513 |V=2|P|X| CC |M| PT | 1001 |
514 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
516 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
517 | synchronization source (SSRC) identifier |
518 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
519 | contributing source (CSRC) identifiers |
521 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
522 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
524 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
525 |1|0| 0 | 0| length | vorbis data ..
526 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
528 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
530 Figure 7: Example Fragmented Packet (Packet 2)
532 The C bit is set to 1 and the number of packets field is set to 0.
533 For large Vorbis fragments there can be several of these type of
534 payload packets. The maximum packet size SHOULD be no greater than
535 the path MTU, including all RTP and payload headers. The sequence
536 number has been incremented by one but the timestamp field remains
537 the same as the initial packet.
559 Kerr Expires August 1, 2005 [Page 10]
561 Internet-Draft draft-ietf-avt-vorbis-rtp-00 January 2005
567 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
568 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
569 |V=2|P|X| CC |M| PT | 1002 |
570 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
572 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
573 | synchronization source (SSRC) identifier |
574 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
575 | contributing source (CSRC) identifiers |
577 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
578 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
580 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
581 |1|1| 0 | 0| length | vorbis data ..
582 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
584 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
586 Figure 8: Example Fragmented Packet (Packet 3)
588 This is the last Vorbis fragment packet. The C and F bits are set
589 and the packet count remains set to 0. As in the previous packets
590 the timestamp remains set to the first packet in the sequence and the
591 sequence number has been incremented.
595 As there is no error correction within the Vorbis stream, packet loss
596 will result in a loss of signal. Packet loss is more of an issue for
597 fragmented Vorbis packets as the client will have to cope with the
598 handling of the C and F flags. If we use the fragmented Vorbis
599 packet example above and the first packet is lost the client SHOULD
600 detect that the next packet has the packet count field set to 0 and
601 the C bit is set and MUST drop it. The next packet, which is the
602 final fragmented packet, SHOULD be dropped in the same manner, or
603 buffered. Feedback reports on lost and dropped packets MUST be sent
606 If a particular multicast session has a large number of participants
607 care must be taken to prevent an RTCP feedback implosion, [9], in the
608 event of packet loss from a large number of participants.
610 Loss of any of the configuration headers, detailed below, is dealt
611 with in the Loss of Configuration Headers Section later.
615 Kerr Expires August 1, 2005 [Page 11]
617 Internet-Draft draft-ietf-avt-vorbis-rtp-00 January 2005
620 4. Configuration Headers
622 Unlike other mainstream audio codecs Vorbis has no statically
623 configured probability model, instead it packs all entropy decoding
624 configuration, VQ and Huffman models into a self-contained codebook.
625 This codebook block also requires additional identification
626 information detailing the number of audio channels, bitrates and
627 other information used to initialise the Vorbis stream.
629 To decode a Vorbis stream three configuration header blocks are
630 needed. The first header indicates the sample and bitrates, the
631 number of channels and the version of the Vorbis encoder used. The
632 second header contains the decoders probability model, or codebook
633 and the third header details stream metadata.
635 As the RTP stream may change certain configuration data mid-session
636 there are two different methods for delivering this configuration
637 data to a client, in-band and SDP which is detailed below. SDP
638 delivery is used to set-up an initial state for the client
639 application and in-band is used to change state during the session.
640 The changes may be due to different metadata or codebooks as well as
641 different bitrates of the stream.
643 Out of the two delivery vectors the use of an SDP attribute to
644 indicate an URI where the configuration and codebook data can be
645 obtained is preferred as they can be fetched reliably using TCP. The
646 in-band codebook delivery SHOULD only be used in situations where the
647 link between the client is unidirectional or if the SDP-based
648 information is not available.
650 Synchronizing the configuration and codebook headers to the RTP
651 stream is critical. The 32 bit Codebook Ident field is used to
652 indicate when a change in the stream has taken place. The client
653 application MUST have in advance the correct configuration and
654 codebook headers and if the client detects a change in the Ident
655 value and does not have this information it MUST NOT decode the raw
658 4.1 In-band Header Transmission
660 The three header data blocks are sent in-band with the packet type
661 bits set to match the payload type. Normally the codebook and
662 configuration headers are sent once per session if the stream is an
663 encoding of live audio, as typically the encoder state will not
664 change, but the encoder state can change at the boundary of chained
665 Vorbis audio files. Metadata can be sent at the start as well as any
666 time during the life of the session. Clients MUST be capable of
667 dealing with periodic re-transmission of the configuration headers.
671 Kerr Expires August 1, 2005 [Page 12]
673 Internet-Draft draft-ietf-avt-vorbis-rtp-00 January 2005
678 A Vorbis Setup header is indicated with the payload type field set to
679 1. The Vorbis version MUST be set to zero to comply with this
680 document. The fields Sample Rate, Bitrate Maximum/Nominal/Minimum
681 and Num Audio Channels are set in accordance with [11] with the bsz
682 fields above referring to the blocksize parameters. The framing bit
683 is not used for RTP transportation and so applications constructing
684 Vorbis files MUST take care to set this if required.
687 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
688 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
689 |V=2|P|X| CC |M| PT | xxxx |
690 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
692 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
693 | synchronization source (SSRC) identifier |
694 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
695 | contributing source (CSRC) identifiers |
697 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
698 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
700 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
701 |0|1| 2 | 1| bsz 0 | bsz 1 | Num Audio Channels |
702 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
704 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
705 | Audio Sample Rate |
706 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
708 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
710 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
712 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
714 Figure 9: Setup Header
717 4.1.2 Codebook Header
719 If the payload type field is set to 2, this indicates the packet
720 contains Codebook data.
722 The configuration information detailed below MUST be completely
723 intact, as a client can not decode a stream with an incomplete or
727 Kerr Expires August 1, 2005 [Page 13]
729 Internet-Draft draft-ietf-avt-vorbis-rtp-00 January 2005
732 corrupted codebook set.
734 A 16 bit codebook length field precedes the codebook datablock. The
735 length field allows for codebooks to be up to 64K in size. Packet
736 fragmentation, as per the Vorbis data, MUST be performed if the
737 codebooks size exceeds path MTU. The Codebook Ident field MUST be
738 set to match the associated codebook needed to decode the Vorbis
741 The Codebook Ident is the CRC32 checksum of the codebook and is used
742 to detect a corrupted codebook as well as associating it with its
743 Vorbis data stream. This Ident value MUST NOT be set to the value of
744 the current stream if this header is being sent before the boundary
745 of the chained file has been reached. If a checksum failure is
746 detected then this is considered to be a failure and MUST be reported
747 to the client application.
750 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
751 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
752 |V=2|P|X| CC |M| PT | xxxx |
753 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
755 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
756 | synchronization source (SSRC) identifier |
757 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
758 | contributing source (CSRC) identifiers |
760 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
761 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
763 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
764 |0|1| 2 | 1| Codebook Length |
765 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
766 | length | Codebook ..
767 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
769 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
771 Figure 10: Codebook Header
774 4.1.2.1 Codebook CRC32 Generation
776 In order for different implementations of Vorbis RTP clients and
777 servers to interoperate with each other a common format for the
778 production of the CRC32 hash is required. The polynomial is
779 X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0.
783 Kerr Expires August 1, 2005 [Page 14]
785 Internet-Draft draft-ietf-avt-vorbis-rtp-00 January 2005
788 The following C code function SHOULD be used by implementations, if
789 not then the code responsible for generating the CRC32 value MUST use
790 the polynomial function above.
792 unsigned int crc32 (int length, unsigned char *crcdata)
795 unsigned int byte, crc, mask;
800 while (index < length) {
801 byte = crcdata [index];
804 for (loop = 7; loop >= 0; loop--) {
806 crc = (crc >> 1) ^ (0xEDB88320 & mask);
814 4.1.3 Metadata Header
816 With the payload type flag set to 3, this indicates that the packet
817 contain the comment metadata, such as artist name, track title and so
818 on. These metadata messages are not intended to be fully descriptive
819 but to offer basic track/song information. This message MUST be sent
820 at the start of the stream, together with the setup and codebook
821 headers, even if it contains no information. During a session the
822 metadata associated with the stream may change from that specified at
823 the start, e.g. a live concert broadcast changing acts/scenes, so
824 clients MUST have the ability to receive Metadata header blocks.
825 Details on the format of the comments can be found in the Vorbis
828 The format for the data takes the form of a 32 bit codec vendors name
829 length field followed by the name encoded in UTF-8. The next 32 bit
830 field denotes the number of user comments. Each of the user comments
831 is prefixed by a 32 bit length field followed by the comment text.
839 Kerr Expires August 1, 2005 [Page 15]
841 Internet-Draft draft-ietf-avt-vorbis-rtp-00 January 2005
845 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
846 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
847 |V=2|P|X| CC |M| PT | xxxx |
848 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
850 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
851 | synchronization source (SSRC) identifier |
852 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
853 | contributing source (CSRC) identifiers |
855 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
856 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
858 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
859 |0|1| 3 | 1| Vendor string length |
860 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
861 | length | Vendor string ..
862 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
863 | User comments list length |
864 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
865 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
866 | User comment length |
867 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
869 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
871 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
873 Figure 11: Metadata Header
876 4.2 Packed Headers Delivery
878 As mentioned above the RECOMMENDED delivery vector for Vorbis
879 configuration data is via an SDP attribute as this retrieval method
880 can be performed using a reliable transport protocol.
895 Kerr Expires August 1, 2005 [Page 16]
897 Internet-Draft draft-ietf-avt-vorbis-rtp-00 January 2005
900 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
901 | Number of packed headers |
902 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
903 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
905 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
906 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
908 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
910 Figure 12: Packed Headers Overview
912 As the RTP headers are not required for this method of delivery the
913 structure of the configuration data is slightly different. The
914 packed header starts with a 32 bit count field which details the
915 number of packed headers that are contained in the bundle. Next is
916 the packed header payload for each chained Vorbis file.
919 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
920 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
922 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
924 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
926 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
928 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
930 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
932 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
934 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
936 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
938 Figure 13: Packed Headers Detail
940 The key difference between the in-band format is there is no need for
941 the payload header octet and Codebook Ident field. Below are
942 examples of the packed headers format.
951 Kerr Expires August 1, 2005 [Page 17]
953 Internet-Draft draft-ietf-avt-vorbis-rtp-00 January 2005
957 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
958 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
959 |0|1| 2 | 1| bsz 0 | bsz 1 | Num Audio Channels |
960 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
962 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
963 | Audio Sample Rate |
964 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
966 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
968 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
970 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
972 Figure 14: Packed Setup Header
974 The alignment of the packed Setup Header is slightly different from
975 the RTP payload type as the payload header is not used.
978 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
979 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
981 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
983 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
985 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
987 Figure 15: Packed Codebook Header
989 The packed Codebook header also has a slightly different structure to
990 that of the RTP payload type. The Codebook Ident field that is
991 normally part of this structure is moved to the second field of the
992 overall packed structure.
1007 Kerr Expires August 1, 2005 [Page 18]
1009 Internet-Draft draft-ietf-avt-vorbis-rtp-00 January 2005
1013 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
1014 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1015 | Vendor string length |
1016 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1018 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1019 | User comments list length |
1020 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1021 | User comment length / User comment ..
1022 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1024 Figure 16: Packed Metadata Header
1026 The packed Metadata header also as a slightly different structure to
1027 that of the RTP payload type with the payload header not being used.
1029 4.2.1 Packed Headers IANA Considerations
1031 The following IANA considerations MUST only be applied to the packed
1034 MIME media type name: audio
1036 MIME subtype: vorbis-config
1038 Required Parameters:
1042 Optional Parameters:
1046 Encoding considerations:
1048 This type is only defined for transfer via HTTP as specified in RFC
1051 Security Considerations:
1053 See Section 6 of RFC 3047.
1055 Interoperability considerations: none
1057 Published specification:
1059 See RFC XXXX for details.
1063 Kerr Expires August 1, 2005 [Page 19]
1065 Internet-Draft draft-ietf-avt-vorbis-rtp-00 January 2005
1068 Applications which use this media type:
1070 Vorbis encoded audio, configuration data.
1072 Additional information: none
1074 Person & email address to contact for further information:
1076 Phil Kerr: <phil@plus24.com>
1078 Intended usage: COMMON
1080 Author/Change controller:
1084 Change controller: IETF AVT Working Group
1086 4.3 Codebook Caching
1088 Codebook caching allows clients that have previously connected to a
1089 stream to re-use the associated codebooks and configuration data.
1090 When a client receives a codebook it may store it locally and can
1091 compare the CRC32 key with that of the new stream and begin decoding
1092 before it has received any of the headers.
1094 4.4 Loss of Configuration Headers
1096 Unlike the loss of raw Vorbis payload data, loss of a configuration
1097 header can lead to a situation where it will not be possible to
1098 successfully decode the stream.
1100 Out of the three headers, loss of either the Codebook or Setup
1101 headers MUST result in the halting of stream decoding. Loss of the
1102 Metadata header SHOULD NOT be regarded as fatal for decoding. Loss
1103 of any of the headers SHOULD be reported to the client as well as a
1104 loss report sent via RTCP.
1106 5. IANA Considerations
1108 MIME media type name: audio
1110 MIME subtype: vorbis
1112 Required Parameters:
1114 header indicates the URI of the decoding configuration headers.
1119 Kerr Expires August 1, 2005 [Page 20]
1121 Internet-Draft draft-ietf-avt-vorbis-rtp-00 January 2005
1124 Optional Parameters:
1128 Encoding considerations:
1130 This type is only defined for transfer via RTP as specified in RFC
1133 Security Considerations:
1135 See Section 6 of RFC 3047.
1137 Interoperability considerations: none
1139 Published specification:
1141 See the Vorbis documentation [11] for details.
1143 Applications which use this media type:
1145 Audio streaming and conferencing tools
1147 Additional information: none
1149 Person & email address to contact for further information:
1151 Phil Kerr: <phil@plus24.com>
1153 Intended usage: COMMON
1155 Author/Change controller:
1159 Change controller: IETF AVT Working Group
1161 5.1 Mapping MIME Parameters into SDP
1163 The information carried in the MIME media type specification has a
1164 specific mapping to fields in the Session Description Protocol (SDP)
1165 [5], which is commonly used to describe RTP sessions. When SDP is
1166 used to specify sessions the mapping are as follows:
1168 o The MIME type ("audio") goes in SDP "m=" as the media name.
1170 o The MIME subtype ("VORBIS") goes in SDP "a=rtpmap" as the encoding
1175 Kerr Expires August 1, 2005 [Page 21]
1178 o The parameter "rate" also goes in "a=rtpmap" as clock rate.
1180 o The parameter "channels" also goes in "a=rtpmap" as channel count.
1182 o The parameter "header" goes in the SDP "a=fmpt" attribute.
1184 If the stream comprises chained Vorbis files the configuration and
1185 codebook headers for each file SHOULD be packaged together and passed
1186 to the client using the headers attribute if all the files to be
1187 played are known in advance.
1189 The Vorbis configuration specified in the header attribute MUST
1190 contain all of the configuration data and codebooks needed for the
1191 life of the session.
1193 The port value is specified by the server application bound to the
1194 address specified in the c attribute. The bitrate value and channels
1195 specified in the rtpmap attribute MUST match the Vorbis sample rate
1196 value. An example is found below.
1200 a=rtpmap:98 VORBIS/44100/2
1201 a=fmtp:98 header=<URL of configuration header>
1203 Note that the payload format (encoding) names are commonly shown in
1204 upper case. MIME subtypes are commonly shown in lower case. These
1205 names are case-insensitive in both places. Similarly, parameter
1206 names are case-insensitive both in MIME types and in the default
1207 mapping to the SDP a=fmtp attribute. The exception regarding case
1208 sensitivity is the configuration header URL which MUST be regarded as
1209 being case sensitive.
1211 The answer to any offer, [8], MUST NOT change the URL specified in
1212 the header attribute.
1214 6. Congestion Control
1216 Vorbis clients SHOULD send regular receiver reports detailing
1217 congestion. A mechanism for dynamically downgrading the stream,
1218 known as bitrate peeling, will allow for a graceful backing off of
1219 the stream bitrate. This feature is not available at present so an
1220 alternative would be to redirect the client to a lower bitrate stream
1221 if one is available.
1223 If a particular multicast session has a large number of participants
1224 care must be taken to prevent an RTCP feedback implosion, [9], in the
1225 event of congestion.
1231 Kerr Expires August 1, 2005 [Page 22]
1233 Internet-Draft draft-ietf-avt-vorbis-rtp-00 January 2005
1236 7. Security Considerations
1238 RTP packets using this payload format are subject to the security
1239 considerations discussed in the RTP specification [3]. This implies
1240 that the confidentiality of the media stream is achieved by using
1241 encryption. Because the data compression used with this payload
1242 format is applied end-to-end, encryption may be performed on the
1243 compressed data. Where the size of a data block is set care MUST be
1244 taken to prevent buffer overflows in the client applications.
1248 This document is a continuation of draft-moffitt-vorbis-rtp-00.txt.
1249 The MIME type section is a continuation of
1250 draft-short-avt-rtp-vorbis-mime-00.txt
1252 Thanks to the AVT, Ogg Vorbis Communities / Xiph.org including Steve
1253 Casner, Aaron Colwell, Ross Finlayson, Fluendo, Ramon Garcia, Pascal
1254 Hennequin, Ralph Giles, Tor-Einar Jarnbjo, Colin Law, John Lazzaro,
1255 Jack Moffitt, Christopher Montgomery, Colin Perkins, Barry Short,
1256 Mike Smith, Michael Sparks, Magnus Westerlund.
1260 9.1 Normative References
1262 [1] Pfeiffer, S., "The Ogg Encapsulation Format Version 0", RFC
1265 [2] Bradner, S., "Key words for use in RFCs to Indicate Requirement
1268 [3] Schulzrinne, H., Casner, S., Frederick, R. and V. Jacobson,
1269 "RTP: A Transport Protocol for real-time applications", RFC
1272 [4] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and Video
1273 Conferences with Minimal Control.", RFC 3551.
1275 [5] Handley, M. and V. Jacobson, "SDP: Session Description
1276 Protocol", RFC 2327.
1278 [6] Mogul et al., J., "Path MTU Discovery", RFC 1063.
1280 [7] McCann et al., J., "Path MTU Discovery for IP version 6", RFC
1283 [8] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with
1287 Kerr Expires August 1, 2005 [Page 23]
1289 Internet-Draft draft-ietf-avt-vorbis-rtp-00 January 2005
1292 Session Description Protocol (SDP)", RFC 3264.
1294 [9] Ott, J., Wenger, S., Sato, N., Burmeister, C. and J. Rey,
1295 "Extended RTP Profile for RTCP-based Feedback (RTP/AVPF)",
1296 Internet Draft (draft-ietf-avt-rtcp-feedback-11: Work in
1299 9.2 Informative References
1301 [10] "libvorbis: Available from the Xiph website,
1302 http://www.xiph.org".
1304 [11] "Ogg Vorbis I specification: Codec setup and packet decode.
1305 Available from the Xiph website, http://www.xiph.org".
1307 [12] "Ogg Vorbis I specification: Comment field and header
1308 specification. Available from the Xiph website,
1309 http://www.xiph.org".
1311 [13] "ITU (1992-1994) ITU-R Recommendation BS. 775-1 Multi-channel
1312 stereophonic sound system with or without accompanying
1313 picture. International Telecommunications Union. Available
1314 from the ITU website, http://www.itu.int".
1322 EMail: phil@plus24.com
1323 URI: http://www.xiph.org/
1343 Kerr Expires August 1, 2005 [Page 24]
1345 Internet-Draft draft-ietf-avt-vorbis-rtp-00 January 2005
1348 Intellectual Property Statement
1350 The IETF takes no position regarding the validity or scope of any
1351 Intellectual Property Rights or other rights that might be claimed to
1352 pertain to the implementation or use of the technology described in
1353 this document or the extent to which any license under such rights
1354 might or might not be available; nor does it represent that it has
1355 made any independent effort to identify any such rights. Information
1356 on the procedures with respect to rights in RFC documents can be
1357 found in BCP 78 and BCP 79.
1359 Copies of IPR disclosures made to the IETF Secretariat and any
1360 assurances of licenses to be made available, or the result of an
1361 attempt made to obtain a general license or permission for the use of
1362 such proprietary rights by implementers or users of this
1363 specification can be obtained from the IETF on-line IPR repository at
1364 http://www.ietf.org/ipr.
1366 The IETF invites any interested party to bring to its attention any
1367 copyrights, patents or patent applications, or other proprietary
1368 rights that may cover technology that may be required to implement
1369 this standard. Please address the information to the IETF at
1373 Disclaimer of Validity
1375 This document and the information contained herein are provided on an
1376 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
1377 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
1378 ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
1379 INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
1380 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
1381 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
1386 Copyright (C) The Internet Society (2005). This document is subject
1387 to the rights, licenses and restrictions contained in BCP 78, and
1388 except as set forth therein, the authors retain all their rights.
1393 Funding for the RFC Editor function is currently provided by the
1399 Kerr Expires August 1, 2005 [Page 25]