Source File
audiolevelextension.go
Belonging Package
github.com/pion/rtp
// SPDX-FileCopyrightText: 2023 The Pion community <https://pion.ly>// SPDX-License-Identifier: MITpackage rtpimport ()const (// audioLevelExtensionSize One byte header size.audioLevelExtensionSize = 1)var errAudioLevelOverflow = errors.New("audio level overflow")// AudioLevelExtension is a extension payload format described in// https://tools.ietf.org/html/rfc6464//// Implementation based on:// https://chromium.googlesource.com/external/webrtc/+/e2a017725570ead5946a4ca8235af27470ca0df9/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.cc#49//// One byte format:// 0 1// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+// | ID | len=0 |V| level |// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+//// Two byte format:// 0 1 2 3// 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// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+// | ID | len=1 |V| level | 0 (pad) |// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+////nolint:llltype AudioLevelExtension struct {Level uint8Voice bool}// Marshal serializes the members to buffer.func ( AudioLevelExtension) () ([]byte, error) {if .Level > 127 {return nil, errAudioLevelOverflow}:= uint8(0x00)if .Voice {= 0x80}:= make([]byte, audioLevelExtensionSize)[0] = | .Levelreturn , nil}// Unmarshal parses the passed byte slice and stores the result in the members.func ( *AudioLevelExtension) ( []byte) error {if len() < audioLevelExtensionSize {return errTooSmall}.Level = [0] & 0x7F.Voice = [0]&0x80 != 0return nil}
![]() |
The pages are generated with Golds v0.8.2. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |