Updates to the Opus Audio Codec
RFC 8251
Document | Type |
RFC - Proposed Standard
(October 2017; No errata)
Updates RFC 6716
|
|
---|---|---|---|
Authors | Jean-Marc Valin , Koen Vos | ||
Last updated | 2017-10-20 | ||
Replaces | draft-valin-codec-opus-update | ||
Stream | IETF | ||
Formats | plain text html pdf htmlized bibtex | ||
Reviews | |||
Stream | WG state | Submitted to IESG for Publication | |
Document shepherd | Tim Terriberry | ||
Shepherd write-up | Show (last changed 2017-07-21) | ||
IESG | IESG state | RFC 8251 (Proposed Standard) | |
Consensus Boilerplate | Yes | ||
Telechat date | |||
Responsible AD | Ben Campbell | ||
Send notices to | Tim Terriberry <tterriberry@mozilla.com> | ||
IANA | IANA review state | Version Changed - Review Needed | |
IANA action state | No IANA Actions |
Internet Engineering Task Force (IETF) JM. Valin Request for Comments: 8251 Mozilla Corporation Updates: 6716 K. Vos Category: Standards Track vocTone ISSN: 2070-1721 October 2017 Updates to the Opus Audio Codec Abstract This document addresses minor issues that were found in the specification of the Opus audio codec in RFC 6716. It updates the normative decoder implementation included in Appendix A of RFC 6716. The changes fix real and potential security-related issues, as well as minor quality-related issues. 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 7841. Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at https://www.rfc-editor.org/info/rfc8251. Copyright Notice Copyright (c) 2017 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 (https://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. Valin & Vos Standards Track [Page 1] RFC 8251 Opus Update October 2017 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Stereo State Reset in SILK . . . . . . . . . . . . . . . . . 3 4. Parsing of the Opus Packet Padding . . . . . . . . . . . . . 4 5. Resampler Buffer . . . . . . . . . . . . . . . . . . . . . . 4 6. Integer Wrap-Around in Inverse Gain Computation . . . . . . . 6 7. Integer Wrap-Around in LSF Decoding . . . . . . . . . . . . . 7 8. Cap on Band Energy . . . . . . . . . . . . . . . . . . . . . 7 9. Hybrid Folding . . . . . . . . . . . . . . . . . . . . . . . 8 10. Downmix to Mono . . . . . . . . . . . . . . . . . . . . . . . 9 11. New Test Vectors . . . . . . . . . . . . . . . . . . . . . . 9 12. Security Considerations . . . . . . . . . . . . . . . . . . . 11 13. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 14. Normative References . . . . . . . . . . . . . . . . . . . . 11 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 11 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 1. Introduction This document addresses minor issues that were discovered in the reference implementation of the Opus codec. Unlike most IETF specifications, RFC 6716 [RFC6716] defines Opus in terms of a normative reference decoder implementation rather than from the associated text description. Appendix A of that RFC includes the reference decoder implementation, which is why only issues affecting the decoder are listed here. An up-to-date implementation of the Opus encoder can be found at <https://opus-codec.org/>. Some of the changes in this document update normative behavior in a way that requires new test vectors. Only the C implementation is affected, not the English text of the specification. This specification remains fully compatible with RFC 6716 [RFC6716]. Note: Due to RFC formatting conventions, lines exceeding the column width in the patch are split using a backslash character. The backslashes at the end of a line and the white space at the beginning of the following line are not part of the patch. Referenced line numbers are approximations. A properly formatted patch including all changes is available at <https://www.ietf.org/proceedings/98/slides/ materials-98-codec-opus-update-00.patch> and has a SHA-1 hash of 029e3aa88fc342c91e67a21e7bfbc9458661cd5f. Valin & Vos Standards Track [Page 2] RFC 8251 Opus Update October 2017 2. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", andShow full document text