上周处理RTCP消息中发现项目小伙伴处理TMMBR消息中遇到了问题。主要是小伙伴不晓得对于MxTBR中的Exp、Mantissa以及OverHead怎么赋值。
因为这三个对象的赋值都没有按照完整字节赋值,存在跨字节情况及只取部分BIT位情况。
我分析了下RFC5104规范,发现该规范对于三个对象的赋值描述的很清楚。Exp占高位6BIT,Mantissa占17BIT,OverHead占9 BIT。
原因及算法了解后,进入到非常轻松的编码环节。
struct tmmbndata
{
unsigned int overhead;
unsigned int mantissa;