10 Star 41 Fork 19

Gitee 极速下载/Pion-WebRTC

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/pion/webrtc
克隆/下载
reader.go 1.02 KB
一键复制 编辑 原始数据 按行查看 历史
Max Hawkins 提交于 2018-09-14 10:27 +08:00 . Add sketch of rtcp.Reader type
package rtcp
import "io"
// A Reader reads packets from an RTCP combined packet.
type Reader struct {
r io.Reader
}
// NewReader creates a new Reader reading from r.
func NewReader(r io.Reader) *Reader {
return &Reader{r}
}
// ReadPacket reads one packet from r.
//
// It returns the parsed packet Header and a byte slice containing the encoded
// packet data (including the header). How the packet data is parsed depends on
// the Type field contained in the Header.
func (r *Reader) ReadPacket() (header Header, data []byte, err error) {
// First grab the header
headerBuf := make([]byte, headerLength)
if _, err := io.ReadFull(r.r, headerBuf); err != nil {
return header, data, err
}
if err := header.Unmarshal(headerBuf); err != nil {
return header, data, err
}
packetLen := (header.Length + 1) * 4
// Then grab the rest
bodyBuf := make([]byte, packetLen-headerLength)
if _, err := io.ReadFull(r.r, bodyBuf); err != nil {
return header, data, err
}
data = append(headerBuf, bodyBuf...)
return header, data, nil
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/mirrors/Pion-WebRTC.git
git@gitee.com:mirrors/Pion-WebRTC.git
mirrors
Pion-WebRTC
Pion-WebRTC
v1.1.1

搜索帮助