datatracker.ietf.org
Sign in
Version 5.6.4.p1, 2014-10-20
Report a bug

Support for Multiple Clock Rates in an RTP Session
RFC 7160

Internet Engineering Task Force (IETF)                 M. Petit-Huguenin
Request for Comments: 7160                            Impedance Mismatch
Updates: 3550                                               G. Zorn, Ed.
Category: Standards Track                                    Network Zen
ISSN: 2070-1721                                               April 2014

           Support for Multiple Clock Rates in an RTP Session

Abstract

   This document clarifies the RTP specification regarding the use of
   different clock rates in an RTP session.  It also provides guidance
   on how legacy RTP implementations that use multiple clock rates can
   interoperate with RTP implementations that use the algorithm
   described in this document.  It updates RFC 3550.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 5741.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/info/rfc7160.

Copyright Notice

   Copyright (c) 2014 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Petit-Huguenin & Zorn        Standards Track                    [Page 1]
RFC 7160                  Multiple Clock Rates                April 2014

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   4
   3.  Legacy RTP  . . . . . . . . . . . . . . . . . . . . . . . . .   4
     3.1.  Different SSRC  . . . . . . . . . . . . . . . . . . . . .   4
     3.2.  Same SSRC . . . . . . . . . . . . . . . . . . . . . . . .   5
       3.2.1.  Monotonic Timestamps  . . . . . . . . . . . . . . . .   5
       3.2.2.  Non-monotonic Timestamps  . . . . . . . . . . . . . .   6
   4.  Recommendations . . . . . . . . . . . . . . . . . . . . . . .   6
     4.1.  RTP Sender (with RTCP)  . . . . . . . . . . . . . . . . .   6
     4.2.  RTP Sender (without RTCP) . . . . . . . . . . . . . . . .   6
     4.3.  RTP Receiver  . . . . . . . . . . . . . . . . . . . . . .   7
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .   7
   6.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   8
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   8
     7.1.  Normative References  . . . . . . . . . . . . . . . . . .   8
     7.2.  Informative References  . . . . . . . . . . . . . . . . .   8
   Appendix A.  Example Values . . . . . . . . . . . . . . . . . . .  10
   Appendix B.  Using a Fixed Clock Rate . . . . . . . . . . . . . .  12
   Appendix C.  Behavior of Legacy Implementations . . . . . . . . .  12
     C.1.  libccrtp 2.0.2  . . . . . . . . . . . . . . . . . . . . .  12
     C.2.  libmediastreamer0 2.6.0 . . . . . . . . . . . . . . . . .  12
     C.3.  libpjmedia 1.0  . . . . . . . . . . . . . . . . . . . . .  13
     C.4.  Android RTP Stack 4.0.3 . . . . . . . . . . . . . . . . .  13

1.  Introduction

   The clock rate is a parameter of the payload format as identified in
   RTP and RTCP (RTP Control Protocol) by the payload type value.  It is
   often defined as being the same as the sampling rate but that is not
   always the case (see, for example, the G722 and MPA audio codecs
   [RFC3551]).

   An RTP sender can switch between different payloads during the
   lifetime of an RTP session and because clock rates are defined by
   payload format, it is possible that the clock rate will also vary
   during an RTP session.  Schulzrinne, et al. [RFC3550] lists using
   multiple clock rates as one of the reasons to not use different
   payloads on the same Synchronization Source (SSRC).  Unfortunately,
   this advice has not always been followed and some RTP implementations
   change the payload in the same SSRC, even if the different payloads
   use different clock rates.

Petit-Huguenin & Zorn        Standards Track                    [Page 2]

[include full document text]