首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析Opus TOC Byte

解析Opus TOC Byte
EN

Stack Overflow用户
提问于 2017-06-01 12:29:09
回答 1查看 682关注 0票数 0

为了使用Opus音频编解码器,我需要从char缓冲区中解析一个TOC字节,并提取config、s和c段,每个片段代表一个数字。

我需要将这些数字存储到单独的变量中以供进一步使用,我想知道实现这一目标的最佳方法(在C++中)是什么。

格式良好的Opus数据包必须至少包含一个字节R1。

这个字节形成一个内容表(TOC)标题:

0 1 2 3 4 5 6 7

+-+

X=.

+-+

TOC字节的前五位标记为"config",编码了32种可能的操作模式、音频带宽和帧大小的配置之一。

一个额外的位,标记为"s",信号单对立体声,0表示单声道,1表示立体声。

标记为"c“的TOC字节的其余两位编码每个数据包的帧数(代码0到3)。

这种格式是根据在这里找到的RFC:https://www.rfc-editor.org/rfc/rfc6716#section-3.1

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-06-03 16:15:34

如果需要,只需使用右移位(>>)将比特转换为低比特,并使用按位和(&)掩蔽其他比特。

代码语言:javascript
复制
int config = (toc >> 3) & 31;
int s = (toc >> 2) & 1;
int c = toc & 3;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44307578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档