演示live555-liveMedia中BitVector class 比特流类的使用

本文档详细介绍了在live555-liveMedia库中,如何利用BitVector类处理AudioSpecificConfig的比特流。重点讲解了BitVector的getBits方法,特别指出该方法在读取超过32位比特时会自动截断为32位,而不会抛出异常。
摘要由CSDN通过智能技术生成
#include "stdafx.h"
#include "CppUnitTest.h"

using namespace Microsoft::VisualStudio::CppUnitTestFramework;


/*
Ttile: 演示live555-liveMedia中BitVector class 比特流类的使用.
Author: Kagula
Date: 2019-1-16
environment: Visual studio community 2017 update5
             Live555 reference MEDIA_SERVER_VERSION_STRING "0.93"
			 Native unit test project
Description:
  通过对AudioSpecificConfig结构体前两个字节的读写
  演示[1]字节流转比特流工具的使用[2]如何从比特流中解析数据[3]如何把bit结构数据写到比特流中.
  相对于C++自带的bit struct, 好处是没有自动单,双,四字节对齐的问题.
  比如说7字节的AAC头的解析和合成, 就不能用c++ bit struct正确读写了.
Note:
  实际用的时候, 可以把BitVector从live555中提取出来.
*/

#include <sstream>

#include "../KagulaCommon/AAC.h"
#include "../liveMedia/include/BitVector.hh"

using namespace std;

namespace UnitTestBitVector
{		
	TEST_CLASS(UnitTest1)
	{
	public:
		
		TEST_METHOD(TestBitStream)
		{
			//下面测试读比特流
			kagula::AudioSpecificConfig asc;
			std::string strASCIIHex("121056E500");
			asc.parseFromASCIIHexStr(strASCIIHex);

			stringstream ss;
			ss << "audioObjectType = " << asc.audioObjectType << ","
				<< "samplingFrequencyIndex = " << asc.samplingFrequencyIndex << ","
				<< "channelConfiguration = " << asc.channelConfiguration << ","
				<< "frameLengthFlag = " << asc.fr
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kagula086

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值